Events
“事件日誌”中的“主題”是什麼意思?
當我們如下呼叫事件時:
event MyEvent(uint256 indexed _id, bytes32 _action, bytes32 _player, bytes32 _actionState, address _owner); emit MyEvent(uint256(_public_id), bytes32(_action), bytes32(_player), bytes32(_actionState), _owner);
在
EtherScan
中,我們看到如下輸出:是什麼
Topics [0] 0x22b8025a23f25c3f52cdbc1f53a831dbd4e3b4aaeebe121d36c858abea974bc7
意思?在 的情況下
MyEvent
,[1] 0x0000000000000000000000000000000000000000000000000000000000000001
意味著_public_id = 1
然而,不知
0x22b8025a23f25c3f52cdbc1f53a831dbd4e3b4aaeebe121d36c858abea974bc7
從何而來?一般來說,這個詞是Topics
什麼意思?
在交易收據中,
topics
欄位對應indexed
於您的智能合約中的事件參數。對於所有事件,您將找到事件名稱的雜湊作為第一個參數,然後是indexed
六字節的數據。所以在你的情況下,
topics
你會發現'topics':[hash_event_name,// w3.sha3(text='myEvent(uint256)').hex() where Event name without input argumentsname 0x000000...000000001//your first argument '_id' because is indexed ]
您所有未編入索引的事件參數都儲存在交易收據的數據部分