Web3.py

為什麼計算出的確認數比區塊瀏覽器的值大很多?

  • January 19, 2022

正如這裡已經解釋的那樣,這裡甚至這裡我都會繼續計算給定的確認數txid。它有效,但給出了與區塊瀏覽器不一致的奇怪結果。

使用

receipt = w3.eth.get_transaction_receipt(txid)
result = _contract.events.Transfer().processReceipt(receipt, errors=DISCARD)

我得到

AttributeDict({
   {
       'from': '0x0000000000000000000000000000000000000000',
       'to': '******************************************',
       'tokenId': ***
   },
   'event': 'Transfer',
   'logIndex': ***,
   'transactionIndex': **,
   'transactionHash': HexBytes('******************************************************************'),
   'address': '******************************************',
   'blockHash':    HexBytes('******************************************************************'),
   'blockNumber': 23504211
}

(我為敏感值加星標)然後使用

print(w3.eth.block_number)

我明白了

23542487

因此,current_block_number - tx_block_number我們發現這個 tx 有23542487 - 23504211 = 38276confrimations 這似乎是一個瘋狂的大數字。只是為了比較,同時https://polygonscan.com/表示346確認。

多邊形掃描塊瀏覽器的螢幕截圖,顯示較少的確認

我覺得這超級混亂。任何人都可以澄清多邊形網路上的確認數量是如何計算的?

編輯:

w3.eth.block_number即使我連接到 Polygon RPC 節點,是否有可能給我目前的 ETH 塊號而不是 Polygon 塊號?

好的,這有點尷尬,但事實證明我有一個錯誤,它正在比較錯誤的事務雜湊,而不是前一個,它採用了前一個前一個。一切正常,這些數字匹配,繼續使用多邊形!

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