diff --git a/packages/thea/src/config/substrate/builders/pallets/theaExecuter.utils.ts b/packages/thea/src/config/substrate/builders/pallets/theaExecuter.utils.ts index ff65e244..8c1166d3 100644 --- a/packages/thea/src/config/substrate/builders/pallets/theaExecuter.utils.ts +++ b/packages/thea/src/config/substrate/builders/pallets/theaExecuter.utils.ts @@ -33,5 +33,5 @@ export const toBeneficiary = ( }; export const toAsset = (asset: ChainAssetId) => { - return asset === "0" ? "Polkadex" : { Asset: asset }; + return !asset || asset === "PDEX" ? "Polkadex" : { Asset: asset }; }; diff --git a/packages/thea/src/config/substrate/chains.ts b/packages/thea/src/config/substrate/chains.ts index e1fe03ad..967c8f58 100644 --- a/packages/thea/src/config/substrate/chains.ts +++ b/packages/thea/src/config/substrate/chains.ts @@ -169,6 +169,11 @@ export const moonbeam = new EvmParachain({ asset: glmr, decimals: 18, }, + { + asset: pdex, + decimals: 12, + id: "90225766094594282577230355136633846906", + }, ], ecosystem: Ecosystem.Polkadot, genesisHash: MOONBEAM_GENESIS, diff --git a/packages/thea/src/config/substrate/config/moonbeam.ts b/packages/thea/src/config/substrate/config/moonbeam.ts index f5a5d81f..942919c6 100644 --- a/packages/thea/src/config/substrate/config/moonbeam.ts +++ b/packages/thea/src/config/substrate/config/moonbeam.ts @@ -3,7 +3,7 @@ import { BalanceBuilder } from "@moonbeam-network/xcm-builder"; import { ExtrinsicBuilderV2 } from "../builders"; import { moonbeam, polkadex } from "../chains"; -import { glmr } from "../assets"; +import { glmr, pdex } from "../assets"; const toPolkadex: AssetConfig[] = [ new AssetConfig({ @@ -21,6 +21,23 @@ const toPolkadex: AssetConfig[] = [ balance: BalanceBuilder().substrate().system().account(), }, }), + + // Not tested yet + new AssetConfig({ + asset: pdex, + balance: BalanceBuilder().substrate().assets().account(), + destination: polkadex, + destinationFee: { + amount: 0, + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + }, + extrinsic: ExtrinsicBuilderV2().xTokens().evmTransfer(), + fee: { + asset: glmr, + balance: BalanceBuilder().substrate().system().account(), + }, + }), ]; export const moonbeamConfig = new ChainConfig({ diff --git a/packages/thea/src/config/substrate/config/polkadex.ts b/packages/thea/src/config/substrate/config/polkadex.ts index b0506047..3ad72fe7 100644 --- a/packages/thea/src/config/substrate/config/polkadex.ts +++ b/packages/thea/src/config/substrate/config/polkadex.ts @@ -216,6 +216,27 @@ const toMoonbeam: AssetConfig[] = [ xcmDeliveryFeeAmount, }, }), + + new AssetConfig({ + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + destination: moonbeam, + destinationFee: { + amount: 0.013, + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + }, + extrinsic: ExtrinsicBuilderV2() + .theaExecuter() + .parachainWithdraw() + .X2() + .sufficient(), + fee: { + asset: pdex, + balance: BalanceBuilder().substrate().system().account(), + xcmDeliveryFeeAmount, + }, + }), ]; const toUnique: AssetConfig[] = [