Ownable2Step库是Ownable库的拓展版本。其提供的访问权限机制同Ownable完全一致,只是owner的更换机制从由原owner直接指定(一次交互)变成原owner指定 + 新owner确认(两次交互)。Ownable2Step库具有Ownable库所有的功能函数。
本文档是 Aave v3 不变量测试套件的内部文档,介绍了如何运行测试套件、属性格式、如何添加对新函数的支持、如何从 Foundry 迁移测试、如何迁移 Certora 属性以及如何调试broken属性。该套件使用 Echidna 工具来检查 Aave v3 协议的不变量和后置条件,并通过 property mode 和 assertion mode 两种不同的模式执行。
IERC1820Registry.sol是global ERC1820 Registry的接口文件。ERC1820 Registry旨在创建一个全网唯一的interface与对应implementer的查询中心。所有地址都可以在其中注册interface与对应implementer的关联关系。
ERC1820Implementer合约是对IERC1820Implementer interface的实现。该合约往往与ERC1820Registry合约配合使用。如果想要合约成为ERC1820Registry记录在案的implementer,需要目标合约继承ERC1820Implementer。
本文介绍了如何使用 Foundry 和 Python 模拟以太坊交易,并验证智能合约行为,从而保护用户免受欺骗性钱包界面的攻击。文章详细解释了如何使用 Python 验证交易 calldata,模拟 ERC-20 approve 交易的影响,并通过比较预期和实际 calldata 来检测 UI 欺骗攻击。
Escrow合约是Openzeppelin中所有escrow拓展库的基础合约,用于为指定地址锁存eth和提取eth的托管场景。该合约中存入和取出eth的方法都被virtual修饰,开发者可以通过继承重写的方式来做相关修改。
AccessControl库用于管理函数的调用权限,所有继承了AccessControl的子合约均可为自己的业务函数设置调用权限。AccessControl是一个轻量级的基础库且各个role不支持在编成员的迭代导出,所以授权和撤销role成员的操作会抛出event。
ConditionalEscrow合约继承了Escrow合约,是其的一种功能拓展。ConditionalEscrow的框架中提供设置可withdraw条件,并且只有在满足该条件时才允许owner为对应payee提取eth。
本文介绍了如何使用Foundry进行智能合约开发,包括环境设置、合约编写、测试和部署。Foundry是一个全面的工具套件,适用于以太坊区块链上的去中心化应用开发。
RefundEscrow合约继承了ConditionalEscrow合约,是ConditionalEscrow合约的一种功能拓展。RefundEscrow合约提供了基础的存取eth功能,同时合约owner可以将合约切换到Refunding或Closed状态。
Viem是一个相当新的web3库,它专注于EVM,提供了更好的开发体验,更小的包体积等等。在本文中,将使用foundry部署一个简单的合约,并在node环境下使用viem与部署的链上合约执行读写交互。
类似Hardhat,Foundry是一个Solidity智能合约开发工具链。Foundry管理您的依赖关系、编译项目、运行测试、部署,并允许您通过命令行和Solidity脚本与链交互。
在查看Foundry官方文档时发现其安装步骤描述并不详细,起初跟着安装问题迟迟无法解决,故记录下此详细安装过程,且选择的是最快捷最不占硬盘空间方式的下载方式官方文档给出的下载步骤
全面指南:构建与部署以太坊多签钱包(MultiSigWallet)智能合约的最佳实践MultiSigWallet介绍这是一个基于以太坊智能合约的简单多签钱包实现。多签钱包允许多个签名者共同控制钱包资金,以增加安全性和透明度。功能实现⼀个简单的多签合约钱包,合约包含的功能:创建多签钱包时,
以太坊智能合约开发工具链