
独自トークンの配布アプリ作る!

急にどうしたのじゃΣ(・ω・ノ)ノ!

プログラミングのプの字も知らないのに、やる気満々じゃな。
しかもブログで参考にされていた記事は全文英語じゃのう。
膝がガクガクしておるが…

うう…、
わからない単語だけかいつまんで調べていけば
きっと何とかなる!

・・・・・・・・。
今回の記事ではSolidityで独自トークンを発行するまでを解説していくのじゃ。
- OS:Windows 10/バージョン 21H2 (OS ビルド 19044.1706)
- プロセッサ:Intel(R) Core(TM) i7-7500U
- メモリ:DDR4 8GB
- マザーボード:L-NSS172-L
MetaMaskにRinkebyテストネットワークを設定

では始めるのじゃ。
まずはMetaMaskにRinkebyテストネットワークを設定しておくのじゃ。
●図の順番にクリック↓

●↓下図のようにRinkebyテストネットワークが選択できるようになるので、選択

MetamaskにFaucetアプリ用のアカウントを作成

わかりやすいようにMetamaskにFaucetアプリ用のアカウントを作っておくのじゃ。
アカウント名は「Faucetオーナー」にするのじゃ。
みんなは自分のわかりやすい名前にするといいのじゃ。
●↓画面右上のアイコンをクリック後、「アカウントを作成」をクリック

Rinkebyテストネット用のETH(イーサ)を無料で取得する

スマートコントラクト作成時にガス代が必要なので、Rinkebyテストネット用のETH(イーサ)を無料で取得するのじゃ。
下記リンクをクリックするのじゃ。
↓
●「Connect wallet」をクリック↓

●Metamask をクリック↓

●Metamaskが立ち上がるので、前の目次で作った「Faucetオーナー」というアカウントを選択し、「次へ」をクリック↓

●「接続」をクリック↓

●黄色い四角「Ethereum Rinkeby」と「Wallet address」が「Faucetオーナー」アカウントのアドレスになっているか確認してから、赤い四角を上から順番にクリック↓

●下記画面になれば成功↓

※なかなか上記画像にならない場合
【「Injected Web3」が選択できない場合】を試してみる

Metamaskの「Faucetオーナー」アドレスを確認してみると、0.1ETHが入っているはずじゃ。
ちなみにこのETH(イーサ)はOpenSeaのテストネットなどでしか使えないので、喜びすぎには気を付けるのじゃ。
トークン用のスマートコントラクトを作り、コンパイルする

トークン用のスマートコントラクトを作ってコンパイル(機械語に翻訳)していくのじゃ。
「Create your own BEP20 tokens」の記事では
『BEP20 token』を発行する方法が載っているが、
これをマナブログと同じ
『ERC20 token』(イーサリアムブロックチェーン上で利用できるトークン規格)にしてトークンを発行してみるのじゃ
●「Remix – Ethereum IDE」にアクセスする
↓もし下記のような画面が出てきたら赤丸で囲った部分を押して消す。

●フォルダーを作る↓

●「FaucetApp」にする(自分のわかりやすい名前でOK)↓

※入力後に名前の変更をしたい場合は、変更したいファイルやフォルダの上で右クリックをすると「Rename」という項目があるので、そこをクリックすると変更できる↓

●ファイルの中にフォルダを作る
猫マークの2つ左隣のマーク「Create New File」をクリック。
今回は「ゆるりトークン」を作ろうと思っているので、まずトークン用のスマートコントラクトを作る。
だからファイル名は「YRRToken」にする↓

名前の後には、拡張子の「.sol」をつける
「Solidity言語で書かれたプログラム」という意味
Solidityはスマートコントラクトを記述するためのプログラミング言語
「YRRToken.sol」ファイルを作ると(クリックすると)、画面右側にスマートコントラクトを記述するためのスペースが表示される↓

●一度「Remix – Ethereum IDE」を離れ、ブラウザでGist linkにアクセスすると「SampleBEP20Token.sol」というページが表示されるので、「Raw」をクリックし表示されたページを全選択してコピー↓

●それを先ほど「Remix – Ethereum IDE」で作った「YRRToken.sol」にペースト↓

そして「マナブログ」と同じトークンを発行できるようにアレンジしていく。
「マナブログ」内に記載されていた「トークン発行用のスマートコントラクト」
※ちなみに今回は学習のために「ライブラリなしでトークン発行する方法」で行っている。
●マナブログのコードを参考に、Remix – Ethereum IDE画面の下の赤い四角で囲った8か所を変更↓

- 「UNLISCENSED」→「MIT」
- 「0.8.4;」→「^0.8.2;」
- 「BEP20」→「ERC20」
- 「SampleBEP20Token」→自分の好きなトークン名
- 「string public symbol」→好きなトークン名を記号っぽく呼ぶためのものなのだろう。それっぽい感じのものにする
●番号順にクリックしていき、画面右側の黄色下線「pragma solidity」と同じバージョンの数字に変更↓※②はクリックしなくて大丈夫_(._.)_

●コンパイル↓

するとチェックマークがつく↓

※もしここで、下図のようになってしまった人↓


色々調べてみたのですが、結局何が原因かはわかりませんでした。
今後、原因がわかり次第、追記させていただきたいと思います_(._.)_
なので、ここはそのままスルーしました。
結果、特に何もなく終わったので大丈夫でしょう。

素人は勢いで突き進むのじゃ。
Faucetアプリ用のスマートコントラクトを作り、コンパイルする

続いてFaucet(仮想通貨をもらえる)アプリ用のスマートコントラクトを作り、コンパイルしていくのじゃ
①「FILE EXPLORERS」を開く
②「FaucetApp」ファイルの中にまた新しいファイルを作成↓

