该文档是对 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)等功能。
本文档详细介绍了 OpenZeppelin Relayer 项目的目录结构,包括源代码目录(src/)、文档目录(docs/)、配置目录(config/)、测试目录(test/)、脚本目录(scripts/)、示例目录(examples/)以及开发工具、构建配置和 Docker 支持等方面的信息,为开发者提供了清晰的项目结构概览。
src/
docs/
config/
test/
scripts/
examples/
本文档介绍了 ERC-1155 多代币标准,该标准由三个接口组成,分别定义为 IERC1155、IERC1155MetadataURI 和 IERC1155Receiver。ERC1155 实现了强制性的 IERC1155 接口和可选扩展 IERC1155MetadataURI。此外,还有多个自定义扩展,包括指定可以暂停所有用户代币转账的地址,以及销毁自有代币。
本文介绍了如何使用 OpenZeppelin Defender 创建一个 Action Workflow,用于监控 Box 合约中对象的数量,并在添加对象时自动移除对象,保证合约中对象数量的平衡。文章详细介绍了Action的设置、Workflow的设置、Monitor的设置,以及如何在 Sepolia 测试网上进行实际操作。
本文档介绍了OpenZeppelin Relayer的插件系统,该系统允许开发者通过TypeScript函数扩展Relayer的功能。文章详细说明了插件的配置方式、开发指南、调用方法以及调试技巧,并提供了完整的示例。此外,还讨论了从旧模式迁移到推荐的handler模式的步骤和兼容性。
本文介绍了基于 ERC-7579 标准的模块化智能账户,该标准允许通过模块扩展账户功能。文章详细阐述了 ERC-7579 的账户和模块类型(包括验证器、执行器、回退和Hook模块),并提供了构建自定义模块的示例,同时还探讨了不同的执行模式。最后,通过社交恢复的例子,展示了如何利用这些模块构建更安全的账户恢复机制。
本文介绍了使用 OpenZeppelin Upgrades Plugins 升级智能合约的方法,包括升级的重要性、如何使用插件升级合约、升级的工作原理以及编写可升级合约的注意事项。通过代理合约和实现合约的分离,实现了在保持合约地址、状态和余额不变的情况下修改合约代码。
本文介绍了 ERC20 token 合约,它可以跟踪同质化代币,即任何一个代币与任何其他代币完全相等。文章通过一个 GLDToken 的示例,展示了如何使用 OpenZeppelin Contracts 创建自己的 ERC20 token 合约,并讨论了 decimals 字段的用途,以及如何使用 preset ERC20 合约。