本文介绍了如何通过编写自动化测试来验证智能合约的行为。内容包括搭建测试环境(使用本地区块链)、编写单元测试(使用Chai断言库),以及执行复杂断言的方式(使用OpenZeppelin Test Helpers)。文章还提及了持续集成服务(如CircleCI)的设置,以便每次提交代码到GitHub时自动运行测试。
本文是关于OpenZeppelin升级插件的常见问题解答,涵盖了Solidity编译器版本变更、常见错误、合约升级安全、禁用检查、使用delegatecall和selfdestruct、实现兼容性、代理管理员、实现合约、代理、immutable变量、外部库、升级函数、自定义类型以及在存储变量中使用内部函数等问题。
本文介绍了如何使用 OpenZeppelin Defender 管理智能合约中的角色权限,包括添加合约、查看和修改角色。通过一个基于角色的访问控制(RBAC)智能合约示例,演示了如何创建合约、分配和撤销角色,以及如何使用 Defender 的地址簿和交易提案功能进行操作。主要目的是帮助用户了解如何使用 Defender 有效地管理和控制智能合约的访问权限。
本文介绍了OpenZeppelin Test Helpers,这是一个用于以太坊智能合约测试的断言库。它提供了诸如检查交易是否因正确的原因而revert、验证事件是否以正确的值发出、跟踪余额变化、处理大数以及模拟时间流逝等功能。文章还提供了安装和使用示例,以及进一步学习的链接。
本文介绍了OpenZeppelin Subgraphs,它是一组用于轻松索引OpenZeppelin合约活动的模块。通过组合不同的模块和数据源,用户可以构建复杂的查询,以获取链上活动的信息,而无需编写大部分索引逻辑。文章还提供了关于如何构建manifest和组装schema的指导,并列出了可用的模块,如erc20、erc721、ownable等。
本文介绍了如何将智能合约连接到公共测试网络,以便在类似以太坊主网的环境中免费测试合约。文章涵盖了可用的测试网络、如何设置项目以连接到测试网络、如何部署合约以及如何与测试网络上的合约实例进行交互。文章提供了使用Alchemy访问测试网节点、创建新账户、配置网络以及获取测试网资金的步骤,并演示了如何在Sepolia测试网上部署和交互Box合约。
本文介绍了如何使用OpenZeppelin Defender实现gasless元交易,包括使用Relayer服务代表用户发送交易,避免用户管理私钥等复杂操作。文章详细讲解了ERC-2771、ERC-2612和ERC-3009三种不同的gasless交易标准,并提供了相应的代码示例和操作步骤, 同时也介绍了如何使用 Defender 的 Relayers 和 Actions 实现安全、便捷的元交易。
该文档是对 UMAprotocol 中 Oracle 相关合约升级的审计报告,主要关注 Oracle 请求中辅助数据的压缩,以降低 Gas 消耗。
本文介绍了如何在Hardhat项目中使用@openzeppelin/hardhat-upgrades插件来部署和升级代理合约以及信标代理合约。文章提供了安装插件、在脚本和测试中使用的示例代码,以及升级代理合约和信标合约的步骤,并提及了完整的API文档。
@openzeppelin/hardhat-upgrades
本文档介绍了OpenZeppelin Contracts库中提供的各种实用工具,包括密码学(签名验证,包括ECDSA、P256和RSA)、Merkle证明验证、接口自省(ERC-165)、数学运算、数据结构(如BitMaps、EnumerableSet、MerkleTree等)、数据打包、底层存储槽操作(StorageSlot)、Base64编码以及多重调用(Multicall)等功能。