min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

Hardhat でスマートコントラクトのテスト on macOS(iMac Rate 2015)

ハピタス登録で1,000円分になるURL

その買うを、もっとハッピーに。|ハピタス

 

Hardhatは開発環境

SolidityはEthereum用の開発言語

smacon.dev

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エラー。

うーむ。調べる。

ethereum.stackexchange.com

$ vim ~/Downloads/myNFT03/hardhat.config.js

もっかいtestnetであるropstenネットワークにデプロイ。

$ npx hardhat run scripts/deploy.js --network ropsten

dotenvなんてモジュールは無いぜ、というエラー。だよなー。もっかいコンパイルいるのだろうか?



 




 

 

 

 

 

その買うを、もっとハッピーに。|ハピタス