In this repository, we can see the upgrading steps for Transparent Proxy
and Beacon Proxy
.
Ship
contract is deployed as Transaparent Proxy
where the contract deployed by newShip()
function is Beacon Proxy
.
To upgrade from Gnosis Safe, the following ownership should be transferred to Gnosis Safe.
ProxyAdmin
forTransparentProxy
UpgradeableBeacon
forBeaconProxy
TransparentProxy
(optional)
You can run npm run upgrade
command to upgrade.
Please make sure that deployer
account given by TEST_PRIVATE_KEY
is one of the owners of Gnosis Safe.
Only owner can propose transaction to Gnosis Safe.
Here's the detailed steps which upgrade
script runs:
- Deploy new implementation contract.
- Goto Gnosis Safe App.
- Click on
New Transaction
Button on the left-top and propose transaction.
- Contract:
ProxyAdmin
- Function:
upgrade(TransparentProxy, NewImplementation)
- Confirm transaction and execute
- Check the proxy contract if the implementation has been upgraded with new one.
Here's the detailed steps which upgrade
script runs:
- Deploy new implementation contract.
- Goto Gnosis Safe App.
- Click on
New Transaction
Button on the left-top and propose transaction.
- Contract:
UpdateBeacon
- Function:
upgradeTo(NewImplementation)
- Confirm transaction and execute
- Check the proxy contract if the implementation has been upgraded with new one.