MerkleProof库提供了用于验证merkle树proof的工具函数。在生成merkle树和对应proof时应当避免使用64字节长度的leaf(进行hash之前)或避免使用非keccak256的哈希函数(进行leaf的hash计算)。这是因为树中经排序的内部节点的拼接可以被重新解释为leaf值。
从foundry工程化的角度详细解读Openzeppelin中的Address库及对应测试。
ERC20FlashMint库是ERC20的拓展。本库在ERC20的基础上实现了IERC3156FlashLender接口,在token层面上支持了闪电贷功能。但是该库默认没有闪电贷手续费,开发者可以通过重写flashFee()方法来自定义手续费计算逻辑。
flashFee()
使用founrdy keystore保护你的钱包私钥
使用bash脚本来部署任意合约
EIP-712是一个专门用于对结构化数据求hash值以及签名的标准,大大解决了数据“链下签名+链上验证”的问题并提高了链上消息签名的可用性。EIP712合约提供了EIP 712 domain separator的定义与获取——是结构化数据完整编码的一部分。
Starknet Foundry合约测试代码错误修复及部署和交互测试
文章介绍了突变测试的概念,即通过故意在代码中引入错误来检查测试套件的质量。文章详细举例说明了突变测试的应用,包括如何在Solidity代码中实施,并介绍了自动突变测试工具及其可能的结果。此外,还讨论了突变测试的重要性和局限性,并推荐了一些相关的学习资源。
Foundry 是 Solidity 智能合约测试的有力工具
ECDSA(Elliptic Curve Digital Signature Algorithm)是椭圆曲线数字签名算法的简称。ECDSA库十分重要且使用广泛,其作用是在链上验证某message是否由给定的地址的私钥持有者进行签名的。简而言之,ECDSA库是一个验证地址真实身份的工具库。
本文介绍了如何使用 Foundry 设置和部署 NFT 合约到 Sepolia 测试网络,并在 Etherscan 上进行验证。文章详细说明了如何安装 OpenZeppelin、使用 remappings、生成 remappings.txt 文件、设置环境变量以及部署和验证 NFT 合约的过程。
本文介绍了在EigenLayer协议上构建测试用例的方法,特别是如何使用eigenlayer-fuzzing库来进行集成测试。作者详细阐述了如何将该库作为子模块添加到已有项目中,以及如何设置环境并集成目标函数,以便模拟EigenLayer的外部行为,确保兼容性和可靠性。文章还提供了代码示例和步骤指南,适合有一定基础的读者。
IERC1271是合约地址作为signer的签名验证标准。EOA地址可以通过其私钥对msg进行签名,而合约地址理论上是没有私钥的。当合约地址作为msg.sender时,可以通过IERC1271标准进行相关的签名验证工作。
文章介绍了一个名为create-chimera-app的工具,该工具基于现有的测试框架,允许开发者通过单一命令快速启动一个带有不变性测试的Foundry项目。它集成了Chimera框架并提供了一套易于使用的测试结构,简化了测试的设置过程,从而使开发者能够更高效地进行不变性测试,减少了复杂性和时间成本。
Foundry 单元测试
SignatureChecker库是一个用于链上签名验证的helper库。该库提供的验签函数既支持EOA账户地址的签名验证也支持IERC1271标准合约地址的签名验证。