Upgradeability using Unstructured Storage
- 在 Ropsten 测试网上, 地址 0xbd70d89667A3E1bD341AC235259c5f2dDE8172A9 部署了 OwnedUpgradeabilityProxy 合约于 0xf78aa080f84513203f37019c255f78cfc390b62d tx 链接
- 地址 0xbd70d89667A3E1bD341AC235259c5f2dDE8172A9 部署了 Token_V0 合约于 0xa347821506065054b4ccad798125e1005b154b53 tx 链接
- 用地址 0xbd70d89667A3E1bD341AC235259c5f2dDE8172A9 调用 OwnedUpgradeabilityProxy 合约的 upgradeTo 函数,参数是 0xa347821506065054b4ccad798125e1005b154b53, 即 Token_V0 合约。
- 用 Proxy 合约地址 0xf78aa080f84513203f37019c255f78cfc390b62d 实例化一个 Token_V0 合约,然后调用初始化函数 initialize()。 这样直接调用 Proxy.mint() 等等就会 delegatecall 转而调用 Token_V0 地址所在的 Token_V0 合约里面的函数。比如这里我调用 Proxy.mint(owner, 1000),成功执行。
升级: