本文介绍了ERC-7201提案,旨在解决Solidity合约存储槽中存在的DelegateCall安全风险和升级不便等问题。ERC-7201引入命名空间概念,通过特定算法为不同逻辑组件分配独立的存储区域,实现存储隔离、升级友好、模块化支持和工具兼容等优势。文章还提供了实现示例,展示了如何在合约中使用ERC-7201。
本文档介绍了如何在使用OpenZeppelin升级插件等工具部署可升级合约时,使用@openzeppelin/contracts-upgradeable包。 该包通过使用initializer函数替换构造函数,并在小版本之间检查存储不兼容性,遵循可升级合约的编写规则,同时还讨论了多重继承和命名空间存储等问题。
@openzeppelin/contracts-upgradeable