Solidity
辨識日誌中的匿名事件
有什麼方法可以辨識日誌是否包含匿名主題?據我所知,匿名事件在日誌中表示,而第一個索引上沒有簽名。提供包含 4 個主題而不是 3 個主題的選項。這將是一種辨識它們的方法,但是如果匿名事件生成的日誌少於 4 個主題怎麼辦?
我需要找到一些帶有匿名事件的日誌,以便我可以研究它們。
在一個非匿名事件中,
topics[0]
將是事件名稱的簽名。在匿名事件中,事件名稱的簽名不是主題。如果您有權訪問 ABI 或契約的原始碼,您可以執行以下操作:
- 查找事件名稱的簽名雜湊。
- 檢查是否
topics[0]
等於此簽名。如果沒有,您有一個匿名事件。如果您無權訪問 ABI 或原始碼,我認為這是不可能的,因為無法知道
topics[0]
是事件名稱簽名還是bytes32
索引參數。在旁注中,JSON ABI 將指示事件是否是匿名的(請參閱文件)。