Transactions

我可以從基本的 RPC 連接(例如 Infura)中獲取特定事務雜湊的更具體的元數據嗎

  • March 27, 2022

我正在嘗試部署一個“verifyTx(tx_hash){}”函式,該函式接受一個散列並告訴我狀態(成功、失敗和掛起),但我希望盡可能獲得有關散列的更多高級資訊:

  1. 我可以檢查呼叫了什麼類型的交易嗎?例如薄荷、燒傷、轉移等?有沒有辦法從交易回執日誌中查詢到函式的名稱?
  2. 有什麼辦法可以捕捉到使用者在網路上加速交易的場景?是否有任何參考表明新的 TX(雜湊)取代了這個(雜湊)?我似乎無法理解為什麼這些不顯示為丟棄/替換,並且覆蓋雜湊沒有顯示它不是原始的(這似乎是一個疏忽) - 我錯過了一些跟踪這個的方法嗎?請注意,我非常了解事件,但由於我們 dapp 的實時性,我希望將這些記錄到分類帳並使用 crons 查詢以驗證一些 web2 組件以及交易以及我可以收集的有關交易的更多資訊,更好。

筆記:

  • 我正在使用 Infura 端點,從技術上講,我正在專門為這個案例使用 Polygon。(polygonscan 作為區塊鏈瀏覽器)
  • 我知道交易收據和日誌,但這似乎仍然有限(例如,Etherscan 在哪裡提取其所有豐富的元數據?)
  • 您可以使用 web3.js / ethers.js 方法getTransactionReceipt

await provider.getTransactionReceipt("0x_your_tx_hash");

它返回交易、所有事件等的原始數據。

檢查交易是否已被替換。據我所知,沒有標準的解決方案。

  • 您可以檢查要發生的特定事件。

或者

  • 您可以呼叫waitForTransaction它將等待交易已被驗證的特定持續時間,如果沒有,您可以實現其他邏輯,如檢查使用者的交易、隨機數等。

獲取有關被替換事務的資訊的一種方法是偵聽和記錄該節點的待處理事務。最後,您將tx-hash多次記錄相同的內容,表明被替換的交易。

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