[Whitelisted Caller] Nexus Runtime Upgrade — `spec_version` 8500

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

What's Changed

58 commits since nexus-v8400. Most of them touch the SDK, the indexer, simplex and the EVM contracts, none of which are part of the runtime blob. The substantive runtime changes are below.

Aura slot fallback for parachain block timestamps (#1146)

ismp-parachain previously required every tracked parachain to deposit pallet-ismp's timestamp digest and rejected any header without one. Asset Hub does not run pallet-ismp, so its headers carry no such digest and its block time can only be read from the aura slot it was authored in.

The consensus client now goes through the shared fetch_overlay_root_and_timestamp helper, which falls back to slot * slot_duration when the timestamp digest is absent, and still errors when neither source yields a time.

  • New storage map IsmpParachain::SlotDurations and a new Root-only extrinsic IsmpParachain.set_slot_duration(para_id, slot_duration) at call index 3. Removing a parachain clears its slot duration too.
  • The slot duration is only read for para id 1000 (Asset Hub). Every other tracker keeps the digest-only path and is unaffected.

Asset Hub tracking needs its slot duration set by governance before it will work. That is a separate call, not part of this upgrade.

The now-redundant zero-timestamp checks in ismp-grandpa were removed, since the helper raises that error itself.

CollatorSelection::take_candidate_slot filtered (#1189)

CollatorSelectionCallFilter already blocked leave_intent and now also blocks take_candidate_slot, the inherited pallet's deposit auction. That call evicts a named candidate for one unit more than their bond with no regard for reputation, and CollatorManager::new_session ranks only the stashes still in CandidateList, so an eviction would drop an operator's reputation out of the selection domain.

register_as_candidate and update_bond remain callable, so the collator set can still be joined and bonds maintained.

HostManager rotation addressed to the outgoing manager (#1199)

pallet-ismp-host-executive built its updateHostParams dispatch with the recipient read from the already-updated params, so an update that rotated the host manager was addressed to the incoming manager rather than the one the destination host still recognises. The recipient is now captured before the update is applied.

Paymaster stake calls on the intents coprocessor (#1147)

pallet-intents-coprocessor gains two governance-only extrinsics, unlock_paymaster_stake at call index 17 and withdraw_paymaster_stake at call index 18, dispatching bare kind bytes 5 and 6 to SimplexPaymaster. The first starts the EntryPoint unstake timer, the second sweeps the unlocked stake to the paymaster's treasury once the configured unstakeDelaySec has elapsed.

The same PR relaxes PhantomTokenPair::standard_amount from exactly one unit of the input token to any whole multiple of a unit, so pairs can be probed at a larger notional for finer price resolution. Configs already using one unit stay valid.

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

    Threshold

  • 0.0%
Support
57.4%
≈349.48MBRIDGE
Issuance
≈608.96MBRIDGE
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
≈349.48MBRIDGE
Nay
0BRIDGE
  • 5.00%
  • 0.0%

    Threshold

  • 0.0%
Support
57.4%
≈349.48MBRIDGE
Issuance
≈608.96MBRIDGE
Votes
Nested
Flattened
Actions
Check how referenda works here.