Web3js
您將如何生成此交易雜湊?
let contract = await instance.mint( accounts, usersInput.url, usersInput.metadata[0], usersInput.metadata[1], usersInput.metadata[2], { from: accounts, gas: 350000 } ); return contract;
如果使用者的 gas 價格低,則交易將出錯並顯示消息“TxHASH 已在 280 秒後超時”
我認為使用 truffle with 具有最新的 web3。
我將如何生成交易雜湊,或返回交易雜湊並發送交易,以便我可以儲存 txHash,然後在需要超過 280 秒確認時掃描該收據資訊?
如何在上面的程式碼中返回一個 tx 雜湊,而無需等待實際被拾取。我對函式輸入的語法感到困惑
你會這樣做:
let txHash = await instance.mint.sendTransaction( accounts, usersInput.url, usersInput.metadata[0], usersInput.metadata[1], usersInput.metadata[2], { from: accounts, gas: 350000 } );
我不確定這是否記錄在任何地方:)
要等待收據,您可以使用我的 Gist:
module.exports = function getTransactionReceiptMined(txHash, interval) { const self = this; const transactionReceiptAsync = function(resolve, reject) { self.getTransactionReceipt(txHash, (error, receipt) => { if (error) { reject(error); } else if (receipt == null) { setTimeout( () => transactionReceiptAsync(resolve, reject), interval ? interval : 500); } else { resolve(receipt); } }); }; if (Array.isArray(txHash)) { return Promise.all(txHash.map( oneTxHash => self.getTransactionReceiptMined(oneTxHash, interval))); } else if (typeof txHash === "string") { return new Promise(transactionReceiptAsync); } else { throw new Error("Invalid Type: " + txHash); } };