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。