Web3js

為什麼一筆交易會觸發 12 或 24 個確認事件?

  • October 26, 2021

Web3.js 文件聲明將觸發確認事件:

  • 呼叫時 12 次web3.eth.sendTransaction(見此處
  • 呼叫時 24 次myContract.methods.myMethod.send(見此處

為什麼在每種情況下觸發事件的次數不同?

更重要的是,我究竟應該使用這些事件做什麼?

目前,我只是簡單地await為函式完成,然後使用返回值,這是一個Promise包含交易收據的解析(除非我們正在處理合約部署,在這種情況下它將包含新合約的實例)。

據我了解,此收據也可以通過以下方式獲得:

myContract.methods.myMethod().send().on('receipt', function(receipt){...});

我假設這種獲取收據的額外方式是用於當您還想處理其他事情時,例如那些確認事件,據我觀察,這些事件不一定在收據可用之前發生。

我是否需要計算 12 個(或 24 個)事件才能確保資訊接收反映了區塊鏈?

謝謝!

當一筆交易被挖出時,收據就可以使用了,此時確認號為0,隨著更多的區塊被添加到區塊鏈中,確認號增加。更高的確認數,我們將更有信心交易是在最長的路徑上並且無法撤消。

假設您接受具有一定數量確認的交易,您可以在確認事件中過濾該確認號碼。

.on('confirmation', function(confirmationNumber,receipt){})

關於為什麼在不同的場景中事件最多發出 12 次和 24 次確認,我不太清楚。

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