penpal_emulated_chain/
lib.rs1pub use penpal_runtime::{self, xcm_config::RelayNetworkId as PenpalRelayNetworkId};
17
18mod genesis;
19pub use genesis::{genesis, PenpalAssetOwner, PenpalSudoAccount, ED, PARA_ID_A, PARA_ID_B};
20
21use frame_support::traits::OnInitialize;
23use sp_core::Encode;
24
25use emulated_integration_tests_common::{
27 impl_accounts_helpers_for_parachain, impl_assert_events_helpers_for_parachain,
28 impl_assets_helpers_for_parachain, impl_foreign_assets_helpers_for_parachain,
29 impl_xcm_helpers_for_parachain,
30 impls::{NetworkId, Parachain},
31 xcm_emulator::decl_test_parachains,
32};
33
34use xcm::latest::{ROCOCO_GENESIS_HASH, WESTEND_GENESIS_HASH};
36
37decl_test_parachains! {
39 pub struct PenpalA {
40 genesis = genesis(PARA_ID_A),
41 on_init = {
42 penpal_runtime::AuraExt::on_initialize(1);
43 frame_support::assert_ok!(penpal_runtime::System::set_storage(
44 penpal_runtime::RuntimeOrigin::root(),
45 vec![(PenpalRelayNetworkId::key().to_vec(), NetworkId::ByGenesis(ROCOCO_GENESIS_HASH).encode())],
46 ));
47 },
48 runtime = penpal_runtime,
49 core = {
50 XcmpMessageHandler: penpal_runtime::XcmpQueue,
51 LocationToAccountId: penpal_runtime::xcm_config::LocationToAccountId,
52 ParachainInfo: penpal_runtime::ParachainInfo,
53 MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin,
54 },
55 pallets = {
56 PolkadotXcm: penpal_runtime::PolkadotXcm,
57 Assets: penpal_runtime::Assets,
58 ForeignAssets: penpal_runtime::ForeignAssets,
59 AssetConversion: penpal_runtime::AssetConversion,
60 Balances: penpal_runtime::Balances,
61 }
62 },
63 pub struct PenpalB {
64 genesis = genesis(PARA_ID_B),
65 on_init = {
66 penpal_runtime::AuraExt::on_initialize(1);
67 frame_support::assert_ok!(penpal_runtime::System::set_storage(
68 penpal_runtime::RuntimeOrigin::root(),
69 vec![(PenpalRelayNetworkId::key().to_vec(), NetworkId::ByGenesis(WESTEND_GENESIS_HASH).encode())],
70 ));
71 },
72 runtime = penpal_runtime,
73 core = {
74 XcmpMessageHandler: penpal_runtime::XcmpQueue,
75 LocationToAccountId: penpal_runtime::xcm_config::LocationToAccountId,
76 ParachainInfo: penpal_runtime::ParachainInfo,
77 MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin,
78 },
79 pallets = {
80 PolkadotXcm: penpal_runtime::PolkadotXcm,
81 Assets: penpal_runtime::Assets,
82 ForeignAssets: penpal_runtime::ForeignAssets,
83 AssetConversion: penpal_runtime::AssetConversion,
84 Balances: penpal_runtime::Balances,
85 }
86 },
87}
88
89impl_accounts_helpers_for_parachain!(PenpalA);
91impl_accounts_helpers_for_parachain!(PenpalB);
92impl_assert_events_helpers_for_parachain!(PenpalA);
93impl_assert_events_helpers_for_parachain!(PenpalB);
94impl_assets_helpers_for_parachain!(PenpalA);
95impl_foreign_assets_helpers_for_parachain!(PenpalA, xcm::latest::Location);
96impl_assets_helpers_for_parachain!(PenpalB);
97impl_foreign_assets_helpers_for_parachain!(PenpalB, xcm::latest::Location);
98impl_xcm_helpers_for_parachain!(PenpalA);
99impl_xcm_helpers_for_parachain!(PenpalB);