Skip to content

Commit 356837c

Browse files
claravanstadenacatangiubkontur
authored
Upgrade Polkadot and Kusama to XCM v5 (#753)
Upgrades Kusama and Polkadot AssetHub and BridgeHub to use XCM V5. Adds a no-migration to check that changing ForeignAssets and AssetConversion pallets to XCM V5 do not wreck storage. --------- Co-authored-by: Adrian Catangiu <adrian@parity.io> Co-authored-by: Branislav Kontur <bkontur@gmail.com>
1 parent e0eac41 commit 356837c

File tree

32 files changed

+548
-2597
lines changed

32 files changed

+548
-2597
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4242
- [[#711](https://github.com/polkadot-fellows/runtimes/pull/711)] Xcm: convert properly assets in xcmpayment apis ([SDK stable2503 #7134](https://github.com/paritytech/polkadot-sdk/pull/7134)).
4343
- [[#711](https://github.com/polkadot-fellows/runtimes/pull/711)] Ensure Consistent Topic IDs for Traceable Cross-Chain XCM ([SDK stable2503 #7691](https://github.com/paritytech/polkadot-sdk/pull/7691)).
4444

45+
- [[#753](https://github.com/polkadot-fellows/runtimes/pull/753)] Upgrades Polkadot and Kusama AssetHub to XCM v5. Adds a migration to check upgrade safety.
4546
- [[#754](https://github.com/polkadot-fellows/runtimes/pull/754)] Change to minimum price controller and configure minimum price of 10 DOT and 1 KSM for Coretime sales. Existing renewals will also be adjusted accordingly and are now no longer completely decoupled from the market. For details on this, please checkout [RFC-149](https://polkadot-fellows.github.io/RFCs/new/0149-rfc-1-renewal-adjustment.html).
4647

4748
- Extend bounty update period to ~10 years ([polkadot-fellows/runtimes/pull/766](https://github.com/polkadot-fellows/runtimes/pull/766))

integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/genesis.rs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ use emulated_integration_tests_common::{
2222
SAFE_XCM_VERSION,
2323
};
2424
use frame_support::sp_runtime::traits::AccountIdConversion;
25-
use integration_tests_helpers::common::snowbridge::{
26-
EthLocationXcmV4, WethLocationXcmV4, MIN_ETHER_BALANCE,
27-
};
25+
use integration_tests_helpers::common::snowbridge::{EthLocation, WethLocation, MIN_ETHER_BALANCE};
2826
use parachains_common::{AccountId, Balance};
2927
use polkadot_parachain_primitives::primitives::Sibling;
3028
use xcm::prelude::*;
@@ -36,11 +34,11 @@ pub const USDT_ID: u32 = 1984;
3634

3735
frame_support::parameter_types! {
3836
pub AssetHubKusamaAssetOwner: AccountId = Keyring::Alice.to_account_id();
39-
pub PenpalATeleportableAssetLocation: xcm::v4::Location
40-
= xcm::v4::Location::new(1, [
41-
xcm::v4::Junction::Parachain(penpal_emulated_chain::PARA_ID_A),
42-
xcm::v4::Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
43-
xcm::v4::Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
37+
pub PenpalATeleportableAssetLocation: Location
38+
= Location::new(1, [
39+
Parachain(penpal_emulated_chain::PARA_ID_A),
40+
PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
41+
GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
4442
]
4543
);
4644
pub UniversalLocation: InteriorLocation = [GlobalConsensus(Kusama), Parachain(PARA_ID)].into();
@@ -106,14 +104,14 @@ pub fn genesis() -> sp_core::storage::Storage {
106104
),
107105
// Ether
108106
(
109-
EthLocationXcmV4::get(),
107+
EthLocation::get(),
110108
AssetHubPolkadotSovereignAccount::get(),
111109
true,
112110
MIN_ETHER_BALANCE,
113111
),
114112
// Weth
115113
(
116-
WethLocationXcmV4::get(),
114+
WethLocation::get(),
117115
AssetHubPolkadotSovereignAccount::get(),
118116
true,
119117
MIN_ETHER_BALANCE,

integration-tests/emulated/chains/parachains/assets/asset-hub-kusama/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,5 @@ impl_accounts_helpers_for_parachain!(AssetHubKusama);
5757
impl_assert_events_helpers_for_parachain!(AssetHubKusama);
5858
impl_assets_helpers_for_system_parachain!(AssetHubKusama, Kusama);
5959
impl_assets_helpers_for_parachain!(AssetHubKusama);
60-
impl_foreign_assets_helpers_for_parachain!(AssetHubKusama, xcm::v4::Location);
60+
impl_foreign_assets_helpers_for_parachain!(AssetHubKusama, xcm::latest::Location);
6161
impl_xcm_helpers_for_parachain!(AssetHubKusama);

integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/genesis.rs

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ use emulated_integration_tests_common::{
2323
SAFE_XCM_VERSION,
2424
};
2525
use frame_support::sp_runtime::traits::AccountIdConversion;
26-
use integration_tests_helpers::common::snowbridge::{
27-
EthLocationXcmV4, WethLocationXcmV4, MIN_ETHER_BALANCE,
28-
};
26+
use integration_tests_helpers::common::snowbridge::{EthLocation, WethLocation, MIN_ETHER_BALANCE};
2927
use parachains_common::{AccountId, Balance};
3028
use polkadot_parachain_primitives::primitives::Sibling;
3129
use snowbridge_inbound_queue_primitives::EthereumLocationsConverterFor;
@@ -37,18 +35,18 @@ pub const USDT_ID: u32 = 1984;
3735

3836
frame_support::parameter_types! {
3937
pub AssetHubPolkadotAssetOwner: AccountId = Sr25519Keyring::Alice.to_account_id();
40-
pub PenpalATeleportableAssetLocation: xcm::v4::Location
41-
= xcm::v4::Location::new(1, [
42-
xcm::v4::Junction::Parachain(penpal_emulated_chain::PARA_ID_A),
43-
xcm::v4::Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
44-
xcm::v4::Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
38+
pub PenpalATeleportableAssetLocation: Location
39+
= Location::new(1, [
40+
Parachain(penpal_emulated_chain::PARA_ID_A),
41+
PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
42+
GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
4543
]
4644
);
47-
pub PenpalBTeleportableAssetLocation: xcm::v4::Location
48-
= xcm::v4::Location::new(1, [
49-
xcm::v4::Junction::Parachain(penpal_emulated_chain::PARA_ID_B),
50-
xcm::v4::Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
51-
xcm::v4::Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
45+
pub PenpalBTeleportableAssetLocation: Location
46+
= Location::new(1, [
47+
Parachain(penpal_emulated_chain::PARA_ID_B),
48+
PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
49+
GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
5250
]
5351
);
5452
pub PenpalASiblingSovereignAccount: AccountId = Sibling::from(penpal_emulated_chain::PARA_ID_A).into_account_truncating();
@@ -135,14 +133,9 @@ pub fn genesis() -> sp_core::storage::Storage {
135133
ED,
136134
),
137135
// Ether
138-
(EthLocationXcmV4::get(), EthereumSovereignAccount::get(), true, MIN_ETHER_BALANCE),
136+
(EthLocation::get(), EthereumSovereignAccount::get(), true, MIN_ETHER_BALANCE),
139137
// Weth
140-
(
141-
WethLocationXcmV4::get(),
142-
EthereumSovereignAccount::get(),
143-
true,
144-
MIN_ETHER_BALANCE,
145-
),
138+
(WethLocation::get(), EthereumSovereignAccount::get(), true, MIN_ETHER_BALANCE),
146139
],
147140
..Default::default()
148141
},

integration-tests/emulated/chains/parachains/assets/asset-hub-polkadot/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,5 @@ impl_accounts_helpers_for_parachain!(AssetHubPolkadot);
5757
impl_assert_events_helpers_for_parachain!(AssetHubPolkadot);
5858
impl_assets_helpers_for_system_parachain!(AssetHubPolkadot, Polkadot);
5959
impl_assets_helpers_for_parachain!(AssetHubPolkadot);
60-
impl_foreign_assets_helpers_for_parachain!(AssetHubPolkadot, xcm::v4::Location);
60+
impl_foreign_assets_helpers_for_parachain!(AssetHubPolkadot, xcm::latest::Location);
6161
impl_xcm_helpers_for_parachain!(AssetHubPolkadot);

integration-tests/emulated/helpers/src/common.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
pub mod snowbridge {
1717
use hex_literal::hex;
18+
use xcm::latest::prelude::*;
1819
use xcm_emulator::parameter_types;
1920

2021
// Weth (Wrapped Ether) contract address on Ethereum mainnet.
@@ -24,8 +25,8 @@ pub mod snowbridge {
2425
pub const MIN_ETHER_BALANCE: u128 = 15_000_000_000_000;
2526

2627
parameter_types! {
27-
pub EthereumNetworkXcmV4: xcm::v4::NetworkId = xcm::v4::NetworkId::Ethereum { chain_id: 1 };
28-
pub WethLocationXcmV4: xcm::v4::Location = xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(EthereumNetworkXcmV4::get()), xcm::v4::Junction::AccountKey20 { network: None, key: WETH }]);
29-
pub EthLocationXcmV4: xcm::v4::Location = xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(EthereumNetworkXcmV4::get())]);
28+
pub EthereumNetwork: NetworkId = Ethereum { chain_id: 1 };
29+
pub WethLocation: Location = Location::new(2, [GlobalConsensus(EthereumNetwork::get()), AccountKey20 { network: None, key: WETH }]);
30+
pub EthLocation: Location = Location::new(2, [GlobalConsensus(EthereumNetwork::get())]);
3031
}
3132
}

integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/hybrid_transfers.rs

Lines changed: 18 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
166166
let assets_owner = PenpalAssetOwner::get();
167167
// Foreign asset used: bridged DOT
168168
let foreign_amount_to_send = ASSET_HUB_KUSAMA_ED * 10_000_000;
169-
let dot_at_kusama_parachains = xcm::v4::Location::new(
170-
2,
171-
[xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)],
172-
);
169+
let dot_at_kusama_parachains = Location::new(2, [GlobalConsensus(Polkadot)]);
173170

174171
// Configure destination chain to trust AH as reserve of DOT
175172
PenpalA::execute_with(|| {
@@ -182,7 +179,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
182179
));
183180
});
184181
PenpalA::force_create_foreign_asset(
185-
dot_at_kusama_parachains.clone().try_into().unwrap(),
182+
dot_at_kusama_parachains.clone(),
186183
assets_owner.clone(),
187184
false,
188185
ASSET_MIN_BALANCE,
@@ -202,8 +199,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
202199
foreign_amount_to_send * 2,
203200
);
204201

205-
let dot_at_kusama_parachains_latest: Location =
206-
dot_at_kusama_parachains.clone().try_into().unwrap();
202+
let dot_at_kusama_parachains_latest: Location = dot_at_kusama_parachains.clone();
207203
// Assets to send
208204
let assets: Vec<Asset> = vec![
209205
(Parent, native_amount_to_send).into(),
@@ -239,10 +235,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
239235
});
240236
let receiver_dots_before = PenpalA::execute_with(|| {
241237
type ForeignAssets = <PenpalA as PenpalAPallet>::ForeignAssets;
242-
<ForeignAssets as Inspect<_>>::balance(
243-
dot_at_kusama_parachains.clone().try_into().unwrap(),
244-
&receiver,
245-
)
238+
<ForeignAssets as Inspect<_>>::balance(dot_at_kusama_parachains.clone(), &receiver)
246239
});
247240

248241
// Set assertions and dispatchables
@@ -263,10 +256,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
263256
});
264257
let receiver_dots_after = PenpalA::execute_with(|| {
265258
type ForeignAssets = <PenpalA as PenpalAPallet>::ForeignAssets;
266-
<ForeignAssets as Inspect<_>>::balance(
267-
dot_at_kusama_parachains.try_into().unwrap(),
268-
&receiver,
269-
)
259+
<ForeignAssets as Inspect<_>>::balance(dot_at_kusama_parachains, &receiver)
270260
});
271261

272262
// Sender's balance is reduced by amount sent plus delivery fees
@@ -300,10 +290,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() {
300290

301291
// Foreign asset used: bridged DOT
302292
let foreign_amount_to_send = ASSET_HUB_KUSAMA_ED * 10_000_000;
303-
let dot_at_kusama_parachains = xcm::v4::Location::new(
304-
2,
305-
[xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)],
306-
);
293+
let dot_at_kusama_parachains = Location::new(2, [GlobalConsensus(Polkadot)]);
307294

308295
// Configure destination chain to trust AH as reserve of DOT
309296
PenpalA::execute_with(|| {
@@ -316,7 +303,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() {
316303
));
317304
});
318305
PenpalA::force_create_foreign_asset(
319-
dot_at_kusama_parachains.clone().try_into().unwrap(),
306+
dot_at_kusama_parachains.clone(),
320307
assets_owner.clone(),
321308
false,
322309
ASSET_MIN_BALANCE,
@@ -339,7 +326,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() {
339326
);
340327
PenpalA::mint_foreign_asset(
341328
<PenpalA as Chain>::RuntimeOrigin::signed(assets_owner.clone()),
342-
dot_at_kusama_parachains.clone().try_into().unwrap(),
329+
dot_at_kusama_parachains.clone(),
343330
sender.clone(),
344331
foreign_amount_to_send * 2,
345332
);
@@ -358,8 +345,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() {
358345
foreign_amount_to_send * 2,
359346
);
360347

361-
let dot_at_kusama_parachains_latest: Location =
362-
dot_at_kusama_parachains.clone().try_into().unwrap();
348+
let dot_at_kusama_parachains_latest: Location = dot_at_kusama_parachains.clone();
363349
// Assets to send
364350
let assets: Vec<Asset> = vec![
365351
(Parent, native_amount_to_send).into(),
@@ -473,10 +459,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() {
473459
});
474460

475461
// Register DOT as foreign asset and transfer it around the Kusama ecosystem
476-
let dot_at_kusama_parachains = xcm::v4::Location::new(
477-
2,
478-
[xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)],
479-
);
462+
let dot_at_kusama_parachains = Location::new(2, [GlobalConsensus(Polkadot)]);
480463
AssetHubKusama::force_create_foreign_asset(
481464
dot_at_kusama_parachains.clone(),
482465
assets_owner.clone(),
@@ -485,14 +468,14 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() {
485468
vec![],
486469
);
487470
PenpalA::force_create_foreign_asset(
488-
dot_at_kusama_parachains.clone().try_into().unwrap(),
471+
dot_at_kusama_parachains.clone(),
489472
assets_owner.clone(),
490473
false,
491474
ASSET_MIN_BALANCE,
492475
vec![],
493476
);
494477
PenpalB::force_create_foreign_asset(
495-
dot_at_kusama_parachains.clone().try_into().unwrap(),
478+
dot_at_kusama_parachains.clone(),
496479
assets_owner.clone(),
497480
false,
498481
ASSET_MIN_BALANCE,
@@ -508,7 +491,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() {
508491
);
509492
PenpalA::mint_foreign_asset(
510493
<PenpalA as Chain>::RuntimeOrigin::signed(assets_owner.clone()),
511-
dot_at_kusama_parachains.clone().try_into().unwrap(),
494+
dot_at_kusama_parachains.clone(),
512495
sender.clone(),
513496
dot_to_send * 2,
514497
);
@@ -524,8 +507,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() {
524507
// Init values for Parachain Destination
525508
let receiver = PenpalBReceiver::get();
526509

527-
let dot_at_kusama_parachains_latest: Location =
528-
dot_at_kusama_parachains.clone().try_into().unwrap();
510+
let dot_at_kusama_parachains_latest: Location = dot_at_kusama_parachains.clone();
529511
// Assets to send
530512
let assets: Vec<Asset> = vec![
531513
(ksm_location.clone(), ksm_to_send).into(),
@@ -830,17 +812,11 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() {
830812
let sov_penpal_on_ah = AssetHubKusama::sovereign_account_id_of(penpal_a_as_seen_by_ah);
831813
let receiver = PenpalBReceiver::get();
832814
let fee_asset_item = 0;
833-
let usdt_location: xcm::v4::Location = (
834-
xcm::v4::Parent,
835-
xcm::v4::Junction::Parachain(1000),
836-
xcm::v4::Junction::PalletInstance(50),
837-
xcm::v4::Junction::GeneralIndex(1984),
838-
)
839-
.into();
840-
let usdt_location_ah: xcm::v4::Location =
841-
(xcm::v4::Junction::PalletInstance(50), xcm::v4::Junction::GeneralIndex(1984)).into();
815+
let usdt_location: Location =
816+
(Parent, Parachain(1000), PalletInstance(50), GeneralIndex(1984)).into();
817+
let usdt_location_ah: Location = (PalletInstance(50), GeneralIndex(1984)).into();
842818
let ksm_location = Location::parent();
843-
let usdt_location_latest: Location = usdt_location.clone().try_into().unwrap();
819+
let usdt_location_latest: Location = usdt_location.clone();
844820
let assets: Vec<Asset> = vec![(usdt_location_latest.clone(), amount_to_send).into()];
845821

846822
// Sender needs some ksm to pay for delivery fees.

integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/mod.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ macro_rules! create_pool_with_ksm_on {
4343
type RuntimeEvent = <$chain as Chain>::RuntimeEvent;
4444
let owner = $asset_owner;
4545
let signed_owner = <$chain as Chain>::RuntimeOrigin::signed(owner.clone());
46-
// AssetHubKusama has v4 asset ids but penpal has v5 asset ids.
47-
let ksm_location: xcm::v4::Location = xcm::v4::Parent.into();
46+
let ksm_location: xcm::latest::Location = Parent.into();
4847
if $is_foreign {
4948
assert_ok!(<$chain as [<$chain Pallet>]>::ForeignAssets::mint(
5049
signed_owner.clone(),
@@ -54,7 +53,7 @@ macro_rules! create_pool_with_ksm_on {
5453
));
5554
} else {
5655
let asset_id = match $asset_id.interior.last() {
57-
Some(xcm::v4::Junction::GeneralIndex(id)) => *id as u32,
56+
Some(Junction::GeneralIndex(id)) => *id as u32,
5857
_ => unreachable!(),
5958
};
6059
assert_ok!(<$chain as [<$chain Pallet>]>::Assets::mint(
@@ -67,7 +66,7 @@ macro_rules! create_pool_with_ksm_on {
6766

6867
assert_ok!(<$chain as [<$chain Pallet>]>::AssetConversion::create_pool(
6968
signed_owner.clone(),
70-
Box::new(ksm_location.clone().try_into().unwrap()),
69+
Box::new(ksm_location.clone()),
7170
Box::new($asset_id.clone().try_into().unwrap()),
7271
));
7372

integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/reserve_transfer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1110,7 +1110,7 @@ fn reserve_withdraw_from_untrusted_reserve_fails() {
11101110
]);
11111111
let result = <AssetHubKusama as AssetHubKusamaPallet>::PolkadotXcm::execute(
11121112
signed_origin,
1113-
bx!(xcm::VersionedXcm::V5(xcm)),
1113+
bx!(VersionedXcm::V5(xcm)),
11141114
Weight::MAX,
11151115
);
11161116
assert!(result.is_err());

integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/send.rs

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,11 @@ fn send_xcm_from_para_to_asset_hub_paying_fee_with_system_asset() {
3636
let para_sovereign_account = AssetHubKusama::sovereign_account_id_of(
3737
AssetHubKusama::sibling_location_of(PenpalA::para_id()),
3838
);
39-
let asset_location_on_penpal = xcm::v4::Location::new(
40-
0,
41-
[
42-
xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID),
43-
xcm::v4::Junction::GeneralIndex(ASSET_ID.into()),
44-
],
45-
);
46-
let foreign_asset_at_asset_hub =
47-
xcm::v4::Location::new(1, [xcm::v4::Junction::Parachain(PenpalA::para_id().into())])
48-
.appended_with(asset_location_on_penpal)
49-
.unwrap();
39+
let asset_location_on_penpal =
40+
Location::new(0, [PalletInstance(ASSETS_PALLET_ID), GeneralIndex(ASSET_ID.into())]);
41+
let foreign_asset_at_asset_hub = Location::new(1, [Parachain(PenpalA::para_id().into())])
42+
.appended_with(asset_location_on_penpal)
43+
.unwrap();
5044

5145
// Encoded `create_asset` call to be executed in AssetHub
5246
let call = AssetHubKusama::create_foreign_asset_call(
@@ -114,15 +108,10 @@ fn send_xcm_from_para_to_asset_hub_paying_fee_with_system_asset() {
114108
/// - Parachain should be able to create a new Asset at Asset Hub
115109
#[test]
116110
fn send_xcm_from_para_to_asset_hub_paying_fee_from_pool() {
117-
let asset_native: xcm::v4::Location =
118-
asset_hub_kusama_runtime::xcm_config::KsmLocation::get().try_into().unwrap();
119-
let asset_one = xcm::v4::Location {
111+
let asset_native: Location = asset_hub_kusama_runtime::xcm_config::KsmLocation::get();
112+
let asset_one = Location {
120113
parents: 0,
121-
interior: [
122-
xcm::v4::Junction::PalletInstance(ASSETS_PALLET_ID),
123-
xcm::v4::Junction::GeneralIndex(ASSET_ID.into()),
124-
]
125-
.into(),
114+
interior: [PalletInstance(ASSETS_PALLET_ID), GeneralIndex(ASSET_ID.into())].into(),
126115
};
127116
let penpal = AssetHubKusama::sovereign_account_id_of(AssetHubKusama::sibling_location_of(
128117
PenpalA::para_id(),

0 commit comments

Comments
 (0)