Skip to content

Instantly share code, notes, and snippets.

@giacomolicari
Last active September 26, 2022 12:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save giacomolicari/ca7011738b5933799227d91aa3864f05 to your computer and use it in GitHub Desktop.
Save giacomolicari/ca7011738b5933799227d91aa3864f05 to your computer and use it in GitHub Desktop.
GnosisChain - Invalidate EthPoW Bridge Validators

Intro

Goal of the following procedure is the creation of a transaction on the Governance Multisig on EthereumPoW that can trigger an update on the Bridge Validators contract, on both the Native Bridge and the AMB:

  • Native Bridge Validator contract: 0xe1579dEbdD2DF16Ebdb9db8694391fa74EeA201E
  • AMB Validator contract: 0xed84a648b3c51432ad0fD1C2cD2C45677E9d4064

The transaction will execute transferOwnership("0x5e4ec802dceec72733717e43ce681425a5014e65") and replace the current owner of the contract, which is the Governance Multisig, to 0x5e4ec802dceec72733717e43ce681425a5014e65 as the new owner.

As a proof that we own that account we sent 0.0001 ETHW to the Governance Multisig on EthPoW: see https://www.oklink.com/en/ethw/tx/0x6aa09f7def7ba657332c2c3d3c1511bc630f08880cfbf431a1942a6f3206dd08.

Detailed Safe Transaction:

{
  to: '0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761',
  value: 0,
  data: '0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000f200e1579debdd2df16ebdb9db8694391fa74eea201e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f2fde38b0000000000000000000000005e4ec802dceec72733717e43ce681425a5014e6500ed84a648b3c51432ad0fd1c2cd2c45677e9d406400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f2fde38b0000000000000000000000005e4ec802dceec72733717e43ce681425a5014e650000000000000000000000000000',
  operation: 1,
  safeTxGas: 0,
  baseGas: 0,
  gasPrice: 0,
  gasToken: '0x0000000000000000000000000000000000000000',
  refundReceiver: '0x0000000000000000000000000000000000000000',
  nonce: 64
}

Generated Safe transaction hash: 0x7ff17a40bb3451d75b7dde05da59f8ab5b81f177a21d56dd11ce18d588b03977

On-Chain Confirmations

Send a transaction to the Governance Multisig to approve the Safe Transaction Hash:

RPC URL: https://mainnet.ethereumpow.org
Chain ID: 10001
Explorer: https://www.oklink.com/en/ethw
to: 0x42f38ec5a75accec50054671233dfac9c0e7a3f6
value: 0
data: 0xd4d9bdcd7ff17a40bb3451d75b7dde05da59f8ab5b81f177a21d56dd11ce18d588b03977

Where data is approveHash("0x7ff17a40bb3451d75b7dde05da59f8ab5b81f177a21d56dd11ce18d588b03977"), see decoded data at this link.

See the full Safe transaction data at this link.

Further steps

Once we execute the transaction, the new owner will remove the current validators from the Bridge Validators contract and set the ownership of the Contract back to the Governance Multisig.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment