Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/notifications.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@
"collectivesPolkadot": 192,
"bridgeHubPolkadot": 207,
"bridgeHubKusama": 208,
"unknown": 143
"integritee": 285,
"unknown": 143,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,286 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`integriteeKusama & assetHubKusama > assetHubKusama transfer KSM to integriteeKusama > balance on from chain 1`] = `
{
"consumers": 0,
"data": {
"flags": "0x80000000000000000000000000000000",
"free": "(rounded 9000000000000)",
"frozen": 0,
"reserved": 0,
},
"nonce": 1,
"providers": 1,
"sufficients": 0,
}
`;

exports[`integriteeKusama & assetHubKusama > assetHubKusama transfer KSM to integriteeKusama > balance on to chain 1`] = `
{
"balance": "(rounded 1000000000000)",
"extra": null,
"reason": {
"sufficient": null,
},
"status": "Liquid",
}
`;

exports[`integriteeKusama & assetHubKusama > assetHubKusama transfer KSM to integriteeKusama > from chain hrmp messages 1`] = `
[
{
"data": [
"ConcatenatedVersionedXcm",
{
"v4": [
{
"reserveAssetDeposited": [
{
"fun": {
"fungible": 1000000000000,
},
"id": {
"interior": {
"here": null,
},
"parents": 1,
},
},
],
},
{
"clearOrigin": null,
},
{
"buyExecution": {
"fees": {
"fun": {
"fungible": 1000000000000,
},
"id": {
"interior": {
"here": null,
},
"parents": 1,
},
},
"weightLimit": {
"unlimited": null,
},
},
},
{
"depositAsset": {
"assets": {
"wild": {
"allCounted": 1,
},
},
"beneficiary": {
"interior": {
"x1": [
{
"accountId32": {
"id": "0xd17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69",
"network": null,
},
},
],
},
"parents": 0,
},
},
},
{
"setTopic": "(redacted)",
},
],
},
],
"recipient": 2015,
},
]
`;

exports[`integriteeKusama & assetHubKusama > assetHubKusama transfer KSM to integriteeKusama > to chain xcm events 1`] = `
[
{
"data": {
"id": "(hash)",
"origin": {
"Sibling": 1000,
},
"success": true,
"weightUsed": {
"proofSize": "(rounded 5100)",
"refTime": 5000000,
},
},
"method": "Processed",
"section": "messageQueue",
},
]
`;

exports[`integriteeKusama & assetHubKusama > assetHubKusama transfer KSM to integriteeKusama > tx events 1`] = `
[
{
"data": {
"outcome": {
"Complete": {
"used": {
"proofSize": "(rounded 6200)",
"refTime": "(rounded 300000000)",
},
},
},
},
"method": "Attempted",
"section": "polkadotXcm",
},
{
"data": {
"fees": [
{
"fun": {
"Fungible": "(rounded 1000000000)",
},
"id": {
"interior": "Here",
"parents": 1,
},
},
],
"paying": {
"interior": {
"X1": [
{
"AccountId32": {
"id": "(hash)",
"network": "Kusama",
},
},
],
},
"parents": 0,
},
},
"method": "FeesPaid",
"section": "polkadotXcm",
},
{
"data": {
"destination": {
"interior": {
"X1": [
{
"Parachain": "(rounded 2000)",
},
],
},
"parents": 1,
},
"message": [
{
"ReserveAssetDeposited": [
{
"fun": {
"Fungible": 1000000000000,
},
"id": {
"interior": "Here",
"parents": 1,
},
},
],
},
"ClearOrigin",
{
"BuyExecution": {
"fees": {
"fun": {
"Fungible": 1000000000000,
},
"id": {
"interior": "Here",
"parents": 1,
},
},
"weightLimit": "Unlimited",
},
},
{
"DepositAsset": {
"assets": {
"Wild": {
"AllCounted": 1,
},
},
"beneficiary": {
"interior": {
"X1": [
{
"AccountId32": {
"id": "(hash)",
"network": null,
},
},
],
},
"parents": 0,
},
},
},
],
"messageId": "(hash)",
"origin": {
"interior": {
"X1": [
{
"AccountId32": {
"id": "(hash)",
"network": "Kusama",
},
},
],
},
"parents": 0,
},
},
"method": "Sent",
"section": "polkadotXcm",
},
]
`;

exports[`integriteeKusama & assetHubKusama > integriteeKusama transfer KSM to assetHubKusama > balance on from chain 1`] = `
{
"balance": 1000000000000000,
"extra": null,
"reason": {
"consumer": null,
},
"status": "Liquid",
}
`;

