Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Hardhat:TypeScript 项目的合约开发框架

Hardhat 适合已经使用 JavaScript/TypeScript 的项目。它提供编译、测试、脚本、网络配置和插件体系;ethers 或 viem 负责具体的链上交互。

基本流程

mkdir hardhat-app && cd hardhat-app
npm init -y
npm install --save-dev hardhat typescript ts-node
npx hardhat
npx hardhat compile
npx hardhat test

网络配置应明确 RPC URL、chain ID、账户来源和确认数。私钥从环境变量读取,不要把真实账户直接写进配置文件。

测试重点

Hardhat 测试应覆盖:

  • 部署后的初始状态和构造参数。
  • 正常调用产生的事件、余额和权限变化。
  • 非授权调用、零地址、边界金额和重复调用的 revert。
  • 不同区块时间、账户余额和网络状态下的行为。

本地网络适合快速反馈,不能代替测试网验证。部署脚本应等待交易确认,并把部署结果写入网络和版本对应的 JSON 文件。

与 Foundry 的选择

如果测试主要是 Solidity、需要快速 fuzz/invariant 测试,可优先 Foundry;如果项目依赖 TypeScript、前端构建或复杂脚本,Hardhat 更顺手。两者可以共存,但应避免让两个工具分别管理同一份部署状态。

相关内容:Hardhat Ignition。