From 0e7a3856c2fe036afd4c03924a67d9d763766f9c Mon Sep 17 00:00:00 2001 From: Kurdistan Tech Ministry Date: Sat, 21 Feb 2026 04:55:14 +0300 Subject: [PATCH] fix(xcm): correct MintLocation for AH migration (RC 1_020_007, AH 1_020_006) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Relay Chain no longer has mint authority — teleport tracking set to None. Asset Hub is now the canonical minter with MintLocation::Local tracking. RC: LocalCheckAccount → TeleportTracking = None AH: () → TeleportTracking = Some((CheckingAccount, MintLocation::Local)) --- .../runtimes/assets/asset-hub-pezkuwichain/src/lib.rs | 2 +- .../assets/asset-hub-pezkuwichain/src/xcm_config.rs | 8 +++++--- pezkuwi/runtime/pezkuwichain/src/lib.rs | 2 +- pezkuwi/runtime/pezkuwichain/src/xcm_config.rs | 6 +++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/lib.rs b/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/lib.rs index 345caebf..52dc3a75 100644 --- a/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/lib.rs +++ b/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/lib.rs @@ -138,7 +138,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: alloc::borrow::Cow::Borrowed("asset-hub-pezkuwichain"), impl_name: alloc::borrow::Cow::Borrowed("asset-hub-pezkuwichain"), authoring_version: 1, - spec_version: 1_020_005, + spec_version: 1_020_006, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 16, diff --git a/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/xcm_config.rs b/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/xcm_config.rs index 77e93517..1a3a4e86 100644 --- a/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/xcm_config.rs +++ b/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/xcm_config.rs @@ -58,7 +58,7 @@ use xcm_builder::{ DenyRecursively, DenyReserveTransferToRelayChain, DenyThenTry, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, ExternalConsensusLocationsConverterFor, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, HashedDescription, IsConcrete, - LocalMint, MatchInClassInstances, MatchedConvertedConcreteId, NetworkExportTableItem, + LocalMint, MatchInClassInstances, MatchedConvertedConcreteId, MintLocation, NetworkExportTableItem, NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingTeyrchainAsNative, SiblingTeyrchainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SingleAssetExchangeAdapter, SovereignPaidRemoteExporter, @@ -91,6 +91,8 @@ parameter_types! { pub UniquesPalletLocation: Location = PalletInstance(::index() as u8).into(); pub CheckingAccount: AccountId = PezkuwiXcm::check_account(); + /// Asset Hub has mint authority since the Asset Hub migration. + pub TeleportTracking: Option<(AccountId, MintLocation)> = Some((CheckingAccount::get(), MintLocation::Local)); pub const GovernanceLocation: Location = Location::parent(); pub StakingPot: AccountId = CollatorSelection::account_id(); pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); @@ -123,8 +125,8 @@ pub type FungibleTransactor = FungibleAdapter< LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, - // We don't track any teleports of `Balances`. - (), + // Teleports tracking — Asset Hub is the canonical minter post-migration. + TeleportTracking, >; /// `AssetId`/`Balance` converter for `TrustBackedAssets`. diff --git a/pezkuwi/runtime/pezkuwichain/src/lib.rs b/pezkuwi/runtime/pezkuwichain/src/lib.rs index 6edaef74..1ac47849 100644 --- a/pezkuwi/runtime/pezkuwichain/src/lib.rs +++ b/pezkuwi/runtime/pezkuwichain/src/lib.rs @@ -174,7 +174,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: alloc::borrow::Cow::Borrowed("pezkuwichain"), impl_name: alloc::borrow::Cow::Borrowed("parity-pezkuwichain"), authoring_version: 0, - spec_version: 1_020_006, + spec_version: 1_020_007, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 26, diff --git a/pezkuwi/runtime/pezkuwichain/src/xcm_config.rs b/pezkuwi/runtime/pezkuwichain/src/xcm_config.rs index 03675230..9c320e17 100644 --- a/pezkuwi/runtime/pezkuwichain/src/xcm_config.rs +++ b/pezkuwi/runtime/pezkuwichain/src/xcm_config.rs @@ -55,7 +55,8 @@ parameter_types! { pub const ThisNetwork: NetworkId = NetworkId::ByGenesis(PEZKUWICHAIN_GENESIS_HASH); pub UniversalLocation: InteriorLocation = ThisNetwork::get().into(); pub CheckAccount: AccountId = XcmPallet::check_account(); - pub LocalCheckAccount: (AccountId, MintLocation) = (CheckAccount::get(), MintLocation::Local); + /// Pezkuwi relay does not have mint authority anymore after the Asset Hub migration. + pub TeleportTracking: Option<(AccountId, MintLocation)> = None; pub TreasuryAccount: AccountId = Treasury::account_id(); } @@ -81,8 +82,7 @@ pub type LocalAssetTransactor = FungibleAdapter< LocationConverter, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, - // We track our teleports in/out to keep total issuance correct. - LocalCheckAccount, + TeleportTracking, >; /// The means that we convert the XCM message origin location into a local dispatch origin.