ebtc-protocol / ebtc-multisig

eBTC's EVM multisig operations.
GNU Affero General Public License v3.0
0 stars 0 forks source link

Governance check and Timelocks final changes script #30

Closed sajanrajdev closed 6 months ago

sajanrajdev commented 7 months ago

Write a script that confirms that the state of the governance infrastructure matches that intended. Additionally, write a couple of scripts to manage the current roles in the Timelocks so that they end up matching the launch setup.

sajanrajdev commented 6 months ago

Timelocks rewiring output:

Initial timelocks state:

lowsec_timelock, delay: 172800s
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| timelock_contract   | role                | role_admin          |   member_number | member_address                             | member_id                          |
+=====================+=====================+=====================+=================+============================================+====================================+
| lowsec_timelock     | TIMELOCK_ADMIN_ROLE | TIMELOCK_ADMIN_ROLE |               0 | 0xE2F2D9e226e5236BeC4531FcBf1A22A7a2bD0602 | eth_ebtc_lowsec_timelock           |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | TIMELOCK_ADMIN_ROLE | TIMELOCK_ADMIN_ROLE |               1 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | PROPOSER_ROLE       | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | PROPOSER_ROLE       | TIMELOCK_ADMIN_ROLE |               1 | 0x690C74AF48BE029e763E61b4aDeB10E06119D3ba | eth_ebtc_wallets_techops_multisig  |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | CANCELLER_ROLE      | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | CANCELLER_ROLE      | TIMELOCK_ADMIN_ROLE |               1 | 0x690C74AF48BE029e763E61b4aDeB10E06119D3ba | eth_ebtc_wallets_techops_multisig  |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | EXECUTOR_ROLE       | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | EXECUTOR_ROLE       | TIMELOCK_ADMIN_ROLE |               1 | 0x690C74AF48BE029e763E61b4aDeB10E06119D3ba | eth_ebtc_wallets_techops_multisig  |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
highsec_timelock, delay: 604800s
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| timelock_contract   | role                | role_admin          |   member_number | member_address                             | member_id                          |
+=====================+=====================+=====================+=================+============================================+====================================+
| highsec_timelock    | TIMELOCK_ADMIN_ROLE | TIMELOCK_ADMIN_ROLE |               0 | 0xaDDeE229Bd103bb5B10C3CdB595A01c425dd3264 | eth_ebtc_highsec_timelock          |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| highsec_timelock    | TIMELOCK_ADMIN_ROLE | TIMELOCK_ADMIN_ROLE |               1 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| highsec_timelock    | PROPOSER_ROLE       | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| highsec_timelock    | CANCELLER_ROLE      | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| highsec_timelock    | EXECUTOR_ROLE       | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
Rewiring lowsec_timelock
Removing all cancellers from lowsec_timelock
Transaction sent: 0xce7bfc9bde2caecaca22a045c7161452965f0a954c676f61893ded81d2eab461
  Gas price: 0.0 gwei   Gas limit: 12000000   Nonce: 1
  ITimelockControllerEnumerable.revokeRole confirmed   Block: 19421507   Gas used: 32018 (0.27%)

Removed 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 from lowsec_timelock CANCELLER_ROLE
Transaction sent: 0x7919b3d82be42e5bee91164107297160bad4a85f2d3311b391627fd48107b079
  Gas price: 0.0 gwei   Gas limit: 12000000   Nonce: 2
  ITimelockControllerEnumerable.revokeRole confirmed   Block: 19421508   Gas used: 25674 (0.21%)

Removed 0x690C74AF48BE029e763E61b4aDeB10E06119D3ba from lowsec_timelock CANCELLER_ROLE
lowsec_timelock has TIMELOCK_ADMIN_ROLE
Removing security multisig from lowsec_timelock TIMELOCK_ADMIN_ROLE
Transaction sent: 0x21afdfffaff3bceddc6b5df8ce5efe7430707e9f3aeab90f514b1a8f994836ab
  Gas price: 0.0 gwei   Gas limit: 12000000   Nonce: 3
  ITimelockControllerEnumerable.schedule confirmed   Block: 19421509   Gas used: 51829 (0.43%)

