You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To transfer WalletRegistryProxyAdmin ownership and test the upgrade
To transfer BridgeProxyAdmin ownership and test the upgrade
The test upgrade transaction will upgrade implementations to the same version as currently used. No changes are expected. We want to execute a test upgrade in the same transaction as the ProxyAdmin ownership transfer to ensure future upgrades will be possible and that no human error will happen when assembling those transactions.
pdyraga
changed the title
Deploy Timelock in front of Bridge and WalletRegistry
Deploy Timelock in front of Bridge, Redemption Watchtower, and WalletRegistry
Dec 12, 2024
pdyraga
changed the title
Deploy Timelock in front of Bridge, Redemption Watchtower, and WalletRegistry
Deploy Timelock in front of Bridge, RedemptionWatchtower, and WalletRegistry
Dec 12, 2024
Upgrade scenario: #830
The goal is to deploy a Timelock between the `Bridge`,
`RedemptionWatchtower`, and `WalletRegistry` `ProxyAdmin`s and the
Threshold Council multisig to enforce 24h delay between upgrades.
This changeset adds the deployment script and a basic integration test
simulation Bridge proxy upgrade. The goal is not to test OpenZeppelin
implementation but to prove the integration works and present how the
upgrade transaction should be assembled.
See #830
The v1.7.0 version has just been tagged with `solidity/v1.7.0` and
pushed to NPM package repository. v1.7.0 includes the `Timelock`
contract that will take over the ownership of `Bridge`, `WalletRegistry`
and `RedemptionWatchtower` `ProxyAdmin` contracts.
0x123694886DBf5Ac94DDA07135349534536D14cAf
0x9f6e831c8f8939dc0c830c6e492e7cef4f9c2f5f
0x5e4861a80B55f035D899f66772117F00FA0E8e7B
0xa4996de73682bdf9cf514fbf238ee387c1a21a26
0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706
0xB8dF0A949aC45ff8f401553A1dcb742Feb38E6D3
0xbfd04e3928923ad8c86256b9a8f64ebd01cf1daf
0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706
0x46d52E41C2F300BC82217Ce22b920c34995204eb
0x08d7e8ce124921caafd7670502379ced0065c832
0x7affa05f726d293eb1193807a91617318292008e
Prerequisites
Deployment
Timelock
contract (address:0x92f2d8b72a7F6a551Be60b9aa4194248E9B4913D
)Timelock
contract on EtherscanTag and publish artifacts
@keep-network/tbtc-v2
solidity/v1.7.0
solidity
module version to1.8.0-dev
Governance Actions
Threshold Council executes four transactions:
WalletRegistry
upgradeBridge
upgradeWalletRegistry
ProxyAdmin
ownership and test the upgradeBridge
ProxyAdmin
ownership and test the upgradeThe test upgrade transaction will upgrade implementations to the same version as currently used. No changes are expected. We want to execute a test upgrade in the same transaction as the
ProxyAdmin
ownership transfer to ensure future upgrades will be possible and that no human error will happen when assembling those transactions.Schedule
WalletRegistry
upgradeProxyAdmin.encodeFunctionData("upgrade", ["0x46d52E41C2F300BC82217Ce22b920c34995204eb", "0x08d7e8ce124921caafd7670502379ced0065c832"])
(data:0x99a88ec400000000000000000000000046d52e41c2f300bc82217ce22b920c34995204eb00000000000000000000000008d7e8ce124921caafd7670502379ced0065c832
)Timelock.schedule(0x7affa05f726d293eb1193807a91617318292008e, 0, 0x99a88ec400000000000000000000000046d52e41c2f300bc82217ce22b920c34995204eb00000000000000000000000008d7e8ce124921caafd7670502379ced0065c832, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 86400)
Schedule
Bridge
upgradeProxyAdmin.encodeFunctionData("upgrade", ["0x5e4861a80B55f035D899f66772117F00FA0E8e7B", "0xa4996de73682bdf9cf514fbf238ee387c1a21a26"])
(data:0x99a88ec40000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000a4996de73682bdf9cf514fbf238ee387c1a21a26
)Timelock.schedule(0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706, 0, 0x99a88ec40000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000a4996de73682bdf9cf514fbf238ee387c1a21a26, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 86400)
Schedule
RedemptionWatchtower
upgradeProxyAdmin.encodeFunctionData("upgrade", ["0xB8dF0A949aC45ff8f401553A1dcb742Feb38E6D3", "0xbfd04e3928923ad8c86256b9a8f64ebd01cf1daf"])
(data:0x99a88ec4000000000000000000000000b8df0a949ac45ff8f401553a1dcb742feb38e6d3000000000000000000000000bfd04e3928923ad8c86256b9a8f64ebd01cf1daf
)Timelock.schedule(0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706, 0, 0x99a88ec4000000000000000000000000b8df0a949ac45ff8f401553a1dcb742feb38e6d3000000000000000000000000bfd04e3928923ad8c86256b9a8f64ebd01cf1daf, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 86400)
Transfer
WalletRegistry
ProxyAdmin
ownership and test the upgrade0x...
):ProxyAdmin@0x7affa05f726d293eb1193807a91617318292008e.transferOwnership(Timelock.address)
Timelock.execute(0x7affa05f726d293eb1193807a91617318292008e, 0, 0x99a88ec400000000000000000000000046d52e41c2f300bc82217ce22b920c34995204eb00000000000000000000000008d7e8ce124921caafd7670502379ced0065c832, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 86400)
Transfer
Bridge
&RedemptionWatchtower
ProxyAdmin
ownership and test the upgrade0x...
):ProxyAdmin@0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706.transferOwnership(Timelock.address)
Timelock.execute(0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706, 0, 0x99a88ec40000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000a4996de73682bdf9cf514fbf238ee387c1a21a26, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 86400)
Timelock.execute(0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706, 0, 0x99a88ec40000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000a4996de73682bdf9cf514fbf238ee387c1a21a26, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 86400)
Release notes
solidity/v1.7.0
release notes along with the references to transactions introducing the Timelock.The text was updated successfully, but these errors were encountered: