-
Notifications
You must be signed in to change notification settings - Fork 56
Open
Labels
Milestone
Description
| Team | Address |
|---|---|
| Deployment Team | 0x123694886DBf5Ac94DDA07135349534536D14cAf |
| Threshold Council | 0x9f6e831c8f8939dc0c830c6e492e7cef4f9c2f5f |
| Contract | Address |
|---|---|
| Bridge Proxy contract | 0x5e4861a80B55f035D899f66772117F00FA0E8e7B |
| Bridge Implementation contract | 0xa4996de73682bdf9cf514fbf238ee387c1a21a26 |
| Bridge ProxyAdmin contract | 0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706 |
| RedemptionWatchtower Proxy contract | 0xB8dF0A949aC45ff8f401553A1dcb742Feb38E6D3 |
| RedemptionWatchtower implementation contract | 0xbfd04e3928923ad8c86256b9a8f64ebd01cf1daf |
| RedemptionWatchtower ProxyAdmin contract | 0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706 |
| WalletRegistry Proxy contract | 0x46d52E41C2F300BC82217Ce22b920c34995204eb |
| WalletRegistry implementation contract | 0x08d7e8ce124921caafd7670502379ced0065c832 |
| WalletRegistry ProxyAdmin contract | 0x7affa05f726d293eb1193807a91617318292008e |
Prerequisites
Deployment
- Deploy the
Timelockcontract (address:0x92f2d8b72a7F6a551Be60b9aa4194248E9B4913D) - Verify
Timelockcontract on Etherscan
Tag and publish artifacts
- Publish v1.7.0 deployment artifacts to NPM as
@keep-network/tbtc-v2 - Tag
solidity/v1.7.0 - Bump up
soliditymodule version to1.8.0-dev
Governance Actions
Threshold Council executes four transactions:
- To schedule
WalletRegistryupgrade - To schedule
Bridgeupgrade - To transfer
WalletRegistryProxyAdminownership and test the upgrade - To transfer
BridgeProxyAdminownership 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.
Schedule WalletRegistry upgrade
- Prepare TX data:
ProxyAdmin.encodeFunctionData("upgrade", ["0x46d52E41C2F300BC82217Ce22b920c34995204eb", "0x08d7e8ce124921caafd7670502379ced0065c832"])(data:0x99a88ec400000000000000000000000046d52e41c2f300bc82217ce22b920c34995204eb00000000000000000000000008d7e8ce124921caafd7670502379ced0065c832) - Schedule upgrade:
Timelock.schedule(0x7affa05f726d293eb1193807a91617318292008e, 0, 0x99a88ec400000000000000000000000046d52e41c2f300bc82217ce22b920c34995204eb00000000000000000000000008d7e8ce124921caafd7670502379ced0065c832, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 86400)(tx:0x8472bf5de4543f80189f7f167d4289b294bec5fb79615de61f157e33346c91e4)
Schedule Bridge upgrade
- Prepare TX data:
ProxyAdmin.encodeFunctionData("upgrade", ["0x5e4861a80B55f035D899f66772117F00FA0E8e7B", "0xa4996de73682bdf9cf514fbf238ee387c1a21a26"])(data:0x99a88ec40000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000a4996de73682bdf9cf514fbf238ee387c1a21a26) - Schedule upgrade:
Timelock.schedule(0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706, 0, 0x99a88ec40000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000a4996de73682bdf9cf514fbf238ee387c1a21a26, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 86400)(tx:0x8472bf5de4543f80189f7f167d4289b294bec5fb79615de61f157e33346c91e4)
Schedule RedemptionWatchtower upgrade
- Prepare TX data:
ProxyAdmin.encodeFunctionData("upgrade", ["0xB8dF0A949aC45ff8f401553A1dcb742Feb38E6D3", "0xbfd04e3928923ad8c86256b9a8f64ebd01cf1daf"])(data:0x99a88ec4000000000000000000000000b8df0a949ac45ff8f401553a1dcb742feb38e6d3000000000000000000000000bfd04e3928923ad8c86256b9a8f64ebd01cf1daf) - Schedule upgrade:
Timelock.schedule(0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706, 0, 0x99a88ec4000000000000000000000000b8df0a949ac45ff8f401553a1dcb742feb38e6d3000000000000000000000000bfd04e3928923ad8c86256b9a8f64ebd01cf1daf, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 86400)(tx:0x8472bf5de4543f80189f7f167d4289b294bec5fb79615de61f157e33346c91e4)
Transfer WalletRegistry ProxyAdmin ownership and test the upgrade
- The following batch transaction is executed (tx:
0x...):ProxyAdmin@0x7affa05f726d293eb1193807a91617318292008e.transferOwnership(Timelock.address)Timelock.execute(0x7affa05f726d293eb1193807a91617318292008e, 0, 0x99a88ec400000000000000000000000046d52e41c2f300bc82217ce22b920c34995204eb00000000000000000000000008d7e8ce124921caafd7670502379ced0065c832, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000)
Transfer Bridge & RedemptionWatchtower ProxyAdmin ownership and test the upgrade
- The following batch transaction is executed (tx:
0x...):ProxyAdmin@0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706.transferOwnership(Timelock.address)Timelock.execute(0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706, 0, 0x99a88ec40000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000a4996de73682bdf9cf514fbf238ee387c1a21a26, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000)Timelock.execute(0x16a76d3cd3c1e3ce843c6680d6b37e9116b5c706, 0, 0x99a88ec4000000000000000000000000b8df0a949ac45ff8f401553a1dcb742feb38e6d3000000000000000000000000bfd04e3928923ad8c86256b9a8f64ebd01cf1daf, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000)
Release notes
- Publish
solidity/v1.7.0release notes along with the references to transactions introducing the Timelock.