mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 14:01:02 +00:00
Collectives integration tests (#1979)
Co-authored-by: parity-processbot <>
This commit is contained in:
@@ -0,0 +1,95 @@
|
|||||||
|
---
|
||||||
|
settings:
|
||||||
|
chains:
|
||||||
|
relay_chain: &relay_chain
|
||||||
|
wsPort: 9700
|
||||||
|
collectives_parachain: &collectives_parachain
|
||||||
|
wsPort: 9710
|
||||||
|
paraId: &cp_id 1001
|
||||||
|
variables:
|
||||||
|
xcm_version: &xcm_version '2'
|
||||||
|
chains:
|
||||||
|
accounts:
|
||||||
|
alice_signer: &alice_signer //Alice
|
||||||
|
decodedCalls:
|
||||||
|
ap_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
|
||||||
|
attributes:
|
||||||
|
- type: Result<Null, SpRuntimeDispatchError>
|
||||||
|
value: Ok
|
||||||
|
- name: xcmPallet.SupportedVersionChanged
|
||||||
|
attributes:
|
||||||
|
- type: u32
|
||||||
|
value: *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: [
|
||||||
|
{ v1: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination
|
||||||
|
{
|
||||||
|
v2: [ # message
|
||||||
|
{
|
||||||
|
Transact: {
|
||||||
|
originType: Superuser,
|
||||||
|
requireWeightAtMost: 1000000000, # 1_000_000_000
|
||||||
|
call: $ap_force_xcm_version
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
- name: sudo.Sudid
|
||||||
|
attributes:
|
||||||
|
- type: Result<Null, SpRuntimeDispatchError>
|
||||||
|
value: Ok
|
||||||
|
- name: xcmPallet.Sent
|
||||||
|
- name: polkadotXcm.SupportedVersionChanged
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: u32
|
||||||
|
value: *xcm_version
|
||||||
|
- name: dmpQueue.ExecutedDownward
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# the weight must be static
|
||||||
|
value: 2,000,000,000
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
---
|
||||||
|
settings:
|
||||||
|
chains:
|
||||||
|
relay_chain: &relay_chain
|
||||||
|
wsPort: 9700
|
||||||
|
collectives_parachain: &collectives_parachain
|
||||||
|
wsPort: 9710
|
||||||
|
paraId: &cp_id 1001
|
||||||
|
variables:
|
||||||
|
xcm_version: &xcm_version '2'
|
||||||
|
weight_to_send_teleport: &weight_to_send_teleport 2,000,000,000 # must be same for both chains
|
||||||
|
weight_to_receive_teleport: &weight_to_receive_teleport 4,000,000,000 # must be same for both chains
|
||||||
|
chains:
|
||||||
|
accounts:
|
||||||
|
alice_signer: &alice_signer //Alice
|
||||||
|
alice_account32: &alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'
|
||||||
|
alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5'
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- name: Teleport assets from Relay Chain to Collectives Parachain successful
|
||||||
|
its:
|
||||||
|
- name: Teleport assets from Relay Chain to Collectives Parachain
|
||||||
|
actions:
|
||||||
|
- extrinsics:
|
||||||
|
- chain: *relay_chain
|
||||||
|
signer: *alice_signer
|
||||||
|
pallet: xcmPallet
|
||||||
|
call: teleportAssets
|
||||||
|
args: [
|
||||||
|
{ v1: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination
|
||||||
|
{ v1: { parents: 0, interior: { x1: { accountId32: { network: { any: true }, id: *alice_acc32 }}}}}, # beneficiary
|
||||||
|
{
|
||||||
|
v1: [
|
||||||
|
# {
|
||||||
|
# # 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
|
||||||
|
chain: *relay_chain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# the weight must be static
|
||||||
|
value: *weight_to_send_teleport
|
||||||
|
- name: balances.Deposit
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: u128
|
||||||
|
# TODO (P2)
|
||||||
|
# Flaky assert since sent assets used to pay a fee
|
||||||
|
# query and assert Alice balance before and after teleport (see example in kick_member test)
|
||||||
|
# drop this event assert
|
||||||
|
value: 19,999,953,648,988 # amount received
|
||||||
|
- name: dmpQueue.ExecutedDownward
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# the weight must be static
|
||||||
|
value: *weight_to_receive_teleport
|
||||||
|
|
||||||
|
- name: Teleport assets from Collectives Parachain to Relay Chain successful
|
||||||
|
actions:
|
||||||
|
- extrinsics:
|
||||||
|
- chain: *collectives_parachain
|
||||||
|
signer: *alice_signer
|
||||||
|
pallet: polkadotXcm
|
||||||
|
call: teleportAssets
|
||||||
|
args: [
|
||||||
|
{ v1: { parents: 1, interior: { here: true }}}, # destination
|
||||||
|
{ v1: { parents: 0, interior: { x1: { accountId32: { network: { any: true }, id: *alice_acc32 }}}}}, # beneficiary
|
||||||
|
{
|
||||||
|
v1: [
|
||||||
|
{
|
||||||
|
id: { concrete: { parents: 1, interior: { here: true }}},
|
||||||
|
fun: { fungible: 10000000000000 } # 10_000_000_000_000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}, # assets
|
||||||
|
0, # feeAssetItem
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
# TODO assert balance.Deposit event on relay chain
|
||||||
|
# not possible now / issue - https://github.com/paritytech/parachains-integration-tests/issues/58
|
||||||
|
- name: balances.Withdraw
|
||||||
|
attributes:
|
||||||
|
- type: AccountId32
|
||||||
|
key: who
|
||||||
|
value: *acc_alice_ss58
|
||||||
|
- type: u128
|
||||||
|
key: amount
|
||||||
|
value: 10000000000000
|
||||||
|
- name: polkadotXcm.Attempted
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# the weight must be static
|
||||||
|
value: *weight_to_send_teleport
|
||||||
|
- name: balances.Withdraw
|
||||||
|
chain: *relay_chain
|
||||||
|
attributes:
|
||||||
|
- type: u128
|
||||||
|
key: amount
|
||||||
|
value: 10000000000000 # amount received and withdrawn from registry account
|
||||||
|
- name: ump.ExecutedUpward
|
||||||
|
chain: *relay_chain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# the weight must be static
|
||||||
|
value: *weight_to_receive_teleport
|
||||||
|
|
||||||
|
# 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,84 @@
|
|||||||
|
---
|
||||||
|
settings:
|
||||||
|
chains:
|
||||||
|
relay_chain: &relay_chain
|
||||||
|
wsPort: 9700
|
||||||
|
collectives_parachain: &collectives_parachain
|
||||||
|
wsPort: 9710
|
||||||
|
paraId: &cp_id 1001
|
||||||
|
variables:
|
||||||
|
xcm_version: &xcm_version '2'
|
||||||
|
weight_to_send_reserve: &weight_to_send_reserve 1,000,000,000 # must be same for both chains
|
||||||
|
chains:
|
||||||
|
accounts:
|
||||||
|
alice_signer: &alice_signer //Alice
|
||||||
|
alice_account32: &alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'
|
||||||
|
alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5'
|
||||||
|
|
||||||
|
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: [
|
||||||
|
{ v1: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination
|
||||||
|
{ v1: { parents: 0, interior: { x1: { accountId32: { network: { any: true }, id: *alice_acc32 }}}}}, # beneficiary
|
||||||
|
{
|
||||||
|
v1: [
|
||||||
|
{
|
||||||
|
id: { concrete: { 0, interior: { here: true }}},
|
||||||
|
fun: { fungible: 20000000000000 } # 20_000_000_000_000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}, # assets
|
||||||
|
0, # feeAssetItem
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
- name: xcmPallet.Attempted
|
||||||
|
chain: *relay_chain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# the weight must be static
|
||||||
|
value: *weight_to_send_reserve
|
||||||
|
- name: dmpQueue.ExecutedDownward
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Incomplete
|
||||||
|
# the weight must be static
|
||||||
|
value: [1000000000, UntrustedReserveLocation]
|
||||||
|
|
||||||
|
- name: Reserve assets from Collectives Parachain to Relay Chain fails
|
||||||
|
actions:
|
||||||
|
- extrinsics:
|
||||||
|
- chain: *collectives_parachain
|
||||||
|
signer: *alice_signer
|
||||||
|
pallet: polkadotXcm
|
||||||
|
call: reserveTransferAssets
|
||||||
|
args: [
|
||||||
|
{ v1: { parents: 1, interior: { here: true }}}, # destination
|
||||||
|
{ v1: { parents: 0, interior: { x1: { accountId32: { network: { any: true }, id: *alice_acc32 }}}}}, # beneficiary
|
||||||
|
{
|
||||||
|
v1: [
|
||||||
|
{
|
||||||
|
id: { concrete: { parents: 1, interior: { here: true }}},
|
||||||
|
fun: { fungible: 10000000000000 } # 10_000_000_000_000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}, # assets
|
||||||
|
0, # feeAssetItem
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
- name: system.ExtrinsicFailed
|
||||||
|
attributes:
|
||||||
|
- type: SpRuntimeDispatchError
|
||||||
|
key: dispatchError
|
||||||
|
# TODO assert variant
|
||||||
|
# issue - https://github.com/paritytech/parachains-integration-tests/issues/59
|
||||||
|
value: {"Module":{"index":"31","error":"0x02000000"}}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
settings:
|
||||||
|
chains:
|
||||||
|
relay_chain: &relay_chain
|
||||||
|
wsPort: 9700
|
||||||
|
collectives_parachain: &collectives_parachain
|
||||||
|
wsPort: 9710
|
||||||
|
paraId: &cp_id 1001
|
||||||
|
variables:
|
||||||
|
accounts:
|
||||||
|
alice_signer: &alice_signer //Alice
|
||||||
|
alice_account32: &cp_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- name: Alice fails to join an the Alliance, since it is not initialized yet.
|
||||||
|
its:
|
||||||
|
- name: Alice joins alliance
|
||||||
|
actions:
|
||||||
|
- extrinsics: # Relay Chain sets supported version for Asset Parachain
|
||||||
|
- chain: *collectives_parachain
|
||||||
|
signer: *alice_signer
|
||||||
|
pallet: alliance
|
||||||
|
call: joinAlliance
|
||||||
|
args: []
|
||||||
|
events:
|
||||||
|
- name: system.ExtrinsicFailed
|
||||||
|
attributes:
|
||||||
|
- type: SpRuntimeDispatchError
|
||||||
|
key: dispatchError
|
||||||
|
# TODO assert with Alliance Error variant - alliance.AllianceNotYetInitialized
|
||||||
|
# issue - https://github.com/paritytech/parachains-integration-tests/issues/59
|
||||||
|
value: {"Module":{"index":"50","error":"0x00000000"}}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,240 @@
|
|||||||
|
---
|
||||||
|
settings:
|
||||||
|
chains:
|
||||||
|
relay_chain: &relay_chain
|
||||||
|
wsPort: 9700
|
||||||
|
collectives_parachain: &collectives_parachain
|
||||||
|
wsPort: 9710
|
||||||
|
paraId: &coll_para_id 1001
|
||||||
|
variables:
|
||||||
|
accounts:
|
||||||
|
alice_signer: &acc_alice_signer //Alice
|
||||||
|
alice_account32: &acc_alice_acc32 "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"
|
||||||
|
liam_signer: &acc_liam_signer //Liam
|
||||||
|
liam_account32: &acc_liam_acc32 "0x3614671a5de540d891eb8c4939c8153a4aa790602b347c18177b86d0fc546221"
|
||||||
|
olivia_signer: &acc_olivia_signer //Olivia
|
||||||
|
olivia_account32: &acc_olivia_acc32 "0x24ee8a659c6716fe9f7cb4e9e028602aa12867654ca02737da9171b7ff697d5c"
|
||||||
|
noah_signer: &acc_noah_signer //Noah
|
||||||
|
noah_account32: &acc_noah_acc32 "0x9c6ad3bc3aa2f1b2e837898e6da9980445f7ef8b3eee0b8c8e305f8cfae68517"
|
||||||
|
emma_signer: &acc_emma_signer //Emma
|
||||||
|
emma_account32: &acc_emma_acc32 "0x8ac272b333ba1127c8db57fa777ec820b24598a236efa648caf0d26d86f64572"
|
||||||
|
james_signer: &acc_james_signer //James
|
||||||
|
james_account32: &acc_james_acc32 "0x9a52805151a0b5effc084af9264011139872a21a3950cb9ae0b2955c4bf92c18"
|
||||||
|
ava_signer: &acc_ava_signer //Ava
|
||||||
|
ava_account32: &acc_ava_acc32 "0x348ef0b8776adbc09c862ddc29b1d193b9e24738e54eea3b0609c83856dc101c"
|
||||||
|
mia_signer: &acc_mia_signer //Mia
|
||||||
|
mia_account32: &acc_mia_acc32 "0xaebf15374cf7e758d10232514c569a7abf81cc1b8f1e81a73dbc608a0e335264"
|
||||||
|
decodedCalls:
|
||||||
|
init_alliance_members:
|
||||||
|
chain: *collectives_parachain
|
||||||
|
pallet: alliance
|
||||||
|
call: initMembers
|
||||||
|
args: [
|
||||||
|
[
|
||||||
|
*acc_liam_acc32,
|
||||||
|
*acc_olivia_acc32,
|
||||||
|
*acc_noah_acc32
|
||||||
|
],
|
||||||
|
[
|
||||||
|
*acc_emma_acc32,
|
||||||
|
*acc_james_acc32,
|
||||||
|
*acc_ava_acc32
|
||||||
|
],
|
||||||
|
[
|
||||||
|
*acc_mia_acc32
|
||||||
|
]
|
||||||
|
]
|
||||||
|
init_alliance_voting_members:
|
||||||
|
chain: *collectives_parachain
|
||||||
|
pallet: alliance
|
||||||
|
call: initMembers
|
||||||
|
args: [
|
||||||
|
[
|
||||||
|
*acc_liam_acc32,
|
||||||
|
*acc_olivia_acc32,
|
||||||
|
*acc_noah_acc32,
|
||||||
|
*acc_emma_acc32,
|
||||||
|
*acc_james_acc32,
|
||||||
|
*acc_ava_acc32,
|
||||||
|
*acc_mia_acc32
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
disband:
|
||||||
|
chain: *collectives_parachain
|
||||||
|
pallet: alliance
|
||||||
|
call: disband
|
||||||
|
args: [
|
||||||
|
{
|
||||||
|
votingMembers: 6,
|
||||||
|
allyMembers: 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- name: Alliance initiated with the root call, second init call fails. Alliance disband and set again.
|
||||||
|
its:
|
||||||
|
- name: Alliance initiated, founders and fellows are set.
|
||||||
|
actions:
|
||||||
|
- extrinsics:
|
||||||
|
- chain: *relay_chain
|
||||||
|
signer: *acc_alice_signer
|
||||||
|
sudo: true
|
||||||
|
pallet: xcmPallet
|
||||||
|
call: send
|
||||||
|
args: [
|
||||||
|
{ v1: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination
|
||||||
|
{
|
||||||
|
v2: [ # message
|
||||||
|
{
|
||||||
|
Transact: {
|
||||||
|
originType: Superuser,
|
||||||
|
requireWeightAtMost: 1000000000, # 1_000_000_000
|
||||||
|
call: $init_alliance_members
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
- name: sudo.Sudid
|
||||||
|
attributes:
|
||||||
|
- type: Result<Null, SpRuntimeDispatchError>
|
||||||
|
value: Ok
|
||||||
|
- name: xcmPallet.Sent
|
||||||
|
- name: alliance.MembersInitialized
|
||||||
|
chain: *collectives_parachain
|
||||||
|
- name: dmpQueue.ExecutedDownward
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# we don't know how much weight will be spent for custom call within Transact operation
|
||||||
|
# value: skipping the assertion
|
||||||
|
|
||||||
|
- name: Alliance init call fails.
|
||||||
|
actions:
|
||||||
|
- extrinsics:
|
||||||
|
- chain: *relay_chain
|
||||||
|
signer: *acc_alice_signer
|
||||||
|
sudo: true
|
||||||
|
pallet: xcmPallet
|
||||||
|
call: send
|
||||||
|
args: [
|
||||||
|
{ v1: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination
|
||||||
|
{
|
||||||
|
v2: [ # message
|
||||||
|
{
|
||||||
|
Transact: {
|
||||||
|
originType: Superuser,
|
||||||
|
requireWeightAtMost: 1000000000, # 1_000_000_000
|
||||||
|
call: $init_alliance_voting_members
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
# TODO can not currently assert variant AllianceAlreadyInitialized, XCM Transact fails silently
|
||||||
|
# issue - https://github.com/paritytech/polkadot/issues/4623
|
||||||
|
# Next test with a disband call will fail, if this call does not fail,
|
||||||
|
# since a witness data from a disband call will be invalid.
|
||||||
|
- name: sudo.Sudid
|
||||||
|
attributes:
|
||||||
|
- type: Result<Null, SpRuntimeDispatchError>
|
||||||
|
value: Ok
|
||||||
|
- name: xcmPallet.Sent
|
||||||
|
- name: dmpQueue.ExecutedDownward
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# the call must fail, the weight spent is static
|
||||||
|
value: 2,000,000,000
|
||||||
|
|
||||||
|
- name: Alliance disbanded and initialized again.
|
||||||
|
actions:
|
||||||
|
- extrinsics:
|
||||||
|
- chain: *relay_chain
|
||||||
|
signer: *acc_alice_signer
|
||||||
|
sudo: true
|
||||||
|
pallet: xcmPallet
|
||||||
|
call: send
|
||||||
|
args: [
|
||||||
|
{ v1: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination
|
||||||
|
{
|
||||||
|
v2: [ # message
|
||||||
|
{
|
||||||
|
Transact: {
|
||||||
|
originType: Superuser,
|
||||||
|
requireWeightAtMost: 100000000000, # 100_000_000_000
|
||||||
|
call: $disband
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
- name: sudo.Sudid
|
||||||
|
attributes:
|
||||||
|
- type: Result<Null, SpRuntimeDispatchError>
|
||||||
|
value: Ok
|
||||||
|
- name: xcmPallet.Sent
|
||||||
|
- name: alliance.AllianceDisbanded
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: u32
|
||||||
|
key: votingMembers
|
||||||
|
value: 6
|
||||||
|
- type: u32
|
||||||
|
key: allyMembers
|
||||||
|
value: 1
|
||||||
|
- type: u32
|
||||||
|
key: unreserved
|
||||||
|
value: 0
|
||||||
|
- name: dmpQueue.ExecutedDownward
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# we don't know how much weight will be spent for custom call within Transact operation
|
||||||
|
# value: skipping the assertion
|
||||||
|
- name: Alliance initiated, founders and fellows are set.
|
||||||
|
actions:
|
||||||
|
- extrinsics:
|
||||||
|
- chain: *relay_chain
|
||||||
|
signer: *acc_alice_signer
|
||||||
|
sudo: true
|
||||||
|
pallet: xcmPallet
|
||||||
|
call: send
|
||||||
|
args: [
|
||||||
|
{ v1: { parents: 0, interior: { x1: { parachain: *coll_para_id }}}}, # destination
|
||||||
|
{
|
||||||
|
v2: [ # message
|
||||||
|
{
|
||||||
|
Transact: {
|
||||||
|
originType: Superuser,
|
||||||
|
requireWeightAtMost: 1000000000, # 1_000_000_000
|
||||||
|
call: $init_alliance_members
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
- name: sudo.Sudid
|
||||||
|
attributes:
|
||||||
|
- type: Result<Null, SpRuntimeDispatchError>
|
||||||
|
value: Ok
|
||||||
|
- name: xcmPallet.Sent
|
||||||
|
- name: alliance.MembersInitialized
|
||||||
|
chain: *collectives_parachain
|
||||||
|
- name: dmpQueue.ExecutedDownward
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# we don't know how much weight will be spent for custom call within Transact operation
|
||||||
|
# value: skipping the assertion
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
settings:
|
||||||
|
chains:
|
||||||
|
relay_chain: &relay_chain
|
||||||
|
wsPort: 9700
|
||||||
|
collectives_parachain: &collectives_parachain
|
||||||
|
wsPort: 9710
|
||||||
|
paraId: &cp_id 1001
|
||||||
|
variables:
|
||||||
|
accounts:
|
||||||
|
liam_signer: &acc_liam_signer //Liam
|
||||||
|
liam_account32: &acc_liam_acc32 "0x3614671a5de540d891eb8c4939c8153a4aa790602b347c18177b86d0fc546221"
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- name: Liam fails to join an the Alliance, Liam is already a member.
|
||||||
|
its:
|
||||||
|
- name: Alice joins alliance
|
||||||
|
actions:
|
||||||
|
- extrinsics: # Relay Chain sets supported version for Asset Parachain
|
||||||
|
- chain: *collectives_parachain
|
||||||
|
signer: *acc_liam_signer
|
||||||
|
pallet: alliance
|
||||||
|
call: joinAlliance
|
||||||
|
args: []
|
||||||
|
events:
|
||||||
|
- name: system.ExtrinsicFailed
|
||||||
|
attributes:
|
||||||
|
- type: SpRuntimeDispatchError
|
||||||
|
key: dispatchError
|
||||||
|
# TODO assert with Alliance Error variant - alliance.AllianceNotYetInitialized
|
||||||
|
# issue - https://github.com/paritytech/parachains-integration-tests/issues/59
|
||||||
|
value: {"Module":{"index":"50","error":"0x02000000"}}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
---
|
||||||
|
settings:
|
||||||
|
chains:
|
||||||
|
relay_chain: &relay_chain
|
||||||
|
wsPort: 9700
|
||||||
|
collectives_parachain: &collectives_parachain
|
||||||
|
wsPort: 9710
|
||||||
|
paraId: &cp_id 1001
|
||||||
|
variables:
|
||||||
|
init_teleport_amount: &init_teleport_amount 20000000000000 # 20_000_000_000_000
|
||||||
|
weight_to_send_teleport: &weight_to_send_teleport 2,000,000,000 # must be same for both chains
|
||||||
|
weight_to_receive_teleport: &weight_to_receive_teleport 4,000,000,000 # must be same for both chains
|
||||||
|
accounts:
|
||||||
|
alice_signer: &acc_alice_signer //Alice
|
||||||
|
treasury_account32: &acc_treasury_acc32 '0x6d6f646c70792f74727372790000000000000000000000000000000000000000'
|
||||||
|
alice_account32: &acc_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'
|
||||||
|
alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5'
|
||||||
|
decodedCalls:
|
||||||
|
alliance_kick_member:
|
||||||
|
chain: *collectives_parachain
|
||||||
|
pallet: alliance
|
||||||
|
call: kickMember
|
||||||
|
args: [
|
||||||
|
{Id: *acc_alice_acc32}
|
||||||
|
]
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- name: Member kicked out, deposited assets slashed and teleported to Relay Chain treasury.
|
||||||
|
before:
|
||||||
|
- name: DEPENDENCY | Do a 'limitedTeleportAssets' from the Relay Chain to the Collectives Parachain
|
||||||
|
actions:
|
||||||
|
- extrinsics:
|
||||||
|
- chain: *relay_chain
|
||||||
|
signer: *acc_alice_signer
|
||||||
|
pallet: xcmPallet
|
||||||
|
call: limitedTeleportAssets
|
||||||
|
args: [
|
||||||
|
{ v1: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination
|
||||||
|
{ v1: { parents: 0, interior: { x1: { accountId32: { network: { any: true }, id: *acc_alice_acc32 }}}}}, # beneficiary
|
||||||
|
{ v1: [ { id: { concrete: { 0, interior: { here: true }}}, fun: { fungible: *init_teleport_amount }} ] }, # assets
|
||||||
|
0, # feeAssetItem
|
||||||
|
{ unlimited: true } # weightLimit
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
- name: xcmPallet.Attempted
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
value: *weight_to_send_teleport
|
||||||
|
- name: balances.Deposit
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: AccountId32
|
||||||
|
key: who
|
||||||
|
value: *acc_alice_ss58
|
||||||
|
- type: u128
|
||||||
|
key: amount
|
||||||
|
value: 20,000,000,000,000
|
||||||
|
- name: dmpQueue.ExecutedDownward
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# must be static
|
||||||
|
value: *weight_to_receive_teleport
|
||||||
|
- name: Get the balances of the Relay Chain's treasury & Collectives parachain's future alliance member
|
||||||
|
actions:
|
||||||
|
- queries:
|
||||||
|
balance_rc_treasury_before:
|
||||||
|
chain: *relay_chain
|
||||||
|
pallet: system
|
||||||
|
call: account
|
||||||
|
args: [ *acc_treasury_acc32 ]
|
||||||
|
balance_cp_alice_before:
|
||||||
|
chain: *collectives_parachain
|
||||||
|
pallet: system
|
||||||
|
call: account
|
||||||
|
args: [ *acc_alice_acc32 ]
|
||||||
|
its:
|
||||||
|
- name: Alice joins alliance
|
||||||
|
actions:
|
||||||
|
- extrinsics:
|
||||||
|
- chain: *collectives_parachain
|
||||||
|
signer: *acc_alice_signer
|
||||||
|
pallet: alliance
|
||||||
|
call: joinAlliance
|
||||||
|
args: []
|
||||||
|
events:
|
||||||
|
- name: balances.Reserved
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: AccountId32
|
||||||
|
key: who
|
||||||
|
value: *acc_alice_ss58
|
||||||
|
- type: u128
|
||||||
|
key: amount
|
||||||
|
value: 10,000,000,000,000
|
||||||
|
- name: alliance.NewAllyJoined
|
||||||
|
attributes:
|
||||||
|
- type: AccountId32
|
||||||
|
key: ally
|
||||||
|
value: *acc_alice_ss58
|
||||||
|
- queries:
|
||||||
|
balance_cp_alice_after:
|
||||||
|
chain: *collectives_parachain
|
||||||
|
pallet: system
|
||||||
|
call: account
|
||||||
|
args: [ *acc_alice_acc32 ]
|
||||||
|
- name: Alice deposit check, balance decreased
|
||||||
|
actions:
|
||||||
|
- asserts:
|
||||||
|
balanceDecreased:
|
||||||
|
args: [
|
||||||
|
{
|
||||||
|
balances: {
|
||||||
|
before: $balance_cp_alice_before,
|
||||||
|
after: $balance_cp_alice_after,
|
||||||
|
}
|
||||||
|
# TODO (P3) set `amount` and `fee` for more strict assert
|
||||||
|
}
|
||||||
|
]
|
||||||
|
- name: Kick Alice from alliance
|
||||||
|
actions:
|
||||||
|
- extrinsics: # Asset Parachain sets supported version for Relay Chain through it
|
||||||
|
- chain: *relay_chain
|
||||||
|
signer: *acc_alice_signer
|
||||||
|
sudo: true
|
||||||
|
pallet: xcmPallet
|
||||||
|
call: send
|
||||||
|
args: [
|
||||||
|
{ v1: { parents: 0, interior: { x1: { parachain: *cp_id }}}}, # destination
|
||||||
|
{
|
||||||
|
v2: [ #message
|
||||||
|
{
|
||||||
|
Transact: {
|
||||||
|
originType: Superuser,
|
||||||
|
requireWeightAtMost: 1000000000,
|
||||||
|
call: $alliance_kick_member
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
events:
|
||||||
|
- name: sudo.Sudid
|
||||||
|
attributes:
|
||||||
|
- type: Result<Null, SpRuntimeDispatchError>
|
||||||
|
value: Ok
|
||||||
|
- name: xcmPallet.Sent
|
||||||
|
- name: alliance.MemberKicked
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: AccountId32
|
||||||
|
key: member
|
||||||
|
value: *acc_alice_ss58
|
||||||
|
- name: dmpQueue.ExecutedDownward
|
||||||
|
chain: *collectives_parachain
|
||||||
|
attributes:
|
||||||
|
- type: XcmV2TraitsOutcome
|
||||||
|
xcmOutcome: Complete
|
||||||
|
# must be static
|
||||||
|
value: *weight_to_send_teleport
|
||||||
|
|
||||||
|
- queries:
|
||||||
|
balance_rc_treasury_after:
|
||||||
|
chain: *relay_chain
|
||||||
|
pallet: system
|
||||||
|
call: account
|
||||||
|
args: [ *acc_treasury_acc32 ]
|
||||||
|
- name: Slashed balance appears on the relay chain treasury account
|
||||||
|
actions:
|
||||||
|
- asserts:
|
||||||
|
balanceIncreased:
|
||||||
|
args: [
|
||||||
|
{
|
||||||
|
balances: {
|
||||||
|
before: $balance_rc_treasury_before,
|
||||||
|
after: $balance_rc_treasury_after,
|
||||||
|
}
|
||||||
|
# TODO (P3) set `amount` and `fee` for more strict assert
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
[relaychain]
|
||||||
|
default_command = "./bin/polkadot"
|
||||||
|
default_args = [ "-lparachain=trace", "-lxcm=trace" ]
|
||||||
|
chain = "polkadot-local"
|
||||||
|
|
||||||
|
[[relaychain.nodes]]
|
||||||
|
name = "alice"
|
||||||
|
ws_port = 9700
|
||||||
|
validator = true
|
||||||
|
|
||||||
|
[[relaychain.nodes]]
|
||||||
|
name = "bob"
|
||||||
|
validator = true
|
||||||
|
|
||||||
|
[[relaychain.nodes]]
|
||||||
|
name = "charlie"
|
||||||
|
validator = true
|
||||||
|
|
||||||
|
[[parachains]]
|
||||||
|
id = 1001
|
||||||
|
chain = "collectives-polkadot-local"
|
||||||
|
cumulus_based = true
|
||||||
|
|
||||||
|
[[parachains.collators]]
|
||||||
|
name = "collator1"
|
||||||
|
ws_port = 9710
|
||||||
|
command = "./bin/polkadot-parachain"
|
||||||
|
args = ["-lxcm=trace"]
|
||||||
|
|
||||||
|
[[parachains.collators]]
|
||||||
|
name = "collator2"
|
||||||
|
command = "./bin/polkadot-parachain"
|
||||||
|
args = ["-lxcm=trace"]
|
||||||
Reference in New Issue
Block a user