mcpField
S
solidity-hardhat-development

solidity-hardhat-development

github.com/whackur開発051 回インストール2 日前に更新
リポジトリ

solidity-hardhat-development について

solidity-hardhat-development は、Solidity 開発者向けの Hardhat 3 ガイドです。プロジェクト設定、テスト、デプロイ、マルチチェーン開発、v2 からの移行を扱います。

主な機能

  1. 01Hardhat 3 プロジェクトとプラグインの設定
  2. 02Solidity と TypeScript のテスト実行
  3. 03Hardhat Ignition による宣言的モジュールのデプロイ
  4. 04複数チェーンの並行テスト
  5. 05v2 からのプロジェクト設定移行

活用シーン

  1. 01Hardhat 3 プロジェクトの開始
  2. 02Solidity コントラクトのテストと Gas 使用量の確認
  3. 03コントラクトモジュールのシミュレーションとデプロイ
  4. 04Hardhat v2 プロジェクトの移行

MCP 対応

このガイドでは solidity-agent-toolkit との任意の連携を説明しています。そのツールでコントラクトのコンパイル、テスト実行、Gas スナップショット作成、デプロイのシミュレーション、セキュリティ分析ができます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/whackur/solidity-agent-toolkit --skill solidity-hardhat-development

インストール後、Claude Code で/solidity-hardhat-developmentを入力して読み込まれたか確認します。

同梱ファイルreferences/hardhat-cheatsheet.md

詳細

Hardhat 3 開発ガイド

適用する場面

  • 新しい Hardhat 3 プロジェクトを開始する場合。
  • v2 から v3 に移行する場合。
  • Foundry 互換のテストを使用して Solidity コントラクトをテストする場合。
  • Hardhat Ignition を使用してデプロイする場合。
  • マルチチェーンアプリケーションを構築する場合。

要件

要件値
Node.jsv22.10 以降
モジュールシステムESM — package.json に "type": "module" を設定
初期化コマンドnpx hardhat --init
設定エントリーhardhat/config の defineConfig

設定

solidity、networks、plugins キーを使用してセットアップを整理します。シークレットをコードに含めないよう、configVariable("KEY") を使用します。プラグインは明示的に列挙する必要があります。v2 の副作用インポートは機能しなくなりました。

ネットワークの type用途
edr-simulatedローカルのプロセス内テスト
httpリモート RPC 接続

chainType には "l1"、"op"、または "generic" を指定できます。ビルドプロファイルでは、環境ごとの設定(例:本番環境でのオプティマイザーの有効化)が可能です。

import { defineConfig, configVariable } from "hardhat/config";
import { hardhatIgnition } from "@nomicfoundation/hardhat-ignition";

export default defineConfig({
  solidity: "0.8.28",
  plugins: [hardhatIgnition],
  networks: {
    hardhat: { type: "edr-simulated" },
    mainnet: { type: "http", url: configVariable("MAINNET_RPC_URL") },
  },
});

テスト

テストの種類ランナー備考
Solidity(.t.sol)Rust 製forge-std/Test.sol を継承し、すべての vm チートコードを使用可能。ファジングを標準搭載
TypeScriptNode テストランナー + Viem、または Mocha + EthersnetworkHelpers プロパティからネットワークヘルパーにアクセス可能
コマンド実行内容
npx hardhat testすべてのテスト
npx hardhat test soliditySolidity テストのみ
--coverageカバレッジデータ
--gas-statsガス使用量データ

デプロイ(Ignition)

Hardhat Ignition は主要なデプロイフレームワークです。buildModule による宣言型モジュール、自動トランザクション並列化、失敗したデプロイの自動再開に対応しています。

  • デプロイ:npx hardhat ignition deploy ignition/modules/MyModule.ts --network <network>
  • 検証:@nomicfoundation/hardhat-verify プラグイン

マルチチェーン対応

Hardhat 3 では複数のチェーンを同時にシミュレートできます。const mainnet = await network.connect("mainnet") のように、ネットワークごとに接続します。複雑なクロスチェーンテストでは、複数のチェーンを同時にフォークできます。

デバッグ

ツール目的
console.log(hardhat/console.sol)コントラクト内のデバッグ出力
test コマンドの詳細度フラグトレースの詳細度を上げる
EDR スタックトレース詳細な失敗トレース

v2 からの移行

v2v3
CommonJSESM("type": "module")
Node.js < 22Node.js v22.10 以降
module.exportsdefineConfig
副作用によるプラグインインポート明示的な plugins 配列
Ethers v5Ethers v6 または Viem
単一のネットワークオブジェクトマルチチェーンの NetworkManager
v2 プラグインv3 専用のプラグインバージョン

必須プラグイン:hardhat-verify、hardhat-ignition、hardhat-keystore。

MCP による拡張

solidity-agent-toolkit が利用可能な場合:

  • compile_contract:コントラクトをビルドし、成果物を取得します。
  • run_tests:テストスイートを実行します。
  • gas_snapshot:ガスレポートを取得します。
  • dry_run_deploy:デプロイをシミュレートします。
  • run_slither、run_aderyn:セキュリティ分析を実行します。

参考資料

例については、Hardhat 3 チートシートを参照してください。

コメント