TruffleとZeppelin Solidityを使ったERC20トークンの実装




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

ERC20

ERC20を簡単に説明するとEthereumで発行できるトークンの仕様を決めているものになります。詳細は下記を参照してください。

関連記事:EthereumのERC20トークンとは?

Truffle

TruffleはEtherreumを開発したConsenSysが開発しているフレームワークでコントラクトのコンパイル、テストの実行、ネットワークへのデプロイを簡単に実行できます。インストールはnpmから簡単にできます。

Zeppelin Solidity

EthereumでのスマートコントラクトをSolidityで安全に実装できるライブラリでこれもnpmから簡単にインストールできます。

開発準備

まずTruffleでテンプレートを作成し手からzeppelin-solidityをインストールします。Truffleではcontracts、migrations、test、truffle-config.js、truffle.jsが作成されます。

ERC20トークンの実装

ERC20トークンの実装には8個のメソッドと2個のイベントを実装しないといけませんがzeppelin-solidityを使うと下記だけでも実現できます。

ERC20トークンで実装すべきものに関しては下記リンクを参照してください。

関連記事:ERC20トークンで実装すべきメソッドとイベントの解説

他の実装すべきものはzeppelin-solidity側で実装したものを継承しているのでたったこれだけで済みます。これだったらソースコードの解説いらないくらい簡単ですね。

コントラクトのコンパイル

実装したコントラクトは下記コマンド一発でimportしているファイルもコンパイルしてくれます。

結果はbuildディレクトリ配下に出力されます。コンパイルはこれで完了です。

マイグレーションファイルの作成

migrationディレクトリの中に2_deploy_kzm_token.jsでファイルを下記を実装します。

ファイルには命名規則があり”数字_文字列.js”としなくてはなりません。数字はマイグレーションの順番を決めるもになります。小さ方が先にデプロイされるので数字には気をつけてください。

コントラクトのデプロイ

コントラクトデプロイはローカル環境のテストネットに対して行います。Truffleを使うとこのテストネットも下記コマンドで簡単に立ち上げることができます。

テストネットの起動と同時にインタラクティブに操作できるコソールにも接続してくれて、アドレスも10個作ってくれます。

デプロイは下記コマンドです。これで実装したERC20トークンをテストネットワークにデプロイするのが完了です。

初期のトークンは10個のアドレスのうち1個目に送られているので確認すると確かにありますね。デプロイがちゃんとできていることが確認できます。

次は試しに送金をしてみます。

ちゃんと指定した分が送金できているのが確認できます。これのすごいところは自分ではtransfer()メソッドを実装していないのに送れていることですね。これはzeppelin-solidityが実装したものを継承して使っているからです。

このようにTruffleとzeppelin-solidityを使うと開発からトークンの送金まで簡単に実装できます。オリジナルのERC20トークンを作りたいときはぜひ試してみてください。

関連記事

おすすめ書籍

Ethereumを使ったDApps開発を学びたいなら今だとこの1冊が1番良いです!開発環境の構築から使うべきツール、フレームワーク、実装方法・注意点まで網羅的に解説されている書籍なのでおすすめです。出版も2018年1月ということでかなり新しい本で、DMM Bitcoinを作っているネクストカレンシー所属の方が書いているので信頼できます。

ビットコインとブロックチェーンの詳細をしっかりと学びたい方にはこちらの書籍が非常におすすめです。ウォレットの仕組み、楕円曲線暗号、P2Pプロトコル、公開鍵暗号などビットコインを支える技術について詳細に解説されています。また、サンプルコードを通して実際に手を動かして学べるので非常に濃い内容となっています。

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

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