极快的测试,不再使用 BigNumber.js,只有 Solidity 代码
Foundry是一个Solidity框架,用于构建、测试、模糊、调试和部署Solidity智能合约
Foundry 常用命令和作弊码速查表
学习使用模糊测试(Fuzz Test)及不变性测试( Invariant Test)提高合约安全性。
Foundry是一个全新的EVM开发环境。有原生的Solidity编写测试能力及强大的命令行工具支持。
使用Foundry工具来探索实现可升级的合约,本文介绍了可升级的合约使用的 delegatecall 时遇到的变量冲撞的问题,以及应该如何应对。
Chisel是随Foundry提供的高级SolidityREPL(交互式命令工具)。它可用于在本地或Fork网络上快速测试Solidity片段。
本文列举了foundry中常用的命令,方便以后查询使用。
在 Foundry 使用 OpenZeppelin 插件进行智能合约升级
Foundry是一个Solidity框架,用于构建、测试、模糊、调试和部署Solidity智能合约,Foundry的优势是以Solidity作为第一公民。
深入探讨了智能合约测试的重要性,重点介绍了使用 Foundry 的实用策略和示例。
什么是foundry?foundry是一个solidity智能合约开发工具。可以帮你管理依赖包,编译项目,运行测试脚本,还可以让你通过命令行工具或者script脚本和链上合约进行交互。和hardhat不同的地方是,hardhat我们还是主要用来开发大型的合约项目,但是foundry用来进行编写测试
MerkleProof库提供了用于验证merkle树proof的工具函数。在生成merkle树和对应proof时应当避免使用64字节长度的leaf(进行hash之前)或避免使用非keccak256的哈希函数(进行leaf的hash计算)。这是因为树中经排序的内部节点的拼接可以被重新解释为leaf值。
从foundry工程化的角度详细解读Openzeppelin中的Address库及对应测试。
ERC20FlashMint库是ERC20的拓展。本库在ERC20的基础上实现了IERC3156FlashLender接口,在token层面上支持了闪电贷功能。但是该库默认没有闪电贷手续费,开发者可以通过重写flashFee()方法来自定义手续费计算逻辑。
flashFee()