diff --git a/.changeset/stupid-dryers-invite.md b/.changeset/stupid-dryers-invite.md new file mode 100644 index 00000000..2d7446ed --- /dev/null +++ b/.changeset/stupid-dryers-invite.md @@ -0,0 +1,5 @@ +--- +"@polkadex/thea": minor +--- + +Added support for more tokens between Astar and Polkadex diff --git a/packages/thea/src/config/substrate/chains.ts b/packages/thea/src/config/substrate/chains.ts index dffd32f0..b44f33dd 100644 --- a/packages/thea/src/config/substrate/chains.ts +++ b/packages/thea/src/config/substrate/chains.ts @@ -97,6 +97,41 @@ export const astar = new Parachain({ asset: astr, decimals: 18, }, + { + asset: dot, + decimals: 10, + id: "340282366920938463463374607431768211455", + }, + { + asset: glmr, + decimals: 18, + id: "18446744073709551619", + }, + { + asset: unq, + decimals: 18, + id: "18446744073709551631", + }, + { + asset: pha, + decimals: 12, + id: "18446744073709551622", + }, + { + asset: ibtc, + decimals: 8, + id: "18446744073709551620", + }, + { + asset: bnc, + decimals: 12, + id: "18446744073709551623", + }, + { + asset: vdot, + decimals: 10, + id: "18446744073709551624", + }, ], ecosystem: Ecosystem.Polkadot, genesisHash: ASTAR_GENESIS, diff --git a/packages/thea/src/config/substrate/config/astar.ts b/packages/thea/src/config/substrate/config/astar.ts index bd419952..e4ebf8e3 100644 --- a/packages/thea/src/config/substrate/config/astar.ts +++ b/packages/thea/src/config/substrate/config/astar.ts @@ -1,9 +1,9 @@ import { AssetConfig, ChainConfig } from "@moonbeam-network/xcm-config"; -import { BalanceBuilder } from "@moonbeam-network/xcm-builder"; +import { BalanceBuilder, AssetMinBuilder } from "@moonbeam-network/xcm-builder"; import { ExtrinsicBuilderV2 } from "../builders"; import { astar, polkadex } from "../chains"; -import { astr } from "../assets"; +import { astr, dot, glmr, unq, pha, bnc, vdot, ibtc } from "../assets"; const toPolkadex: AssetConfig[] = [ new AssetConfig({ @@ -21,6 +21,125 @@ const toPolkadex: AssetConfig[] = [ balance: BalanceBuilder().substrate().system().account(), }, }), + + new AssetConfig({ + asset: dot, + balance: BalanceBuilder().substrate().assets().account(), + destination: polkadex, + destinationFee: { + amount: 0.1, + asset: dot, + balance: BalanceBuilder().substrate().system().account(), + }, + extrinsic: ExtrinsicBuilderV2().xTokens().transfer().X3(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: astr, + balance: BalanceBuilder().substrate().system().account(), + }, + }), + + new AssetConfig({ + asset: glmr, + balance: BalanceBuilder().substrate().assets().account(), + destination: polkadex, + destinationFee: { + amount: 0.1, + asset: glmr, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2().xTokens().transfer().X3(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: astr, + balance: BalanceBuilder().substrate().system().account(), + }, + }), + + new AssetConfig({ + asset: unq, + balance: BalanceBuilder().substrate().assets().account(), + destination: polkadex, + destinationFee: { + amount: 0.1, + asset: unq, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2().xTokens().transfer().X3(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: astr, + balance: BalanceBuilder().substrate().system().account(), + }, + }), + + new AssetConfig({ + asset: pha, + balance: BalanceBuilder().substrate().assets().account(), + destination: polkadex, + destinationFee: { + amount: 0.2, + asset: pha, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2().xTokens().transfer().X3(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: astr, + balance: BalanceBuilder().substrate().system().account(), + }, + }), + + new AssetConfig({ + asset: bnc, + balance: BalanceBuilder().substrate().assets().account(), + destination: polkadex, + destinationFee: { + amount: 0.0006, + asset: bnc, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2().xTokens().transfer().X3(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: astr, + balance: BalanceBuilder().substrate().system().account(), + }, + }), + + new AssetConfig({ + asset: vdot, + balance: BalanceBuilder().substrate().assets().account(), + destination: polkadex, + destinationFee: { + amount: 0.00000007, + asset: vdot, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2().xTokens().transfer().X3(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: astr, + balance: BalanceBuilder().substrate().system().account(), + }, + }), + + new AssetConfig({ + asset: ibtc, + balance: BalanceBuilder().substrate().assets().account(), + destination: polkadex, + destinationFee: { + amount: 0.000003, + asset: ibtc, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2().xTokens().transfer().X3(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: astr, + balance: BalanceBuilder().substrate().system().account(), + }, + }), ]; export const astarConfig = new ChainConfig({ diff --git a/packages/thea/src/config/substrate/config/polkadex.ts b/packages/thea/src/config/substrate/config/polkadex.ts index 7aed50ab..ab405413 100644 --- a/packages/thea/src/config/substrate/config/polkadex.ts +++ b/packages/thea/src/config/substrate/config/polkadex.ts @@ -168,6 +168,160 @@ const toAstar: AssetConfig[] = [ xcmDeliveryFeeAmount, }, }), + + new AssetConfig({ + asset: dot, + balance: BalanceBuilder().substrate().assets().account(), + destination: astar, + destinationFee: { + amount: 0.05, + asset: dot, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2() + .theaExecuter() + .parachainWithdraw() + .X2() + .sufficient(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + xcmDeliveryFeeAmount, + }, + }), + + new AssetConfig({ + asset: glmr, + balance: BalanceBuilder().substrate().assets().account(), + destination: astar, + destinationFee: { + amount: 0.0035, + asset: glmr, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2() + .theaExecuter() + .parachainWithdraw() + .X2() + .sufficient(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + xcmDeliveryFeeAmount, + }, + }), + + new AssetConfig({ + asset: unq, + balance: BalanceBuilder().substrate().assets().account(), + destination: astar, + destinationFee: { + amount: 0.01, + asset: unq, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2() + .theaExecuter() + .parachainWithdraw() + .X2() + .sufficient(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + xcmDeliveryFeeAmount, + }, + }), + + new AssetConfig({ + asset: pha, + balance: BalanceBuilder().substrate().assets().account(), + destination: astar, + destinationFee: { + amount: 0.065, + asset: pha, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2() + .theaExecuter() + .parachainWithdraw() + .X2() + .sufficient(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + xcmDeliveryFeeAmount, + }, + }), + + new AssetConfig({ + asset: bnc, + balance: BalanceBuilder().substrate().assets().account(), + destination: astar, + destinationFee: { + amount: 0.001, + asset: bnc, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2() + .theaExecuter() + .parachainWithdraw() + .X2() + .sufficient(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + xcmDeliveryFeeAmount, + }, + }), + + new AssetConfig({ + asset: vdot, + balance: BalanceBuilder().substrate().assets().account(), + destination: astar, + destinationFee: { + amount: 0.0000085, + asset: vdot, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2() + .theaExecuter() + .parachainWithdraw() + .X2() + .sufficient(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + xcmDeliveryFeeAmount, + }, + }), + + new AssetConfig({ + asset: ibtc, + balance: BalanceBuilder().substrate().assets().account(), + destination: astar, + destinationFee: { + amount: 0.0000063, + asset: ibtc, + balance: BalanceBuilder().substrate().assets().account(), + }, + extrinsic: ExtrinsicBuilderV2() + .theaExecuter() + .parachainWithdraw() + .X2() + .sufficient(), + min: AssetMinBuilder().assets().asset(), + fee: { + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + xcmDeliveryFeeAmount, + }, + }), ]; const toPhala: AssetConfig[] = [ @@ -176,7 +330,7 @@ const toPhala: AssetConfig[] = [ balance: BalanceBuilder().substrate().assets().account(), destination: phala, destinationFee: { - amount: 0.064296, + amount: 0.065, asset: pha, balance: BalanceBuilder().substrate().system().account(), },