Recon-Fuzz/chimera
GitHub: Recon-Fuzz/chimera
智能合约属性测试框架,实现一次编写即可在多个模糊测试工具中运行的跨平台测试能力。
Stars: 147 | Forks: 16
## 奇美拉
Chimera 是一个智能合约基于属性的测试框架。一次编写,到处运行。
### 安装
```
forge install Recon-Fuzz/chimera
```
### 动机
在编写基于属性的测试时,开发者通常面临以下几个问题:
- 所需的样板代码量巨大
- 初始设置后切换工具的挑战
- 在不同工具间共享结果的困难
编写能无缝兼容 Foundry、Echidna、Medusa 和 Halmos 的不变量测试并非易事。
Chimera 通过实现“一次编写,到处运行”的方式来解决这个问题。
### 限制
Chimera 目前仅支持 [HEVM](https://hevm.dev/std-test-tutorial.html#supported-cheat-codes) 实现的作弊码。
Foundry 对此进行了扩展,提供了 HEVM 作弊码不支持的功能,因此在将 Chimera 添加到 Foundry 项目时必须考虑到这一点,因为它们在运行 Echidna 和 Medusa 时会导致问题。如果将 Chimera 添加到现有的 Foundry 项目中,请确保没有实现 HEVM 不支持的作弊码,否则会抛出以下错误:`VM failed for unhandled reason, BadCheatCode `。
虽然 **medusa** 支持 `etch`,但 Echidna 尚不支持。请注意,在 Echidna 环境中使用 `etch` 时,它将无法按预期工作。
### 功能
- [x] 适用于 Foundry、Echidna、Medusa、Halmos 和 Kontrol 测试的样板合约
### 帮助
加入 Recon Discord:https://getrecon.xyz/discord
### 安装
```
forge install Recon-Fuzz/chimera
```
### 动机
在编写基于属性的测试时,开发者通常面临以下几个问题:
- 所需的样板代码量巨大
- 初始设置后切换工具的挑战
- 在不同工具间共享结果的困难
编写能无缝兼容 Foundry、Echidna、Medusa 和 Halmos 的不变量测试并非易事。
Chimera 通过实现“一次编写,到处运行”的方式来解决这个问题。
### 限制
Chimera 目前仅支持 [HEVM](https://hevm.dev/std-test-tutorial.html#supported-cheat-codes) 实现的作弊码。
Foundry 对此进行了扩展,提供了 HEVM 作弊码不支持的功能,因此在将 Chimera 添加到 Foundry 项目时必须考虑到这一点,因为它们在运行 Echidna 和 Medusa 时会导致问题。如果将 Chimera 添加到现有的 Foundry 项目中,请确保没有实现 HEVM 不支持的作弊码,否则会抛出以下错误:`VM failed for unhandled reason, BadCheatCode 标签:Echidna, Foundry, Halmos, Medusa, Solidity, Web3安全, 不变量测试, 区块链安全, 属性测试, 开发框架, 智能合约, 测试工具, 跨平台测试