ユーザ用ツール

サイト用ツール


blockchain:hardhatを使ったスマートコントラクト開発

文書の過去の版を表示しています。


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 の modules.exports に以下を追加。

module.exports = {
  solidity: "0.8.4",
  networks: {
    ganache: {
      url: "http://localhost:7545",
    }
  },
};

ganache にコンソール接続



blockchain/hardhatを使ったスマートコントラクト開発.1652946700.txt.gz · 最終更新: by dot