Update & revamp e2e tests (#2614)

* update & revamp e2e tests

* add seeds as comments

* ".git/.scripts/commands/fmt/fmt.sh"

---------

Co-authored-by: command-bot <>
This commit is contained in:
Ignacio Palacios
2023-05-24 20:07:22 +02:00
committed by GitHub
parent 7c884813c3
commit 5c91c70b78
21 changed files with 392 additions and 532 deletions
@@ -0,0 +1,100 @@
---
settings:
chains:
relay_chain: &relay_chain
wsPort: 9700
collectives_parachain: &collectives_parachain
wsPort: 9710
paraId: &cp_id 1001
variables:
xcm_version: &xcm_version 3
weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] }
chains:
accounts:
alice_signer: &alice_signer //Alice
decodedCalls:
cp_force_xcm_version:
chain: *collectives_parachain
pallet: polkadotXcm
call: forceXcmVersion
args: [
{ # location
parents: 1,
interior: Here
},
*xcm_version
]
tests:
- name: Initialize Chains
its:
- name: XCM supported versions between chains
actions:
- extrinsics: # Relay Chain sets supported version for Collectives Parachain
- chain: *relay_chain
sudo: true
signer: *alice_signer
pallet: xcmPallet
call: forceXcmVersion
args: [
{ # location
parents: 0,
interior: {
X1: {
Parachain: *cp_id
}
}
},
*xcm_version
]
events:
- name: sudo.Sudid
result: { sudoResult: Ok }
- name: xcmPallet.SupportedVersionChanged
result: [{ parents: 0, interior: { X1: { Parachain: *cp_id }}}, *xcm_version ]
- extrinsics: # Collectives Parachain sets supported version for Relay Chain through it
- chain: *relay_chain
signer: *alice_signer
sudo: true
pallet: xcmPallet
call: send
args: [
{ v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination
{
v3: [ # message
{
UnpaidExecution: {
weightLimit: {
limited: {
refTime: 2200000000, # 2_200_000_000
proofSize: 200000, # 200_000
},
}
}
},
{
Transact: {
originKind: Superuser,
requireWeightAtMost: {
refTime: 200000000, # 200_000_000
proofSize: 0,
},
call: $cp_force_xcm_version
}
}
]
}
]
events:
- name: sudo.Sudid
result: { sudoResult: Ok }
- name: xcmPallet.Sent
- name: dmpQueue.ExecutedDownward
chain: *collectives_parachain
threshold: *weight_threshold
result: {
outcome: { Complete: { refTime: '2,200,000,000', proofSize: 0 }}
}
- name: polkadotXcm.SupportedVersionChanged
chain: *collectives_parachain
result: [{ parents: 1, interior: Here }, *xcm_version ]
@@ -0,0 +1,171 @@
---
settings:
chains:
relay_chain: &relay_chain
wsPort: 9700
collectives_parachain: &collectives_parachain
wsPort: 9710
paraId: &cp_id 1001
variables:
weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] }
accounts:
alice_signer: &acc_alice_signer //Alice
alice_account32: &acc_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'
alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5'
checking_account: &checking_account '13UVJyLnbVp9x5XDyJv8g8r3UddNwBrdaH7AADCmw9XQWvYW'
tests:
- name: Teleport assets from Relay Chain to Collectives Parachain successful.
before:
- name: Get the Alice balances on Relay & Collectives Chains.
actions:
- queries:
balance_rc_alice_1:
chain: *relay_chain
pallet: system
call: account
args: [ *acc_alice_acc32 ]
balance_cp_alice_1:
chain: *collectives_parachain
pallet: system
call: account
args: [ *acc_alice_acc32 ]
its:
- name: Teleport assets from Relay Chain to Collectives Parachain
actions:
- extrinsics:
- chain: *relay_chain
signer: *acc_alice_signer
pallet: xcmPallet
call: teleportAssets
args: [
{ v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination
{ v3: { parents: 0, interior: { x1: { accountId32: { id: *acc_alice_acc32 }}}}}, # beneficiary
{
v3: [
# {
# # TODO use a separate Assets to pay a fee, to receive an exact amount of assets on beneficiary account.
# # a call with two assets fails with an error right now.
# id: { concrete: { 0, interior: { here: true }}},
# fun: { fungible: 1000000000000 } # 1_000_000_000_000
# },
{
id: { concrete: { 0, interior: { here: true }}},
fun: { fungible: 20000000000000 } # 20_000_000_000_000
}
]
}, # assets
0, # feeAssetItem
]
events:
- name: xcmPallet.Attempted
threshold: *weight_threshold
result: [{ Complete: { refTime: '3,000,000,000', proofSize: 0 }}]
- name: dmpQueue.ExecutedDownward
chain: *collectives_parachain
threshold: *weight_threshold
result: {
outcome: { Complete: { refTime: '4,000,000,000', proofSize: 0 }}
}
- queries:
balance_rc_alice_2:
chain: *relay_chain
pallet: system
call: account
args: [ *acc_alice_acc32 ]
balance_cp_alice_2:
chain: *collectives_parachain
pallet: system
call: account
args: [ *acc_alice_acc32 ]
- name: Alice deposit check, balance decreased on Relay Chain, increased on Collectives.
actions:
- asserts:
balanceDecreased:
args: [
{
balances: {
before: $balance_rc_alice_1,
after: $balance_rc_alice_2,
}
}
]
balanceIncreased:
args: [
{
balances: {
before: $balance_cp_alice_1,
after: $balance_cp_alice_2,
}
}
]
- name: Teleport assets from Collectives Parachain to Relay Chain successful
actions:
- extrinsics:
- chain: *collectives_parachain
signer: *acc_alice_signer
pallet: polkadotXcm
call: teleportAssets
args: [
{ v3: { parents: 1, interior: { here: true }}}, # destination
{ v3: { parents: 0, interior: { x1: { accountId32: { id: *acc_alice_acc32 }}}}}, # beneficiary
{
v3: [
{
id: { concrete: { parents: 1, interior: { here: true }}},
fun: { fungible: 10000000000000 } # 10_000_000_000_000
}
]
}, # assets
0, # feeAssetItem
]
events:
- name: balances.Withdraw
result: { who: *acc_alice_ss58, amount: 10000000000000 }
- name: polkadotXcm.Attempted
threshold: *weight_threshold
result: [{ Complete: { refTime: '3,000,000,000', proofSize: 0 }}]
- name: balances.Withdraw
chain: *relay_chain
result: { who: *checking_account, amount: 10000000000000 } # amount received and withdrawn from registry account
- name: ump.ExecutedUpward
chain: *relay_chain
threshold: *weight_threshold
result: [{ Complete: { refTime: '4,000,000,000', proofSize: 0 }}]
- queries:
balance_rc_alice_3:
chain: *relay_chain
pallet: system
call: account
args: [ *acc_alice_acc32 ]
balance_cp_alice_3:
chain: *collectives_parachain
pallet: system
call: account
args: [ *acc_alice_acc32 ]
- name: Alice deposit check, balance decreased on Collectives, increased on Relay Chain.
actions:
- asserts:
balanceDecreased:
args: [
{
balances: {
before: $balance_cp_alice_2,
after: $balance_cp_alice_3,
}
}
]
balanceIncreased:
args: [
{
balances: {
before: $balance_rc_alice_2,
after: $balance_rc_alice_3,
}
}
]
# TODO (P2) assert Alice balance before and after teleport (see example in kick_member test)
# TODO (P1) test: teleport of non relay chain assets fails
@@ -0,0 +1,53 @@
---
settings:
chains:
relay_chain: &relay_chain
wsPort: 9700
collectives_parachain: &collectives_parachain
wsPort: 9710
paraId: &cp_id 1001
variables:
weight_threshold: &weight_threshold { refTime: [10, 10], proofSize: [10, 10] }
chains:
accounts:
alice_signer: &alice_signer //Alice
alice_account32: &alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'
tests:
- name: Reserve assets from Relay Chain to Collectives Parachain fails
its:
- name: Reserve assets from Relay Chain to Collectives Parachain
actions:
- extrinsics:
- chain: *relay_chain
signer: *alice_signer
pallet: xcmPallet
call: reserveTransferAssets
args: [
{ v3: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination
{ v3: { parents: 0, interior: { x1: { accountId32: { id: *alice_acc32 }}}}}, # beneficiary
{
v3: [
{
id: { concrete: { 0, interior: { here: true }}},
fun: { fungible: 20000000000000 } # 20_000_000_000_000
}
]
}, # assets
0, # feeAssetItem
]
events:
- name: xcmPallet.Attempted
threshold: *weight_threshold
result: [{ Complete: { refTime: '2,000,000,000', proofSize: 0 }}]
- name: dmpQueue.ExecutedDownward
chain: *collectives_parachain
threshold: *weight_threshold
result: {
outcome: {
Incomplete: [
{ refTime: '1,000,000,000', proofSize: 0 },
UntrustedReserveLocation
]
}
}