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标准合约地址的签名验证。
Openzeppelin中的ERC20库只提供了mint接口,而具体的发行逻辑需要开发者在其子合约中使用_mint()自行编写。该库同样遵循了OpenZeppelin的合约设计思路:当函数因产生错误返回false时,直接revert掉。这种设计思路与ERC20的期望标准并不冲突。
_mint()
在外部审计前 使用不变量模糊测试之前找到高风险漏洞