github paritytech/polkadot-sdk polkadot-stable2603-8
Polkadot stable2603-8

3 hours ago

This release contains the changes from polkadot-stable2603-7 to polkadot-stable2603-8.

ℹ️ Please note: ⚠️ this is a patch release for the stable version stable2603 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-stable2603-8 will also be tagged as polkadot-v1.22.8.
The following crates were updated to the corresponding versions:

Changed crates:
  • snowbridge-beacon-primitives@0.19.2
  • pallet-asset-conversion@28.0.1
  • staging-xcm-executor@25.3.0
  • snowbridge-runtime-common@0.20.2
  • cumulus-primitives-utility@0.26.2
  • bridge-hub-westend-runtime@0.25.3

📦 The complete changelog with full descriptions is attached to this release as CHANGELOG.md, and in machine-readable form as changelog.json.

💥 Breaking Changes

None in this release.

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)

XCM

🛠️ Runtime Dev

#13601: Fix user losing remainder of swapped funds when pool liquidity goes below ED

pallet-asset-conversion's SwapCredit::swap_tokens_for_exact_tokens split credit_in into the amount to swap and the change, and returned only the amount to swap if the swap then failed. The change was dropped inside the storage transaction that is rolled back on failure, so the caller lost it. The full credit_in is now returned on failure, as documented.

Crates: staging-xcm-executor (patch), staging-xcm-builder (none), pallet-asset-conversion (patch)

Rust compiler versions

The crates and node binaries in this release were built and tested with the following rustc toolchain; other versions may work.

  • Rust Stable: 1.93.0

Don't miss a new polkadot-sdk release

NewReleases is sending notifications on new releases.