mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 22:11:06 +00:00
b7082d1a9d
* [Feature] XCM-Emulator * ".git/.scripts/commands/fmt/fmt.sh" * rename * readme * more rename * rename directory * implement AssetTransactor * Update xcm/xcm-emulator/README.md Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com> * address review comments (#2502) * Update xcm/xcm-emulator/example/src/lib.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Update xcm/xcm-emulator/README.md * Use 2d weights. * Point out nearer the failure why it should fail * Move test-runtime to under examples * Walk through how to use it * proof needs to be non-zero * Apply suggestions from code review * Update xcm/xcm-emulator/README.md Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Improve xcm emulator (#2593) * folder restructutre * common created * make macros repetitions * messenger traits for relay and para * default Messenger impls * messenger traits refactor * declared two networks * init network approach works * queues use HashMap but relay block number * init and reset refactor * messengers trait name changed * relay block number suboptimal * fix reset hashmap keys * genesis added * test ext added for parachains * genesis added relay chains * genesis to storage * new_ext replaced by on_init * new relay block number approach * ext_wrapper added * added types to Parachain trait * relay chain with types * restructure * para_ids working * replace para_id getter * replace para_id getter 2 * tests restructure + common variables * added sovereign and balances helpers * more helpers + tess pass * expected events macro added * added events trait method * expect_events macro improve * expect_events macro done * network traits added * reserve_transfer test added * para & relay macro inputs redefined * added collectives & BH paras * test restructure * statemine removed * nitpick * rename test folder + events logs * clean * weight threshold helper * update readme * remove cumulus-test-service dependancy * fmt * comment docs * update e2e tests to xcm v3 * clippy + runtime-benchmark + clean docs --------- Co-authored-by: command-bot <> Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com> Co-authored-by: Squirrel <gilescope@gmail.com> Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>
59 lines
1.5 KiB
Rust
59 lines
1.5 KiB
Rust
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 = <Statemint as Para>::RuntimeCall::Assets(pallet_assets::Call::<
|
|
<Statemint as Para>::Runtime,
|
|
Instance1,
|
|
>::force_create {
|
|
id: ASSET_ID.into(),
|
|
is_sufficient: true,
|
|
min_balance: 1000,
|
|
owner: StatemintSender::get().into(),
|
|
})
|
|
.encode()
|
|
.into();
|
|
|
|
// XcmPallet send arguments
|
|
let sudo_origin = <Polkadot as Relay>::RuntimeOrigin::root();
|
|
let assets_para_destination: VersionedMultiLocation =
|
|
Polkadot::child_location_of(Statemint::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
|
|
Polkadot::execute_with(|| {
|
|
assert_ok!(<Polkadot as PolkadotPallet>::XcmPallet::send(
|
|
sudo_origin,
|
|
bx!(assets_para_destination),
|
|
bx!(xcm),
|
|
));
|
|
|
|
type RuntimeEvent = <Polkadot as Relay>::RuntimeEvent;
|
|
|
|
assert_expected_events!(
|
|
Polkadot,
|
|
vec![
|
|
RuntimeEvent::XcmPallet(pallet_xcm::Event::Sent { .. }) => {},
|
|
]
|
|
);
|
|
});
|
|
|
|
// Receive XCM message in Assets Parachain
|
|
Statemint::execute_with(|| {
|
|
assert!(<Statemint as StatemintPallet>::Assets::asset_exists(ASSET_ID));
|
|
});
|
|
}
|