Transactions

等待交易確認

  • June 30, 2021

通讀 web3.js交易文件等待交易確認的最佳方法是什麼?

方法**sendTransaction()**返回一個

String - The 32 Bytes transaction hash as HEX string.

但是什麼時候交易在區塊鏈中得到確認?如果不是,那麼使用循環、等待和雜湊事務的方法是否最佳?

此處使用過濾器的範例: 我如何以程式方式知道我何時用完了氣體?

也在這裡忙輪詢: https ://github.com/barkthins/ether-pudding/blob/master/index.js#L375

我使用繁忙輪詢,因為我發現過濾器不可靠(失敗大約 1:1000 次)

編輯:另外,有多少塊等待確認是有爭議的,這是 Q: 在乙太坊中,多少確認被認為是安全的?

我們可以從該方法訂閱事件。send例如,我們需要等待 5 次確認,然後再考慮探勘交易,我們可以執行以下操作:

return new Promise((resolve, reject) => {
 contract.methods.doWork(1, 2, 3).send({from: account}) 
   .on('confirmation', (confirmationNumber) => {
     if (confirmationNumber === 5) {
       resolve()
     }
   })
   .on('error', (error) => {
     reject(error)
   })
})

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