送出 transaction 之後,我們應該怎麼追蹤 transaction 執行的結果呢?我們有沒有什麼樣的方式可以在 transactions 的茫茫大海中過濾出需要的資訊呢?
這時候就輪到 Event & Log 出場啦~
本日合約:
pragma solidity ^0.4.25;
contract Test {
string information;
uint balance;
event LogCreate(string information, uint balance);
event LogCreateIndex(string indexed information, uint indexed balance);
constructor() public {
information = "default";
balance = 100;
emit LogCreate(information, balance);
emit LogCreateIndex(information, balance);
}
}
執行過後看一下 logs 裡面的差異吧!
本日影片:
https://youtu.be/Rai_6k0jk3U
Smart Contract 實戰教學播放清單:
https://www.youtube.com/playlist?list=PLHmOMPRfmOxSJcrlwyandWYiuP9ZAMYoF
不好意思 小弟想請教
如果想要查詢歷史的交易資訊
要如何搜尋呢?
(透過Topics or....)
不知道你想要查的交易資訊包含哪些東西呢?
如果只是想知道一般 transaction 成功與否等,可以直接用 etherscan 看該 transaction 或者用 geth 直接去 getTransaction 來看到。
如果是想要撈到 event & log 的資訊的話,就需要使用 web3 的幫助,比如說像是這個 stackoverflow 的 answer 這樣操作:
https://ethereum.stackexchange.com/questions/2024/how-to-access-the-event-log-by-knowing-the-contract-address-web3