最新的OpenZeppelin v5.0.0更新

  • bloqarl
  • 发布于 2024-01-13 23:55
  • 阅读 32

本文详细介绍了 OpenZeppelin Contracts 的最新更新版本 5.0.0,涵盖了新增和移除的合同与库、按类别的主要变化,以及改进的安全性和合约结构,使开发者能够构建更强大和高效的去中心化应用。

如果你无法阅读这篇文章是因为付费墙,请点击这里免费阅读!

在这篇文章中,我们将深入探讨 OpenZeppelin Contracts 的最近重大更新——版本 5.0.0。

如果你希望通过了解新的推荐措施来在下一次审核中提供最佳价值,那么这篇文章就是为你准备的。

我们将逐一介绍关键的新增和移除内容,并对本次发布的主要变化按类别进行揭示。

如果你喜欢的话,也可以观看这些更新。

关键新增:

新的合约和库,如 AccessManagerGovernorStorageERC2771Forwarder,用于更好的访问控制和元交易支持​。

  1. AccessManager:管理复杂系统中的访问控制,提供一个统一的位置来处理访问权限。
  2. GovernorStorage:治理框架内的一个模块,存储提案细节,增强了治理提案的数据管理。
  3. ERC2771Forwarder:通过将调用转发到其他合约来处理元交易,允许用户在不持有以太作为 gas 费的情况下与合约交互。

新的 VestingWallet 合约用于处理代币归属计划​。

此合约旨在处理代币归属计划,确保代币按照可控和时间绑定的方式分发给受益人,通常用于在激励计划或其他合同协议中锁定代币一段时间。

关键移除:

移除多个合约和库,包括 ERC20SnapshotPaymentSplitterSafeMath 等​。

  1. ERC20Snapshot:可能因 gas 成本或推广更新、更高效的替代品而被移除。
  2. PaymentSplitter:其移除可能是为了鼓励使用更新或更安全的支付分配方法。
  3. SafeMath:由于使用更新的 Solidity 版本(0.8.x 及之后),算术操作在溢出/下溢时将 revert,使得 SafeMath 库不再那么重要。

按类别的变化:

一般:

提升了错误处理,使用自定义错误,并将最低编译器版本升级至 0.8.20​。

访问

改进了访问控制机制,增加了 AccessManager,并更新了 OwnableAccessControl 合约​。

Ownable 合约看到两个关键更新:

  1. 在构造函数中新增了一个 initialOwner 参数,以明确所有权的初始化。
  2. 准备了一个防止机制,禁止使用零地址( address(0))作为初始所有者,在合约部署期间确保设置有效所有者,从而增强合约的安全性。

财务:

修复了 VestingWallet 中的回退问题,并切换使用 Ownable 代替不可变的 beneficiary​。

治理:

Governor 合约中进行了优化和重构,并引入了 GovernorStorage 以更好地管理提案数据​。

Metatx:

增强了 ERC2771ForwarderERC2771Context 以更好地处理元交易​。

代理:

对代理合约进行了各种改进,以提高可升级性和管理性。

  1. 移除了 ProxyAdminTransparentUpgradeableProxy 中的某些 getter。
  2. ERC1967Upgrade 重构为库。
  3. TransparentUpgradeableProxy 现在将管理员地址存储在不可变变量中,以减少代理调用的存储读取。
  4. ERC-1822 的验证逻辑在升级时从 ERC1967Utils 迁移至 UUPSUpgradeable,以更好地管理合约的可升级性。

结论:

v5.0.0 更新为 OpenZeppelin Contracts 库带来了显著的增强,使其更强大且对开发者更友好。

借助增强的安全措施和优化的合约结构,开发者现在可以构建更强大且高效的去中心化应用。

今天就这些,我希望你能发现这个视频有用。敬请期待更多更新。

有关完整更新列表,请访问 https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.0.0

这是一个智慧合约黑客课程的 $50 折扣。

https://smartcontractshacking.com/?referral=bloqarl

查看我的 Web3 安全 YouTube 频道 https://www.youtube.com/@theblockchainer,这里有许多新类型的 Web3 内容可供你使用。

快来探索 https://www.theblockchainerhub.xyz/ 的知识与资源,并订阅新闻通讯,以便不错过更新。

确保在 Twitter 上关注我 https://twitter.com/TheBlockChainer,获取我最新的更新。

并在 Medium 上订阅,以便随时访问我所有的文章 https://medium.com/@bloqarl/membership

  • 原文链接: medium.com/@bloqarl/late...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
bloqarl
bloqarl
江湖只有他的大名,没有他的介绍。