This proposal aims to upgrade the Snowbridge Gateway Proxy contract on Ethereum, which is remotely governed by OpenGov utilizing Snowbridge itself as a cross-chain governance bridge.
The upgraded gateway supports new features:
BeefyClient, reducing message delivery latency from 30 minutes to just 1–2 minutes.InboundMessage submission flow, allowing the UI to dry-run the entire message process.This proposal will update the Gateway proxy with:
This contract was built and deployed using:
cd contracts; scripts/deploy-gateway.shThe preimage that will be executed on Bridge Hub for this ref was created using the Snowbridge Control tool.
➜ control git:(main) ✗ cargo run --release --features polkadot --bin snowbridge-preimage -- --format hex upgrade-202603
Preimage Hash: 0xd96bca57bceb4bcb60aed68b6e844a1b86800b8705f172afc3812305b98a883d
Preimage Size: 90
0x1f0005010100a90f050c2f000006020102a7d7d589700101530036e74fcaacb07773b144ca19ef2e32fc972ac50be3cfcc0042ad4c819c627fb2a84ba0822d67747a8618a4e1c4eb0c5112b179030100a0860100000000002000
The upgrade proposal was thoroughly tested using simulations on forked instances of both Polkadot and Ethereum mainnet, leveraging Chopsticks and Foundry for Polkadot and Ethereum respectively.
opengov-cli./target/release/opengov-cli submit-referendum --proposal 0x1f0005010100a90f050c2f000006020102a7d7d589700101530036e74fcaacb07773b144ca19ef2e32fc972ac50be3cfcc0042ad4c819c627fb2a84ba0822d67747a8618a4e1c4eb0c5112b179030100a0860100000000002000 --network polkadot --track whitelisted-caller --after 100 --output calldata
polkadot-referenda-tester and verified that EthereumSystem.Upgrade event emitted as expected.npx github:karolk91/polkadot-referenda-tester test \
--governance-chain-url wss://asset-hub-polkadot-rpc.n.dwellir.com \
--fellowship-chain-url wss://polkadot-collectives-rpc.polkadot.io \
--call-to-create-governance-referendum 0x2804080500710140031f0005010100a90f050c2f000006020102a7d7d589700101530036e74fcaacb07773b144ca19ef2e32fc972ac50be3cfcc0042ad4c819c627fb2a84ba0822d67747a8618a4e1c4eb0c5112b179030100a08601000000000020003e003f0d02cd80f1c35b9403c6c87535dca34692a818067389e59500279a830457910e56295c0000000164000000 \
--call-to-create-fellowship-referendum 0x2804043d003e0201cc1f0005010100a10f05082f0000060300884000d96bca57bceb4bcb60aed68b6e844a1b86800b8705f172afc3812305b98a883d010a000000 \
--additional-chains wss://bridge-hub-polkadot-rpc.n.dwellir.com \
--verbose
...
ℹ • EthereumOutboundQueue.MessageQueued
▸ Data: {
"id": "0x2d7325254a91cb620f30d18e814410bdc5c82640fa54fd61064a8832dfc181c3"
}
ℹ • EthereumSystem.Upgrade
▸ Data: {
"impl_address": "0x36e74fcaacb07773b144ca19ef2e32fc972ac50b",
"impl_code_hash": "0xe3cfcc0042ad4c819c627fb2a84ba0822d67747a8618a4e1c4eb0c5112b17903",
"initializer_params_hash": "0x0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8"
}
Since the Ethereum side of snowbridge has no fallback governance or centralized escape mechanisms, it is critical to ensure that the upgrade does not compromise the ongoing viability of the gateway. In this context, the fork tests in ForkUpgrade202603.t.sol verify that cross-chain signalling is preserved.
The Ethereum contracts were audited by Oak Security, with the full Audit Report available for reference.
Following this, we also received several HackenProof reports and implemented the recommended changes and fixes accordingly.
This proposal aims to upgrade the Snowbridge Gateway Proxy contract on Ethereum, which is remotely governed by OpenGov utilizing Snowbridge itself as a cross-chain governance bridge.
The upgraded gateway supports new features:
BeefyClient, reducing message delivery latency from 30 minutes to just 1–2 minutes.InboundMessage submission flow, allowing the UI to dry-run the entire message process.This proposal will update the Gateway proxy with:
This contract was built and deployed using:
cd contracts; scripts/deploy-gateway.shThe preimage that will be executed on Bridge Hub for this ref was created using the Snowbridge Control tool.
➜ control git:(main) ✗ cargo run --release --features polkadot --bin snowbridge-preimage -- --format hex upgrade-202603
Preimage Hash: 0xd96bca57bceb4bcb60aed68b6e844a1b86800b8705f172afc3812305b98a883d
Preimage Size: 90
0x1f0005010100a90f050c2f000006020102a7d7d589700101530036e74fcaacb07773b144ca19ef2e32fc972ac50be3cfcc0042ad4c819c627fb2a84ba0822d67747a8618a4e1c4eb0c5112b179030100a0860100000000002000
The upgrade proposal was thoroughly tested using simulations on forked instances of both Polkadot and Ethereum mainnet, leveraging Chopsticks and Foundry for Polkadot and Ethereum respectively.
opengov-cli./target/release/opengov-cli submit-referendum --proposal 0x1f0005010100a90f050c2f000006020102a7d7d589700101530036e74fcaacb07773b144ca19ef2e32fc972ac50be3cfcc0042ad4c819c627fb2a84ba0822d67747a8618a4e1c4eb0c5112b179030100a0860100000000002000 --network polkadot --track whitelisted-caller --after 100 --output calldata
polkadot-referenda-tester and verified that EthereumSystem.Upgrade event emitted as expected.npx github:karolk91/polkadot-referenda-tester test \
--governance-chain-url wss://asset-hub-polkadot-rpc.n.dwellir.com \
--fellowship-chain-url wss://polkadot-collectives-rpc.polkadot.io \
--call-to-create-governance-referendum 0x2804080500710140031f0005010100a90f050c2f000006020102a7d7d589700101530036e74fcaacb07773b144ca19ef2e32fc972ac50be3cfcc0042ad4c819c627fb2a84ba0822d67747a8618a4e1c4eb0c5112b179030100a08601000000000020003e003f0d02cd80f1c35b9403c6c87535dca34692a818067389e59500279a830457910e56295c0000000164000000 \
--call-to-create-fellowship-referendum 0x2804043d003e0201cc1f0005010100a10f05082f0000060300884000d96bca57bceb4bcb60aed68b6e844a1b86800b8705f172afc3812305b98a883d010a000000 \
--additional-chains wss://bridge-hub-polkadot-rpc.n.dwellir.com \
--verbose
...
ℹ • EthereumOutboundQueue.MessageQueued
▸ Data: {
"id": "0x2d7325254a91cb620f30d18e814410bdc5c82640fa54fd61064a8832dfc181c3"
}
ℹ • EthereumSystem.Upgrade
▸ Data: {
"impl_address": "0x36e74fcaacb07773b144ca19ef2e32fc972ac50b",
"impl_code_hash": "0xe3cfcc0042ad4c819c627fb2a84ba0822d67747a8618a4e1c4eb0c5112b17903",
"initializer_params_hash": "0x0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8"
}
Since the Ethereum side of snowbridge has no fallback governance or centralized escape mechanisms, it is critical to ensure that the upgrade does not compromise the ongoing viability of the gateway. In this context, the fork tests in ForkUpgrade202603.t.sol verify that cross-chain signalling is preserved.
The Ethereum contracts were audited by Oak Security, with the full Audit Report available for reference.
Following this, we also received several HackenProof reports and implemented the recommended changes and fixes accordingly.
Threshold
Threshold