mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-18 15:15:42 +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>
267 lines
9.9 KiB
YAML
267 lines
9.9 KiB
YAML
---
|
|
settings:
|
|
chains:
|
|
relay_chain: &relay_chain
|
|
wsPort: 9800
|
|
assets_parachain: &assets_parachain
|
|
wsPort: 9810
|
|
paraId: &ap_id 1000
|
|
variables:
|
|
relay_chain:
|
|
signer: &rc_signer //Alice
|
|
wallet: &rc_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F
|
|
assets_parachain_destination: &ap_dest { v3: { parents: 0, interior: { x1: { parachain: *ap_id }}}}
|
|
assets_parachain_account: &ap_acc '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'
|
|
assets_parachain_beneficiary: &ap_benf {v3: { parents: 0, interior: { x1: { accountId32: { id: *ap_acc }}}}}
|
|
ksm: &rc_ksm { concrete: { parents: 0, interior: { here: true }}}
|
|
amount: &amount 1000000000000
|
|
ksm_fungible: &rc_ksm_fungible { id: *rc_ksm, fun: { fungible: *amount }}
|
|
require_weight_at_most: &rc_weight_at_most {refTime: 1000000000, proofSize: 200000}
|
|
assets_parachain_account:
|
|
wallet: &ap_wallet HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F
|
|
asset_id: &asset_id 1
|
|
asset_min_balance: &asset_ed 1000
|
|
decodedCalls:
|
|
force_create_asset:
|
|
chain: *assets_parachain
|
|
pallet: assets
|
|
call: forceCreate
|
|
args: [
|
|
*asset_id,
|
|
{ Id: *ap_wallet }, # owner
|
|
true, # isSufficient
|
|
*asset_ed # minBalance
|
|
]
|
|
|
|
tests:
|
|
- name: DMP
|
|
its: []
|
|
describes:
|
|
- name: xcmPallet.limitedTeleportAssets
|
|
before: &before_get_balances
|
|
- name: Get the balances of the Relay Chain's sender & Assets Parachain's receiver
|
|
actions:
|
|
- queries:
|
|
balance_rc_sender_before:
|
|
chain: *relay_chain
|
|
pallet: system
|
|
call: account
|
|
args: [ *rc_wallet ]
|
|
balance_ap_receiver_before:
|
|
chain: *assets_parachain
|
|
pallet: system
|
|
call: account
|
|
args: [ *ap_wallet ]
|
|
its:
|
|
- name: Should teleport native assets from the Relay Chain to the Assets Parachain
|
|
actions:
|
|
- extrinsics:
|
|
- chain: *relay_chain
|
|
signer: *rc_signer
|
|
pallet: xcmPallet
|
|
call: limitedTeleportAssets
|
|
args: [
|
|
*ap_dest, # destination
|
|
*ap_benf, # beneficiary
|
|
{ v3: [ *rc_ksm_fungible ] }, # assets
|
|
0, # feeAssetItem
|
|
{ unlimited: true } # weightLimit
|
|
]
|
|
events:
|
|
- name: xcmPallet.Attempted
|
|
attributes:
|
|
- type: XcmV3TraitsOutcome
|
|
xcmOutcome: Complete
|
|
- name: dmpQueue.ExecutedDownward
|
|
chain: *assets_parachain
|
|
attributes:
|
|
- type: XcmV3TraitsOutcome
|
|
xcmOutcome: Complete
|
|
threshold: [10, 10]
|
|
value: {"refTime":"162,909,000","proofSize":"0"}
|
|
- queries:
|
|
balance_rc_sender_after:
|
|
chain: *relay_chain
|
|
pallet: system
|
|
call: account
|
|
args: [ *rc_wallet ]
|
|
balance_ap_receiver_after:
|
|
chain: *assets_parachain
|
|
pallet: system
|
|
call: account
|
|
args: [ *ap_wallet ]
|
|
|
|
- name: Should reduce the balance of the sender
|
|
actions:
|
|
- asserts:
|
|
balanceDecreased:
|
|
args: [
|
|
{
|
|
balances: {
|
|
before: $balance_rc_sender_before,
|
|
after: $balance_rc_sender_after,
|
|
},
|
|
amount: *amount
|
|
}
|
|
]
|
|
|
|
- name: Should increase the balance of the receiver
|
|
actions:
|
|
- asserts:
|
|
balanceIncreased:
|
|
args: [
|
|
{
|
|
balances: {
|
|
before: $balance_ap_receiver_before,
|
|
after: $balance_ap_receiver_after,
|
|
}
|
|
}
|
|
]
|
|
|
|
- name: xcmPallet.send | Superuser - Transact(assets.forceCreate)
|
|
its:
|
|
- name: Relay Chain Superuser account SHOULD be able to execute a XCM Transact instruction in the Assets Parachain
|
|
actions:
|
|
- extrinsics:
|
|
- chain: *relay_chain
|
|
signer: *rc_signer
|
|
sudo: true
|
|
pallet: xcmPallet
|
|
call: send
|
|
args: [
|
|
*ap_dest, # destination
|
|
{
|
|
v3: [ #message
|
|
{
|
|
UnpaidExecution: {
|
|
weightLimit: Unlimited
|
|
}
|
|
},
|
|
{
|
|
Transact: {
|
|
originType: Superuser,
|
|
requireWeightAtMost: *rc_weight_at_most,
|
|
call: $force_create_asset
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
events:
|
|
- name: xcmPallet.Sent
|
|
- name: dmpQueue.ExecutedDownward
|
|
chain: *assets_parachain
|
|
attributes:
|
|
- type: XcmV3TraitsOutcome
|
|
xcmOutcome: Complete
|
|
threshold: [10, 10]
|
|
value: {"refTime":"1,015,234,000","proofSize":"200,000"}
|
|
- queries:
|
|
forced_created_asset:
|
|
chain: *assets_parachain
|
|
pallet: assets
|
|
call: asset
|
|
args: [ *asset_id ]
|
|
- asserts:
|
|
isSome:
|
|
args: [ $forced_created_asset ]
|
|
|
|
- name: xcmPallet.send | Native - Transact(assets.forceCreate)
|
|
its:
|
|
- name: Relay Chain Native account SHOULD NOT be able to execute a XCM Transact instruction in the Assets Parachain
|
|
actions:
|
|
- extrinsics:
|
|
- chain: *relay_chain
|
|
signer: *rc_signer
|
|
pallet: xcmPallet
|
|
call: send
|
|
args: [
|
|
*ap_dest, # destination
|
|
{
|
|
v3: [ #message
|
|
{
|
|
UnpaidExecution: {
|
|
weightLimit: Unlimited
|
|
}
|
|
},
|
|
{
|
|
Transact: {
|
|
originType: Native,
|
|
requireWeightAtMost: *rc_weight_at_most,
|
|
call: $force_create_asset
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
events:
|
|
- name: system.ExtrinsicFailed
|
|
attributes:
|
|
- type: SpRuntimeDispatchError
|
|
value: BadOrigin
|
|
|
|
- name: xcmPallet.limitedReserveTransferAssets
|
|
before: *before_get_balances
|
|
its:
|
|
- name: SHOULD NOT reserved transfer native assets from the Relay Chain to the Assets Parachain
|
|
actions:
|
|
- extrinsics:
|
|
- chain: *relay_chain
|
|
signer: *rc_signer
|
|
pallet: xcmPallet
|
|
call: limitedReserveTransferAssets
|
|
args: [
|
|
*ap_dest, # destination
|
|
*ap_benf, # beneficiary
|
|
{ v3: [ *rc_ksm_fungible ] }, # assets
|
|
0, # feeAssetItem
|
|
{ unlimited: true } # weightLimit
|
|
]
|
|
events:
|
|
- name: xcmPallet.Attempted
|
|
attributes:
|
|
- type: XcmV3TraitsOutcome
|
|
xcmOutcome: Complete
|
|
value: {"refTime":"2,000,000,000","proofSize":"0"}
|
|
- name: dmpQueue.ExecutedDownward
|
|
chain: *assets_parachain
|
|
attributes:
|
|
- type: XcmV3TraitsOutcome
|
|
xcmOutcome: Incomplete
|
|
value: [{"refTime":"1,000,000,000","proofSize":"0"},"UntrustedReserveLocation"]
|
|
- queries:
|
|
balance_rc_sender_after:
|
|
chain: *relay_chain
|
|
pallet: system
|
|
call: account
|
|
args: [ *rc_wallet ]
|
|
balance_ap_receiver_after:
|
|
chain: *assets_parachain
|
|
pallet: system
|
|
call: account
|
|
args: [ *ap_wallet ]
|
|
|
|
- name: Should reduce the balance of the sender
|
|
actions:
|
|
- asserts:
|
|
balanceDecreased:
|
|
args: [
|
|
{
|
|
balances: {
|
|
before: $balance_rc_sender_before,
|
|
after: $balance_rc_sender_after,
|
|
},
|
|
amount: *amount
|
|
}
|
|
]
|
|
|
|
- name: Should keep the balance of the receiver
|
|
actions:
|
|
- asserts:
|
|
equal:
|
|
args:
|
|
[
|
|
$balance_ap_receiver_before,
|
|
$balance_ap_receiver_after
|
|
]
|