[Whitelisted Caller] Dispatch whitelisted `System.authorizeUpgrade` for Nexus runtime v7700

Execute the previously whitelisted System.authorizeUpgrade call via the Whitelisted Caller track to authorize runtime upgrade nexus-v7700 on Nexus.

Dispatch Call Details

  • Outer call: Whitelist.dispatchWhitelistedCall(callHash, callEncodedLen, callWeightWitness) (pallet index 83, call index 2)
  • callHash: 0x3f9c86fd3456d8544042ad816443392e3c1261a5d634e9eeac31258a509598c4
  • callEncodedLen: 34
  • callWeightWitness: weight of System.authorizeUpgrade

Preimage Information

  • To register: 0x000964848ce6d624913c087a63e42124570e48943aff3cb906de0d1a137da245223d
  • Decoded preimage: System.authorizeUpgrade(codeHash = 0x64848ce6d624913c087a63e42124570e48943aff3cb906de0d1a137da245223d)

Runtime Information

  • Release: nexus-v7700 (published June 13, 2026)
  • WASM file: nexus_runtime-v7700.compact.compressed.wasm (2,011,350 bytes / 1.92 MiB)
  • WASM Keccak-256: 0x64848ce6d624913c087a63e42124570e48943aff3cb906de0d1a137da245223d
  • Toolchain: rustc 1.91.1

What's Changed

Governance Liveness — tx-pause exemption for Referenda and ConvictionVoting

TxPauseWhitelistedCalls now permanently exempts the Referenda and ConvictionVoting pallets. Previously, an emergency pause could inadvertently lock holders out of on-chain governance. With this change, voting and referenda submission remain available regardless of any active pause.

Pharos Validator Count Bounds

Added a MAX_VALIDATORS = 4096 cap in the Pharos storage key computation path. Without this guard, a malformed or adversarial validator count could cause an out-of-bounds array access when deriving storage keys. The fix adds the bound check and propagates a typed TooManyValidators error, preventing a potential panic in the consensus verifier.

Pharos Outbound Consensus Claim Decoding

pallet_ismp_relayer's decode_epochs_slot_address previously only handled RLP-encoded storage values, which is the format used by standard EVM Merkle Patricia Trie. Pharos uses a flat trie that returns the raw zero-padded 32-byte ABI-encoded value instead. As a result, all outbound consensus delivery claims for Pharos failed with OutboundDeliveryNotProven. The fix tries RLP decode first; if that fails and the value is 32 bytes, it extracts the address from the last 20 bytes of the ABI-encoded slot.

Verification

  • Confirm the Technical Committee whitelist motion for call hash 0x3f9c86fd3456d8544042ad816443392e3c1261a5d634e9eeac31258a509598c4 has been executed
  • Verify the preimage 0x000964848ce6d624913c087a63e42124570e48943aff3cb906de0d1a137da245223d is registered on-chain
  • Confirm the Keccak-256 hash of the WASM artifact at the nexus-v7700 GitHub release matches 0x64848ce6d624913c087a63e42124570e48943aff3cb906de0d1a137da245223d

Enactment

Upon passage, any account can submit the WASM blob via System.enactAuthorizedUpgrade(code) using the artifact from the nexus-v7700 GitHub release.

Edited
Reply
Up
Share
Status
Decision1d
Confirmation
1hr
Attempts
1
Tally
100%Aye
50.0%Threshold
0%Nay
Aye
200MBRIDGE
Nay
0BRIDGE
  • 5.00%
  • 0.0%

    Threshold

  • 0.0%
Support
33.0%
200MBRIDGE
Issuance
605.71MBRIDGE
Votes
Nested
Flattened
Actions
Check how referenda works here.
Call
Metadata
Timeline6
Votes Bubble
Curves
Statistics
Comments

Status
Decision1d
Confirmation
1hr
Attempts
1
Tally
100%Aye
50.0%Threshold
0%Nay
Aye
200MBRIDGE
Nay
0BRIDGE
  • 5.00%
  • 0.0%

    Threshold

  • 0.0%
Support
33.0%
200MBRIDGE
Issuance
605.71MBRIDGE
Votes
Nested
Flattened
Actions
Check how referenda works here.