mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-17 23:01:01 +00:00
add statemine emulator tests (#2630)
* fix typo * statemine tests * fix statemine tests * cargo fmt, update readme
This commit is contained in:
Generated
+26
@@ -13529,6 +13529,32 @@ version = "1.2.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "statemine-it"
|
||||||
|
version = "1.0.0"
|
||||||
|
dependencies = [
|
||||||
|
"frame-support",
|
||||||
|
"frame-system",
|
||||||
|
"integration-tests-common",
|
||||||
|
"pallet-assets",
|
||||||
|
"pallet-balances",
|
||||||
|
"pallet-xcm",
|
||||||
|
"parachains-common",
|
||||||
|
"parity-scale-codec",
|
||||||
|
"penpal-runtime",
|
||||||
|
"polkadot-core-primitives",
|
||||||
|
"polkadot-parachain",
|
||||||
|
"polkadot-runtime",
|
||||||
|
"polkadot-runtime-parachains",
|
||||||
|
"sp-core",
|
||||||
|
"sp-runtime",
|
||||||
|
"sp-weights",
|
||||||
|
"statemine-runtime",
|
||||||
|
"xcm",
|
||||||
|
"xcm-emulator",
|
||||||
|
"xcm-executor",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "statemine-runtime"
|
name = "statemine-runtime"
|
||||||
version = "2.0.0"
|
version = "2.0.0"
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ members = [
|
|||||||
"parachains/runtimes/glutton/glutton-kusama",
|
"parachains/runtimes/glutton/glutton-kusama",
|
||||||
"parachains/runtimes/testing/penpal",
|
"parachains/runtimes/testing/penpal",
|
||||||
"parachains/integration-tests/emulated/common",
|
"parachains/integration-tests/emulated/common",
|
||||||
|
"parachains/integration-tests/emulated/assets/statemine",
|
||||||
"parachains/integration-tests/emulated/assets/statemint",
|
"parachains/integration-tests/emulated/assets/statemint",
|
||||||
"test/client",
|
"test/client",
|
||||||
"test/relay-sproof-builder",
|
"test/relay-sproof-builder",
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
[package]
|
||||||
|
name = "statemine-it"
|
||||||
|
version = "1.0.0"
|
||||||
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
edition = "2021"
|
||||||
|
description = "Statemine parachain runtime integration tests with xcm-emulator"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false }
|
||||||
|
|
||||||
|
# Substrate
|
||||||
|
sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||||
|
frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||||
|
frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||||
|
sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||||
|
sp-weights = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||||
|
pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||||
|
pallet-assets = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||||
|
|
||||||
|
# Polkadot
|
||||||
|
polkadot-core-primitives = { default-features = false, git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
|
polkadot-parachain = { default-features = false, git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
|
polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
|
polkadot-runtime = { git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
|
xcm = { default-features = false, git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
|
xcm-executor = { default-features = false, git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
|
pallet-xcm = { default-features = false, git = "https://github.com/paritytech/polkadot", branch = "master" }
|
||||||
|
|
||||||
|
# Cumulus
|
||||||
|
parachains-common = { path = "../../../../common" }
|
||||||
|
penpal-runtime = { path = "../../../../runtimes/testing/penpal" }
|
||||||
|
statemine-runtime = { path = "../../../../runtimes/assets/statemine" }
|
||||||
|
|
||||||
|
# Local
|
||||||
|
xcm-emulator = { default-features = false, path = "../../../../../xcm/xcm-emulator" }
|
||||||
|
integration-tests-common = { default-features = false, path = "../../common" }
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
pub use codec::Encode;
|
||||||
|
pub use frame_support::{
|
||||||
|
assert_ok, instances::Instance1, pallet_prelude::Weight, traits::fungibles::Inspect,
|
||||||
|
};
|
||||||
|
pub use integration_tests_common::{
|
||||||
|
constants::{
|
||||||
|
accounts::{ALICE, BOB},
|
||||||
|
kusama::ED as KUSAMA_ED,
|
||||||
|
PROOF_SIZE_THRESHOLD, REF_TIME_THRESHOLD, XCM_V3,
|
||||||
|
},
|
||||||
|
AccountId, BHKusama, BHKusamaPallet, BHKusamaReceiver, BHKusamaSender, BHPolkadot,
|
||||||
|
BHPolkadotPallet, BHPolkadotReceiver, BHPolkadotSender, Collectives, CollectivesPallet,
|
||||||
|
CollectivesReceiver, CollectivesSender, Kusama, KusamaMockNet, KusamaPallet, KusamaReceiver,
|
||||||
|
KusamaSender, PenpalKusama, PenpalKusamaReceiver, PenpalKusamaSender, PenpalPolkadot,
|
||||||
|
PenpalPolkadotReceiver, PenpalPolkadotSender, Polkadot, PolkadotMockNet, PolkadotPallet,
|
||||||
|
PolkadotReceiver, PolkadotSender, Statemine, StateminePallet, StatemineReceiver,
|
||||||
|
StatemineSender,
|
||||||
|
};
|
||||||
|
pub use polkadot_core_primitives::InboundDownwardMessage;
|
||||||
|
pub use xcm::{
|
||||||
|
prelude::*,
|
||||||
|
v3::{Error, NetworkId::Kusama as KusamaId},
|
||||||
|
};
|
||||||
|
pub use xcm_emulator::{
|
||||||
|
assert_expected_events, bx, cumulus_pallet_dmp_queue, helpers::weight_within_threshold,
|
||||||
|
Parachain as Para, RelayChain as Relay, TestExt,
|
||||||
|
};
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests;
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
mod reserve_transfer;
|
||||||
|
mod teleport;
|
||||||
|
mod transact;
|
||||||
+63
@@ -0,0 +1,63 @@
|
|||||||
|
use crate::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn reserve_transfer_native_asset_from_relay_to_assets() {
|
||||||
|
// Init tests variables
|
||||||
|
let amount = KUSAMA_ED * 1000;
|
||||||
|
let relay_sender_balance_before = Kusama::account_data_of(KusamaSender::get()).free;
|
||||||
|
let para_receiver_balance_before = Statemine::account_data_of(StatemineReceiver::get()).free;
|
||||||
|
|
||||||
|
let origin = <Kusama as Relay>::RuntimeOrigin::signed(KusamaSender::get());
|
||||||
|
let assets_para_destination: VersionedMultiLocation =
|
||||||
|
Kusama::child_location_of(Statemine::para_id()).into();
|
||||||
|
let beneficiary: VersionedMultiLocation =
|
||||||
|
AccountId32 { network: None, id: StatemineReceiver::get().into() }.into();
|
||||||
|
let native_assets: VersionedMultiAssets = (Here, amount).into();
|
||||||
|
let fee_asset_item = 0;
|
||||||
|
let weight_limit = WeightLimit::Unlimited;
|
||||||
|
|
||||||
|
// Send XCM message from Relay Chain
|
||||||
|
Kusama::execute_with(|| {
|
||||||
|
assert_ok!(<Kusama as KusamaPallet>::XcmPallet::limited_reserve_transfer_assets(
|
||||||
|
origin,
|
||||||
|
bx!(assets_para_destination),
|
||||||
|
bx!(beneficiary),
|
||||||
|
bx!(native_assets),
|
||||||
|
fee_asset_item,
|
||||||
|
weight_limit,
|
||||||
|
));
|
||||||
|
|
||||||
|
type RuntimeEvent = <Kusama as Relay>::RuntimeEvent;
|
||||||
|
|
||||||
|
assert_expected_events!(
|
||||||
|
Kusama,
|
||||||
|
vec![
|
||||||
|
RuntimeEvent::XcmPallet(pallet_xcm::Event::Attempted(Outcome::Complete(weight))) => {
|
||||||
|
weight: weight_within_threshold((REF_TIME_THRESHOLD, PROOF_SIZE_THRESHOLD), Weight::from_parts(754_244_000, 0), *weight),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Receive XCM message in Assets Parachain
|
||||||
|
Statemine::execute_with(|| {
|
||||||
|
type RuntimeEvent = <Statemine as Para>::RuntimeEvent;
|
||||||
|
|
||||||
|
assert_expected_events!(
|
||||||
|
Statemine,
|
||||||
|
vec![
|
||||||
|
RuntimeEvent::DmpQueue(cumulus_pallet_dmp_queue::Event::ExecutedDownward {
|
||||||
|
outcome: Outcome::Incomplete(_, Error::UntrustedReserveLocation),
|
||||||
|
..
|
||||||
|
}) => {},
|
||||||
|
]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Check if balances are updated accordingly in Relay Chain and Assets Parachain
|
||||||
|
let relay_sender_balance_after = Kusama::account_data_of(KusamaSender::get()).free;
|
||||||
|
let para_sender_balance_after = Statemine::account_data_of(StatemineReceiver::get()).free;
|
||||||
|
|
||||||
|
assert_eq!(relay_sender_balance_before - amount, relay_sender_balance_after);
|
||||||
|
assert_eq!(para_sender_balance_after, para_receiver_balance_before);
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
use crate::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn teleport_native_assets_from_relay_to_assets_para() {
|
||||||
|
// Init tests variables
|
||||||
|
let amount = KUSAMA_ED * 1000;
|
||||||
|
let relay_sender_balance_before = Kusama::account_data_of(KusamaSender::get()).free;
|
||||||
|
let para_receiver_balance_before = Statemine::account_data_of(StatemineReceiver::get()).free;
|
||||||
|
|
||||||
|
let origin = <Kusama as Relay>::RuntimeOrigin::signed(KusamaSender::get());
|
||||||
|
let assets_para_destination: VersionedMultiLocation =
|
||||||
|
Kusama::child_location_of(Statemine::para_id()).into();
|
||||||
|
let beneficiary: VersionedMultiLocation =
|
||||||
|
AccountId32 { network: None, id: StatemineReceiver::get().into() }.into();
|
||||||
|
let native_assets: VersionedMultiAssets = (Here, amount).into();
|
||||||
|
let fee_asset_item = 0;
|
||||||
|
let weight_limit = WeightLimit::Unlimited;
|
||||||
|
|
||||||
|
// Send XCM message from Relay Chain
|
||||||
|
Kusama::execute_with(|| {
|
||||||
|
assert_ok!(<Kusama as KusamaPallet>::XcmPallet::limited_teleport_assets(
|
||||||
|
origin,
|
||||||
|
bx!(assets_para_destination),
|
||||||
|
bx!(beneficiary),
|
||||||
|
bx!(native_assets),
|
||||||
|
fee_asset_item,
|
||||||
|
weight_limit,
|
||||||
|
));
|
||||||
|
|
||||||
|
type RuntimeEvent = <Kusama as Relay>::RuntimeEvent;
|
||||||
|
|
||||||
|
assert_expected_events!(
|
||||||
|
Kusama,
|
||||||
|
vec![
|
||||||
|
RuntimeEvent::XcmPallet(pallet_xcm::Event::Attempted(Outcome::Complete { .. })) => {},
|
||||||
|
]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Receive XCM message in Assets Parachain
|
||||||
|
Statemine::execute_with(|| {
|
||||||
|
type RuntimeEvent = <Statemine as Para>::RuntimeEvent;
|
||||||
|
|
||||||
|
assert_expected_events!(
|
||||||
|
Statemine,
|
||||||
|
vec![
|
||||||
|
RuntimeEvent::Balances(pallet_balances::Event::Deposit { who, .. }) => {
|
||||||
|
who: *who == StatemineReceiver::get().into(),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Check if balances are updated accordingly in Relay Chain and Assets Parachain
|
||||||
|
let relay_sender_balance_after = Kusama::account_data_of(KusamaSender::get()).free;
|
||||||
|
let para_sender_balance_after = Statemine::account_data_of(StatemineReceiver::get()).free;
|
||||||
|
|
||||||
|
assert_eq!(relay_sender_balance_before - amount, relay_sender_balance_after);
|
||||||
|
assert!(para_sender_balance_after > para_receiver_balance_before);
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
use crate::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn transact_sudo_from_relay_to_assets_para() {
|
||||||
|
// Init tests variables
|
||||||
|
// Call to be executed in Assets Parachain
|
||||||
|
const ASSET_ID: u32 = 1;
|
||||||
|
|
||||||
|
let call = <Statemine as Para>::RuntimeCall::Assets(pallet_assets::Call::<
|
||||||
|
<Statemine as Para>::Runtime,
|
||||||
|
Instance1,
|
||||||
|
>::force_create {
|
||||||
|
id: ASSET_ID.into(),
|
||||||
|
is_sufficient: true,
|
||||||
|
min_balance: 1000,
|
||||||
|
owner: StatemineSender::get().into(),
|
||||||
|
})
|
||||||
|
.encode()
|
||||||
|
.into();
|
||||||
|
|
||||||
|
// XcmPallet send arguments
|
||||||
|
let sudo_origin = <Kusama as Relay>::RuntimeOrigin::root();
|
||||||
|
let assets_para_destination: VersionedMultiLocation =
|
||||||
|
Kusama::child_location_of(Statemine::para_id()).into();
|
||||||
|
|
||||||
|
let weight_limit = WeightLimit::Unlimited;
|
||||||
|
let require_weight_at_most = Weight::from_parts(1000000000, 200000);
|
||||||
|
let origin_kind = OriginKind::Superuser;
|
||||||
|
let check_origin = None;
|
||||||
|
|
||||||
|
let xcm = VersionedXcm::from(Xcm(vec![
|
||||||
|
UnpaidExecution { weight_limit, check_origin },
|
||||||
|
Transact { require_weight_at_most, origin_kind, call },
|
||||||
|
]));
|
||||||
|
|
||||||
|
// Send XCM message from Relay Chain
|
||||||
|
Kusama::execute_with(|| {
|
||||||
|
assert_ok!(<Kusama as KusamaPallet>::XcmPallet::send(
|
||||||
|
sudo_origin,
|
||||||
|
bx!(assets_para_destination),
|
||||||
|
bx!(xcm),
|
||||||
|
));
|
||||||
|
|
||||||
|
type RuntimeEvent = <Kusama as Relay>::RuntimeEvent;
|
||||||
|
|
||||||
|
assert_expected_events!(
|
||||||
|
Kusama,
|
||||||
|
vec![
|
||||||
|
RuntimeEvent::XcmPallet(pallet_xcm::Event::Sent { .. }) => {},
|
||||||
|
]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Receive XCM message in Assets Parachain
|
||||||
|
Statemine::execute_with(|| {
|
||||||
|
assert!(<Statemine as StateminePallet>::Assets::asset_exists(ASSET_ID));
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -161,7 +161,6 @@ pub mod polkadot {
|
|||||||
.map(|k| (k, ED * 4096))
|
.map(|k| (k, ED * 4096))
|
||||||
.collect(),
|
.collect(),
|
||||||
},
|
},
|
||||||
indices: polkadot_runtime::IndicesConfig { indices: vec![] },
|
|
||||||
session: polkadot_runtime::SessionConfig {
|
session: polkadot_runtime::SessionConfig {
|
||||||
keys: validators::initial_authorities()
|
keys: validators::initial_authorities()
|
||||||
.iter()
|
.iter()
|
||||||
@@ -214,7 +213,9 @@ pub mod polkadot {
|
|||||||
pub mod kusama {
|
pub mod kusama {
|
||||||
use super::*;
|
use super::*;
|
||||||
pub const ED: Balance = kusama_runtime_constants::currency::EXISTENTIAL_DEPOSIT;
|
pub const ED: Balance = kusama_runtime_constants::currency::EXISTENTIAL_DEPOSIT;
|
||||||
const STASH: u128 = 100 * kusama_runtime_constants::currency::UNITS;
|
use kusama_runtime_constants::currency::UNITS as KSM;
|
||||||
|
const ENDOWMENT: u128 = 1_000_000 * KSM;
|
||||||
|
const STASH: u128 = 100 * KSM;
|
||||||
|
|
||||||
pub fn get_host_config() -> HostConfiguration<BlockNumber> {
|
pub fn get_host_config() -> HostConfiguration<BlockNumber> {
|
||||||
HostConfiguration {
|
HostConfiguration {
|
||||||
@@ -253,11 +254,9 @@ pub mod kusama {
|
|||||||
balances: kusama_runtime::BalancesConfig {
|
balances: kusama_runtime::BalancesConfig {
|
||||||
balances: accounts::init_balances()
|
balances: accounts::init_balances()
|
||||||
.iter()
|
.iter()
|
||||||
.cloned()
|
.map(|k: &AccountId| (k.clone(), ENDOWMENT))
|
||||||
.map(|k| (k, ED * 4096))
|
|
||||||
.collect(),
|
.collect(),
|
||||||
},
|
},
|
||||||
indices: kusama_runtime::IndicesConfig { indices: vec![] },
|
|
||||||
session: kusama_runtime::SessionConfig {
|
session: kusama_runtime::SessionConfig {
|
||||||
keys: validators::initial_authorities()
|
keys: validators::initial_authorities()
|
||||||
.iter()
|
.iter()
|
||||||
@@ -278,8 +277,8 @@ pub mod kusama {
|
|||||||
.collect::<Vec<_>>(),
|
.collect::<Vec<_>>(),
|
||||||
},
|
},
|
||||||
staking: kusama_runtime::StakingConfig {
|
staking: kusama_runtime::StakingConfig {
|
||||||
minimum_validator_count: 1,
|
|
||||||
validator_count: validators::initial_authorities().len() as u32,
|
validator_count: validators::initial_authorities().len() as u32,
|
||||||
|
minimum_validator_count: 1,
|
||||||
stakers: validators::initial_authorities()
|
stakers: validators::initial_authorities()
|
||||||
.iter()
|
.iter()
|
||||||
.map(|x| {
|
.map(|x| {
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ decl_test_relay_chains! {
|
|||||||
runtime = {
|
runtime = {
|
||||||
Runtime: kusama_runtime::Runtime,
|
Runtime: kusama_runtime::Runtime,
|
||||||
RuntimeOrigin: kusama_runtime::RuntimeOrigin,
|
RuntimeOrigin: kusama_runtime::RuntimeOrigin,
|
||||||
RuntimeCall: polkadot_runtime::RuntimeCall,
|
RuntimeCall: kusama_runtime::RuntimeCall,
|
||||||
RuntimeEvent: kusama_runtime::RuntimeEvent,
|
RuntimeEvent: kusama_runtime::RuntimeEvent,
|
||||||
MessageQueue: polkadot_runtime::MessageQueue,
|
MessageQueue: kusama_runtime::MessageQueue,
|
||||||
XcmConfig: kusama_runtime::xcm_config::XcmConfig,
|
XcmConfig: kusama_runtime::xcm_config::XcmConfig,
|
||||||
SovereignAccountOf: kusama_runtime::xcm_config::SovereignAccountOf,
|
SovereignAccountOf: kusama_runtime::xcm_config::SovereignAccountOf,
|
||||||
System: kusama_runtime::System,
|
System: kusama_runtime::System,
|
||||||
@@ -83,7 +83,7 @@ decl_test_parachains! {
|
|||||||
runtime = {
|
runtime = {
|
||||||
Runtime: penpal_runtime::Runtime,
|
Runtime: penpal_runtime::Runtime,
|
||||||
RuntimeOrigin: penpal_runtime::RuntimeOrigin,
|
RuntimeOrigin: penpal_runtime::RuntimeOrigin,
|
||||||
RuntimeCall: penpal_runtime::RuntimeEvent,
|
RuntimeCall: penpal_runtime::RuntimeCall,
|
||||||
RuntimeEvent: penpal_runtime::RuntimeEvent,
|
RuntimeEvent: penpal_runtime::RuntimeEvent,
|
||||||
XcmpMessageHandler: penpal_runtime::XcmpQueue,
|
XcmpMessageHandler: penpal_runtime::XcmpQueue,
|
||||||
DmpMessageHandler: penpal_runtime::DmpQueue,
|
DmpMessageHandler: penpal_runtime::DmpQueue,
|
||||||
@@ -105,7 +105,7 @@ decl_test_parachains! {
|
|||||||
runtime = {
|
runtime = {
|
||||||
Runtime: statemine_runtime::Runtime,
|
Runtime: statemine_runtime::Runtime,
|
||||||
RuntimeOrigin: statemine_runtime::RuntimeOrigin,
|
RuntimeOrigin: statemine_runtime::RuntimeOrigin,
|
||||||
RuntimeCall: statemine_runtime::RuntimeEvent,
|
RuntimeCall: statemine_runtime::RuntimeCall,
|
||||||
RuntimeEvent: statemine_runtime::RuntimeEvent,
|
RuntimeEvent: statemine_runtime::RuntimeEvent,
|
||||||
XcmpMessageHandler: statemine_runtime::XcmpQueue,
|
XcmpMessageHandler: statemine_runtime::XcmpQueue,
|
||||||
DmpMessageHandler: statemine_runtime::DmpQueue,
|
DmpMessageHandler: statemine_runtime::DmpQueue,
|
||||||
@@ -127,7 +127,7 @@ decl_test_parachains! {
|
|||||||
runtime = {
|
runtime = {
|
||||||
Runtime: penpal_runtime::Runtime,
|
Runtime: penpal_runtime::Runtime,
|
||||||
RuntimeOrigin: penpal_runtime::RuntimeOrigin,
|
RuntimeOrigin: penpal_runtime::RuntimeOrigin,
|
||||||
RuntimeCall: penpal_runtime::RuntimeEvent,
|
RuntimeCall: penpal_runtime::RuntimeCall,
|
||||||
RuntimeEvent: penpal_runtime::RuntimeEvent,
|
RuntimeEvent: penpal_runtime::RuntimeEvent,
|
||||||
XcmpMessageHandler: penpal_runtime::XcmpQueue,
|
XcmpMessageHandler: penpal_runtime::XcmpQueue,
|
||||||
DmpMessageHandler: penpal_runtime::DmpQueue,
|
DmpMessageHandler: penpal_runtime::DmpQueue,
|
||||||
@@ -148,7 +148,7 @@ decl_test_parachains! {
|
|||||||
runtime = {
|
runtime = {
|
||||||
Runtime: collectives_polkadot_runtime::Runtime,
|
Runtime: collectives_polkadot_runtime::Runtime,
|
||||||
RuntimeOrigin: collectives_polkadot_runtime::RuntimeOrigin,
|
RuntimeOrigin: collectives_polkadot_runtime::RuntimeOrigin,
|
||||||
RuntimeCall: collectives_polkadot_runtime::RuntimeEvent,
|
RuntimeCall: collectives_polkadot_runtime::RuntimeCall,
|
||||||
RuntimeEvent: collectives_polkadot_runtime::RuntimeEvent,
|
RuntimeEvent: collectives_polkadot_runtime::RuntimeEvent,
|
||||||
XcmpMessageHandler: collectives_polkadot_runtime::XcmpQueue,
|
XcmpMessageHandler: collectives_polkadot_runtime::XcmpQueue,
|
||||||
DmpMessageHandler: collectives_polkadot_runtime::DmpQueue,
|
DmpMessageHandler: collectives_polkadot_runtime::DmpQueue,
|
||||||
@@ -168,7 +168,7 @@ decl_test_parachains! {
|
|||||||
runtime = {
|
runtime = {
|
||||||
Runtime: bridge_hub_kusama_runtime::Runtime,
|
Runtime: bridge_hub_kusama_runtime::Runtime,
|
||||||
RuntimeOrigin: bridge_hub_kusama_runtime::RuntimeOrigin,
|
RuntimeOrigin: bridge_hub_kusama_runtime::RuntimeOrigin,
|
||||||
RuntimeCall: bridge_hub_kusama_runtime::RuntimeEvent,
|
RuntimeCall: bridge_hub_kusama_runtime::RuntimeCall,
|
||||||
RuntimeEvent: bridge_hub_kusama_runtime::RuntimeEvent,
|
RuntimeEvent: bridge_hub_kusama_runtime::RuntimeEvent,
|
||||||
XcmpMessageHandler: bridge_hub_kusama_runtime::XcmpQueue,
|
XcmpMessageHandler: bridge_hub_kusama_runtime::XcmpQueue,
|
||||||
DmpMessageHandler: bridge_hub_kusama_runtime::DmpQueue,
|
DmpMessageHandler: bridge_hub_kusama_runtime::DmpQueue,
|
||||||
@@ -188,7 +188,7 @@ decl_test_parachains! {
|
|||||||
runtime = {
|
runtime = {
|
||||||
Runtime: bridge_hub_polkadot_runtime::Runtime,
|
Runtime: bridge_hub_polkadot_runtime::Runtime,
|
||||||
RuntimeOrigin: bridge_hub_polkadot_runtime::RuntimeOrigin,
|
RuntimeOrigin: bridge_hub_polkadot_runtime::RuntimeOrigin,
|
||||||
RuntimeCall: bridge_hub_polkadot_runtime::RuntimeEvent,
|
RuntimeCall: bridge_hub_polkadot_runtime::RuntimeCall,
|
||||||
RuntimeEvent: bridge_hub_polkadot_runtime::RuntimeEvent,
|
RuntimeEvent: bridge_hub_polkadot_runtime::RuntimeEvent,
|
||||||
XcmpMessageHandler: bridge_hub_polkadot_runtime::XcmpQueue,
|
XcmpMessageHandler: bridge_hub_polkadot_runtime::XcmpQueue,
|
||||||
DmpMessageHandler: bridge_hub_polkadot_runtime::DmpQueue,
|
DmpMessageHandler: bridge_hub_polkadot_runtime::DmpQueue,
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ As the messages do not physically go through the same messaging infrastructure
|
|||||||
there is some code that is not being tested compared to using slower E2E tests.
|
there is some code that is not being tested compared to using slower E2E tests.
|
||||||
In future it may be possible to run these XCM emulated tests as E2E tests (without changes).
|
In future it may be possible to run these XCM emulated tests as E2E tests (without changes).
|
||||||
|
|
||||||
|
As well as the XCM message transport being mocked out, so too are areas around consensus,
|
||||||
|
in particular things like disputes, staking and iamonline events can't be tested.
|
||||||
|
|
||||||
## Alternatives
|
## Alternatives
|
||||||
|
|
||||||
If you just wish to test execution of various XCM instructions
|
If you just wish to test execution of various XCM instructions
|
||||||
|
|||||||
Reference in New Issue
Block a user