Polkadot stable2606-4
- Version
polkadot-stable2606-4- Repository
- paritytech/polkadot-sdk
Release notes
This release contains the changes from polkadot-stable2606-3 to polkadot-stable2606-4.
ℹ️ Please note: ⚠️ this is a patch release for the stable version stable2606 and contains only patches and fixes to the crates (list below). No binary or docker images will be provided for this release.
Once published, polkadot-stable2606-4 will also be tagged as polkadot-v1.24.4.
The following crates were updated to the corresponding versions:
Changed crates:
• pallet-revive-uapi@0.15.5
• pallet-revive-fixtures@0.15.2
• frame-support@48.1.1
• snowbridge-beacon-primitives@0.21.2
• pallet-asset-conversion@31.0.1
• pallet-assets@53.0.1
• pallet-balances@50.0.1
• pallet-on-demand-para@0.2.1
• pallet-oracle@28.1.0
• pallet-psm@0.7.0
• staging-xcm-executor@28.1.1
• snowbridge-runtime-common@0.23.1
• cumulus-primitives-utility@0.34.1
• pallet-revive@0.21.0
• pallet-asset-conversion-precompiles@0.8.0
• pallet-assets-precompiles@0.13.0
• pallet-vesting-precompiles@0.7.0
• pallet-staking-async@0.15.1
• pallet-xcm-precompiles@0.12.0
• polkadot-runtime-parachains@29.1.0
• rococo-runtime@38.0.1
• westend-runtime@39.0.1
• assets-common@0.41.0
• asset-test-utils@43.0.0
• penpal-runtime@0.49.0
• snowbridge-inbound-queue-primitives@0.22.0
• asset-hub-rococo-runtime@0.45.0
• asset-hub-westend-runtime@0.58.0
• bridge-hub-test-utils@0.42.0
• emulated-integration-tests-common@42.0.0
• snowbridge-pallet-inbound-queue-fixtures@0.41.0
• snowbridge-pallet-inbound-queue-v2-fixtures@0.22.0
• snowbridge-pallet-inbound-queue@0.33.0
• snowbridge-pallet-inbound-queue-v2@0.22.0
• bridge-hub-rococo-runtime@0.40.0
• bridge-hub-westend-runtime@0.37.0
• polkadot-sdk@2606.6.0
• yet-another-parachain-runtime@0.17.0
📦 The complete changelog with full descriptions is attached to this release as CHANGELOG.md, and in machine-readable form as changelog.json.
💥 Breaking Changes
3 changes are breaking according to Rust SemVer (each bumps the major version of at least one crate). Details in the 💥-marked entries below.
• Smart Contracts (Revive): #13617 [pallet-revive] Bound per-transaction receipt size (pallet-revive)
• Assets: #13256 pallet-psm: reject the None origin as a PSM admin (pallet-psm)
• Assets: #13626 pallet-psm: simplify PSM account handling (pallet-psm)
Changelog
Bridges
🛠️ Runtime Dev
#11910: XCM hardening - fix some regressions
This PR fixes some regressions, improves code and adds more defense-in-depth in a couple places.
xcm-executor: drain holdings by ownership in deposit_assets_with_retry
Add AssetsInHolding::into_per_asset_holdings() and use it in deposit_assets_with_retry so each pass consumes the input via owning BTreeMap/BTreeSet iterators instead of assets_iter().collect() + try_take. Per asset this drops one AssetId clone, one or two BTreeMap lookups, one dynamic dispatch on saturating_take, and one internal subsume_assets call; per pass it drops the intermediate Vec<Asset> allocation. Behaviour is unchanged: same iteration order, same partial-failure / retry semantics. …
Crates: staging-xcm-executor (minor), cumulus-primitives-utility (patch), snowbridge-runtime-common (patch), bridge-hub-westend-runtime (patch), snowbridge-beacon-primitives (patch)
#12569: Preserve Snowbridge v1 inbound liveness when the Asset Hub sovereign is empty
Also for Runtime User
Snowbridge v1 inbound messages now burn the teleported Asset Hub execution fee from the relayer's Bridge Hub account instead of requiring funds in the Asset Hub sovereign account on Bridge Hub. The Asset Hub sovereign reimburses the relayer best-effort for the burned fee plus delivery reward when it has enough reducible balance.
This preserves the existing funded-sovereign economics while preventing an empty Asset Hub sovereign from stalling the Ethereum-to-Polkadot inbound channel. In the empty-sovereign case, the message is still processed and the nonce advances, but the relayer is not reimbursed.
Crates: snowbridge-pallet-inbound-queue…