Help us understand the problem. What is going on with this article?

[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アドレスを教えてもらって送金するなどしてみてください!

YuasaJunki
ブロックチェーンに取り組むエンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした