Posted at

[blockchain.nagoya] 7/12 ERC20トークン ハンズオン


概要

7/12(金)に行われるblockchain.nagoyaのイベント「ERC20トークン ハンズオン」の資料です。

Rinkbyネットワークへのスマートコントラクトのデプロイ, ERC20トークンの送金を行います。


開発環境


  • Google Chromeのみ


セットアップ

スクリーンショット 2019-07-02 20.33.12.png

TwitterでETHアドレスをそのままコピペしてツイート

スクリーンショット 2019-07-02 20.36.41.png

そのツイートのURLをコピー

スクリーンショット 2019-07-02 20.37.04.png

URLをfaucetのページに貼り付けてGive me Etherします

スクリーンショット 2019-07-02 20.39.46.png


スマートコントラクトの作成

openzeppelin-solidityというライブラリがERC20トークンのスマートコントラクトを書いてくれているので, それらを継承する形で使います

こちらが今回使用するSampleTokenコントラクトになります

(ハンズオンで解説します!)


SampleToken.sol

pragma solidity ^0.5.0;

import "github.com/OpenZeppelin/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol";
import "github.com/OpenZeppelin/openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol";

contract SampleToken is ERC20, ERC20Detailed {
constructor(
string memory name,
string memory symbol,
uint8 decimals,
uint256 initSupply
) ERC20Detailed(name, symbol, decimals)
public
{
_mint(msg.sender, initSupply);
}
}


Remixを開いてファイルを作成します

+ボタンを押して、

スクリーンショット 2019-07-02 20.50.25.png

SampleToken.solという名前でファイルを作成します

スクリーンショット 2019-07-02 20.53.52.png

上のコントラクトコードをそのままのファイルに貼り付けます

スクリーンショット 2019-07-02 20.54.42.png


スマートコントラクトのコンパイル

まずコントラクトをコンパイルする機能とデプロイする機能を使用可能にします。

左端のバーにあるプラグのマークをクリックします。

スクリーンショット 2019-07-02 20.55.58.png

Deploy & Run TransactionsSolidity CompilerをActivateしましょう

スクリーンショット 2019-07-02 21.00.29.png

左のバーでSolidity Compilerを選択して、Compile SimpleToken.solのボタンをクリックします。

スクリーンショット 2019-07-02 21.03.44.png


スマートコントラクトのデプロイ

次にスマートコントラクトをデプロイします。

EnvironmentInjected Web3に設定します。

Deployのところにconstructerの引数を入力します。

"NagoyaCoin", "NC", 18, 10000000000

そしてDeployをクリックします。

スクリーンショット 2019-07-02 21.08.44.png

すると、メタマスクが起動するので確認を押しましょう。

スクリーンショット 2019-07-02 21.12.59.png


ERC20トークンを送金する

現在、発行されたトークンはスマートコントラクトをデプロイしたアカウントが全て持っています。

そのアカウントから別のアカウントにトークンを送金してみましょう。

メタマスクで2つめのアカウントを選択します

スクリーンショット 2019-07-02 21.18.44.png

アドレスをコピーして、再び1つめのアカウントに戻します。

スクリーンショット 2019-07-02 21.19.59.png

では送金しましょう。

Deployed Contractsにあるタブを開くと関数が実行できます。

transfer の横に先ほどコピーした2つめのアカウントのアドレスと、送る量を入力します

"2つめのアカウントのアドレス", 1000

そしてtransferをクリックします。

スクリーンショット 2019-07-02 21.22.03.png

メタマスクが開くので確認を押しましょう。

うまくいくと下のように表示されます。

スクリーンショット 2019-07-02 21.34.35.png

2つめのアカウントのアドレスを入力してbalanceOf関数を実行すると、

1000トークンが送られていることが確認できます。

スクリーンショット 2019-07-02 21.27.34.png


終わりに

お疲れ様です!

Rinkebyネットワークへのスマートコントラクトのデプロイ、トークンの送金ができました!

時間があれば、他の人にETHアドレスを教えてもらって送金するなどしてみてください!