Event
eventについて学習します
イベントとは、Ethereumにおけるログ・通知機能です
ストレージには常に最新の値が保存されるのに対して、イベントはトランザクションログに記録され、発行時点の値がブロックチェーン上に保持されます
またRPCクライアントはイベント発行の通知を受け取ることができます
宣言
イベントは次のような形で宣言する
event identifier(event-parameter);
- identifier
- イベント名
- event-parameter
型 変数名の形で記載する- 最大3つのパラメータに indexed 属性を追加することができ、イベントの検索に利用できる
contract EventSample {
event test(uint a,address indexed b);
}
発行
定義したイベントは関数内のemit文により発行される
contract EventSample {
event test(uint a,address indexed b);
function emitFunction() public pure {
emit test(0,address(0xabc...));
}
}