This motion whitelists a single utility.batchAll so it can subsequently be enacted as a Root-origin call via the public Whitelisted Caller track. The batch combines a runtime upgrade authorization with the configuration updates that need to ship alongside it.
The batch contains operations that must execute atomically as a single Root dispatch — partially applying them (e.g., authorizing the upgrade without updating the EVM host parameters) would leave the system in an inconsistent state between bridged chains. Whitelisting lets the public referendum on the faster whitelisted_caller track approve the bundle in one shot rather than requiring 22 separate Root-track referenda.
A 22-call utility.batchAll performing the following, in order:
System.authorize_upgrade(code_hash = 0x40a1391c8a4b2a68144bac2bd6667bbd1c2a6ff95f3f34209ae2a25c58b491f4) — authorizes the runtime to upgrade to the code with the given hash once applyAuthorizedUpgrade is sent in a subsequent block.BeefyConsensusProofs.set_reward_curve([(100,100), (50,100), (30,100), (20,100), (10,100), (5,100)]) — sets the decreasing uncle-reward curve for BEEFY consensus proofs: position 0 (first prover) gets 100% of the base reward, position 1 gets 50%, then 30%, 20%, 10%, 5%.HostExecutive.update_host_params(state_machine, { consensus_client: Some(0x446f3de1Aff18c2494ab4B27b921f657A468Ab30) }) for each of: Base, Ethereum, Arbitrum, Optimism, Gnosis, BNB, Polygon, Soneium, Polkadot Hub — points all nine EVM hosts at the new ConsensusClient contract address. Each call dispatches a host-manager ISMP message to the corresponding chain.IsmpOptimism.set_dispute_game_factories(Base, factory = 0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e, configs = [...]) — registers the Base DisputeGameFactory plus the three currently-supported game-type implementations:gameType = 0) → 0x6dDBa09bc4cCB0D6Ca9Fc5350580f74165707499 (FaultDisputeGame layout)gameType = 1) → 0x58bf355C5d4EdFc723eF89d99582ECCfd143266A (FaultDisputeGame layout)gameType = 621) → 0x4c0DAF5d9ABe92e8A26a60698a657B03538a3028 (AggregateVerifier layout)Relayer.set_outbound_consensus_delivery_reward(state_machine, amount) for each EVM destination — sets the per-chain reward paid to the relayer that delivers a mandatory consensus update:Scheduler.schedule_named_after(id = "nexus/sp1_vkey_hash_update", after = 500, call = BeefyConsensusProofs.set_sp1_vkey_hash(0x007d1720c695842ed647a1a72e981751f9b5e26fc5ca038523b23430a1292f08)) — queues the SP1 verifying-key rotation to run 500 blocks after enactment, giving the proving infrastructure a window to roll over.| Encoded batch length | 818 bytes |
| Batch call hash (keccak-256) | 0x92406cbd37fab40bb8cfa8c04448defdc6f0be6e859ff1006685fdf74347b2b2 |
| Declared weight (with 10% buffer) | ref_time = 2_831_825_383, proof_size = 46_671 |
| Preimage status | Noted via Preimage.note_preimage(...) — preimage hash matches the call hash above |
TechnicalCollective.propose(
threshold = 2,
proposal = Whitelist.whitelist_call(0x92406cbd37fab40bb8cfa8c04448defdc6f0be6e859ff1006685fdf74347b2b2),
length_bound = 34,
)
encoded calldata (38 bytes):
0x500208530092406cbd37fab40bb8cfa8c04448defdc6f0be6e859ff1006685fdf74347b2b288
Tech Collective members can verify the inner call by decoding 0x530092406cbd37fab40bb8cfa8c04448defdc6f0be6e859ff1006685fdf74347b2b2 (Whitelist.whitelist_call with the batch's call hash).
Motion proposal hash (used to vote and close): 0xc55d43565629cae9d106ab616792398ebc07f6651a62b5a450c1498e8e498ca0.