This motion authorizes the enactment of runtime-2500 on Astar mainnet.
It is the second and final runtime step decommissioning WASM (ink!) smart contracts, following runtime-2400 (referendum #63), which blocked all calls to pallet_contracts and settled the deposits the pallet held. It removes pallet-contracts from the runtime and purges its storage, including the contract child tries, in a multi-block migration. Astar moves from spec version 2400 to 2500.
The release also removes the ORML dependencies, including the XTokens pallet, and reimplements the XCM precompile's xtokens calls on top of pallet_xcm. This is a runtime-only release; node clients are not impacted. Runtime-2500 is already live on Shibuya and Shiden.
Preimage: 0x91db5d57252e47c7d1af4abb47022c173762253a5611de6c6061e7eac205c941
Forum post: WASM smart-contract sunset on Astar and Shiden
Full changelog: runtime-2500 release notes
Required client version: none, node clients are unaffected by this release.
pallet-contracts is removed and its storage purged in a multi-block migration (#1687). The migration first empties the child tries holding each contract's storage, for live contracts and for those pending deletion, then removes the leftover Contracts pallet prefix. The order matters: the child tries are only addressable through the trie_ids kept under that prefix, so wiping the prefix first would orphan them permanently. Every deletion is measured and charged through benchmarked, size-dependent weights, so large code blobs cannot produce oversized blocks.pallet-contracts took a consumer reference on each contract account at instantiation; without releasing it, those accounts could never be reaped.Wasm value in its v2 Solidity ABI for compatibility, but rejects calls that use it.XTokens pallet and its storage (#1685). Drops the three open-runtime-module-library crates, closes the dispatch-precompile route into xtokens, and leaves ReserveAssetFilter as the single source of truth for reserve resolution. The xTokens extrinsics no longer exist; integrations must use polkadotXcm.transferAssetsUsingTypeAndThen.pallet_xcm, so EVM callers keep the same interface. Legacy selectors that are no longer supported revert with a message naming their replacement.xTokens extrinsics directly must switch to polkadotXcm.transferAssetsUsingTypeAndThen.pallet_contracts prefix purged.0xe81454088694eca423b6ada1e16e57f064ba8343872b8778a1647e88a7d7bd1d0x52cb8f5681f4c4285b6ec8bb24c0e7f7356738c1020029890002306b925aeff5Qmc6csqVU7TUxMyKw52gq5vJqHhn4cLL8A4wb2NvcToGW4Approve enactment of runtime-2500 on Astar mainnet.