本文深入探讨了“非结构化存储”代理模式,这是 OpenZeppelin Upgrades 的基础构建块。它解决了智能合约升级的挑战,通过代理合约转发交易到逻辑合约,实现逻辑合约的替换,同时确保状态的存储和访问正确。文章还讨论了存储冲突问题以及如何使用initializer函数代替constructor,保证升级的顺利进行。
本文介绍了在使用 OpenZeppelin Upgrades 编写可升级合约时需要注意的关键事项,包括使用 initializer 代替 constructor,避免在字段声明中定义初始值,以及如何安全地修改合约存储结构。