【Solidity】第8章第4回:Hardhatの導入と使い方

本記事では、Solidity開発において強力なツールであるHardhatの導入方法と基本的な使い方を解説します。Hardhatを使用することで、効率的にスマートコントラクトの開発、テスト、デプロイが可能になります。
0. 記事の概要
この記事を読むメリット
- Hardhatのセットアップ方法を理解: 初心者でも簡単に開発環境を構築できます。
- 基本操作の習得: Hardhatを使ったテストやデプロイ方法を学べます。
- 効率的な開発フローを構築: 開発効率を向上させる便利なプラグインを活用できます。
この記事で学べること
- Hardhatの基本的な概要と利点
- Hardhatプロジェクトのセットアップ方法
- テストとデプロイの具体的な手順
1. Hardhatとは?

1.1 Hardhatの概要
Hardhatは、Ethereumスマートコントラクトの開発に特化したフレームワークです。以下の特徴を備えています:
- ローカル環境の提供: Hardhat Networkを使ってローカルでスマートコントラクトをデプロイ可能。
- プラグインの柔軟性: 多数のプラグインを利用して機能を拡張可能。
- エラー診断機能: 詳細なエラーメッセージでデバッグを支援。
1.2 Hardhatを使うメリット
Hardhatを導入することで、以下の利点があります:
- 開発とテストがシームレスに行える。
- 他のツール(例:Ethers.js)との統合が簡単。
- ネットワークの柔軟な設定が可能。
2. Hardhatプロジェクトのセットアップ
2.1 必要なツールのインストール
- Node.jsとnpmをインストール。
- プロジェクト用のディレクトリを作成して移動:
- Hardhatをインストール:
2.2 プロジェクトの初期化
- Hardhatの初期化コマンドを実行:
- プロンプトに従ってプロジェクトを設定。
- 生成されるフォルダ構成:
contracts/
: スマートコントラクトのソースコードを格納。scripts/
: デプロイスクリプトを格納。test/
: テストスクリプトを格納。
2.3 Hardhatでのテスト

// test/sample-test.js
const { expect } = require("chai");
describe("MyContract", function () {
it("初期値が正しいか確認", async function () {
const MyContract = await ethers.getContractFactory("MyContract");
const contract = await MyContract.deploy("Hello, Hardhat!");
await contract.deployed();
expect(await contract.message()).to.equal("Hello, Hardhat!");
});
});
動作解説
- コントラクトのデプロイ: コントラクトをデプロイし、初期値を設定。
- 期待値の確認:
expect
を使用して、状態変数の値を検証。
3. 練習問題

以下の課題に挑戦して、Hardhatを使った開発フローを実践してみましょう:
- 上記のテストスクリプトを実行し、動作を確認してください。
- 新しい関数を追加し、テストスクリプトを作成してください。
- 独自のスマートコントラクトを作成し、Hardhatでテストとデプロイを行ってください。
4. まとめ
本記事では、Hardhatを使用したSolidityの開発フローについて解説しました。Hardhatは、開発効率を大幅に向上させるツールであり、初学者から経験者まで幅広い開発者に適しています。ぜひHardhatを活用して、スマートコントラクト開発をスムーズに進めてみてください。