本文深入探讨了“非结构化存储”代理模式,这是 OpenZeppelin Upgrades 的基础构建块。它解决了智能合约升级的挑战,通过代理合约转发交易到逻辑合约,实现逻辑合约的替换,同时确保状态的存储和访问正确。文章还讨论了存储冲突问题以及如何使用initializer函数代替constructor,保证升级的顺利进行。
本文介绍了如何在Hardhat项目中使用@openzeppelin/hardhat-upgrades插件来部署和升级代理合约以及信标代理合约。文章提供了安装插件、在脚本和测试中使用的示例代码,以及升级代理合约和信标合约的步骤,并提及了完整的API文档。
@openzeppelin/hardhat-upgrades
本文介绍了使用 OpenZeppelin Upgrades Plugins 升级智能合约的方法,包括升级的重要性、如何使用插件升级合约、升级的工作原理以及编写可升级合约的注意事项。通过代理合约和实现合约的分离,实现了在保持合约地址、状态和余额不变的情况下修改合约代码。