Web3js

您將如何生成此交易雜湊?

  • November 16, 2018
 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);
   }
};

引用自:https://ethereum.stackexchange.com/questions/62478