概念 通用可升级代理标准(Universal Upgradeable Proxy Standard),简写UUPS, 该标准与所有合约普遍兼容,并且不会在代理合约和业务逻辑合约之间造成不兼容。这是通过利用代理合约中唯一的存储位置来存储逻辑合约的地址来实现的。兼容性检查可确保成功升级。升级可以无限次执行,也可以由自定义逻辑确定。此外,还提供了一种从多个构造函数中进行选择的方法,该方法不会妨碍验证字节码的能力。 调用流程 delegatecall()- 合约A中的函数允许外部合约B(委托)修改A的存储 代理合约——存储数据,但通过 delegatecall()的方式使用外部合约B的逻辑的合约A。 逻辑合约- 合约B ,包含代理合约A使用的逻辑 可代理合约——逻辑合约B中继承,提供升级功能代理合约 代理合约函数 fallback 所提议的回退函数遵循其他代理合约实现中看到的常见模式。但是,逻辑合约的地址不是强制使用变量,而是存储在定义的存储位置keccak256("PROXIABLE")。这消除了代理合约和逻辑合约中变量之间发生冲突的可能性,从而提供了与任何逻辑合约的“通用”兼容性。...