Open1
smart contract作成メモ
実際にスマートコントラクトのHello Worldをやってみる。
smart contract作成メモ
リソース
やること
- ユーザーとblockchain間で読み書きを行うSmart Contractを作成する
使うもの
- react
- metamask
- wallet
- ether.js
- Ethereum用のクライアントライブラリ
- hardhat
- Ethereumの開発環境
- ABI
- EVMのバイトコードとクライアントアプリのやりとりを標準化するためのインターフェース(仕様)
- Solidity,Vyperで書いたコントラクトをweb3.jsやether.jsどちらでも実行可能。Rackみたいなイメージ。
- さらに詳しく
流れ
ローカルネット
- HardhatでローカルBlockchain Nodeを立ち上げる
- ローカルテスト用のAccount&private keyが20個ほど作成される
- hardhatでSolidityで書いたスマートコントラクトをコンパイルする
- ABIが生成される
- スマートコントラクトをデプロイスクリプトに追加する
- スマートコントラクトをHardhatにデプロイする
- Walletにローカルテスト用のAccountをimportする
- React AppとそのAccountをWallet経由で接続し、ether.jsでHardhat側のスマートコントラクトとインタラクションを行う
テストネット
- テストネットを選択する: Ropstenとか
- ガス代を払うためにTest Etherを取得する
- RopstenはどのTest Ether供給サイトもスパムにやられてるのか機能してないっぽい
- 1日経過したら追加された!
- RopstenはどのTest Ether供給サイトもスパムにやられてるのか機能してないっぽい
- Infura or Alchemy(テストネットへ接続するためのSaaSみたいなやつ)に登録。プロジェクトを作成してproxy linkを生成。自分のwalletアドレスの接続だけを受け付けるようにwhitelistに設定もしておく。
- 取得したproxy linkとAccountの秘密鍵(walletからのエクスポート版)をhardhat.config.jsに設定する
- hardhatコマンドのdeployコマンドでtestnetを指定してデプロイする