8000 Upgrade Polkadot and Kusama to XCM v5 by claravanstaden · Pull Request #753 · polkadot-fellows/runtimes · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Upgrade Polkadot and Kusama to XCM v5 #753

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 25 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
2c6fac1
asset hub xcm v5 upgrade
claravanstaden Jun 2, 2025
032df2e
upgrade kusama and fix tests
claravanstaden Jun 3, 2025
95e0c2c
adds migration
claravanstaden Jun 4, 2025
3fffdbd
adds migrations
8000 claravanstaden Jun 4, 2025
cf0287d
Merge branch 'main' into upgrade-to-xcm-v5
claravanstaden Jun 5, 2025
0f36235
fmt and clippy
claravanstaden Jun 5, 2025
a41adef
fix ksmlocationv5
claravanstaden Jun 5, 2025
8a0090d
add import
claravanstaden Jun 6, 2025
e590cb4
remove unused variables and changelog
claravanstaden Jun 9, 2025
78d6a65
Merge branch 'main' into upgrade-to-xcm-v5
claravanstaden Jun 9, 2025
d8f94a4
adds migration
claravanstaden Jun 9, 2025
20406dd
Merge remote-tracking branch 'origin/upgrade-to-xcm-v5' into upgrade-…
claravanstaden Jun 9, 2025
95b43fb
add log targets
claravanstaden Jun 9, 2025
84a219d
update comments
claravanstaden Jun 9, 2025
d5c93fc
Merge branch 'main' into upgrade-to-xcm-v5
claravanstaden Jun 10, 2025
a26ab62
use storage alias for foreign assets
claravanstaden Jun 10, 2025
88af01b
pr comments
claravanstaden Jun 11, 2025
d7c3696
fmt
claravanstaden Jun 11, 2025
e5a4a7e
fmt
claravanstaden Jun 11, 2025
1c6e79c
Merge branch 'main' into upgrade-to-xcm-v5
claravanstaden Jun 11, 2025
0e938f3
minor fixes
claravanstaden Jun 11, 2025
5cb6de8
Merge branch 'main' into upgrade-to-xcm-v5
claravanstaden Jun 13, 2025
df2cc4c
Merge branch 'main' into upgrade-to-xcm-v5
claravanstaden Jun 19, 2025
d99a919
merge damage
claravanstaden Jun 19, 2025
2f41bbf
Merge branch 'main' into upgrade-to-xcm-v5
claravanstaden Jun 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- [[#711](https://github.com/polkadot-fellows/runtimes/pull/711)] Pallet-broker: add extrinsic to remove a lease ([SDK stable2503 #7026](https://github.com/paritytech/polkadot-sdk/pull/7026)).
- [[#711](https://github.com/polkadot-fellows/runtimes/pull/711)] Pallet-broker: add extrinsic to remove an assignment ([SDK stable2503 #7080](https://github.com/paritytech/polkadot-sdk/pull/7080)).
- [[#711](https://github.com/polkadot-fellows/runtimes/pull/711)] Pallet-broker: add extrinsic to reserve a system core without having to wait two sale boundaries ([SDK stable2503 #4273](https://github.com/paritytech/polkadot-sdk/pull/4273)).

- [[#755](https://github.com/polkadot-fellows/runtimes/pull/755)] Added `pallet_revive` to Kusama AssetHub.
- [[#755](https://github.com/polkadot-fellows/runtimes/pull/755)] Added `pallet_revive` to Kusama AssetHub.

### Changed

Expand All @@ -34,8 +33,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- [[#711](https://github.com/polkadot-fellows/runtimes/pull/711)] Paras-registrar: Improve error reporting ([SDK stable2503 #6989](https://github.com/paritytech/polkadot-sdk/pull/6989)).
- [[#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)).
- [[#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)).

- [[#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).
- [[#753](https://github.com/polkadot-fellows/runtimes/pull/753)] Upgrades Polkadot and Kusama AssetHub to XCM v5. Adds a migration to check upgrade safety.
- [[#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).

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

Expand Down Expand Up @@ -606,4 +605,4 @@ Note: This release only affects the following runtimes and is not a full system
- Assets `destroy_accounts` releases the deposit
([paritytech/substrate#14443](https://github.com/paritytech/substrate/pull/14443))
- Update Polkadot Collectives to use `limited_teleport_assets` for automatic slash handling, as
`teleport_assets` is deprecated and caused a failing integration test. ([polkadot-fellows/runtimes#46](https://github.com/polkadot-fellows/runtimes/pull/46))
`teleport_assets` is deprecated and caused a failing integration test. ([polkadot-fellows/runtimes#46](https://github.com/polkadot-fellows/runtimes/pull/46))
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,7 @@ use emulated_integration_tests_common::{
SAFE_XCM_VERSION,
};
use frame_support::sp_runtime::traits::AccountIdConversion;
use integration_tests_helpers::common::snowbridge::{
EthLocationXcmV4, WethLocationXcmV4, MIN_ETHER_BALANCE,
};
use integration_tests_helpers::common::snowbridge::{EthLocation, WethLocation, MIN_ETHER_BALANCE};
use parachains_common::{AccountId, Balance};
use polkadot_parachain_primitives::primitives::Sibling;
use xcm::prelude::*;
Expand All @@ -36,11 +34,11 @@ pub const USDT_ID: u32 = 1984;

frame_support::parameter_types! {
pub AssetHubKusamaAssetOwner: AccountId = Keyring::Alice.to_account_id();
pub PenpalATeleportableAssetLocation: xcm::v4::Location
= xcm::v4::Location::new(1, [
xcm::v4::Junction::Parachain(penpal_emulated_chain::PARA_ID_A),
xcm::v4::Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
xcm::v4::Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
pub PenpalATeleportableAssetLocation: Location
= Location::new(1, [
Parachain(penpal_emulated_chain::PARA_ID_A),
PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
]
);
pub UniversalLocation: InteriorLocation = [GlobalConsensus(Kusama), Parachain(PARA_ID)].into();
Expand Down Expand Up @@ -106,14 +104,14 @@ pub fn genesis() -> sp_core::storage::Storage {
),
// Ether
(
EthLocationXcmV4::get(),
EthLocation::get(),
AssetHubPolkadotSovereignAccount::get(),
true,
MIN_ETHER_BALANCE,
),
// Weth
(
WethLocationXcmV4::get(),
WethLocation::get(),
AssetHubPolkadotSovereignAccount::get(),
true,
MIN_ETHER_BALANCE,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,5 @@ impl_accounts_helpers_for_parachain!(AssetHubKusama);
impl_assert_events_helpers_for_parachain!(AssetHubKusama);
impl_assets_helpers_for_system_parachain!(AssetHubKusama, Kusama);
impl_assets_helpers_for_parachain!(AssetHubKusama);
impl_foreign_assets_helpers_for_parachain!(AssetHubKusama, xcm::v4::Location);
impl_foreign_assets_helpers_for_parachain!(AssetHubKusama, xcm::v5::Location);
impl_xcm_helpers_for_parachain!(AssetHubKusama);
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@ use emulated_integration_tests_common::{
SAFE_XCM_VERSION,
};
use frame_support::sp_runtime::traits::AccountIdConversion;
use integration_tests_helpers::common::snowbridge::{
EthLocationXcmV4, WethLocationXcmV4, MIN_ETHER_BALANCE,
};
use integration_tests_helpers::common::snowbridge::{EthLocation, WethLocation, MIN_ETHER_BALANCE};
use parachains_common::{AccountId, Balance};
use polkadot_parachain_primitives::primitives::Sibling;
use snowbridge_inbound_queue_primitives::EthereumLocationsConverterFor;
Expand All @@ -37,18 +35,18 @@ pub const USDT_ID: u32 = 1984;

frame_support::parameter_types! {
pub AssetHubPolkadotAssetOwner: AccountId = Sr25519Keyring::Alice.to_account_id();
pub PenpalATeleportableAssetLocation: xcm::v4::Location
= xcm::v4::Location::new(1, [
xcm::v4::Junction::Parachain(penpal_emulated_chain::PARA_ID_A),
xcm::v4::Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
xcm::v4::Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
pub PenpalATeleportableAssetLocation: Location
= Location::new(1, [
Parachain(penpal_emulated_chain::PARA_ID_A),
PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
]
);
pub PenpalBTeleportableAssetLocation: xcm::v4::Location
= xcm::v4::Location::new(1, [
xcm::v4::Junction::Parachain(penpal_emulated_chain::PARA_ID_B),
xcm::v4::Junction::PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
xcm::v4::Junction::GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
pub PenpalBTeleportableAssetLocation: Location
= Location::new(1, [
Parachain(penpal_emulated_chain::PARA_ID_B),
PalletInstance(penpal_emulated_chain::ASSETS_PALLET_ID),
GeneralIndex(penpal_emulated_chain::TELEPORTABLE_ASSET_ID.into()),
]
);
pub PenpalASiblingSovereignAccount: AccountId = Sibling::from(penpal_emulated_chain::PARA_ID_A).into_account_truncating();
Expand Down Expand Up @@ -135,14 +133,9 @@ pub fn genesis() -> sp_core::storage::Storage {
ED,
),
// Ether
(EthLocationXcmV4::get(), EthereumSovereignAccount::get(), true, MIN_ETHER_BALANCE),
(EthLocation::get(), EthereumSovereignAccount::get(), true, MIN_ETHER_BALANCE),
// Weth
(
WethLocationXcmV4::get(),
EthereumSovereignAccount::get(),
true,
MIN_ETHER_BALANCE,
),
(WethLocation::get(), EthereumSovereignAccount::get(), true, MIN_ETHER_BALANCE),
],
..Default::default()
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,5 @@ impl_accounts_helpers_for_parachain!(AssetHubPolkadot);
impl_assert_events_helpers_for_parachain!(AssetHubPolkadot);
impl_assets_helpers_for_system_parachain!(AssetHubPolkadot, Polkadot);
impl_assets_helpers_for_parachain!(AssetHubPolkadot);
impl_foreign_assets_helpers_for_parachain!(AssetHubPolkadot, xcm::v4::Location);
impl_foreign_assets_helpers_for_parachain!(AssetHubPolkadot, xcm::v5::Location);
impl_xcm_helpers_for_parachain!(AssetHubPolkadot);
7 changes: 4 additions & 3 deletions integration-tests/emulated/helpers/src/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

pub mod snowbridge {
use hex_literal::hex;
use xcm::latest::prelude::*;
use xcm_emulator::parameter_types;

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

parameter_types! {
pub EthereumNetworkXcmV4: xcm::v4::NetworkId = xcm::v4::NetworkId::Ethereum { chain_id: 1 };
pub WethLocationXcmV4: xcm::v4::Location = xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(EthereumNetworkXcmV4::get()), xcm::v4::Junction::AccountKey20 { network: None, key: WETH }]);
pub EthLocationXcmV4: xcm::v4::Location = xcm::v4::Location::new(2, [xcm::v4::Junction::GlobalConsensus(EthereumNetworkXcmV4::get())]);
pub EthereumNetwork: NetworkId = Ethereum { chain_id: 1 };
pub WethLocation: Location = Location::new(2, [GlobalConsensus(EthereumNetwork::get()), AccountKey20 { network: None, key: WETH }]);
pub EthLocation: Location = Location::new(2, [GlobalConsensus(EthereumNetwork::get())]);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -166,10 +166,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
let assets_owner = PenpalAssetOwner::get();
// Foreign asset used: bridged DOT
let foreign_amount_to_send = ASSET_HUB_KUSAMA_ED * 10_000_000;
let dot_at_kusama_parachains = xcm::v4::Location::new(
2,
[xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)],
);
let dot_at_kusama_parachains = Location::new(2, [GlobalConsensus(Polkadot)]);

// Configure destination chain to trust AH as reserve of DOT
PenpalA::execute_with(|| {
Expand All @@ -182,7 +179,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
));
});
PenpalA::force_create_foreign_asset(
dot_at_kusama_parachains.clone().try_into().unwrap(),
dot_at_kusama_parachains.clone(),
assets_owner.clone(),
false,
ASSET_MIN_BALANCE,
Expand All @@ -202,8 +199,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
foreign_amount_to_send * 2,
);

let dot_at_kusama_parachains_latest: Location =
dot_at_kusama_parachains.clone().try_into().unwrap();
let dot_at_kusama_parachains_latest: Location = dot_at_kusama_parachains.clone();
// Assets to send
let assets: Vec<Asset> = vec![
(Parent, native_amount_to_send).into(),
Expand Down Expand Up @@ -239,10 +235,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
});
let receiver_dots_before = PenpalA::execute_with(|| {
type ForeignAssets = <PenpalA as PenpalAPallet>::ForeignAssets;
<ForeignAssets as Inspect<_>>::balance(
dot_at_kusama_parachains.clone().try_into().unwrap(),
&receiver,
)
<ForeignAssets as Inspect<_>>::balance(dot_at_kusama_parachains.clone(), &receiver)
});

// Set assertions and dispatchables
Expand All @@ -263,10 +256,7 @@ fn transfer_foreign_assets_from_asset_hub_to_para() {
});
let receiver_dots_after = PenpalA::execute_with(|| {
type ForeignAssets = <PenpalA as PenpalAPallet>::ForeignAssets;
<ForeignAssets as Inspect<_>>::balance(
dot_at_kusama_parachains.try_into().unwrap(),
&receiver,
)
<ForeignAssets as Inspect<_>>::balance(dot_at_kusama_parachains, &receiver)
});

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

// Foreign asset used: bridged DOT
let foreign_amount_to_send = ASSET_HUB_KUSAMA_ED * 10_000_000;
let dot_at_kusama_parachains = xcm::v4::Location::new(
2,
[xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)],
);
let dot_at_kusama_parachains = Location::new(2, [GlobalConsensus(Polkadot)]);

// Configure destination chain to trust AH as reserve of DOT
PenpalA::execute_with(|| {
Expand All @@ -316,7 +303,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() {
));
});
PenpalA::force_create_foreign_asset(
dot_at_kusama_parachains.clone().try_into().unwrap(),
dot_at_kusama_parachains.clone(),
assets_owner.clone(),
false,
ASSET_MIN_BALANCE,
Expand All @@ -339,7 +326,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() {
);
PenpalA::mint_foreign_asset(
<PenpalA as Chain>::RuntimeOrigin::signed(assets_owner.clone()),
dot_at_kusama_parachains.clone().try_into().unwrap(),
dot_at_kusama_parachains.clone(),
sender.clone(),
foreign_amount_to_send * 2,
);
Expand All @@ -358,8 +345,7 @@ fn transfer_foreign_assets_from_para_to_asset_hub() {
foreign_amount_to_send * 2,
);

let dot_at_kusama_parachains_latest: Location =
dot_at_kusama_parachains.clone().try_into().unwrap();
let dot_at_kusama_parachains_latest: Location = dot_at_kusama_parachains.clone();
// Assets to send
let assets: Vec<Asset> = vec![
(Parent, native_amount_to_send).into(),
Expand Down Expand Up @@ -473,10 +459,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() {
});

// Register DOT as foreign asset and transfer it around the Kusama ecosystem
let dot_at_kusama_parachains = xcm::v4::Location::new(
2,
[xcm::v4::Junction::GlobalConsensus(xcm::v4::NetworkId::Polkadot)],
);
let dot_at_kusama_parachains = Location::new(2, [GlobalConsensus(Polkadot)]);
AssetHubKusama::force_create_foreign_asset(
dot_at_kusama_parachains.clone(),
assets_owner.clone(),
Expand All @@ -485,14 +468,14 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() {
vec![],
);
PenpalA::force_create_foreign_asset(
dot_at_kusama_parachains.clone().try_into().unwrap(),
dot_at_kusama_parachains.clone(),
assets_owner.clone(),
false,
ASSET_MIN_BALANCE,
vec![],
);
PenpalB::force_create_foreign_asset(
dot_at_kusama_parachains.clone().try_into().unwrap(),
dot_at_kusama_parachains.clone(),
assets_owner.clone(),
false,
ASSET_MIN_BALANCE,
Expand All @@ -508,7 +491,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() {
);
PenpalA::mint_foreign_asset(
<PenpalA as Chain>::RuntimeOrigin::signed(assets_owner.clone()),
dot_at_kusama_parachains.clone().try_into().unwrap(),
dot_at_kusama_parachains.clone(),
sender.clone(),
dot_to_send * 2,
);
Expand All @@ -524,8 +507,7 @@ fn transfer_foreign_assets_from_para_to_para_through_asset_hub() {
// Init values for Parachain Destination
let receiver = PenpalBReceiver::get();

let dot_at_kusama_parachains_latest: Location =
dot_at_kusama_parachains.clone().try_into().unwrap();
let dot_at_kusama_parachains_latest: Location = dot_at_kusama_parachains.clone();
// Assets to send
let assets: Vec<Asset> = vec![
(ksm_location.clone(), ksm_to_send).into(),
Expand Down Expand Up @@ -830,17 +812,11 @@ fn usdt_only_transfer_from_para_to_para_through_asset_hub() {
let sov_penpal_on_ah = AssetHubKusama::sovereign_account_id_of(penpal_a_as_seen_by_ah);
let receiver = PenpalBReceiver::get();
let fee_asset_item = 0;
let usdt_location: xcm::v4::Location = (
xcm::v4::Parent,
xcm::v4::Junction::Parachain(1000),
xcm::v4::Junction::PalletInstance(50),
xcm::v4::Junction::GeneralIndex(1984),
)
.into();
let usdt_location_ah: xcm::v4::Location =
(xcm::v4::Junction::PalletInstance(50), xcm::v4::Junction::GeneralIndex(1984)).into();
let usdt_location: Location =
(Parent, Parachain(1000), PalletInstance(50), GeneralIndex(1984)).into();
let usdt_location_ah: Location = (PalletInstance(50), GeneralIndex(1984)).into();
let ksm_location = Location::parent();
let usdt_location_latest: Location = usdt_location.clone().try_into().unwrap();
let usdt_location_latest: Location = usdt_location.clone();
let assets: Vec<Asset> = vec![(usdt_location_latest.clone(), amount_to_send).into()];

// Sender needs some ksm to pay for delivery fees.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@ macro_rules! create_pool_with_ksm_on {
type RuntimeEvent = <$chain as Chain>::RuntimeEvent;
let owner = $asset_owner;
let signed_owner = <$chain as Chain>::RuntimeOrigin::signed(owner.clone());
// AssetHubKusama has v4 asset ids but penpal has v5 asset ids.
let ksm_location: xcm::v4::Location = xcm::v4::Parent.into();
let ksm_location: xcm::latest::Location = Parent.into();
if $is_foreign {
assert_ok!(<$chain as [<$chain Pallet>]>::ForeignAssets::mint(
signed_owner.clone(),
Expand All @@ -54,7 +53,7 @@ macro_rules! create_pool_with_ksm_on {
));
} else {
let asset_id = match $asset_id.interior.last() {
Some(xcm::v4::Junction::GeneralIndex(id)) => *id as u32,
Some(Junction::GeneralIndex(id)) => *id as u32,
_ => unreachable!(),
};
assert_ok!(<$chain as [<$chain Pallet>]>::Assets::mint(
Expand All @@ -67,7 +66,7 @@ macro_rules! create_pool_with_ksm_on {

assert_ok!(<$chain as [<$chain Pallet>]>::AssetConversion::create_pool(
signed_owner.clone(),
Box::new(ksm_location.clone().try_into().unwrap()),
Box::new(ksm_location.clone()),
Box::new($asset_id.clone().try_into().unwrap()),
));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1110,7 +1110,7 @@ fn reserve_withdraw_from_untrusted_reserve_fails() {
]);
let result = <AssetHubKusama as AssetHubKusamaPallet>::PolkadotXcm::execute(
signed_origin,
bx!(xcm::VersionedXcm::V5(xcm)),
bx!(VersionedXcm::V5(xcm)),
Weight::MAX,
);
assert!(result.is_err());
Expand Down
Loading
Loading
0