该技能用于系统性地测试 Web3 智能合约,主要面向 Solidity 项目,组合使用 Hardhat 与 Foundry(Forge)两套工具链。
用途与适用场景:编写智能合约单元测试;搭建集成测试套件;进行 Gas 优化测试;用模糊测试覆盖边界条件;分叉主网以获得接近真实的测试环境;自动化测试覆盖率报告;在 Etherscan 上验证合约。
主要能力与用法: Hardhat 侧通过 hardhat.config.js 配置,引入 @nomicfoundation/hardhat-toolbox、@nomiclabs/hardhat-etherscan、hardhat-gas-reporter、solidity-coverage;可配置 solidity 版本与优化器、hardhat 网络的主网分叉(forking 的 url 与 blockNumber)、goerli 网络以及 gasReporter 与 etherscan 的 API Key。测试中常用 chai 的 expect、ethers、以及 loadFixture 与 time 辅助函数,覆盖部署归属、余额、转账事件、revertedWith 回滚、时间推进和 gasUsed 上限断言等模式。 Foundry 侧用 forge-std/Test.sol 编写 Solidity 测试合约,示例包含 setUp、assertEq、vm.prank、vm.expectRevert、vm.assume 的模糊测试(testFuzzTransfer)、vm.deal、vm.createSelectFork 主网分叉,以及对 DAI 等主网合约的读取断言。 高级模式包括通过 evm_snapshot/evm_revert 做快照与回滚、以 hardhat_reset 重置到指定主网区块并连接既有合约、以及 hardhat_impersonateAccount 模拟大户账户。更完整的模板与示例位于 references/details.md。
限制:资料未提供该技能的安装命令、依赖版本要求、收费与价格信息、运行环境限制及支持的具体链范围,这些内容暂未提供。