文書の過去の版を表示しています。
Hardhatを使ったスマートコントラクト開発
ほぼ Hardhat オフィシャルのドキュメント通りに Hardhat を使ってみます。
前提
npm をインストールしておいてください。
インストール
下記「npx hardhat」コマンドを実行すると「What do you want to do?」と聞かれますので、今回は「Create a basic sample project」で作業を進めます。それ以外はデフォルトのままエンターを入力してください。
上記の最後で指定された通り、必要な npm パッケージをインストールします。
生成されたファイルを確認してみます。
- contracts: スマートコントラクトのソースコードを格納するディレクトリ
- サンプルの「Greeter.sol」が既に格納されています。
- scripts: スマートコントラクトを ethereum ブロックチェーンにデプロイするためのスクリプトを格納するディレクトリ(他の目的のスクリプトが格納されることもあるかもしれません。)
- サンプルの「Greeter」スマートコントラクトをデプロイする sample-script.js が既に格納されています。
- test: テストプログラムを格納するディレクトリ
- サンプルの「Greeter」スマートコントラクトをテストする sample-test.js が既に格納されています。
- hardhat.config.js: Hardhat の設定ファイル
Hardhat のバージョンとコマンドの仕様を確認してみます。
コンパイル
Hardhat セットアップ時に自動的に作成されている contracts/Greeter.sol をコンパイルします。
テスト
Hardhat セットアップ時に自動的に作成されている test/sample-test.js を使って Greeter スマートコントラクトのテストを行います。
node の起動
Hardhat を Ganache や ganache-cli のように ethereum ブロックチェーン(node)を起動することができます。 ethereum ブロックチェーンにスマートコントラクトをデプロイし、Hardhat 外部からも連携ができるように、ethereum ブロックチェーンを起動します。
新たなターミナル(PowerShell等)を起動し、以下のコマンドで node を起動してください。
デプロイ
Hardhat セットアップ時に自動的に作成されている scripts/sample-script.js を使って Greeter スマートコントラクトを ethereum ブロックチェーンにデプロイします。
先ほど立ち上げた node にデプロイするために「–network localhost」オプションを指定します。
上記の場合だと「0x5FbDB2315678afecb367f032d93F642f64180aa3」が Greeter スマートコントラクトのアドレスですので、メモしておいてください。
コンソールでスマートコントラクトの実行
「npx hardhat console」でコンソールが起動します。 先ほど立ち上げた node に接続するために「–network localhost」オプションを指定します。
別の node に接続する
hardhat.config.js に ethereum ブロックチェーン(node) の設定を追加することで、メインネットや Ropsten や Ganache の node に接続することができます。
以下、Ganache を設定して console 接続する例です。
hardhat.config.js の module.exports に以下を追加。
ganache にコンソール接続
