本文深入探讨了“非结构化存储”代理模式,这是 OpenZeppelin Upgrades 的基础构建块。它解决了智能合约升级的挑战,通过代理合约转发交易到逻辑合约,实现逻辑合约的替换,同时确保状态的存储和访问正确。文章还讨论了存储冲突问题以及如何使用initializer函数代替constructor,保证升级的顺利进行。
本文档介绍了如何在使用OpenZeppelin升级插件等工具部署可升级合约时,使用@openzeppelin/contracts-upgradeable包。 该包通过使用initializer函数替换构造函数,并在小版本之间检查存储不兼容性,遵循可升级合约的编写规则,同时还讨论了多重继承和命名空间存储等问题。
@openzeppelin/contracts-upgradeable