1. ローカルネットワークの起動
まず、Hardhat ネットワークを起動する。
コマンドは以下の通り。
npx hardhat node
このコマンドを実行すると、次の情報が表示される:
- RPC URL: http://127.0.0.1:8545
- 20個のテストアカウント(各アカウントに 10,000 ETH 付与)
- 各アカウントのアドレスとプライベートキー
2. コントラクトのデプロイ
別のターミナルで、ローカルネットワークにデプロイする。
npx hardhat run scripts/deploy.js --network localhost
デプロイが成功すると、コントラクトのアドレスが表示される。例:
Contract deployed to: 0x5FbDB2315678afecb367f032d93F642f64180aa3
3. 環境変数の設定
.env.local ファイルを作成し、以下のように設定する。
RPC_URL=http://127.0.0.1:8545
PRIVATE_KEY=<使用するテストアカウントのプライベートキー>
このファイルはプロジェクトのルートに置くこと。
4. MetaMask の設定
MetaMask を開き、「ネットワークの追加」を選択し、次の情報を入力する。
- ネットワーク名: Hardhat Local
- RPC URL: http://localhost:8545
- チェーンID: 31337
- 通貨記号: ETH
5. テストアカウントのインポート
Hardhat 起動時に表示された任意のテストアカウントのプライベートキーを使用して、MetaMask にアカウントをインポートする。
手順:
- MetaMask のアカウントアイコンをクリック
- 「アカウントのインポート」を選択
- プライベートキーを入力
6. 開発サーバーの起動
アプリケーション(例:Next.js)の開発サーバーを起動するには、以下のコマンドを使用する。
npm run dev
注意事項
- Hardhat のテストアカウントとそのプライベートキーは公開されており、安全なネットワークでの使用は危険である。
- これらのアカウントはローカルテスト環境でのみ使用すべきである。
- 各アカウントには 10,000 ETH(テスト用)が付与されており、十分なテストが可能である。
テストシナリオ例
- DAO作成のテスト
- 複数のアカウントで DAO を作成する
- 設定値(投票期間、閾値など)を変えて作成する - 提案と投票のテスト
- 提案を作成する
- 複数のアカウントで投票を行う
- 投票結果を集計・確認する - エラーケースのテスト
- 権限のないアカウントによる操作
- 無効なパラメータによる呼び出し
- 投票期間終了後の操作