exports[`integriteeKusama & assetHubKusama > integriteeKusama transfer KSM to assetHubKusama > balance on to chain 1`] = `
{
"consumers": 0,
"data": {
"flags": "0x80000000000000000000000000000000",
"free": 0,
"frozen": 0,
"reserved": 0,
},
"nonce": 0,
"providers": 0,
"sufficients": 0,
}
`;

exports[`integriteeKusama & assetHubKusama > integriteeKusama transfer KSM to assetHubKusama > from chain hrmp messages 1`] = `[]`;

exports[`integriteeKusama & assetHubKusama > integriteeKusama transfer KSM to assetHubKusama > to chain xcm events 1`] = `[]`;

exports[`integriteeKusama & assetHubKusama > integriteeKusama transfer KSM to assetHubKusama > tx events 1`] = `[]`;
38 changes: 38 additions & 0 deletions packages/kusama/src/integritee.assetHubKusama.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { describe } from 'vitest'

import { assetHubKusama, integriteeKusama } from '@e2e-test/networks/chains'
import { setupNetworks } from '@e2e-test/shared'
import { query, tx } from '@e2e-test/shared/api'
import { runXcmPalletHorizontal } from '@e2e-test/shared/xcm'

describe('integriteeKusama & assetHubKusama', async () => {
const [assetHubKusamaClient, integriteeKusamaClient] = await setupNetworks(assetHubKusama, integriteeKusama)

runXcmPalletHorizontal('assetHubKusama transfer KSM to integriteeKusama', async () => {
return {
fromChain: assetHubKusamaClient,
toChain: integriteeKusamaClient,
fromBalance: query.balances,
toBalance: query.assets(integriteeKusama.custom.assetIdRelayNative),
tx: tx.xcmPallet.limitedReserveTransferAssetsV3(
assetHubKusama.custom.ksm,
1e12,
tx.xcmPallet.parachainV3(1, integriteeKusama.paraId!),
),
}
})

runXcmPalletHorizontal('integriteeKusama transfer KSM to assetHubKusama', async () => {
return {
fromChain: integriteeKusamaClient,
toChain: assetHubKusamaClient,
fromBalance: query.assets(integriteeKusama.custom.assetIdRelayNative),
toBalance: query.balances,
tx: tx.xcmPallet.limitedReserveTransferAssetsV3(
integriteeKusama.custom.xcmRelayNative,
1e12,
tx.xcmPallet.parachainV3(1, assetHubKusama.paraId!),
),
}
})
})
1 change: 1 addition & 0 deletions packages/networks/src/chains/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ export * from './bridgehub.js'
export * from './coretime.js'
export * from './collectives.js'
export * from './hydration.js'
export * from './integritee.js'
export * from './moonbeam.js'
export * from './people.js'
export * from './polkadot.js'
40 changes: 40 additions & 0 deletions packages/networks/src/chains/integritee.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { defaultAccounts } from '../defaultAccounts.js'
import { defineChain } from '../defineChain.js'

const custom = {
integriteePolkadot: {
xcmTeer: { Concrete: { parents: 0, interior: 'Here' } },
xcmRelayNative: { Concrete: { parents: 1, interior: 'Here' } },
assetIdRelayNative: 0,
},
integriteeKusama: {
xcmTeer: { Concrete: { parents: 0, interior: 'Here' } },
xcmRelayNative: { Concrete: { parents: 1, interior: 'Here' } },
assetIdRelayNative: 0,
},
}

const getInitStorages = (config: typeof custom.integriteePolkadot | typeof custom.integriteeKusama) => ({
System: {
account: [[[defaultAccounts.alice.address], { providers: 1, data: { free: 1000e10 } }]],
},
Assets: {
account: [[[config.assetIdRelayNative, defaultAccounts.alice.address], { balance: 1000e12 }]],
},
})

export const integriteePolkadot = defineChain({
name: 'integritee-polkadot',
paraId: 2039,
endpoint: 'wss://polkadot.api.integritee.network',
custom: custom.integriteePolkadot,
initStorages: getInitStorages(custom.integriteePolkadot),
})

export const integriteeKusama = defineChain({
name: 'integritee-kusama',
paraId: 2015,
endpoint: 'wss://kusama.api.integritee.network',
custom: custom.integriteeKusama,
initStorages: getInitStorages(custom.integriteeKusama),
})
Loading