【初心者向け】solidity基礎 modifierの使い方を徹底解説

solidityにおいて、functionの実行制御に使われるmodifierの使い方について徹底解説していきたいと思います。

soldiity初心者向けの記事です。

 

modifierとは

modifierはsolidityの文法のひとつで、functionの実行権限を特定のコントラクトや、アカウントにのみ限定したいときに使用します。

具体的には、下記のサンプルコードのように使うことができます。

modifierは、solidity公式のサンプルコードでも頻繁に使われているので、こちらも参考になるかもしれません。

下記のサンプルコードでは、コンストラクタで、コントラクトをデプロイしたアカウントを管理者として保存し、test functionを実行できる、transactionの実行アカウントを管理者アカウントのみに制限しています。

<スポンサードリンク>

サンプルコード

 

pragma solidity ^0.4.24;

contract Example {
    address private admin;

    constructor() public { 
     admin = msg.sender; 
  }
    
    modifier onlyAdmin {
        require(msg.sender == admin);
        _;
    }
    
    function test(uint num1, uint num2) public constant onlyAdmin returns(bool){
        return num1 >= num2;
    }
}

 

<スポンサードリンク>

サンプルコードでのmodifierの使われ方と動き

modifierは、functionの実行前に実行されます。

サンプルコードでは、コンストラクタでデプロイしたアカウントを管理者として登録し、
test functionにonlyAdminの修飾子をつけることで、testメソッドの実行権限を制御しています。

具体的な動きとしては、msg.sender(transactionの実行者)がadminの場合、test functionを実行し、adminでない場合、revertが発生します。

modifierを使うことで、上記のサンプルコードのように、functionに実行権限を与えることができ、セキュリティの高いスマートコントラクトの実装ができるようになります。

 

参考

【solidity】業務ロジックとデータロジックを分断するコントラクト設計

Solidity(Remix)とgitを連携させ、Ethereumの開発をする

Ethereum プライベートネットワークでgeth起動時にnodeを自動接続する方法

【初心者向け】solidity基礎 modifierの使い方を徹底解説

 

スポンサードリンク



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA