Contract-Invocation

從事件中獲取交易雜湊(ethersjs)

  • June 14, 2021

我的目標是盡可能快地檢測到合約呼叫。為此,我正在處理我有權訪問的所有待處理事務(通過provider.on("pending", async (tx) => {}))。

為了檢測我正在尋找的合約呼叫,我掃描data交易欄位以獲取方法簽名。但是,我已經看到可以通過呼叫另一個合約來呼叫合約,而該合約又可以呼叫感興趣的方法。在這種情況下,data將只包含緩衝合約的方法簽名,我認為我無法從這種方法中獲得更多。

另一種方法是通過 監聽合約事件targetContract.on("targetMethod", (**parameters) => {}),但是這種方式我只能訪問方法參數,我想訪問事務雜湊(如果它仍然未決,那就更好了)。我知道訪問掛起的事務是不可能的,因為要記錄事件,它必須已經被處理,對吧?

是否可以通過這種方式訪問交易雜湊?有沒有什麼方法可以實現我檢測合約呼叫的目標,即使是通過代理合約完成並放置在同一個區塊中處理的交易?

謝謝!

回調中的最後一個參數是事件日誌對象

targetContract.on("targetMethod", (...parameters) => {
 const event = parameters[parameters.length - 1];
 console.log(event.transactionHash);
})

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