Solidity

辨識日誌中的匿名事件

  • December 16, 2021

有什麼方法可以辨識日誌是否包含匿名主題?據我所知,匿名事件在日誌中表示,而第一個索引上沒有簽名。提供包含 4 個主題而不是 3 個主題的選項。這將是一種辨識它們的方法,但是如果匿名事件生成的日誌少於 4 個主題怎麼辦?

我需要找到一些帶有匿名事件的日誌,以便我可以研究它們。

在一個非匿名事件中,topics[0]將是事件名稱的簽名。在匿名事件中,事件名稱的簽名不是主題。

如果您有權訪問 ABI 或契約的原始碼,您可以執行以下操作:

  1. 查找事件名稱的簽名雜湊
  2. 檢查是否topics[0]等於此簽名。如果沒有,您有一個匿名事件。

如果您無權訪問 ABI 或原始碼,我認為這是不可能的,因為無法知道topics[0]是事件名稱簽名還是bytes32索引參數。

在旁注中,JSON ABI 將指示事件是否是匿名的(請參閱文件)。

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