From 34f78768fe07dafa44926431578524466cc5436d Mon Sep 17 00:00:00 2001 From: Alain Brenzikofer Date: Tue, 27 Aug 2024 16:05:12 +0200 Subject: [PATCH] naive add of encointer --- .papi/metadata/ksmEnc.scale | Bin 0 -> 191875 bytes .papi/polkadot-api.json | 5 ++++ src/api/chains.ts | 1 + src/api/clients/index.ts | 1 + src/api/clients/ksmEnc.ts | 13 +++++++++ src/api/common.ts | 56 ++++++++++++++++++++++++++++++++++++ src/api/ksm/enc.ts | 36 +++++++++++++++++++++++ src/api/ksm/index.ts | 3 +- src/api/ksm/relay.ts | 4 ++- src/api/types.ts | 1 + 10 files changed, 118 insertions(+), 2 deletions(-) create mode 100644 .papi/metadata/ksmEnc.scale create mode 100644 src/api/clients/ksmEnc.ts create mode 100644 src/api/ksm/enc.ts diff --git a/.papi/metadata/ksmEnc.scale b/.papi/metadata/ksmEnc.scale new file mode 100644 index 0000000000000000000000000000000000000000..ae8cdedaa2f352a1494d42cc9aab629d4a3536d9 GIT binary patch literal 191875 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 literal 0 HcmV?d00001 diff --git a/.papi/polkadot-api.json b/.papi/polkadot-api.json index 27d4f56..c669716 100644 --- a/.papi/polkadot-api.json +++ b/.papi/polkadot-api.json @@ -41,6 +41,11 @@ "pasAh": { "chain": "paseo_asset_hub", "metadata": ".papi/metadata/pasAh.scale" + }, + "ksmEnc": { + "chain": "ksmcc3_encointer", + "wsUrl": "wss://kusama.api.encointer.org", + "metadata": ".papi/metadata/ksmEnc.scale" } } } diff --git a/src/api/chains.ts b/src/api/chains.ts index 6aff8c5..bb3f171 100644 --- a/src/api/chains.ts +++ b/src/api/chains.ts @@ -29,6 +29,7 @@ export const CHAIN_NAMES: Record = { dotAh: "Polkadot AssetHub", ksm: "Kusama RelayChain", ksmAh: "Kusama AssetHub", + ksmEnc: "Kusama Encointer", wnd: "Westend RelayChain", wndAh: "Westend AssetHub", roc: "Rococo RelayChain", diff --git a/src/api/clients/index.ts b/src/api/clients/index.ts index f9272fb..6ccd8ed 100644 --- a/src/api/clients/index.ts +++ b/src/api/clients/index.ts @@ -3,6 +3,7 @@ export { dotAhClient } from "./dotAh" export { ksmClient } from "./ksm" export { ksmAhClient } from "./ksmAh" +export { ksmEncClient } from "./ksmEnc" export { wndClient } from "./wnd" export { wndAhClient } from "./wndAh" diff --git a/src/api/clients/ksmEnc.ts b/src/api/clients/ksmEnc.ts new file mode 100644 index 0000000..539d050 --- /dev/null +++ b/src/api/clients/ksmEnc.ts @@ -0,0 +1,13 @@ +import { createClient } from "polkadot-api" +import { getSmProvider } from "polkadot-api/sm-provider" +import { smoldot } from "./smoldot" +import { ksmRelayChain } from "./ksm" + +const smoldotParaChain = Promise.all([ + ksmRelayChain, + import("polkadot-api/chains/ksmcc3_encointer"), +]).then(([relayChain, { chainSpec }]) => + smoldot.addChain({ chainSpec, potentialRelayChains: [relayChain] }), +) + +export const ksmEncClient = createClient(getSmProvider(smoldotParaChain)) diff --git a/src/api/common.ts b/src/api/common.ts index 85387f1..1bdaa7e 100644 --- a/src/api/common.ts +++ b/src/api/common.ts @@ -60,6 +60,21 @@ export const fromRelayToAssetHub = ( weight_limit: XcmV3WeightLimit.Unlimited(), }) +export const fromRelayToEncointer = ( + from: PolkadotSigner, + amount: bigint, + to?: SS58String, +) => ({ + dest: XcmVersionedLocation.V3({ + parents: 0, + interior: XcmV3Junctions.X1(XcmV3Junction.Parachain(1001)), + }), + beneficiary: getBeneficiary(to ?? from.publicKey), + assets: getNativeAsset(0, amount), + fee_asset_item: 0, + weight_limit: XcmV3WeightLimit.Unlimited(), +}) + export const fromAssetHubToRelay = ( from: PolkadotSigner, amount: bigint, @@ -81,6 +96,27 @@ export const fromAssetHubToRelay = ( weight_limit: XcmV3WeightLimit.Unlimited(), }) +export const fromEncointerToRelay = ( + from: PolkadotSigner, + amount: bigint, + to?: SS58String, +) => ({ + dest: { + type: "V3" as const, + value: { + parents: 1, + interior: { + type: "Here" as const, + value: undefined, + }, + }, + }, + beneficiary: getBeneficiary(to ?? from.publicKey), + assets: getNativeAsset(1, amount), + fee_asset_item: 0, + weight_limit: XcmV3WeightLimit.Unlimited(), +}) + export const fromAssetHubToForeign = ( network: XcmV3JunctionNetworkId, parachainId: number, @@ -101,6 +137,26 @@ export const fromAssetHubToForeign = ( weight_limit: XcmV3WeightLimit.Unlimited(), }) +export const fromEncointerToForeign = ( + network: XcmV3JunctionNetworkId, + parachainId: number, + assets: XcmVersionedAssets, + from: PolkadotSigner, + to?: SS58String, +) => ({ + dest: XcmVersionedLocation.V3({ + parents: 2, + interior: XcmV3Junctions.X2([ + XcmV3Junction.GlobalConsensus(network), + XcmV3Junction.Parachain(parachainId), + ]), + }), + beneficiary: getBeneficiary(to ?? from.publicKey), + assets, + fee_asset_item: 0, + weight_limit: XcmV3WeightLimit.Unlimited(), +}) + /* export const toAssetHub = ( from: PolkadotSigner, diff --git a/src/api/ksm/enc.ts b/src/api/ksm/enc.ts new file mode 100644 index 0000000..4d25306 --- /dev/null +++ b/src/api/ksm/enc.ts @@ -0,0 +1,36 @@ +import { + XcmV3JunctionNetworkId, + ksmEnc, +} from "@polkadot-api/descriptors" +import { ksmEncClient } from "@/api/clients" +import { AssetInChain } from "../types" +import { + fromEncointerToForeign, + fromEncointerToRelay, + getNativeAsset, + watchAccoutFreeBalance, +} from "../common" + +const api = ksmEncClient.getTypedApi(ksmEnc) + +const ksm: AssetInChain = { + chain: "ksmEnc", + symbol: "KSM", + watchFreeBalance: watchAccoutFreeBalance(api), + teleport: { + ksm: (...args) => + api.tx.PolkadotXcm.limited_teleport_assets(fromEncointerToRelay(...args)), + dotAh: (from, amount, to) => + api.tx.PolkadotXcm.limited_reserve_transfer_assets( + fromEncointerToForeign( + XcmV3JunctionNetworkId.Polkadot(), + 1000, + getNativeAsset(1, amount), + from, + to, + ), + ), + }, +} + +export default [ksm] diff --git a/src/api/ksm/index.ts b/src/api/ksm/index.ts index 2b9dd85..9ee5fcb 100644 --- a/src/api/ksm/index.ts +++ b/src/api/ksm/index.ts @@ -1,4 +1,5 @@ import relay from "./relay" import ah from "./ah" +import enc from "./enc" -export default [...relay, ...ah] +export default [...relay, ...ah, ...enc] diff --git a/src/api/ksm/relay.ts b/src/api/ksm/relay.ts index 9f3271a..42fb918 100644 --- a/src/api/ksm/relay.ts +++ b/src/api/ksm/relay.ts @@ -1,7 +1,7 @@ import { ksm as descriptors } from "@polkadot-api/descriptors" import { ksmClient } from "@/api/clients" import { AssetInChain } from "../types" -import { fromRelayToAssetHub, watchAccoutFreeBalance } from "../common" +import { fromRelayToAssetHub, fromRelayToEncointer, watchAccoutFreeBalance } from "../common" const api = ksmClient.getTypedApi(descriptors) @@ -12,6 +12,8 @@ const ksm: AssetInChain = { teleport: { ksmAh: (...args) => api.tx.XcmPallet.limited_teleport_assets(fromRelayToAssetHub(...args)), + ksmEnc: (...args) => + api.tx.XcmPallet.limited_teleport_assets(fromRelayToEncointer(...args)), }, } diff --git a/src/api/types.ts b/src/api/types.ts index 474a0c3..0fa0fb4 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -8,6 +8,7 @@ export type ChainId = | "wndAh" | "ksm" | "ksmAh" + | "ksmEnc" | "roc" | "rocAh" | "pas"