【Solidity基礎】OpenZeppelinのOwnableについて




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

OpenZeppelinとは

OpenZeppelinはEthereum上で安全なスマートコントラクを実装するためのフレームワークです。OpenZeppelinには非常に多くの機能が実装されておりインポートするだけで安全にその機能を使うことができます。

トークンだとERC20、ERC721、ERC827の機能が実装されていたり、ICOに関しては返金やキャップ付きICOの機能が実装されています。これらを使うことで安全にICOを実施できます。

今回はOpenZeppelinの中でも一番使われているOwnableコントラクトについて説明します。

Ownableコントラクト

Ownableコントラクトを使うとコントラクトを作った人しか実行できない関数を作ることができます。これはスマートコントラクトを管理する上で非常に重要な機能となります。下記はOwnableコントラクトのソースコードです。

Ownableコンストラクタ

function Ownable()はコントラクトがデプロイされたときに一度だけ実行されるコンストラクタです。ここではコントラクトをデプロイしたアカウントのアドレスがowner変数に代入されます。

Modifier onlyOwner

modifier onlyOwner()がこのコントラクトのメイン機能になります。このModifierを関数につけることでコントラクト作成者しかその関数を実行できなくなります。

実行権限の移譲

function transferOwnership(address newOwner)を使うことで所有権を任意のアドレスに写すことができます。やっていることはOwnableコンストラクタと同じでowner変数にアドレスを代入しているだけです。

まとめ

OpenZeppelinのOwnableはシンプルで使いやすいので多くのスマートコントラクトで使われています。このようにコミュニティで監査されて安全なモジュールを使うことで開発がスムーズになるかと思います。

OpenZeppelinには他にも便利な機能がたくさんあるので今後も紹介していきたいと思います。

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 現在はTwitterなどSNSのテキスト解析を行うソーシャルメディア分析のサーバーサイドを開発中。言語はNode.js、Kotlinを使用。






コメントを残す

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