mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 04:01:02 +00:00
Improve Penpal runtime + emulated tests (#3543)
Issues addressed in this PR: - Improve *Penpal* runtime: - Properly handled received assets. Previously, it treated `(1, Here)` as the local native currency, whereas it should be treated as a `ForeignAsset`. This wasn't a great example of standard Parachain behaviour, as no Parachain treats the system asset as the local currency. - Remove `AllowExplicitUnpaidExecutionFrom` the system. Again, this wasn't a great example of standard Parachain behaviour. - Move duplicated `ForeignAssetFeeAsExistentialDepositMultiplierFeeCharger` to `assets_common` crate. - Improve emulated tests: - Update *Penpal* tests to new runtime. - To simplify tests, register the reserve transferred, teleported, and system assets in *Penpal* and *AssetHub* genesis. This saves us from having to create the assets repeatedly for each test - Add missing test case: `reserve_transfer_assets_from_para_to_system_para`. - Cleanup. - Prevent integration tests crates imports from being re-exported, as they were polluting the `polkadot-sdk` docs. There is still a test case missing for reserve transfers: - Reserve transfer of system asset from *Parachain* to *Parachain* trough *AssetHub*. - This is not yet possible with `pallet-xcm` due to the reasons explained in https://github.com/paritytech/polkadot-sdk/pull/3339 --------- Co-authored-by: command-bot <>
This commit is contained in:
+31
-43
@@ -13,52 +13,40 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
pub use codec::Encode;
|
||||
#[cfg(test)]
|
||||
mod imports {
|
||||
pub use codec::Encode;
|
||||
// Substrate
|
||||
pub use frame_support::{
|
||||
assert_ok,
|
||||
pallet_prelude::Weight,
|
||||
sp_runtime::{AccountId32, DispatchResult},
|
||||
traits::fungibles::Inspect,
|
||||
};
|
||||
|
||||
// Substrate
|
||||
pub use frame_support::{
|
||||
assert_err, assert_ok,
|
||||
pallet_prelude::Weight,
|
||||
sp_runtime::{AccountId32, DispatchError, DispatchResult},
|
||||
traits::fungibles::Inspect,
|
||||
};
|
||||
// Polkadot
|
||||
pub use xcm::prelude::*;
|
||||
|
||||
// Polkadot
|
||||
pub use xcm::{
|
||||
prelude::{AccountId32 as AccountId32Junction, *},
|
||||
v3::{Error, NetworkId::Westend as WestendId},
|
||||
};
|
||||
// Cumulus
|
||||
pub use asset_test_utils::xcm_helpers;
|
||||
pub use emulated_integration_tests_common::xcm_emulator::{
|
||||
assert_expected_events, bx, Chain, Parachain as Para, RelayChain as Relay, Test, TestArgs,
|
||||
TestContext, TestExt,
|
||||
};
|
||||
pub use parachains_common::Balance;
|
||||
pub use westend_system_emulated_network::{
|
||||
people_westend_emulated_chain::{
|
||||
genesis::ED as PEOPLE_WESTEND_ED, PeopleWestendParaPallet as PeopleWestendPallet,
|
||||
},
|
||||
westend_emulated_chain::{genesis::ED as WESTEND_ED, WestendRelayPallet as WestendPallet},
|
||||
PeopleWestendPara as PeopleWestend, PeopleWestendParaReceiver as PeopleWestendReceiver,
|
||||
PeopleWestendParaSender as PeopleWestendSender, WestendRelay as Westend,
|
||||
WestendRelayReceiver as WestendReceiver, WestendRelaySender as WestendSender,
|
||||
};
|
||||
|
||||
// Cumulus
|
||||
pub use asset_test_utils::xcm_helpers;
|
||||
pub use emulated_integration_tests_common::{
|
||||
test_parachain_is_trusted_teleporter,
|
||||
xcm_emulator::{
|
||||
assert_expected_events, bx, helpers::weight_within_threshold, Chain, Parachain as Para,
|
||||
RelayChain as Relay, Test, TestArgs, TestContext, TestExt,
|
||||
},
|
||||
xcm_helpers::{xcm_transact_paid_execution, xcm_transact_unpaid_execution},
|
||||
PROOF_SIZE_THRESHOLD, REF_TIME_THRESHOLD, XCM_V3,
|
||||
};
|
||||
pub use parachains_common::{AccountId, Balance};
|
||||
pub use westend_system_emulated_network::{
|
||||
people_westend_emulated_chain::{
|
||||
genesis::ED as PEOPLE_WESTEND_ED, PeopleWestendParaPallet as PeopleWestendPallet,
|
||||
},
|
||||
westend_emulated_chain::{genesis::ED as WESTEND_ED, WestendRelayPallet as WestendPallet},
|
||||
PenpalAPara as PenpalA, PeopleWestendPara as PeopleWestend,
|
||||
PeopleWestendParaReceiver as PeopleWestendReceiver,
|
||||
PeopleWestendParaSender as PeopleWestendSender, WestendRelay as Westend,
|
||||
WestendRelayReceiver as WestendReceiver, WestendRelaySender as WestendSender,
|
||||
};
|
||||
|
||||
// pub const ASSET_ID: u32 = 1;
|
||||
// pub const ASSET_MIN_BALANCE: u128 = 1000;
|
||||
pub type RelayToSystemParaTest = Test<Westend, PeopleWestend>;
|
||||
pub type RelayToParaTest = Test<Westend, PenpalA>;
|
||||
pub type SystemParaToRelayTest = Test<PeopleWestend, Westend>;
|
||||
pub type SystemParaToParaTest = Test<PeopleWestend, PenpalA>;
|
||||
pub type ParaToSystemParaTest = Test<PenpalA, PeopleWestend>;
|
||||
pub type RelayToSystemParaTest = Test<Westend, PeopleWestend>;
|
||||
pub type SystemParaToRelayTest = Test<PeopleWestend, Westend>;
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@
|
||||
//! - The freed deposit from the Relay Chain is sufficient for the parachain deposit; and
|
||||
//! - The account will exist on the parachain.
|
||||
|
||||
use crate::*;
|
||||
use crate::imports::*;
|
||||
use frame_support::BoundedVec;
|
||||
use pallet_balances::Event as BalancesEvent;
|
||||
use pallet_identity::{legacy::IdentityInfo, Data, Event as IdentityEvent};
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use crate::*;
|
||||
use crate::imports::*;
|
||||
use people_westend_runtime::xcm_config::XcmConfig as PeopleWestendXcmConfig;
|
||||
use westend_runtime::xcm_config::XcmConfig as WestendXcmConfig;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user