●ファイル名を打ち込み「Enter」をクリック
Faucetアプリ用のスマートコントラクトなので「YRRTFaucet.sol」にする↓


ゆるりはここで「.sol」をつけ忘れたため、先に進めない日を何日も費やしてしまいました。
●「YRRTFaucet.sol」が画面右側に出てくるので、そこに「マナブログ」に記載されているコードをコピペ↓
「マナブログ その②:Faucet用のスマートコントラクト」のコード

●コピペ後、3か所修正
30列目のMBT→YRR
45と46列目のmbt→yrr
※Solidityでは、Contract名や関数名、変数名などは大文字と小文字が区別されます。
↓

●画面右側の黄色下線部に注意して「pragma solidity」と同じバージョン(0.8.4)の数字に変更↓

●↓Compileボタン(黄色四角)をクリックし、チェックマークがつけば成功

トークン用のスマートコントラクトをデプロイする(設定・配置する)

次に最初に作ったトークン用のスマートコントラクトをデプロイする(設定・配置する)のじゃ。デプロイすることで、スマートコントラクトが使える状態になるのじゃ。
●順番の通りに選択
④「Injected Web3」を選択するとMetamask 画面が立ち上がるので、この時MetaMaskで作成したアカウント(Faucetオーナー)にチェックマークをつけてから⑤をクリック↓


●ENVIRONMENT項目が「Injected Web3」、そしてACCOUNT項目がMetaMaskの「Faucetオーナー」のアドレスになっているか確認↓

※「Injected Web3」が選択できない場合
①画面右上、Chromeの【拡張機能】をクリック
②「MetaMask」をクリック↓

メタマスクアイコンにカーソルを持っていき、右クリックすると「サイトデータの読み取りと変更をおこないます」内の「すべてのサイト」を選択↓

※それでも「Injected Web3」が選択できない場合
リロード(Windowsなら「F5」キー)を押してみてください。
●「Deploy」をクリックするとまたメタマスクが出てくるので、「確認」をクリック↓

下記画面が出てくる↓

Faucet用のスマートコントラクトをデプロイする(設定・配置する)

続いてFaucet用のスマートコントラクトをデプロイする(設定・配置する)のじゃ。
●画面の左下①をクリックし、作ったトークンのコントラクトアドレスをコピーする↓

このトークンのコントラクトアドレスはまた後で使うので、わかりやすくメモ帳アプリなどにペーストしておく。
※もし①の部分が消えてしまっていたら、②の「view on etherscan」をクリック。
(②部分の画面が小さくて見づらかったら、赤下線部で画面の大きさを調節する)
すると下記画面が出てくるので、矢印部分をクリックしてコピーする↓

コントラクトアドレスが出てこない場合はリロードすると出てくる。
①②で画面を開く
③「Injected Web3」になっているか
④MetaMaskのFaucetオーナーアドレスか
⑤「ERC20」ではなく「YRRFaucet(独自トークン名)」になっているか
⑥コピーしておいたトークンコントラクトアドレスとMetaMaskのFaucetオーナーアドレスをそれぞれペースト
⑦「transact」をクリック↓

●↓メタマスクが表示されるので「確認」をクリック

するとまた下記のような画面が出てくる↓

①の部分の下にもう一つ新たなコントラクトアドレスが追加されているので、そちらがフォーセットのコントラクトアドレス。
ここもコピペしておく。
(また②の部分にも新たな「view on etherscan」が追加される)

MetaMaskからコントラクトアドレスに独自トークンを送付

次はメタマスクを立ち上げ、
Faucetオーナーアドレスに独自トークンをインポートした後、
Faucetコントラクトアドレスに独自トークンを送付するのじゃ。
今はまだFauceアプリの中には何もトークンが入っていない状態なのじゃ。
だからこの工程でFauceアプリに1000000YRRトークンを送るのじゃ。
●「Faucetオーナー」アカウント画面の下の方にある、「トークンをインポート」をクリック↓

●トークンコントラクトアドレスを貼り付ける
「トークンシンボル」と「トークンの少数桁数」が自動で表示されるので、トークンシンボルがちゃんと自分が作ったシンボルになっているか確認してから、一番下の「カスタムトークンを追加」ボタンをクリック↓

●「1000000 YRR」をクリック↓

●送金↓


●「アセット」を自分のトークンに、「金額」では「最大」ボタンをクリックして「次へ」をクリック↓

●こんな感じの画面になったら「確認」をクリック↓
①がフォーセットコントラクトアドレス
②がトークンコントラクトアドレスになっていれば下にスクロールし「確認」をクリック


ゆるりは何度も間違えてやり直しをしているので、各アドレスや各アドレスのシンボルマークなどがその都度違っています_(._.)_
●しばらくすると、下記画像が出てくる↓

●「Faucetオーナー」アカウント画面で「YRR(独自トークン)」をクリックすると、下記画像が出てYRR(独自トークン)が0になっていることが確認できる。
また、その下の赤い四角をクリックすると、「移動元:0x274…E17A(Faucetオーナーアドレス)」→「移動先:0xd82…F8A1(Faucetのコントラクトアドレス)」へ1000000YRRが移動して、マイナスになっていることがわかる↓


以上がオーナーアドレスからFaucetのコントラクトアドレスに独自トークンを送付する方法なのじゃ。

ε=(・д・`*)フゥ…終わった

そして次は…

今日はもう満足したので、続きはまた今度で
|゚Д゚)ノ ジャ、マタ!!

君もお疲れ様なのじゃ(´・ω・)っ旦~
また次回なのじゃ。
コメント