Operation 0x645caa4a71e6cfa90eb220350edb4cd111cbb43d700cb31f019b59244a7b3827 has been scheduled! Execution available at 2024-03-14 20:52:43
Rewiring highsec_timelock
Removing all cancellers from highsec_timelock
Transaction sent: 0x793d90cfab5d501a784ed7c59a0ac9f1f5635346d40b0dad4b6d2f6e453c7957
  Gas price: 0.0 gwei   Gas limit: 12000000   Nonce: 4
  ITimelockControllerEnumerable.revokeRole confirmed   Block: 19421510   Gas used: 25674 (0.21%)

Removed 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 from highsec_timelock CANCELLER_ROLE
highsec_timelock has TIMELOCK_ADMIN_ROLE
Removing security multisig from highsec_timelock TIMELOCK_ADMIN_ROLE
Transaction sent: 0x240c558c6176599eac3b61147ef59d7a419a158d570b37b648ececf08982a24b
  Gas price: 0.0 gwei   Gas limit: 12000000   Nonce: 5
  ITimelockControllerEnumerable.schedule confirmed   Block: 19421511   Gas used: 51829 (0.43%)

Operation 0x59abc43c558f15c98935fd52e1d4343f566663e6e618cac416dacb528bf664ba has been scheduled! Execution available at 2024-03-19 20:52:45

Final timelocks state:

lowsec_timelock, delay: 172800s
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| timelock_contract   | role                | role_admin          |   member_number | member_address                             | member_id                          |
+=====================+=====================+=====================+=================+============================================+====================================+
| lowsec_timelock     | TIMELOCK_ADMIN_ROLE | TIMELOCK_ADMIN_ROLE |               0 | 0xE2F2D9e226e5236BeC4531FcBf1A22A7a2bD0602 | eth_ebtc_lowsec_timelock           |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | TIMELOCK_ADMIN_ROLE | TIMELOCK_ADMIN_ROLE |               1 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | PROPOSER_ROLE       | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | PROPOSER_ROLE       | TIMELOCK_ADMIN_ROLE |               1 | 0x690C74AF48BE029e763E61b4aDeB10E06119D3ba | eth_ebtc_wallets_techops_multisig  |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | EXECUTOR_ROLE       | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| lowsec_timelock     | EXECUTOR_ROLE       | TIMELOCK_ADMIN_ROLE |               1 | 0x690C74AF48BE029e763E61b4aDeB10E06119D3ba | eth_ebtc_wallets_techops_multisig  |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
highsec_timelock, delay: 604800s
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| timelock_contract   | role                | role_admin          |   member_number | member_address                             | member_id                          |
+=====================+=====================+=====================+=================+============================================+====================================+
| highsec_timelock    | TIMELOCK_ADMIN_ROLE | TIMELOCK_ADMIN_ROLE |               0 | 0xaDDeE229Bd103bb5B10C3CdB595A01c425dd3264 | eth_ebtc_highsec_timelock          |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| highsec_timelock    | TIMELOCK_ADMIN_ROLE | TIMELOCK_ADMIN_ROLE |               1 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| highsec_timelock    | PROPOSER_ROLE       | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
| highsec_timelock    | EXECUTOR_ROLE       | TIMELOCK_ADMIN_ROLE |               0 | 0xB3d3B6482fb50C82aa042A710775c72dfa23F7B4 | eth_ebtc_wallets_security_multisig |
+---------------------+---------------------+---------------------+-----------------+--------------------------------------------+------------------------------------+
{
sajanrajdev commented 6 months ago

Scripts for timelock and governance lens were merged and timelocks fully configured as designed (removal of other timelock admin but the timelocks): https://etherscan.io/tx/0xed52e541f196d55db023dec8d8e696fd37f4383e47c8b85b450e3e990b7ba345