メインコンテンツまでスキップ

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...));
}
}

Reference