Transactions
等待交易確認
通讀 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) }) })