Hardhat 是一个用于 Ethereum 智能合约开发 的开发环境,专为 Solidity 语言编写的智能合约提供工具支持。它能够帮助开发者 编译、部署、测试和调试 智能合约,并提供一个本地的以太坊测试网络。
Hardhat 的核心功能
-
本地开发网络(Hardhat Network)
- 自带一个快速的本地以太坊网络,支持即时重置、自动挖矿等功能。
- 可用于测试智能合约,支持
console.log
进行调试。
-
任务和插件系统
- 允许开发者创建自定义任务(如部署、编译等)。
- 提供丰富的插件支持(如 Ethers.js、Waffle、Solidity Coverage 等)。
-
调试功能
- 通过
console.log
在智能合约中打印调试信息。 - 提供详细的错误信息,方便排查问题。
- 通过
-
编译和部署
- 使用
hardhat compile
编译 Solidity 智能合约。 - 结合 Ethers.js 或 Web3.js 进行部署和交互。
- 使用
-
测试支持
- 支持 Mocha、Chai 等测试框架进行智能合约单元测试。
- 兼容 Waffle 进行更方便的 Solidity 测试。
安装与使用
-
安装 Hardhat
npm install --save-dev hardhat
-
创建 Hardhat 项目
npx hardhat
选择 "Create a basic sample project" 来生成一个基本项目结构。
-
编译智能合约
npx hardhat compile
-
运行本地 Hardhat 网络
npx hardhat node
-
测试智能合约
npx hardhat test
-
部署智能合约
npx hardhat run scripts/deploy.js --network localhost
Hardhat 项目结构清晰,开发流程如下:
- 安装 Hardhat →
npx hardhat
- 编写 Solidity 合约 →
contracts/
- 编译 →
npx hardhat compile
- 部署 →
npx hardhat run scripts/deploy.js
- 测试 →
npx hardhat test
- 交互 →
npx hardhat console