ハピタス登録で1,000円分になるURL
Hardhatは開発環境
SolidityはEthereum用の開発言語
Hardhatインストールhardhat.org
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
$ source ~/.bashrc
$ nvm install 18
$ nvm alias default 18
$ npm install npm --global
Hardhatプロジェクトの作成
$ mkdir ~/Downloads/myNFT03/
$ cd ~/Downloads/myNFT03/
$ npm init --yes
$ npm install --save-dev hardhat
$ npx hardhat
❯ Create an empty hardhat.config.js
プラグインの追加
$ npm install --save-dev @nomiclabs/hardhat-ethers ethers @nomiclabs/hardhat-waffle ethereum-waffle chai
スマートコントラクトの作成
$ vim hardhat.config.js
何も変更しない。
$ mkdir ~/Downloads/myNFT03/contracts/
$ vim ~/Downloads/myNFT03/contracts/Token.sol
コンパイル
$ npx hardhat compile
バージョンのアンマッチでエラーになった。
こうか。
$ cat hardhat.config.js
$ vim contracts/Token.sol
4行目のバージョン情報(pragma)を hardhat.config.jsの記述に合わせる。
もっかいコンパイル。
$ npx hardhat compile
コンパイル成功!
テスト
$ mkdir ~/Downloads/myNFT03/test/
$ vim ~/Downloads/myNFT03/test/Token.js
$ npx hardhat test
エラー。ethersが定義されていない、とある。
$ vim test/Token.js
うーん
こうか。
$ vim ~/Downloads/myNFT03/hardhat.config.js
$ vim ~/Downloads/myNFT03/test/Token.js
もっかいテスト
$ npx hardhat test
通った!これはコンパイルしたコントラクトに対するtestプログラムを書いて実行した、ということみたい。
テストネットへのデプロイ
$ mkdir ~/Downloads/myNFT03/scripts/
$ vim ~/Downloads/myNFT03/scripts/deploy.js
$ vim ~/Downloads/myNFT03/hardhat.config.js
testnetであるropstenネットワークにデプロイ。
$ npx hardhat run scripts/deploy.js --network ropsten
private key too shortエラー。
うーむ。調べる。
$ vim ~/Downloads/myNFT03/hardhat.config.js
もっかいtestnetであるropstenネットワークにデプロイ。
$ npx hardhat run scripts/deploy.js --network ropsten
dotenvなんてモジュールは無いぜ、というエラー。だよなー。もっかいコンパイルいるのだろうか?