見出し画像

Solidity勉強日誌②Solidity特有のEventってなに?

eventはSolidity特有な非常に重要な仕組みです。Solidityでスマートコントラクトを書くこと出来ますが、スマートコントラクトが動いたことをどのようにweb上に伝えるのでしょう?スマートコントラクトは動いたけど、そのサービスを触っている側(ユーザー側)には何の反応もないんじゃ困ります。Eventは、ブロックチェーンで何かが生じたときに、web上やアプリ上に伝えることができる仕組みです。

何の変哲も無い足し算のファンクションがあったとします。

function add(uint _x, uint _y) public {
   uint result = _x + _y; 
   return result;
}

このままでは、このファンクションの実行結果をweb上に伝えることができません。なので、eventを使ってweb上と連絡を取ってあげるのです。

まずは、ファンクションと関係ないところでevent IntegersAddedを宣言します。引数にx,y,resultを入れてます。上記のファンクションで使われる変数ですね。

event IntegersAdded(uint x, uint y, uint result);

そして、上記のファンクションに一行IntegersAddedイベントを追記してあげます。これで、関数が呼ばれたことをアプリに伝えるためにイベントを発生させることになります。

function add(uint _x, uint _y) public {
    uint result = _x + _y; 
    IntegersAdded(_x, _y, result);//ここでeventを入れる
    return result;
}

参考:Cryptozombies


この記事が気に入ったらサポートをしてみませんか?