@moonbeam-network/xcm-config 0.0.1-dev.19 → 0.0.1-dev.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.cjs.map +1 -1
- package/build/index.mjs.map +1 -1
- package/package.json +1 -1
package/build/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/balance/balance.ts","../src/balance/balance.constants.ts","../src/constants/assets.ts","../src/constants/chains.ts","../src/config/config.utils.ts","../src/extrinsic/polkadotXcm/polkadotXcm.constants.ts","../src/extrinsic/extrinsic.constants.ts","../src/extrinsic/polkadotXcm/polkadotXcm.util.ts","../src/extrinsic/polkadotXcm/polkadotXcm.ts","../src/extrinsic/xcmPallet/xcmPallet.ts","../src/extrinsic/xTokens/xTokens.constants.ts","../src/extrinsic/xTokens/xTokens.util.ts","../src/extrinsic/xTokens/xTokens.ts","../src/extrinsic/xTransfer/xTransfer.constants.ts","../src/extrinsic/xTransfer/xTransfer.ts","../src/extrinsic/extrinsic.ts","../src/multilocation/multilocation.ts","../src/transact/transact.ts","../src/withdraw/withdraw.ts","../src/config/moonbase/moonbase.assets.ts","../src/config/moonbase/moonbase.chains.ts","../src/config/moonbase/moonbase.common.ts","../src/config/moonbase/assets/auq.ts","../src/config/moonbase/assets/neer.ts","../src/config/moonbase/assets/bit.ts","../src/config/moonbase/assets/dev.ts","../src/config/moonbase/assets/lit.ts","../src/config/moonbase/assets/tt1.ts","../src/config/moonbase/assets/unit.ts","../src/config/moonbase/moonbase.ts","../src/config/moonbase/transact/beta.ts","../src/config/moonbase/moonbase.transact.ts","../src/config/moonbeam/moonbeam.assets.ts","../src/config/moonbeam/moonbeam.chains.ts","../src/config/moonbeam/moonbeam.common.ts","../src/config/moonbeam/assets/aca.ts","../src/config/moonbeam/assets/astr.ts","../src/config/moonbeam/assets/ausd.ts","../src/config/moonbeam/assets/bnc.ts","../src/config/moonbeam/assets/dot.ts","../src/config/moonbeam/assets/glmr.ts","../src/config/moonbeam/assets/ibtc.ts","../src/config/moonbeam/assets/intr.ts","../src/config/moonbeam/assets/para.ts","../src/config/moonbeam/assets/pha.ts","../src/config/moonbeam/assets/ring.ts","../src/config/moonbeam/assets/usdt.ts","../src/config/moonbeam/moonbeam.ts","../src/config/moonriver/moonriver.assets.ts","../src/config/moonriver/moonriver.chains.ts","../src/config/moonriver/moonriver.common.ts","../src/config/moonriver/assets/ausd.ts","../src/config/moonriver/assets/bnc.ts","../src/config/moonriver/assets/crab.ts","../src/config/moonriver/assets/csm.ts","../src/config/moonriver/assets/hko.ts","../src/config/moonriver/assets/kar.ts","../src/config/moonriver/assets/kbtc.ts","../src/config/moonriver/assets/kint.ts","../src/config/moonriver/assets/kma.ts","../src/config/moonriver/assets/ksm.ts","../src/config/moonriver/assets/lit.ts","../src/config/moonriver/assets/movr.ts","../src/config/moonriver/assets/pha.ts","../src/config/moonriver/assets/rmrk.ts","../src/config/moonriver/assets/sdn.ts","../src/config/moonriver/assets/teer.ts","../src/config/moonriver/assets/usdt.ts","../src/config/moonriver/assets/xrt.ts","../src/config/moonriver/moonriver.ts","../src/config/config.ts"],"sourcesContent":["import '@polkadot/api-augment';\n\nexport * from './balance';\nexport * from './config';\nexport * from './constants';\nexport * from './deposit';\nexport * from './extrinsic';\nexport * from './interfaces';\nexport * from './multilocation';\nexport * from './transact';\nexport * from './withdraw';\n","import '@polkadot/api-augment';\n\nimport { u128 } from '@polkadot/types';\nimport { PalletBalancesAccountData } from '@polkadot/types/lookup';\nimport { AssetSymbol } from '../constants';\nimport { AssetId } from '../interfaces';\nimport {\n BalanceCurrencyTypes,\n BalanceFunction,\n BalancePallet,\n} from './balance.constants';\nimport {\n AssetsBalanceConfig,\n MinBalanceAssetRegistryConfig,\n MinBalanceAssetsConfig,\n OrmlTokensBalanceConfig,\n SystemBalanceConfig,\n TokensBalanceConfig,\n TokensBalanceParamAsset,\n TokensPalletAccountData,\n} from './balance.interfaces';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function createBalanceBuilder<\n Symbols extends AssetSymbol = AssetSymbol,\n>() {\n return {\n assets,\n minAssetPallet,\n minAssetRegistryPallet,\n minCurrencyMetadata,\n ormlTokens,\n system,\n tokens: () => tokens<Symbols>(),\n };\n}\n\nfunction assets(asset: AssetId): AssetsBalanceConfig {\n return {\n pallet: BalancePallet.Assets,\n function: BalanceFunction.Account,\n path: ['balance'],\n getParams: (account: string) => [asset, account],\n calc: (balance: u128) => balance.toBigInt(),\n };\n}\n\nfunction minAssetPallet(asset: AssetId): MinBalanceAssetsConfig {\n return {\n pallet: BalancePallet.Assets,\n function: BalanceFunction.Asset,\n path: ['minBalance'],\n params: [asset],\n };\n}\n\nfunction minAssetRegistryPallet(asset: AssetId): MinBalanceAssetRegistryConfig {\n return {\n pallet: BalancePallet.AssetRegistry,\n function: BalanceFunction.AssetMetadatas,\n path: ['minimalBalance'],\n params: [{ ForeignAssetId: asset }],\n };\n}\n\nfunction minCurrencyMetadata(asset: AssetId): MinBalanceAssetRegistryConfig {\n return {\n pallet: BalancePallet.AssetRegistry,\n function: BalanceFunction.CurrencyMetadatas,\n path: ['minimalBalance'],\n params: [{ Token2: asset }],\n };\n}\n\nfunction ormlTokens(asset: AssetId): OrmlTokensBalanceConfig {\n return {\n pallet: BalancePallet.OrmlTokens,\n function: BalanceFunction.Accounts,\n path: [],\n getParams: (account: string) => [account, { ForeignAsset: asset }],\n calc: ({ free, frozen }: TokensPalletAccountData) =>\n BigInt(free.sub(frozen).toString()),\n };\n}\n\nfunction system(): SystemBalanceConfig {\n return {\n pallet: BalancePallet.System,\n function: BalanceFunction.Account,\n path: ['data'],\n getParams: (account: string) => [account],\n calc: ({ free, miscFrozen }: PalletBalancesAccountData) =>\n BigInt(free.sub(miscFrozen).toString()),\n };\n}\n\nfunction tokens<Symbols extends AssetSymbol = AssetSymbol>() {\n return {\n foreignAsset: (asset: AssetId | Symbols) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.ForeignAsset]: asset }),\n fungibleToken: (asset: AssetId) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.FungibleToken]: asset }),\n miningResource: (asset: AssetId) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.MiningResource]: asset }),\n token: (asset: Symbols | AssetSymbol.KUSD) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.Token]: asset }),\n token2: (asset: AssetId) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.Token2]: asset }),\n };\n}\n\nfunction tokensBase<Symbols extends AssetSymbol = AssetSymbol>(\n asset: TokensBalanceParamAsset<Symbols>,\n): TokensBalanceConfig<Symbols> {\n return {\n pallet: BalancePallet.Tokens,\n function: BalanceFunction.Accounts,\n path: [],\n getParams: (account: string) => [account, asset],\n calc: ({ free, frozen }: TokensPalletAccountData) =>\n BigInt(free.sub(frozen).toString()),\n };\n}\n","export enum BalancePallet {\n Assets = 'assets',\n AssetRegistry = 'assetRegistry',\n OrmlTokens = 'ormlTokens',\n System = 'system',\n Tokens = 'tokens',\n}\n\nexport enum BalanceFunction {\n Account = 'account',\n Accounts = 'accounts',\n Asset = 'asset',\n AssetMetadatas = 'assetMetadatas',\n CurrencyMetadatas = 'currencyMetadatas',\n}\n\nexport enum BalanceCurrencyTypes {\n Token = 'Token',\n Token2 = 'Token2',\n ForeignAsset = 'ForeignAsset',\n NativeToken = 'NativeToken',\n MiningResource = 'MiningResource',\n FungibleToken = 'FungibleToken',\n}\n","export enum AssetSymbol {\n ACA = 'ACA',\n ASTR = 'ASTR',\n AUSD = 'AUSD',\n AUQ = 'AUQ',\n BIT = 'BIT',\n BNC = 'BNC',\n CRAB = 'CRAB',\n CSM = 'CSM',\n DEV = 'DEV',\n DOT = 'DOT',\n GLMR = 'GLMR',\n HKO = 'HKO',\n IBTC = 'IBTC',\n INTR = 'INTR',\n KAR = 'KAR',\n KBTC = 'KBTC',\n KINT = 'KINT',\n KMA = 'KMA',\n KSM = 'KSM',\n KUSD = 'KUSD',\n LIT = 'LIT',\n MOVR = 'MOVR',\n NEER = 'NEER',\n PARA = 'PARA',\n PHA = 'PHA',\n RING = 'RING',\n RMRK = 'RMRK',\n SDN = 'SDN',\n TEER = 'TEER',\n TT1 = 'TT1',\n UNIT = 'UNIT',\n USDT = 'USDT',\n XRT = 'XRT',\n}\n","import { MoonChain } from '../interfaces';\n\nexport enum MoonChainKey {\n MoonbaseAlpha = 'MoonbaseAlpha',\n Moonbeam = 'Moonbeam',\n Moonriver = 'Moonriver',\n}\nexport const MOON_CHAINS: Record<MoonChainKey, MoonChain> = {\n [MoonChainKey.MoonbaseAlpha]: {\n key: MoonChainKey.MoonbaseAlpha,\n name: 'Moonbase Alpha',\n ws: 'wss://wss.api.moonbase.moonbeam.network',\n parachainId: 1000,\n decimals: 18,\n chainId: 1287,\n unitsPerSecond: 50_000_000_000_000_000n,\n weights: {\n descendOriginWeight: 9_620_000n,\n withdrawAssetWeight: 200_000_000n,\n buyExecutionWeight: 130_464_000n + 100_000_000n,\n transactWeight: 31_693_000n + 25_000_000n,\n },\n },\n [MoonChainKey.Moonbeam]: {\n key: MoonChainKey.Moonbeam,\n name: 'Moonbeam',\n ws: 'wss://wss.api.moonbeam.network',\n parachainId: 2004,\n decimals: 18,\n chainId: 1284,\n unitsPerSecond: 10_000_000_000_000_000_000n,\n },\n [MoonChainKey.Moonriver]: {\n key: MoonChainKey.Moonriver,\n name: 'Moonriver',\n ws: 'wss://wss.api.moonriver.moonbeam.network',\n parachainId: 2023,\n decimals: 18,\n chainId: 1285,\n unitsPerSecond: 100_000_000_000_000_000n,\n },\n};\n\nexport enum ChainKey {\n Acala = 'Acala',\n AlphanetRelay = 'AlphanetRelay',\n Astar = 'Astar',\n Bifrost = 'Bifrost',\n BitCountryPioneer = 'BitCountryPioneer',\n BifrostPolkadot = 'BifrostPolkadot',\n Calamari = 'Calamari',\n Crab = 'Crab',\n CrustShadow = 'CrustShadow',\n Darwinia = 'Darwinia',\n Integritee = 'Integritee',\n Interlay = 'Interlay',\n Karura = 'Karura',\n Khala = 'Khala',\n Kintsugi = 'Kintsugi',\n Kusama = 'Kusama',\n LitentryAlphanet = 'LitentryAlphanet',\n Litmus = 'Litmus',\n MoonbaseBeta = 'MoonbaseBeta',\n Parallel = 'Parallel',\n ParallelHeiko = 'ParallelHeiko',\n Phala = 'Phala',\n Polkadot = 'Polkadot',\n Robonomics = 'Robonomics',\n Shiden = 'Shiden',\n Statemine = 'Statemine',\n StatemineAlphanet = 'StatemineAlphanet',\n Statemint = 'Statemint',\n UniqueAlpha = 'UniqueAlpha',\n}\n","import { isString, isUndefined } from '@polkadot/util';\nimport { AssetSymbol, ChainKey } from '../constants';\nimport {\n ExtrinsicConfig,\n ExtrinsicPallet,\n XTokensExtrinsic,\n XTokensTransferMultiCurrenciesExtrinsic,\n} from '../extrinsic';\nimport { Asset, AssetId, Chain, MoonChain } from '../interfaces';\n\nexport function getAssetForeignId<Symbols extends AssetSymbol = AssetSymbol>(\n asset: Asset<Symbols>,\n chain: ChainKey,\n): AssetId {\n const id = asset.foreignIds?.[chain];\n\n if (isUndefined(id)) {\n throw new Error(\n `No foreignAssetId defined for asset ${asset.originSymbol} and chain ${chain}`,\n );\n }\n\n return id;\n}\n\nexport function getMoonAssetId<ChainKeys extends ChainKey>(\n chain: Chain<ChainKeys>,\n): bigint | number {\n if (isUndefined(chain.moonAssetId)) {\n throw new Error(`No moonAssetId defined for chain ${chain.key}`);\n }\n\n return chain.moonAssetId;\n}\n\nexport function getUnitsPerSecond<ChainKeys extends ChainKey>(\n chain: Chain<ChainKeys>,\n): bigint {\n if (isUndefined(chain.unitsPerSecond)) {\n throw new Error(`No unitsPerSecond defined for chain ${chain.key}`);\n }\n\n return chain.unitsPerSecond;\n}\n\nexport function getPalletInstance<ChainKeys extends ChainKey>(\n chain: Chain<ChainKeys>,\n): number {\n if (isUndefined(chain.palletInstance)) {\n throw new Error(`No palletInstance defined for chain ${chain.key}`);\n }\n\n return chain.palletInstance;\n}\n\nexport function isMultiCurrency<Symbols extends AssetSymbol = AssetSymbol>(\n extrinsic: ExtrinsicConfig<Symbols>,\n): extrinsic is XTokensTransferMultiCurrenciesExtrinsic<Symbols> {\n return (\n extrinsic.pallet === ExtrinsicPallet.XTokens &&\n extrinsic.extrinsic === XTokensExtrinsic.TransferMultiCurrencies\n );\n}\n\nexport function getSymbol<Symbols extends AssetSymbol>(\n symbolOrAsset: Symbols | Asset<Symbols>,\n): Symbols {\n return isString(symbolOrAsset) ? symbolOrAsset : symbolOrAsset.originSymbol;\n}\n\nexport function getChainKey<ChainKeys extends ChainKey>(\n keyOrChain: ChainKeys | Chain<ChainKeys>,\n): ChainKeys {\n return isString(keyOrChain) ? keyOrChain : keyOrChain.key;\n}\n\nexport function getOverallWeight<ChainKeys extends ChainKey = ChainKey>(\n chain: Chain<ChainKeys> | MoonChain,\n txWeight: bigint,\n): bigint {\n if (!chain.weights) {\n throw new Error(`No weights found for chain: ${chain.key}`);\n }\n\n const {\n descendOriginWeight,\n withdrawAssetWeight,\n buyExecutionWeight,\n transactWeight,\n } = chain.weights;\n\n return (\n descendOriginWeight +\n withdrawAssetWeight +\n buyExecutionWeight +\n transactWeight +\n txWeight\n );\n}\n\nexport function getOverallFee(\n overallWeight: bigint,\n unitsPerSecond: bigint,\n): bigint {\n const weightPerSecond = 1_000_000_000_000n;\n\n return (overallWeight * unitsPerSecond) / weightPerSecond;\n}\n","export enum PolkadotXcmExtrinsic {\n LimitedReserveTransferAssets = 'limitedReserveTransferAssets',\n LimitedReserveWithdrawAssets = 'limitedReserveWithdrawAssets',\n}\n\nexport enum PolkadotXcmExtrinsicSuccessEvent {\n Attempted = 'Attempted',\n}\n","export enum ExtrinsicPallet {\n PolkadotXcm = 'polkadotXcm',\n XcmPallet = 'xcmPallet',\n XTokens = 'xTokens',\n XTransfer = 'xTransfer',\n}\n","import { ChainKey } from '../../constants';\nimport { Chain, MoonChain } from '../../interfaces';\nimport { Parents } from '../common.interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n PolkadotXcmExtrinsic,\n PolkadotXcmExtrinsicSuccessEvent,\n} from './polkadotXcm.constants';\nimport {\n PolkadotXcmAssetParam,\n PolkadotXcmPallet,\n} from './polkadotXcm.interfaces';\n\nexport function getCreateExtrinsic<ChainKeys extends ChainKey>(\n extrinsic: PolkadotXcmExtrinsic,\n event: PolkadotXcmExtrinsicSuccessEvent,\n config: MoonChain,\n origin: Chain<ChainKeys>,\n parents: Parents = 1,\n) {\n return (\n getAsset: (amount: bigint) => PolkadotXcmAssetParam,\n ): PolkadotXcmPallet => ({\n pallet: ExtrinsicPallet.PolkadotXcm,\n extrinsic,\n successEvent: event,\n getParams: ({ account, amount }) => [\n {\n V1: {\n parents,\n interior: {\n X1: {\n Parachain: config.parachainId,\n },\n },\n },\n },\n {\n V1: {\n parents: 0,\n interior: {\n X1: {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n },\n },\n },\n getAsset(amount),\n 0,\n {\n Limited: origin.weight,\n },\n ],\n });\n}\n","import { ChainKey } from '../../constants';\nimport { AssetId, Chain, MoonChain } from '../../interfaces';\nimport {\n PolkadotXcmExtrinsic,\n PolkadotXcmExtrinsicSuccessEvent,\n} from './polkadotXcm.constants';\nimport { getCreateExtrinsic } from './polkadotXcm.util';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function polkadotXcm<ChainKeys extends ChainKey>(chain: MoonChain) {\n return {\n limitedReserveTransferAssets: () =>\n limitedReserveTransferAssets<ChainKeys>(chain),\n limitedReserveWithdrawAssets: () =>\n limitedReserveWithdrawAssets<ChainKeys>(chain),\n };\n}\n\nfunction limitedReserveTransferAssets<ChainKeys extends ChainKey>(\n chain: MoonChain,\n) {\n return {\n successEvent: (event: PolkadotXcmExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => {\n const createExtrinsic = getCreateExtrinsic(\n PolkadotXcmExtrinsic.LimitedReserveTransferAssets,\n event,\n chain,\n origin,\n );\n\n return {\n V0: () =>\n createExtrinsic((amount) => ({\n V0: [\n {\n ConcreteFungible: {\n id: 'Null',\n amount,\n },\n },\n ],\n })),\n V1: () => ({\n here: () =>\n createExtrinsic((amount) => ({\n V1: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ],\n })),\n X1: () =>\n createExtrinsic((amount) => ({\n V1: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X1: {\n PalletInstance: 5,\n },\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ],\n })),\n X2: (palletInstance: number, assetId: AssetId) =>\n createExtrinsic((amount) => ({\n V1: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X2: [\n {\n PalletInstance: palletInstance,\n },\n {\n GeneralIndex: assetId,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ],\n })),\n }),\n };\n },\n }),\n };\n}\n\nfunction limitedReserveWithdrawAssets<ChainKeys extends ChainKey>(\n chain: MoonChain,\n) {\n return {\n successEvent: (event: PolkadotXcmExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => {\n const createExtrinsic = getCreateExtrinsic(\n PolkadotXcmExtrinsic.LimitedReserveWithdrawAssets,\n event,\n chain,\n origin,\n );\n\n return {\n V1: () => ({\n X2: (palletInstance: number) =>\n createExtrinsic((amount) => ({\n V1: [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n PalletInstance: palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ],\n })),\n }),\n };\n },\n }),\n };\n}\n","import { ChainKey } from '../../constants';\nimport { Chain, MoonChain } from '../../interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n getCreateExtrinsic,\n PolkadotXcmExtrinsic,\n PolkadotXcmExtrinsicSuccessEvent,\n} from '../polkadotXcm';\nimport { XcmPallet } from './xcmPallet.interfaces';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function xcmPallet<ChainKeys extends ChainKey>(chain: MoonChain) {\n return {\n limitedReserveTransferAssets: () =>\n limitedReserveTransferAssets<ChainKeys>(chain),\n };\n}\n\nfunction limitedReserveTransferAssets<ChainKeys extends ChainKey>(\n chain: MoonChain,\n) {\n return {\n successEvent: (event: PolkadotXcmExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>): XcmPallet => {\n const createExtrinsic = getCreateExtrinsic(\n PolkadotXcmExtrinsic.LimitedReserveTransferAssets,\n event,\n chain,\n origin,\n 0,\n );\n\n return {\n ...createExtrinsic((amount) => ({\n V0: [\n {\n ConcreteFungible: {\n id: 'Null',\n amount,\n },\n },\n ],\n })),\n pallet: ExtrinsicPallet.XcmPallet,\n };\n },\n }),\n };\n}\n","export enum XTokensExtrinsic {\n Transfer = 'transfer',\n TransferMultiAsset = 'transferMultiasset',\n TransferMultiCurrencies = 'transferMulticurrencies',\n}\n\nexport enum XTokensExtrinsicSuccessEvent {\n Transferred = 'Transferred',\n TransferredMultiAssets = 'TransferredMultiAssets',\n TransferredMultiCurrencies = 'TransferredMultiCurrencies',\n}\n\nexport enum XTokensExtrinsicCurrencyTypes {\n ForeignAsset = 'ForeignAsset',\n FungibleToken = 'FungibleToken',\n MantaCurrency = 'MantaCurrency',\n MiningResource = 'MiningResource',\n Native = 'Native',\n NativeAssetId = 'NativeAssetId',\n NativeToken = 'NativeToken',\n OtherReserve = 'OtherReserve',\n Token = 'Token',\n Token2 = 'Token2',\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { XTokensWeightLimit } from './xTokens.interfaces';\n\n/**\n * Workaround for weight parameter type change in xTokens pallet\n * https://github.com/open-web3-stack/open-runtime-module-library/pull/841\n */\nexport function getWeightXTokens(\n weight: number,\n extrinsicCall?: SubmittableExtrinsicFunction<'promise'>,\n): XTokensWeightLimit {\n return extrinsicCall?.meta.args.at(-1)?.type.eq('XcmV2WeightLimit')\n ? {\n Limited: weight,\n }\n : weight;\n}\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { Asset, Chain, MoonChain } from '../../interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n XTokensExtrinsic,\n XTokensExtrinsicSuccessEvent,\n} from './xTokens.constants';\nimport {\n XTokensTransferExtrinsic,\n XTokensTransferExtrinsicParamsAsset,\n XTokensTransferMultiAssetExtrinsic,\n XTokensTransferMultiCurrenciesExtrinsic,\n} from './xTokens.interfaces';\nimport { getWeightXTokens } from './xTokens.util';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function xTokens<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>(chain: MoonChain) {\n return {\n transfer: () => transfer<Symbols, ChainKeys>(chain),\n transferMultiAsset: () => transferMultiAsset<Symbols, ChainKeys>(chain),\n transferMultiCurrencies: () =>\n transferMultiCurrencies<Symbols, ChainKeys>(chain),\n };\n}\n\nfunction transfer<Symbols extends AssetSymbol, ChainKeys extends ChainKey>(\n chain: MoonChain,\n) {\n return {\n successEvent: (event: XTokensExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => ({\n asset: (\n token: XTokensTransferExtrinsicParamsAsset<Symbols>,\n ): XTokensTransferExtrinsic<Symbols> => ({\n pallet: ExtrinsicPallet.XTokens,\n extrinsic: XTokensExtrinsic.Transfer,\n successEvent: event,\n getParams: ({ account, amount, extrinsicCall }) => [\n token,\n amount,\n {\n V1: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n },\n },\n getWeightXTokens(origin.weight, extrinsicCall),\n ],\n }),\n }),\n }),\n };\n}\n\nfunction transferMultiAsset<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>(chain: MoonChain) {\n return {\n successEvent: (event: XTokensExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => ({\n asset: (\n asset: Asset<Symbols>,\n ): XTokensTransferMultiAssetExtrinsic<Symbols> => ({\n pallet: ExtrinsicPallet.XTokens,\n extrinsic: XTokensExtrinsic.TransferMultiAsset,\n successEvent: event,\n getParams: ({ account, amount, extrinsicCall }) => [\n {\n V1: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: origin.parachainId,\n },\n {\n GeneralKey: asset.originSymbol,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n {\n V1: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n },\n },\n getWeightXTokens(origin.weight, extrinsicCall),\n ],\n }),\n }),\n }),\n };\n}\n\nfunction transferMultiCurrencies<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>(chain: MoonChain) {\n return {\n successEvent: (event: XTokensExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => ({\n assets: (\n asset: XTokensTransferExtrinsicParamsAsset<Symbols>,\n feeAsset: XTokensTransferExtrinsicParamsAsset<Symbols>,\n ): XTokensTransferMultiCurrenciesExtrinsic<Symbols> => ({\n pallet: ExtrinsicPallet.XTokens,\n extrinsic: XTokensExtrinsic.TransferMultiCurrencies,\n successEvent: event,\n getParams: ({ account, amount, extrinsicCall, fee = 0n }) => [\n [\n [asset, amount],\n [feeAsset, fee],\n ],\n 1,\n {\n V1: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n },\n },\n getWeightXTokens(origin.weight, extrinsicCall),\n ],\n }),\n }),\n }),\n };\n}\n","export enum XTransferExtrinsic {\n Transfer = 'transfer',\n}\n\nexport enum XTransferExtrinsicSuccessEvent {\n Deposited = 'Deposited',\n Withdrawn = 'Withdrawn',\n}\n","import { ChainKey } from '../../constants';\nimport { Chain, MoonChain } from '../../interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n XTransferExtrinsic,\n XTransferExtrinsicSuccessEvent,\n} from './xTransfer.constants';\nimport {\n XTransferConcreteParam,\n XTransferPallet,\n} from './xTransfer.interfaces';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function xTransfer<ChainKeys extends ChainKey>(chain: MoonChain) {\n return {\n transfer: () => transfer<ChainKeys>(chain),\n };\n}\n\nfunction transfer<ChainKeys extends ChainKey>(chain: MoonChain) {\n return {\n successEvent: (event: XTransferExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => {\n const createExtrinsic = getCreateExtrinsic(\n XTransferExtrinsic.Transfer,\n event,\n chain,\n origin,\n );\n\n return {\n here: () =>\n createExtrinsic(() => ({\n parents: 0,\n interior: 'Here',\n })),\n X2: (palletInstance: number) =>\n createExtrinsic(() => ({\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n PalletInstance: palletInstance,\n },\n ],\n },\n })),\n };\n },\n }),\n };\n}\n\nfunction getCreateExtrinsic<ChainKeys extends ChainKey>(\n extrinsic: XTransferExtrinsic,\n event: XTransferExtrinsicSuccessEvent,\n chain: MoonChain,\n origin: Chain<ChainKeys>,\n) {\n return (getConcrete: () => XTransferConcreteParam): XTransferPallet => ({\n pallet: ExtrinsicPallet.XTransfer,\n extrinsic,\n successEvent: event,\n getParams: ({ account, amount }) => [\n {\n id: {\n Concrete: getConcrete(),\n },\n fun: {\n Fungible: amount,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n },\n origin.weight,\n ],\n });\n}\n","import { AssetSymbol, ChainKey } from '../constants';\nimport { MoonChain } from '../interfaces';\nimport { polkadotXcm } from './polkadotXcm';\nimport { xcmPallet } from './xcmPallet';\nimport { xTokens } from './xTokens';\nimport { xTransfer } from './xTransfer';\n\nexport function createExtrinsicBuilder<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>(chain: MoonChain) {\n return {\n polkadotXcm: () => polkadotXcm<ChainKeys>(chain),\n xcmPallet: () => xcmPallet<ChainKeys>(chain),\n xTokens: () => xTokens<Symbols, ChainKeys>(chain),\n xTransfer: () => xTransfer<ChainKeys>(chain),\n };\n}\n","import { Parents } from '../extrinsic';\nimport {\n AccountMultilocationV1,\n DestinationMultilocationV1,\n GetterAccountMultilocationV1,\n PrecompileDestinationMultilocationV1,\n} from './multilocation.interfaces';\n\nexport function createMultilocationBuilder() {\n return {\n v1: () => ({\n destination: (\n parachainId: number,\n parents: Parents = 1,\n ): DestinationMultilocationV1 => ({\n V1: {\n parents,\n interior: {\n X1: {\n Parachain: parachainId,\n },\n },\n },\n toPrecompileMultilocation: (): PrecompileDestinationMultilocationV1 => [\n parents,\n [`0x0000000${parachainId.toString(16)}`],\n ],\n }),\n account: (\n parachainId: number,\n parents: Parents = 1,\n ): GetterAccountMultilocationV1 => ({\n get: (account: string): AccountMultilocationV1 => ({\n parents,\n interior: {\n X2: [\n { Parachain: parachainId },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n }),\n }),\n }),\n };\n}\n","import { getPalletInstance } from '../config/config.utils';\nimport { ChainKey } from '../constants';\nimport { Chain } from '../interfaces';\nimport {\n PrecompileXcmTransactThroughSignedMultilocationParams,\n XcmTransactThroughSigned,\n XcmTransactThroughSignedMultilocation,\n XcmTransactThroughSignedParams,\n} from './transact.interfaces';\n\nexport function createTransactBuilder<ChainKeys extends ChainKey = ChainKey>() {\n return {\n xcmTransactor: () => ({\n transactThroughSigned: (\n chain: Chain<ChainKeys>,\n ): XcmTransactThroughSigned => ({\n getParams: ({\n callHash,\n overallFee,\n overallWeight,\n txWeight,\n }): XcmTransactThroughSignedParams => {\n const palletInstance = getPalletInstance(chain);\n\n return [\n // TODO: use multiLocation module\n {\n V1: {\n parents: 1,\n interior: {\n X1: {\n Parachain: chain.parachainId,\n },\n },\n },\n },\n {\n currency: {\n AsMultiLocation: {\n V1: {\n parents: 1,\n interior: {\n X2: [\n { Parachain: chain.parachainId },\n { PalletInstance: palletInstance },\n ],\n },\n },\n },\n },\n feeAmount: overallFee,\n },\n callHash,\n {\n transactRequiredWeightAtMost: txWeight,\n overallWeight,\n },\n ];\n },\n }),\n transactThroughSignedMultilocation: (\n chain: Chain<ChainKeys>,\n ): XcmTransactThroughSignedMultilocation => ({\n getParams: ({\n callHash,\n overallFee,\n overallWeight,\n txWeight,\n }): PrecompileXcmTransactThroughSignedMultilocationParams => {\n const palletInstance = getPalletInstance(chain);\n const parachainId = `0x0000000${chain.parachainId.toString(16)}`;\n\n return {\n destination: [1, [parachainId]],\n asset: [1, [parachainId, `0x040${palletInstance}`]],\n txWeight,\n callHash,\n overallFee,\n overallWeight,\n };\n },\n }),\n }),\n };\n}\n","import { u8aToHex } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { AssetSymbol } from '../constants';\nimport {\n WithdrawXTokensConfig,\n WithdrawXTokensOptions,\n} from './withdraw.interfaces';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function createWithdrawBuilder<\n Symbols extends AssetSymbol = AssetSymbol,\n>() {\n return {\n xTokens: (options: WithdrawXTokensOptions<Symbols>) =>\n xTokens<Symbols>(options),\n };\n}\n\nfunction xTokens<Symbols extends AssetSymbol = AssetSymbol>({\n balance,\n destination,\n feePerWeight,\n sourceMinBalance,\n xcmFeeAsset,\n weight = 4_000_000_000,\n}: WithdrawXTokensOptions<Symbols>): WithdrawXTokensConfig<Symbols> {\n return {\n balance,\n destination,\n feePerWeight,\n sourceMinBalance,\n xcmFeeAsset,\n weight,\n getParams: (account: string) => {\n const { parachainId } = destination;\n const acc = `0x01${u8aToHex(decodeAddress(account), -1, false)}00`;\n\n return [\n 1,\n parachainId ? [`0x0000000${parachainId.toString(16)}`, acc] : [acc],\n ];\n },\n };\n}\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { AssetsMap } from '../config.interfaces';\nimport { MoonbaseAssets } from './moonbase.interfaces';\n\nexport const MOONBASE_ASSETS = <const>[\n AssetSymbol.AUQ,\n AssetSymbol.BIT,\n AssetSymbol.DEV,\n AssetSymbol.LIT,\n AssetSymbol.NEER,\n AssetSymbol.TT1,\n AssetSymbol.UNIT,\n];\n\nexport const MOONBASE_ASSETS_MAP: AssetsMap<MoonbaseAssets> = {\n [AssetSymbol.AUQ]: {\n id: '69536036667157951501899290870203586130',\n erc20Id: '0xffffffff3450274d4ab181de8830c189f4509652',\n originSymbol: AssetSymbol.AUQ,\n },\n [AssetSymbol.BIT]: {\n id: '306639095083798603270835754515874921389',\n erc20Id: '0xffffffffe6b08aa1fbbaa02f004d3e5aa27f3bad',\n originSymbol: AssetSymbol.BIT,\n },\n [AssetSymbol.DEV]: {\n id: '',\n erc20Id: '0x0000000000000000000000000000000000000802',\n originSymbol: AssetSymbol.DEV,\n isNative: true,\n },\n [AssetSymbol.LIT]: {\n id: '65216491554813189869575508812319036608',\n erc20Id: '0xffffffff31103d490325bb0a8e40ef62e2f614c0',\n originSymbol: AssetSymbol.LIT,\n },\n [AssetSymbol.NEER]: {\n id: '52280927600883288560727505734200597597',\n erc20Id: '0xffffffff2754f0bdf7eb215503c69204ccd61c5d',\n originSymbol: AssetSymbol.NEER,\n },\n [AssetSymbol.UNIT]: {\n id: '42259045809535163221576417993425387648',\n erc20Id: '0xffffffff1fcacbd218edc0eba20fc2308c778080',\n originSymbol: AssetSymbol.UNIT,\n },\n [AssetSymbol.TT1]: {\n id: '156305701417244550631956600137082963628',\n erc20Id: '0xffffffff75976211c786fe4d73d2477e222786ac',\n originSymbol: AssetSymbol.TT1,\n foreignIds: {\n [ChainKey.StatemineAlphanet]: 2,\n },\n },\n};\n","import { ChainKey } from '../../constants';\nimport { ChainsMap } from '../config.interfaces';\nimport { MoonbaseChains } from './moonbase.interfaces';\n\nexport const MOONBASE_CHAINS = <const>[\n ChainKey.AlphanetRelay,\n ChainKey.LitentryAlphanet,\n ChainKey.BitCountryPioneer,\n ChainKey.MoonbaseBeta,\n ChainKey.StatemineAlphanet,\n ChainKey.UniqueAlpha,\n];\n\nexport const MOONBASE_CHAINS_MAP: ChainsMap<MoonbaseChains> = {\n [ChainKey.AlphanetRelay]: {\n key: ChainKey.AlphanetRelay,\n name: 'Alphanet Relay',\n ws: 'wss://frag-moonbase-relay-rpc-ws.g.moonbase.moonbeam.network',\n weight: 1_000_000_000,\n parachainId: 0,\n ss58Format: 42,\n genesisHash:\n '0xe1ea3ab1d46ba8f4898b6b4b9c54ffc05282d299f89e84bd0fd08067758c9443',\n },\n [ChainKey.BitCountryPioneer]: {\n key: ChainKey.BitCountryPioneer,\n name: 'Bit.Country Pioneer',\n ws: 'wss://moonbase-rpc.bit.country',\n weight: 1_000_000_000,\n parachainId: 2096,\n moonAssetId: 0,\n ss58Format: 268,\n genesisHash:\n '0xb27da7332d3a229f0d5f2a83f711b3f74a70f22b68021e92c37817057de58e74',\n },\n [ChainKey.LitentryAlphanet]: {\n key: ChainKey.LitentryAlphanet,\n name: 'Litentry Alphanet',\n ws: 'wss://moonbase-parachain-sg-0.litentry.io',\n weight: 1_000_000_000,\n parachainId: 2106,\n ss58Format: 131,\n genesisHash:\n '0x4decfd421755d9008781d00ce40ea4cf47ec24a3717a34ca995126fc4a78c4f8',\n },\n [ChainKey.MoonbaseBeta]: {\n key: ChainKey.MoonbaseBeta,\n name: 'Moonbase Beta',\n ws: 'wss://frag-moonbase-beta-rpc-ws.g.moonbase.moonbeam.network',\n weight: 1_000_000_000,\n palletInstance: 3,\n parachainId: 888,\n unitsPerSecond: 50_000_000_000_000_000n,\n ss58Format: 0,\n genesisHash:\n '0xeebb5d05763801e54d6a7a60a4b7998ac125c4d050dcec418dd07ea959a54464',\n weights: {\n descendOriginWeight: 9_620_000n,\n withdrawAssetWeight: 200_000_000n,\n buyExecutionWeight: 130_464_000n + 100_000_000n,\n transactWeight: 31_693_000n + 25_000_000n,\n },\n },\n [ChainKey.StatemineAlphanet]: {\n key: ChainKey.StatemineAlphanet,\n name: 'Statemine Alphanet',\n ws: 'wss://frag-moonbase-sm-rpc-ws.g.moonbase.moonbeam.network/',\n weight: 1_000_000_000,\n parachainId: 1001,\n palletInstance: 50,\n ss58Format: 42,\n genesisHash:\n '0x2c63baa36880c9cf820d5ccfc4e49841bfd714e93ede2bebc4abc4531dd4e8a0',\n },\n [ChainKey.UniqueAlpha]: {\n key: ChainKey.UniqueAlpha,\n name: 'Unique Alphanet',\n ws: 'wss://unique-alpha.unique.network',\n weight: 1_000_000_000,\n parachainId: 2095,\n ss58Format: 255,\n genesisHash:\n '0xbdf55f33d9f0b390f56413ec803c693af348edae64a659760248974b48b9a99e',\n },\n};\n","import { createBalanceBuilder } from '../../balance';\nimport { MoonChainKey, MOON_CHAINS } from '../../constants';\nimport { createExtrinsicBuilder } from '../../extrinsic';\nimport { createMultilocationBuilder } from '../../multilocation';\nimport { createTransactBuilder } from '../../transact';\nimport { createWithdrawBuilder } from '../../withdraw';\nimport { MOONBASE_ASSETS_MAP as assets } from './moonbase.assets';\nimport { MOONBASE_CHAINS_MAP as chains } from './moonbase.chains';\nimport { MoonbaseAssets, MoonbaseChains } from './moonbase.interfaces';\n\nexport { assets, chains };\n\nexport const moonbase = MOON_CHAINS[MoonChainKey.MoonbaseAlpha];\nexport const balance = createBalanceBuilder<MoonbaseAssets>();\nexport const extrinsic = createExtrinsicBuilder<MoonbaseAssets, MoonbaseChains>(\n moonbase,\n);\nexport const withdraw = createWithdrawBuilder<MoonbaseAssets>();\nexport const transact = createTransactBuilder<MoonbaseChains>();\nexport const multilocation = createMultilocationBuilder();\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.AUQ];\nconst origin = chains[ChainKey.UniqueAlpha];\n\nexport const AUQ: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.NativeAssetId]: 'Here' }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0, // currently not charging anything\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.NEER];\nconst origin = chains[ChainKey.BitCountryPioneer];\n\nexport const NEER: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.NativeToken]: 0 }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport { WithdrawConfig } from '../../../withdraw';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\nimport { NEER } from './neer';\n\nconst asset = assets[AssetSymbol.BIT];\nconst feeAsset = assets[AssetSymbol.NEER];\nconst origin = chains[ChainKey.BitCountryPioneer];\nconst neerWithdrawConfig = NEER.withdraw[\n origin.key\n] as WithdrawConfig<AssetSymbol.NEER>;\n\nexport const BIT: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().miningResource(0),\n sourceFeeBalance: balance.system(),\n xcmFeeAsset: {\n asset: feeAsset,\n balance: balance.system(),\n },\n extrinsic: extrinsic\n .xTokens()\n .transferMultiCurrencies()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .assets(\n {\n [XTokensExtrinsicCurrencyTypes.MiningResource]: 0,\n },\n {\n [XTokensExtrinsicCurrencyTypes.NativeToken]: 0,\n },\n ),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().miningResource(0),\n destination: origin,\n feePerWeight: neerWithdrawConfig.feePerWeight,\n weight: neerWithdrawConfig.weight,\n xcmFeeAsset: {\n asset: feeAsset,\n balance: {\n destination: balance.system(),\n origin: balance.assets(feeAsset.id),\n },\n },\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport { getMoonAssetId } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n moonbase,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.DEV];\nconst pioneer = chains[ChainKey.BitCountryPioneer];\n\nconst pioneerDevId = getMoonAssetId(pioneer);\n\nexport const DEV: MoonbaseXcmConfig = {\n asset,\n origin: moonbase,\n deposit: {\n [pioneer.key]: {\n source: pioneer,\n balance: balance.tokens().fungibleToken(pioneerDevId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(pioneer)\n .asset({ [XTokensExtrinsicCurrencyTypes.FungibleToken]: pioneerDevId }),\n },\n },\n withdraw: {\n [pioneer.key]: withdraw.xTokens({\n balance: balance.tokens().fungibleToken(pioneerDevId),\n destination: pioneer,\n feePerWeight: 50_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.LIT];\nconst origin = chains[ChainKey.LitentryAlphanet];\n\nexport const LIT: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset('SelfReserve'),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport { getAssetForeignId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.TT1];\nconst origin = chains[ChainKey.StatemineAlphanet];\nconst originAssetId = getAssetForeignId(asset, origin.key);\n\nexport const TT1: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.assets(originAssetId),\n sourceFeeBalance: balance.system(),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X2(getPalletInstance(origin), originAssetId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.assets(originAssetId),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n destination: origin,\n feePerWeight: 1_265_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.UNIT];\nconst origin = chains[ChainKey.AlphanetRelay];\n\nexport const UNIT: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xcmPallet()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 12.65,\n }),\n },\n};\n","import { AssetSymbol } from '../../constants';\nimport { MoonbaseXcmConfigs } from './moonbase.interfaces';\n\nimport { AUQ } from './assets/auq';\nimport { BIT } from './assets/bit';\nimport { DEV } from './assets/dev';\nimport { LIT } from './assets/lit';\nimport { NEER } from './assets/neer';\nimport { TT1 } from './assets/tt1';\nimport { UNIT } from './assets/unit';\n\nexport const MOONBASE_CONFIGS: MoonbaseXcmConfigs = {\n [AssetSymbol.AUQ]: AUQ,\n [AssetSymbol.BIT]: BIT,\n [AssetSymbol.DEV]: DEV,\n [AssetSymbol.LIT]: LIT,\n [AssetSymbol.NEER]: NEER,\n [AssetSymbol.TT1]: TT1,\n [AssetSymbol.UNIT]: UNIT,\n};\n","import { ChainKey } from '../../../constants';\nimport { getUnitsPerSecond } from '../../config.utils';\nimport {\n balance,\n chains,\n moonbase,\n multilocation,\n transact,\n} from '../moonbase.common';\nimport { MoonbaseTransactConfig } from '../moonbase.interfaces';\n\nconst beta = chains[ChainKey.MoonbaseBeta];\nconst unitsPerSecond = getUnitsPerSecond(beta);\n\nexport const BETA: MoonbaseTransactConfig = {\n chain: beta,\n unitsPerSecond,\n balance: balance.system(),\n from: {\n multilocation: {\n account: multilocation.v1().account(beta.parachainId),\n },\n transact: transact.xcmTransactor().transactThroughSigned(beta),\n },\n to: {\n multilocation: {\n account: multilocation.v1().account(moonbase.parachainId),\n },\n transact: transact.xcmTransactor().transactThroughSignedMultilocation(beta),\n },\n};\n","import { ChainKey } from '../../constants';\nimport { MoonbaseTransactConfigs } from './moonbase.interfaces';\nimport { BETA } from './transact/beta';\n\nexport const MOONBASE_TRANSACT_CONFIGS: MoonbaseTransactConfigs = {\n [ChainKey.MoonbaseBeta]: BETA,\n};\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { AssetsMap } from '../config.interfaces';\nimport { MoonbeamAssets } from './moonbeam.interfaces';\n\nexport const MOONBEAM_ASSETS = <const>[\n AssetSymbol.ACA,\n AssetSymbol.ASTR,\n AssetSymbol.AUSD,\n AssetSymbol.BNC,\n AssetSymbol.DOT,\n AssetSymbol.GLMR,\n AssetSymbol.IBTC,\n AssetSymbol.INTR,\n AssetSymbol.PARA,\n AssetSymbol.PHA,\n AssetSymbol.RING,\n AssetSymbol.USDT,\n];\n\nexport const MOONBEAM_ASSETS_MAP: AssetsMap<MoonbeamAssets> = {\n [AssetSymbol.ACA]: {\n id: '224821240862170613278369189818311486111',\n erc20Id: '0xffffffffa922fef94566104a6e5a35a4fcddaa9f',\n originSymbol: AssetSymbol.ACA,\n },\n [AssetSymbol.ASTR]: {\n id: '224077081838586484055667086558292981199',\n erc20Id: '0xffffffffa893ad19e540e172c10d78d4d479b5cf',\n originSymbol: AssetSymbol.ASTR,\n },\n [AssetSymbol.AUSD]: {\n id: '110021739665376159354538090254163045594',\n erc20Id: '0xffffffff52c56a9257bb97f4b2b6f7b2d624ecda',\n originSymbol: AssetSymbol.AUSD,\n },\n [AssetSymbol.BNC]: {\n id: '165823357460190568952172802245839421906',\n erc20Id: '0xffffffff7cc06abdf7201b350a1265c62c8601d2',\n originSymbol: AssetSymbol.BNC,\n },\n [AssetSymbol.DOT]: {\n id: '42259045809535163221576417993425387648',\n erc20Id: '0xffffffff1fcacbd218edc0eba20fc2308c778080',\n originSymbol: AssetSymbol.DOT,\n },\n [AssetSymbol.GLMR]: {\n id: '',\n erc20Id: '0x0000000000000000000000000000000000000802',\n originSymbol: AssetSymbol.GLMR,\n isNative: true,\n },\n [AssetSymbol.IBTC]: {\n id: '120637696315203257380661607956669368914',\n erc20Id: '0xffffffff5ac1f9a51a93f5c527385edf7fe98a52',\n originSymbol: AssetSymbol.IBTC,\n },\n [AssetSymbol.INTR]: {\n id: '101170542313601871197860408087030232491',\n erc20Id: '0xffffffff4c1cbcd97597339702436d4f18a375ab',\n originSymbol: AssetSymbol.INTR,\n },\n [AssetSymbol.PARA]: {\n id: '32615670524745285411807346420584982855',\n erc20Id: '0xffffffff18898cb5fe1e88e668152b4f4052a947',\n originSymbol: AssetSymbol.PARA,\n },\n [AssetSymbol.PHA]: {\n id: '132685552157663328694213725410064821485',\n erc20Id: '0xffffffff63d24ecc8eb8a7b5d0803e900f7b6ced',\n originSymbol: AssetSymbol.PHA,\n },\n [AssetSymbol.RING]: {\n id: '125699734534028342599692732320197985871',\n erc20Id: '0xffffffff5e90e365edca87fb4c8306df1e91464f',\n originSymbol: AssetSymbol.RING,\n },\n [AssetSymbol.USDT]: {\n id: '311091173110107856861649819128533077277',\n erc20Id: '0xffffffffea09fb06d082fd1275cd48b191cbcd1d',\n originSymbol: AssetSymbol.USDT,\n foreignIds: {\n [ChainKey.Statemint]: 1984,\n },\n },\n};\n","import { ChainKey } from '../../constants';\nimport { ChainsMap } from '../config.interfaces';\nimport { MoonbeamChains } from './moonbeam.interfaces';\n\nexport const MOONBEAM_CHAINS = <const>[\n ChainKey.Acala,\n ChainKey.Astar,\n ChainKey.BifrostPolkadot,\n ChainKey.Darwinia,\n ChainKey.Interlay,\n ChainKey.Parallel,\n ChainKey.Phala,\n ChainKey.Polkadot,\n ChainKey.Statemint,\n];\n\nexport const MOONBEAM_CHAINS_MAP: ChainsMap<MoonbeamChains> = {\n [ChainKey.Acala]: {\n key: ChainKey.Acala,\n name: 'Acala',\n ws: 'wss://acala-rpc-0.aca-api.network',\n weight: 1_000_000_000,\n parachainId: 2000,\n moonAssetId: 0,\n ss58Format: 10,\n genesisHash:\n '0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c',\n },\n [ChainKey.Astar]: {\n key: ChainKey.Astar,\n name: 'Astar',\n ws: 'wss://rpc.astar.network',\n weight: 1_000_000_000,\n parachainId: 2006,\n moonAssetId: 18446744073709551619n,\n palletInstance: 10,\n ss58Format: 5,\n genesisHash:\n '0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6',\n },\n [ChainKey.BifrostPolkadot]: {\n key: ChainKey.BifrostPolkadot,\n name: 'Bifrost',\n ws: 'wss://hk.p.bifrost-rpc.liebi.com/ws',\n weight: 1_000_000_000,\n parachainId: 2030,\n moonAssetId: 1,\n ss58Format: 6,\n genesisHash:\n '0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b',\n },\n [ChainKey.Darwinia]: {\n key: ChainKey.Darwinia,\n name: 'Darwinia',\n ws: 'wss://parachain-rpc.darwinia.network',\n weight: 1_000_000_000,\n parachainId: 2046,\n ss58Format: 18,\n genesisHash:\n '0xe71578b37a7c799b0ab4ee87ffa6f059a6b98f71f06fb8c84a8d88013a548ad6',\n },\n [ChainKey.Interlay]: {\n key: ChainKey.Interlay,\n name: 'Interlay',\n ws: 'wss://interlay.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2032,\n ss58Format: 2032,\n genesisHash:\n '0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72',\n },\n [ChainKey.Parallel]: {\n key: ChainKey.Parallel,\n name: 'Parallel',\n ws: 'wss://rpc.parallel.fi',\n weight: 1_000_000_000,\n parachainId: 2012,\n moonAssetId: 114,\n ss58Format: 172,\n genesisHash:\n '0xe61a41c53f5dcd0beb09df93b34402aada44cb05117b71059cce40a2723a4e97',\n },\n [ChainKey.Phala]: {\n key: ChainKey.Phala,\n name: 'Phala',\n ws: 'wss://api.phala.network/ws',\n weight: 1_000_000_000,\n parachainId: 2035,\n moonAssetId: 1,\n ss58Format: 30,\n genesisHash:\n '0x1bb969d85965e4bb5a651abbedf21a54b6b31a21f66b5401cc3f1e286268d736',\n },\n [ChainKey.Polkadot]: {\n key: ChainKey.Polkadot,\n name: 'Polkadot',\n ws: 'wss://rpc.polkadot.io',\n weight: 1_000_000_000,\n parachainId: 0,\n ss58Format: 42,\n genesisHash:\n '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n },\n [ChainKey.Statemint]: {\n key: ChainKey.Statemint,\n name: 'Statemint',\n ws: 'wss://statemint-rpc.polkadot.io',\n weight: 1_000_000_000,\n parachainId: 1000,\n palletInstance: 50,\n ss58Format: 42,\n genesisHash:\n '0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f',\n },\n};\n","import { createBalanceBuilder } from '../../balance';\nimport { MoonChainKey, MOON_CHAINS } from '../../constants';\nimport { createExtrinsicBuilder } from '../../extrinsic';\nimport { createWithdrawBuilder } from '../../withdraw';\nimport { MOONBEAM_ASSETS_MAP as assets } from './moonbeam.assets';\nimport { MOONBEAM_CHAINS_MAP as chains } from './moonbeam.chains';\nimport { MoonbeamAssets, MoonbeamChains } from './moonbeam.interfaces';\n\nexport { assets, chains };\n\nexport const moonbeam = MOON_CHAINS[MoonChainKey.Moonbeam];\nexport const balance = createBalanceBuilder<MoonbeamAssets>();\nexport const extrinsic = createExtrinsicBuilder<MoonbeamAssets, MoonbeamChains>(\n moonbeam,\n);\nexport const withdraw = createWithdrawBuilder<MoonbeamAssets>();\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.ACA];\nconst origin = chains[ChainKey.Acala];\n\nexport const ACA: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.ASTR];\nconst origin = chains[ChainKey.Astar];\n\nexport const ASTR: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.AUSD];\nconst origin = chains[ChainKey.Acala];\n\nexport const AUSD: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 64,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.BNC];\nconst origin = chains[ChainKey.BifrostPolkadot];\n\nexport const BNC: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Native]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 64,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.DOT];\nconst origin = chains[ChainKey.Polkadot];\n\nexport const DOT: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xcmPallet()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.13,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n PolkadotXcmExtrinsicSuccessEvent,\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n XTransferExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport { getMoonAssetId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n moonbeam,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.GLMR];\nconst acala = chains[ChainKey.Acala];\nconst astar = chains[ChainKey.Astar];\nconst bifrost = chains[ChainKey.BifrostPolkadot];\nconst parallel = chains[ChainKey.Parallel];\nconst phala = chains[ChainKey.Phala];\n\nconst acalaGlmrId = getMoonAssetId(acala);\nconst astarGlmrId = getMoonAssetId(astar);\nconst bifrostGlmrId = getMoonAssetId(bifrost);\nconst parallelGlmrId = getMoonAssetId(parallel);\nconst phalaGlmrId = getMoonAssetId(phala);\n\nexport const GLMR: MoonbeamXcmConfig = {\n asset,\n origin: moonbeam,\n deposit: {\n [acala.key]: {\n source: acala,\n balance: balance.tokens().foreignAsset(acalaGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(acala)\n .asset({\n [XTokensExtrinsicCurrencyTypes.ForeignAsset]: acalaGlmrId,\n }),\n },\n [astar.key]: {\n source: astar,\n balance: balance.assets(astarGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveWithdrawAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(astar)\n .V1()\n .X2(getPalletInstance(astar)),\n },\n [bifrost.key]: {\n source: bifrost,\n balance: balance.tokens().token2(bifrostGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(bifrost)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token2]: bifrostGlmrId,\n }),\n },\n [parallel.key]: {\n source: parallel,\n balance: balance.assets(parallelGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(parallel)\n .asset(parallelGlmrId),\n },\n [phala.key]: {\n source: phala,\n balance: balance.assets(phalaGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTransfer()\n .transfer()\n .successEvent(XTransferExtrinsicSuccessEvent.Withdrawn)\n .origin(phala)\n .X2(10),\n },\n },\n withdraw: {\n [acala.key]: withdraw.xTokens({\n balance: balance.tokens().foreignAsset(acalaGlmrId),\n destination: acala,\n feePerWeight: 8_000_000,\n sourceMinBalance: balance.minAssetRegistryPallet(acalaGlmrId),\n }),\n [astar.key]: withdraw.xTokens({\n balance: balance.assets(astarGlmrId),\n destination: astar,\n feePerWeight: 50_000,\n }),\n [bifrost.key]: withdraw.xTokens({\n balance: balance.tokens().token2(bifrostGlmrId),\n destination: bifrost,\n feePerWeight: 0.8,\n sourceMinBalance: balance.minCurrencyMetadata(bifrostGlmrId),\n }),\n [parallel.key]: withdraw.xTokens({\n balance: balance.assets(parallelGlmrId),\n destination: parallel,\n feePerWeight: 8,\n }),\n [phala.key]: withdraw.xTokens({\n balance: balance.assets(phalaGlmrId),\n destination: phala,\n feePerWeight: 50_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.IBTC];\nconst feeAsset = assets[AssetSymbol.INTR];\nconst origin = chains[ChainKey.Interlay];\n\nexport const IBTC: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n sourceFeeBalance: balance.tokens().token(feeAsset.originSymbol),\n xcmFeeAsset: {\n asset: feeAsset,\n balance: balance.tokens().token(feeAsset.originSymbol),\n },\n extrinsic: extrinsic\n .xTokens()\n .transferMultiCurrencies()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .assets(\n {\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n },\n {\n [XTokensExtrinsicCurrencyTypes.Token]: feeAsset.originSymbol,\n },\n ),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 0.00000619,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.INTR];\nconst origin = chains[ChainKey.Interlay];\n\nexport const INTR: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 1.87,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.PARA];\nconst origin = chains[ChainKey.Parallel];\n\nexport const PARA: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transferMultiAsset()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset(asset),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 16,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTransferExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.PHA];\nconst origin = chains[ChainKey.Phala];\n\nexport const PHA: MoonbeamXcmConfig = <const>{\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTransfer()\n .transfer()\n .successEvent(XTransferExtrinsicSuccessEvent.Deposited)\n .origin(origin)\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 80,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.RING];\nconst origin = chains[ChainKey.Darwinia];\n\nexport const RING: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X1(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 1_000_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport { getAssetForeignId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.USDT];\nconst origin = chains[ChainKey.Statemint];\nconst originAssetId = getAssetForeignId(asset, origin.key);\n\nexport const USDT: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.assets(originAssetId),\n sourceFeeBalance: balance.system(),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X2(getPalletInstance(origin), originAssetId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.assets(originAssetId),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n destination: origin,\n feePerWeight: 0.00000378,\n }),\n },\n};\n","import { AssetSymbol } from '../../constants';\nimport { MoonbeamXcmConfigs } from './moonbeam.interfaces';\n\nimport { ACA } from './assets/aca';\nimport { ASTR } from './assets/astr';\nimport { AUSD } from './assets/ausd';\nimport { BNC } from './assets/bnc';\nimport { DOT } from './assets/dot';\nimport { GLMR } from './assets/glmr';\nimport { IBTC } from './assets/ibtc';\nimport { INTR } from './assets/intr';\nimport { PARA } from './assets/para';\nimport { PHA } from './assets/pha';\nimport { RING } from './assets/ring';\nimport { USDT } from './assets/usdt';\n\nexport const MOONBEAM_CONFIGS: MoonbeamXcmConfigs = {\n [AssetSymbol.ACA]: ACA,\n [AssetSymbol.ASTR]: ASTR,\n [AssetSymbol.AUSD]: AUSD,\n [AssetSymbol.BNC]: BNC,\n [AssetSymbol.DOT]: DOT,\n [AssetSymbol.GLMR]: GLMR,\n [AssetSymbol.IBTC]: IBTC,\n [AssetSymbol.INTR]: INTR,\n [AssetSymbol.PARA]: PARA,\n [AssetSymbol.PHA]: PHA,\n [AssetSymbol.RING]: RING,\n [AssetSymbol.USDT]: USDT,\n};\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { AssetsMap } from '../config.interfaces';\nimport { MoonriverAssets } from './moonriver.interfaces';\n\nexport const MOONRIVER_ASSETS = <const>[\n AssetSymbol.AUSD,\n AssetSymbol.BNC,\n AssetSymbol.CRAB,\n AssetSymbol.CSM,\n AssetSymbol.HKO,\n AssetSymbol.KAR,\n AssetSymbol.KBTC,\n AssetSymbol.KINT,\n AssetSymbol.KMA,\n AssetSymbol.KSM,\n AssetSymbol.LIT,\n AssetSymbol.MOVR,\n AssetSymbol.PHA,\n AssetSymbol.RMRK,\n AssetSymbol.SDN,\n AssetSymbol.TEER,\n AssetSymbol.USDT,\n AssetSymbol.XRT,\n];\n\nexport const MOONRIVER_ASSETS_MAP: AssetsMap<MoonriverAssets> = {\n [AssetSymbol.AUSD]: {\n id: '214920334981412447805621250067209749032',\n erc20Id: '0xffffffffa1b026a00fbaa67c86d5d1d5bf8d8228',\n originSymbol: AssetSymbol.AUSD,\n },\n [AssetSymbol.BNC]: {\n id: '319623561105283008236062145480775032445',\n erc20Id: '0xfffffffff075423be54811ecb478e911f22dde7d',\n originSymbol: AssetSymbol.BNC,\n },\n [AssetSymbol.CRAB]: {\n id: '173481220575862801646329923366065693029',\n erc20Id: '0xffffffff8283448b3cb519ca4732f2dddc6a6165',\n originSymbol: AssetSymbol.CRAB,\n },\n [AssetSymbol.CSM]: {\n id: '108457044225666871745333730479173774551',\n erc20Id: '0xffffffff519811215e05efa24830eebe9c43acd7',\n originSymbol: AssetSymbol.CSM,\n },\n [AssetSymbol.HKO]: {\n id: '76100021443485661246318545281171740067',\n erc20Id: '0xffffffff394054bcda1902b6a6436840435655a3',\n originSymbol: AssetSymbol.HKO,\n },\n [AssetSymbol.KAR]: {\n id: '10810581592933651521121702237638664357',\n erc20Id: '0xffffffff08220ad2e6e157f26ed8bd22a336a0a5',\n originSymbol: AssetSymbol.KAR,\n },\n [AssetSymbol.KBTC]: {\n id: '328179947973504579459046439826496046832',\n erc20Id: '0xfffffffff6e528ad57184579beee00c5d5e646f0',\n originSymbol: AssetSymbol.KBTC,\n },\n [AssetSymbol.KINT]: {\n id: '175400718394635817552109270754364440562',\n erc20Id: '0xffffffff83f4f317d3cbf6ec6250aec3697b3ff2',\n originSymbol: AssetSymbol.KINT,\n },\n [AssetSymbol.KMA]: {\n id: '213357169630950964874127107356898319277',\n erc20Id: '0xffffffffa083189f870640b141ae1e882c2b5bad',\n originSymbol: AssetSymbol.KMA,\n },\n [AssetSymbol.KSM]: {\n id: '42259045809535163221576417993425387648',\n erc20Id: '0xffffffff1fcacbd218edc0eba20fc2308c778080',\n originSymbol: AssetSymbol.KSM,\n },\n [AssetSymbol.LIT]: {\n id: '65216491554813189869575508812319036608',\n erc20Id: '0xffffffff31103d490325bb0a8e40ef62e2f614c0',\n originSymbol: AssetSymbol.LIT,\n },\n [AssetSymbol.MOVR]: {\n id: '',\n erc20Id: '0x0000000000000000000000000000000000000802',\n originSymbol: AssetSymbol.MOVR,\n isNative: true,\n },\n [AssetSymbol.PHA]: {\n id: '189307976387032586987344677431204943363',\n erc20Id: '0xffffffff8e6b63d9e447b6d4c45bda8af9dc9603',\n originSymbol: AssetSymbol.PHA,\n },\n [AssetSymbol.RMRK]: {\n id: '182365888117048807484804376330534607370',\n erc20Id: '0xffffffff893264794d9d57e1e0e21e0042af5a0a',\n originSymbol: AssetSymbol.RMRK,\n foreignIds: {\n [ChainKey.Statemine]: 8,\n },\n },\n [AssetSymbol.SDN]: {\n id: '16797826370226091782818345603793389938',\n erc20Id: '0xffffffff0ca324c842330521525e7de111f38972',\n originSymbol: AssetSymbol.SDN,\n },\n [AssetSymbol.TEER]: {\n id: '105075627293246237499203909093923548958',\n erc20Id: '0xffffffff4f0cd46769550e5938f6bee2f5d4ef1e',\n originSymbol: AssetSymbol.TEER,\n },\n [AssetSymbol.USDT]: {\n id: '311091173110107856861649819128533077277',\n erc20Id: '0xffffffffea09fb06d082fd1275cd48b191cbcd1d',\n originSymbol: AssetSymbol.USDT,\n foreignIds: {\n [ChainKey.Statemine]: 1984,\n },\n },\n [AssetSymbol.XRT]: {\n id: '108036400430056508975016746969135344601',\n erc20Id: '0xffffffff51470dca3dbe535bd2880a9ccdbc6bd9',\n originSymbol: AssetSymbol.XRT,\n },\n};\n","import { ChainKey } from '../../constants';\nimport { ChainsMap } from '../config.interfaces';\nimport { MoonriverChains } from './moonriver.interfaces';\n\nexport const MOONRIVER_CHAINS = <const>[\n ChainKey.Bifrost,\n ChainKey.Calamari,\n ChainKey.CrustShadow,\n ChainKey.Crab,\n ChainKey.Integritee,\n ChainKey.Karura,\n ChainKey.Khala,\n ChainKey.Kintsugi,\n ChainKey.Kusama,\n ChainKey.Litmus,\n ChainKey.Parallel,\n ChainKey.Robonomics,\n ChainKey.Shiden,\n ChainKey.Statemine,\n];\n\nexport const MOONRIVER_CHAINS_MAP: ChainsMap<MoonriverChains> = {\n [ChainKey.Bifrost]: {\n key: ChainKey.Bifrost,\n name: 'Bifrost',\n ws: 'wss://bifrost-rpc.liebi.com/ws',\n weight: 1_000_000_000,\n parachainId: 2001,\n ss58Format: 6,\n genesisHash:\n '0x9f28c6a68e0fc9646eff64935684f6eeeece527e37bbe1f213d22caa1d9d6bed',\n },\n [ChainKey.Calamari]: {\n key: ChainKey.Calamari,\n name: 'Calamari',\n ws: 'wss://ws.calamari.systems',\n weight: 1_000_000_000,\n parachainId: 2084,\n moonAssetId: 11,\n ss58Format: 78,\n genesisHash:\n '0x4ac80c99289841dd946ef92765bf659a307d39189b3ce374a92b5f0415ee17a1',\n },\n [ChainKey.CrustShadow]: {\n key: ChainKey.CrustShadow,\n name: 'Crust Shadow',\n ws: 'wss://rpc2-shadow.crust.network',\n weight: 1_000_000_000,\n parachainId: 2012,\n moonAssetId: 232263652204149413431520870009560565298n,\n ss58Format: 66,\n genesisHash:\n '0xd4c0c08ca49dc7c680c3dac71a7c0703e5b222f4b6c03fe4c5219bb8f22c18dc',\n },\n [ChainKey.Crab]: {\n key: ChainKey.Crab,\n name: 'Darwinia Crab',\n ws: 'wss://crab-parachain-rpc.darwinia.network',\n weight: 1_000_000_000,\n parachainId: 2105,\n ss58Format: 42,\n genesisHash:\n '0xeac895d7768b17837a9c3a9f0280c01502c3ef40193df923490a0fa9c60ea076',\n },\n [ChainKey.Integritee]: {\n key: ChainKey.Integritee,\n name: 'Integritee',\n ws: 'wss://integritee-kusama.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2015,\n ss58Format: 13,\n genesisHash:\n '0xcdedc8eadbfa209d3f207bba541e57c3c58a667b05a2e1d1e86353c9000758da',\n },\n [ChainKey.Karura]: {\n key: ChainKey.Karura,\n name: 'Karura',\n ws: 'wss://karura-rpc-0.aca-api.network',\n weight: 1_000_000_000,\n parachainId: 2000,\n moonAssetId: 3,\n ss58Format: 8,\n genesisHash:\n '0xbaf5aabe40646d11f0ee8abbdc64f4a4b7674925cba08e4a05ff9ebed6e2126b',\n },\n [ChainKey.Khala]: {\n key: ChainKey.Khala,\n name: 'Khala',\n ws: 'wss://khala.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2004,\n moonAssetId: 6,\n palletInstance: 10,\n ss58Format: 30,\n genesisHash:\n '0xd43540ba6d3eb4897c28a77d48cb5b729fea37603cbbfc7a86a73b72adb3be8d',\n },\n [ChainKey.Kintsugi]: {\n key: ChainKey.Kintsugi,\n name: 'Kintsugi',\n ws: 'wss://api-kusama.interlay.io/parachain',\n weight: 1_000_000_000,\n parachainId: 2092,\n ss58Format: 2092,\n genesisHash:\n '0x9af9a64e6e4da8e3073901c3ff0cc4c3aad9563786d89daf6ad820b6e14a0b8b',\n },\n [ChainKey.Kusama]: {\n key: ChainKey.Kusama,\n name: 'Kusama',\n ws: 'wss://kusama-rpc.polkadot.io',\n weight: 1_000_000_000,\n parachainId: 0,\n ss58Format: 2,\n genesisHash:\n '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n },\n [ChainKey.Litmus]: {\n key: ChainKey.Litmus,\n name: 'Litmus',\n ws: 'wss://rpc.litmus-parachain.litentry.io',\n weight: 1_000_000_000,\n parachainId: 2106,\n ss58Format: 131,\n genesisHash:\n '0xda5831fbc8570e3c6336d0d72b8c08f8738beefec812df21ef2afc2982ede09c',\n },\n [ChainKey.Parallel]: {\n key: ChainKey.Parallel,\n name: 'Parallel Heiko',\n ws: 'wss://heiko-rpc.parallel.fi',\n weight: 1_000_000_000,\n parachainId: 2085,\n moonAssetId: 113,\n ss58Format: 110,\n genesisHash:\n '0x64a1c658a48b2e70a7fb1ad4c39eea35022568c20fc44a6e2e3d0a57aee6053b',\n },\n [ChainKey.Robonomics]: {\n key: ChainKey.Robonomics,\n name: 'Robonomics',\n ws: 'wss://robonomics.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2048,\n ss58Format: 32,\n genesisHash:\n '0x631ccc82a078481584041656af292834e1ae6daab61d2875b4dd0c14bb9b17bc',\n },\n [ChainKey.Shiden]: {\n key: ChainKey.Shiden,\n name: 'Shiden',\n ws: 'wss://shiden.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2007,\n moonAssetId: 18446744073709551620n,\n palletInstance: 10,\n ss58Format: 5,\n genesisHash:\n '0xf1cf9022c7ebb34b162d5b5e34e705a5a740b2d0ecc1009fb89023e62a488108',\n },\n [ChainKey.Statemine]: {\n key: ChainKey.Statemine,\n name: 'Statemine',\n ws: 'wss://statemine-rpc.polkadot.io',\n weight: 1_000_000_000,\n parachainId: 1000,\n palletInstance: 50,\n ss58Format: 2,\n genesisHash:\n '0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a',\n },\n};\n","import { createBalanceBuilder } from '../../balance';\nimport { MoonChainKey, MOON_CHAINS } from '../../constants';\nimport { createExtrinsicBuilder } from '../../extrinsic';\nimport { createWithdrawBuilder } from '../../withdraw';\nimport { MOONRIVER_ASSETS_MAP as assets } from './moonriver.assets';\nimport { MOONRIVER_CHAINS_MAP as chains } from './moonriver.chains';\nimport { MoonriverAssets, MoonriverChains } from './moonriver.interfaces';\n\nexport { assets, chains };\n\nexport const moonriver = MOON_CHAINS[MoonChainKey.Moonriver];\nexport const balance = createBalanceBuilder<MoonriverAssets>();\nexport const extrinsic = createExtrinsicBuilder<\n MoonriverAssets,\n MoonriverChains\n>(moonriver);\nexport const withdraw = createWithdrawBuilder<MoonriverAssets>();\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.AUSD];\nconst origin = chains[ChainKey.Karura];\n\nexport const AUSD: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(AssetSymbol.KUSD),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: AssetSymbol.KUSD,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(AssetSymbol.KUSD),\n destination: origin,\n feePerWeight: 64,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.BNC];\nconst origin = chains[ChainKey.Bifrost];\n\nexport const BNC: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Native]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 6.4,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.CRAB];\nconst origin = chains[ChainKey.Crab];\n\nexport const CRAB: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X1(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 1_000_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.CSM];\nconst origin = chains[ChainKey.CrustShadow];\n\nexport const CSM: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V0(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 1,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.HKO];\nconst origin = chains[ChainKey.Parallel];\n\nexport const HKO: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transferMultiAsset()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset(asset),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 4.8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KAR];\nconst origin = chains[ChainKey.Karura];\n\nexport const KAR: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KBTC];\nconst feeAsset = assets[AssetSymbol.KINT];\nconst origin = chains[ChainKey.Kintsugi];\n\nexport const KBTC: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n sourceFeeBalance: balance.tokens().token(feeAsset.originSymbol),\n xcmFeeAsset: {\n asset: feeAsset,\n balance: balance.tokens().token(feeAsset.originSymbol),\n },\n extrinsic: extrinsic\n .xTokens()\n .transferMultiCurrencies()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .assets(\n {\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n },\n {\n [XTokensExtrinsicCurrencyTypes.Token]: feeAsset.originSymbol,\n },\n ),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 0.000000107,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KINT];\nconst origin = chains[ChainKey.Kintsugi];\n\nexport const KINT: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 0.21,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KMA];\nconst origin = chains[ChainKey.Calamari];\n\nexport const KMA: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.MantaCurrency]: 1 }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.001,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KSM];\nconst origin = chains[ChainKey.Kusama];\n\nexport const KSM: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xcmPallet()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.42,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.LIT];\nconst origin = chains[ChainKey.Litmus];\n\nexport const LIT: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset('SelfReserve'),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n PolkadotXcmExtrinsicSuccessEvent,\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n XTransferExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport { getMoonAssetId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n moonriver,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.MOVR];\nconst bifrost = chains[ChainKey.Bifrost];\nconst calamari = chains[ChainKey.Calamari];\nconst crust = chains[ChainKey.CrustShadow];\nconst karura = chains[ChainKey.Karura];\nconst khala = chains[ChainKey.Khala];\nconst parallel = chains[ChainKey.Parallel];\nconst shiden = chains[ChainKey.Shiden];\n\nconst calamariMovrId = getMoonAssetId(calamari);\nconst crustMovrId = getMoonAssetId(crust);\nconst karuraMovrId = getMoonAssetId(karura);\nconst khalaMovrId = getMoonAssetId(khala);\nconst parallelMovrId = getMoonAssetId(parallel);\nconst shidenMovrId = getMoonAssetId(shiden);\n\nexport const MOVR: MoonriverXcmConfig = {\n asset,\n origin: moonriver,\n deposit: {\n [bifrost.key]: {\n source: bifrost,\n balance: balance.tokens().token(AssetSymbol.MOVR),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(bifrost)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n }),\n },\n [calamari.key]: {\n source: calamari,\n balance: balance.assets(calamariMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(calamari)\n .asset({\n [XTokensExtrinsicCurrencyTypes.MantaCurrency]: calamariMovrId,\n }),\n },\n [crust.key]: {\n source: crust,\n balance: balance.assets(crustMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(crust)\n .asset({\n [XTokensExtrinsicCurrencyTypes.OtherReserve]: crustMovrId,\n }),\n },\n [karura.key]: {\n source: karura,\n balance: balance.tokens().foreignAsset(karuraMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(karura)\n .asset({\n [XTokensExtrinsicCurrencyTypes.ForeignAsset]: karuraMovrId,\n }),\n },\n [khala.key]: {\n source: khala,\n balance: balance.assets(khalaMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTransfer()\n .transfer()\n .successEvent(XTransferExtrinsicSuccessEvent.Withdrawn)\n .origin(khala)\n .X2(getPalletInstance(khala)),\n },\n [parallel.key]: {\n source: parallel,\n balance: balance.assets(parallelMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(parallel)\n .asset(parallelMovrId),\n },\n [shiden.key]: {\n source: shiden,\n balance: balance.assets(shidenMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveWithdrawAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(shiden)\n .V1()\n .X2(getPalletInstance(shiden)),\n },\n },\n withdraw: {\n [bifrost.key]: withdraw.xTokens({\n balance: balance.tokens().token(AssetSymbol.MOVR),\n destination: bifrost,\n feePerWeight: 213_600,\n }),\n [calamari.key]: withdraw.xTokens({\n balance: balance.assets(calamariMovrId),\n destination: calamari,\n feePerWeight: 50_000,\n sourceMinBalance: balance.minAssetPallet(calamariMovrId),\n }),\n [crust.key]: withdraw.xTokens({\n balance: balance.assets(crustMovrId),\n destination: crust,\n feePerWeight: 50_000,\n }),\n [karura.key]: withdraw.xTokens({\n balance: balance.tokens().foreignAsset(karuraMovrId),\n destination: karura,\n feePerWeight: 50_000,\n sourceMinBalance: balance.minAssetRegistryPallet(karuraMovrId),\n }),\n [khala.key]: withdraw.xTokens({\n balance: balance.assets(khalaMovrId),\n destination: khala,\n feePerWeight: 50_000,\n }),\n [parallel.key]: withdraw.xTokens({\n balance: balance.assets(parallelMovrId),\n destination: parallel,\n feePerWeight: 0.48,\n }),\n [shiden.key]: withdraw.xTokens({\n balance: balance.assets(shidenMovrId),\n destination: shiden,\n feePerWeight: 50_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTransferExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.PHA];\nconst origin = chains[ChainKey.Khala];\n\nexport const PHA: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTransfer()\n .transfer()\n .successEvent(XTransferExtrinsicSuccessEvent.Deposited)\n .origin(origin)\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 80,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport { getAssetForeignId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.RMRK];\nconst origin = chains[ChainKey.Statemine];\nconst originAssetId = getAssetForeignId(asset, origin.key);\n\nexport const RMRK: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.assets(originAssetId),\n sourceFeeBalance: balance.system(),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X2(getPalletInstance(origin), originAssetId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.assets(originAssetId),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n destination: origin,\n feePerWeight: 0.000126,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.SDN];\nconst origin = chains[ChainKey.Shiden];\n\nexport const SDN: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.TEER];\nconst origin = chains[ChainKey.Integritee];\n\nexport const TEER: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset(asset.originSymbol),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 1,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport { getAssetForeignId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.USDT];\nconst origin = chains[ChainKey.Statemine];\nconst originAssetId = getAssetForeignId(asset, origin.key);\n\nexport const USDT: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.assets(originAssetId),\n sourceFeeBalance: balance.system(),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X2(getPalletInstance(origin), originAssetId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.assets(originAssetId),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n destination: origin,\n feePerWeight: 0.00000126,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.XRT];\nconst origin = chains[ChainKey.Robonomics];\n\nexport const XRT: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.000008,\n }),\n },\n};\n","import { AssetSymbol } from '../../constants';\nimport { MoonriverXcmConfigs } from './moonriver.interfaces';\n\nimport { AUSD } from './assets/ausd';\nimport { BNC } from './assets/bnc';\nimport { CRAB } from './assets/crab';\nimport { CSM } from './assets/csm';\nimport { HKO } from './assets/hko';\nimport { KAR } from './assets/kar';\nimport { KBTC } from './assets/kbtc';\nimport { KINT } from './assets/kint';\nimport { KMA } from './assets/kma';\nimport { KSM } from './assets/ksm';\nimport { LIT } from './assets/lit';\nimport { MOVR } from './assets/movr';\nimport { PHA } from './assets/pha';\nimport { RMRK } from './assets/rmrk';\nimport { SDN } from './assets/sdn';\nimport { TEER } from './assets/teer';\nimport { USDT } from './assets/usdt';\nimport { XRT } from './assets/xrt';\n\nexport const MOONRIVER_CONFIGS: MoonriverXcmConfigs = {\n [AssetSymbol.AUSD]: AUSD,\n [AssetSymbol.BNC]: BNC,\n [AssetSymbol.CRAB]: CRAB,\n [AssetSymbol.CSM]: CSM,\n [AssetSymbol.HKO]: HKO,\n [AssetSymbol.KAR]: KAR,\n [AssetSymbol.KBTC]: KBTC,\n [AssetSymbol.KINT]: KINT,\n [AssetSymbol.KMA]: KMA,\n [AssetSymbol.KSM]: KSM,\n [AssetSymbol.LIT]: LIT,\n [AssetSymbol.MOVR]: MOVR,\n [AssetSymbol.PHA]: PHA,\n [AssetSymbol.RMRK]: RMRK,\n [AssetSymbol.SDN]: SDN,\n [AssetSymbol.TEER]: TEER,\n [AssetSymbol.USDT]: USDT,\n [AssetSymbol.XRT]: XRT,\n};\n","import { AssetSymbol, ChainKey, MoonChainKey, MOON_CHAINS } from '../constants';\nimport { Asset, Chain } from '../interfaces';\nimport {\n CreateConfigParams,\n TransactConfig,\n XcmConfigBuilder,\n} from './config.interfaces';\nimport {\n getChainKey,\n getOverallFee,\n getOverallWeight,\n getSymbol,\n} from './config.utils';\nimport {\n MoonbaseAssets,\n MoonbaseChains,\n MOONBASE_ASSETS_MAP,\n MOONBASE_CHAINS_MAP,\n MOONBASE_CONFIGS,\n MOONBASE_TRANSACT_CONFIGS,\n} from './moonbase';\nimport {\n MoonbeamAssets,\n MoonbeamChains,\n MOONBEAM_ASSETS_MAP,\n MOONBEAM_CHAINS_MAP,\n MOONBEAM_CONFIGS,\n} from './moonbeam';\nimport {\n MoonriverAssets,\n MoonriverChains,\n MOONRIVER_ASSETS_MAP,\n MOONRIVER_CHAINS_MAP,\n MOONRIVER_CONFIGS,\n} from './moonriver';\n\nexport function createConfig<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>({\n assets,\n moonAsset,\n moonChain,\n chains,\n configs,\n transact,\n}: CreateConfigParams<Symbols, ChainKeys>): XcmConfigBuilder<\n Symbols,\n ChainKeys\n> {\n return {\n symbols: Object.keys(assets) as Symbols[],\n assets,\n moonAsset,\n moonChain,\n deposit: (symbolOrAsset: Symbols | Asset<Symbols>) => {\n const symbol = getSymbol(symbolOrAsset);\n const config = configs[symbol];\n\n if (!config) {\n throw new Error(`No config found for asset: ${symbol}`);\n }\n\n return {\n chains: (Object.keys(config.deposit) as ChainKeys[]).map(\n (chain) => chains[chain],\n ),\n from: (keyOrChain: ChainKeys | Chain<ChainKeys>) => {\n const key = getChainKey(keyOrChain);\n const depositConfig = config.deposit[key];\n\n if (!depositConfig) {\n throw new Error(\n `No deposit config found for asset: ${symbol} and chain: ${key}`,\n );\n }\n\n return {\n asset: config.asset,\n origin: config.origin,\n config: depositConfig,\n };\n },\n };\n },\n withdraw: (symbolOrAsset: Symbols | Asset<Symbols>) => {\n const symbol = getSymbol(symbolOrAsset);\n const config = configs[symbol];\n\n if (!config) {\n throw new Error(`No config found for asset: ${symbol}`);\n }\n\n return {\n chains: (Object.keys(config.withdraw) as ChainKeys[]).map(\n (chain) => chains[chain],\n ),\n to: (keyOrChain: ChainKeys | Chain<ChainKeys>) => {\n const key = getChainKey(keyOrChain);\n const withdrawConfig = config.withdraw[key];\n\n if (!withdrawConfig) {\n throw new Error(\n `No withdraw config found for asset: ${symbol} and chain: ${key}`,\n );\n }\n\n return {\n asset: config.asset,\n origin: config.origin,\n config: withdrawConfig,\n };\n },\n };\n },\n transact: () => {\n const { chainsTo, chainsFrom } = Object.values<\n TransactConfig<Symbols, ChainKeys>\n >(transact as { [s: string]: TransactConfig<Symbols, ChainKeys> }).reduce(\n (acc, config) => {\n if (config.from) {\n acc.chainsFrom.push(config.chain);\n }\n\n if (config.to) {\n acc.chainsTo.push(config.chain);\n }\n\n return acc;\n },\n {\n chainsTo: [] as Chain<ChainKeys>[],\n chainsFrom: [] as Chain<ChainKeys>[],\n },\n );\n\n return {\n chainsFrom,\n chainsTo,\n from: (keyOrChain: ChainKeys | Chain<ChainKeys>) => {\n const key = getChainKey(keyOrChain);\n const config = transact[key];\n\n if (!config?.from) {\n throw new Error(`No transact config found from chain: ${key}`);\n }\n\n return {\n chain: config.chain,\n config: config.from,\n balance: config.balance,\n getOverallFee: (overallWeight: bigint) =>\n getOverallFee(overallWeight, moonChain.unitsPerSecond),\n getOverallWeight: (txWeight: bigint) =>\n getOverallWeight(moonChain, txWeight),\n };\n },\n to: (keyOrChain: ChainKeys | Chain<ChainKeys>) => {\n const key = getChainKey(keyOrChain);\n const config = transact[key];\n\n if (!config?.to) {\n throw new Error(`No transact config found to chain: ${key}`);\n }\n\n return {\n chain: config.chain,\n config: config.to,\n balance: config.balance,\n getOverallFee: (overallWeight: bigint) =>\n getOverallFee(overallWeight, config.unitsPerSecond),\n getOverallWeight: (txWeight: bigint) =>\n getOverallWeight(config.chain, txWeight),\n };\n },\n };\n },\n };\n}\n\nexport const moonbase = createConfig<MoonbaseAssets, MoonbaseChains>({\n assets: MOONBASE_ASSETS_MAP,\n moonAsset: MOONBASE_ASSETS_MAP[AssetSymbol.DEV],\n moonChain: MOON_CHAINS[MoonChainKey.MoonbaseAlpha],\n chains: MOONBASE_CHAINS_MAP,\n configs: MOONBASE_CONFIGS,\n transact: MOONBASE_TRANSACT_CONFIGS,\n});\nexport const moonbeam = createConfig<MoonbeamAssets, MoonbeamChains>({\n assets: MOONBEAM_ASSETS_MAP,\n moonAsset: MOONBEAM_ASSETS_MAP[AssetSymbol.GLMR],\n moonChain: MOON_CHAINS[MoonChainKey.Moonbeam],\n chains: MOONBEAM_CHAINS_MAP,\n configs: MOONBEAM_CONFIGS,\n transact: {},\n});\nexport const moonriver = createConfig<MoonriverAssets, MoonriverChains>({\n assets: MOONRIVER_ASSETS_MAP,\n moonAsset: MOONRIVER_ASSETS_MAP[AssetSymbol.MOVR],\n moonChain: MOON_CHAINS[MoonChainKey.Moonriver],\n chains: MOONRIVER_CHAINS_MAP,\n configs: MOONRIVER_CONFIGS,\n transact: {},\n});\n"],"mappings":"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E,iBAAkB,CAChB,GAAI,OACJ,OAAAA,CACF,CACF,CACF,CACF,EAAE,EACJ,GAAI,KAAO,CACT,KAAM,IACJF,EAAiBE,IAAY,CAC3B,GAAI,CACF,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUA,CACZ,CACF,CACF,CACF,EAAE,EACJ,GAAI,IACFF,EAAiBE,IAAY,CAC3B,GAAI,CACF,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,eAAgB,CAClB,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,CACZ,CACF,CACF,CACF,EAAE,EACJ,GAAI,CAACC,EAAwBC,IAC3BJ,EAAiBE,IAAY,CAC3B,GAAI,CACF,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,eAAgBC,CAClB,EACA,CACE,aAAcC,CAChB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUF,CACZ,CACF,CACF,CACF,EAAE,CACN,EACF,CACF,CACF,EACF,CACF,CAEA,SAASL,GACPF,EACA,CACA,MAAO,CACL,aAAeG,IAA6C,CAC1D,OAASC,GAA6B,CACpC,IAAMC,EAAkBC,iCAEtBH,EACAH,EACAI,CACF,EAEA,MAAO,CACL,GAAI,KAAO,CACT,GAAKI,GACHH,EAAiBE,IAAY,CAC3B,GAAI,CACF,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWP,EAAM,WACnB,EACA,CACE,eAAgBQ,CAClB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUD,CACZ,CACF,CACF,CACF,EAAE,CACN,EACF,CACF,CACF,EACF,CACF,CClJO,SAASG,GAAsCC,EAAkB,CACtE,MAAO,CACL,6BAA8B,IAC5BC,GAAwCD,CAAK,CACjD,CACF,CAEA,SAASC,GACPD,EACA,CACA,MAAO,CACL,aAAeE,IAA6C,CAC1D,OAASC,IASA,CACL,GATsBC,iCAEtBF,EACAF,EACAG,EACA,CACF,EAGsB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","names":["src_exports","__export","AssetSymbol","BalanceCurrencyTypes","BalanceFunction","BalancePallet","ChainKey","ExtrinsicPallet","MOONBASE_ASSETS","MOONBASE_ASSETS_MAP","MOONBASE_CHAINS","MOONBASE_CHAINS_MAP","MOONBASE_CONFIGS","MOONBASE_TRANSACT_CONFIGS","MOONBEAM_ASSETS","MOONBEAM_ASSETS_MAP","MOONBEAM_CHAINS","MOONBEAM_CHAINS_MAP","MOONBEAM_CONFIGS","MOONRIVER_ASSETS","MOONRIVER_ASSETS_MAP","MOONRIVER_CHAINS","MOONRIVER_CHAINS_MAP","MOONRIVER_CONFIGS","MOON_CHAINS","MoonChainKey","PolkadotXcmExtrinsic","PolkadotXcmExtrinsicSuccessEvent","XTokensExtrinsic","XTokensExtrinsicCurrencyTypes","XTokensExtrinsicSuccessEvent","XTransferExtrinsic","XTransferExtrinsicSuccessEvent","createBalanceBuilder","createConfig","createExtrinsicBuilder","createMultilocationBuilder","createTransactBuilder","createWithdrawBuilder","getCreateExtrinsic","isMultiCurrency","moonbase","moonbeam","moonriver","polkadotXcm","xTokens","xTransfer","xcmPallet","__toCommonJS","import_api_augment","import_api_augment","BalancePallet","BalanceFunction","BalanceCurrencyTypes","createBalanceBuilder","assets","minAssetPallet","minAssetRegistryPallet","minCurrencyMetadata","ormlTokens","system","tokens","asset","account","balance","free","frozen","miscFrozen","tokensBase","AssetSymbol","MoonChainKey","MOON_CHAINS","ChainKey","import_util","PolkadotXcmExtrinsic","PolkadotXcmExtrinsicSuccessEvent","ExtrinsicPallet","getCreateExtrinsic","extrinsic","event","config","origin","parents","getAsset","account","amount","polkadotXcm","chain","limitedReserveTransferAssets","limitedReserveWithdrawAssets","event","origin","createExtrinsic","getCreateExtrinsic","amount","palletInstance","assetId","xcmPallet","chain","limitedReserveTransferAssets","event","origin","getCreateExtrinsic","amount","XTokensExtrinsic","XTokensExtrinsicSuccessEvent","XTokensExtrinsicCurrencyTypes","getWeightXTokens","weight","extrinsicCall","_a","xTokens","chain","transfer","transferMultiAsset","transferMultiCurrencies","event","origin","token","account","amount","extrinsicCall","getWeightXTokens","asset","feeAsset","fee","XTransferExtrinsic","XTransferExtrinsicSuccessEvent","xTransfer","chain","transfer","event","origin","createExtrinsic","getCreateExtrinsic","palletInstance","extrinsic","getConcrete","account","amount","createExtrinsicBuilder","chain","polkadotXcm","xcmPallet","xTokens","xTransfer","getAssetForeignId","asset","chain","_a","id","getMoonAssetId","getUnitsPerSecond","getPalletInstance","isMultiCurrency","extrinsic","getSymbol","symbolOrAsset","getChainKey","keyOrChain","getOverallWeight","txWeight","descendOriginWeight","withdrawAssetWeight","buyExecutionWeight","transactWeight","getOverallFee","overallWeight","unitsPerSecond","weightPerSecond","createMultilocationBuilder","parachainId","parents","account","createTransactBuilder","chain","callHash","overallFee","overallWeight","txWeight","palletInstance","getPalletInstance","parachainId","import_util","import_util_crypto","createWithdrawBuilder","options","xTokens","balance","destination","feePerWeight","sourceMinBalance","xcmFeeAsset","weight","account","parachainId","acc","MOONBASE_ASSETS","MOONBASE_ASSETS_MAP","MOONBASE_CHAINS","MOONBASE_CHAINS_MAP","moonbase","MOON_CHAINS","balance","createBalanceBuilder","extrinsic","createExtrinsicBuilder","withdraw","createWithdrawBuilder","transact","createTransactBuilder","multilocation","createMultilocationBuilder","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","AUQ","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","NEER","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","feeAsset","origin","MOONBASE_CHAINS_MAP","neerWithdrawConfig","NEER","BIT","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","pioneer","MOONBASE_CHAINS_MAP","pioneerDevId","getMoonAssetId","DEV","moonbase","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","LIT","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","originAssetId","getAssetForeignId","TT1","balance","extrinsic","getPalletInstance","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","UNIT","balance","extrinsic","withdraw","MOONBASE_CONFIGS","AUQ","BIT","DEV","LIT","NEER","TT1","UNIT","beta","MOONBASE_CHAINS_MAP","unitsPerSecond","getUnitsPerSecond","BETA","balance","multilocation","transact","moonbase","MOONBASE_TRANSACT_CONFIGS","BETA","MOONBEAM_ASSETS","MOONBEAM_ASSETS_MAP","MOONBEAM_CHAINS","MOONBEAM_CHAINS_MAP","moonbeam","MOON_CHAINS","balance","createBalanceBuilder","extrinsic","createExtrinsicBuilder","withdraw","createWithdrawBuilder","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","ACA","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","ASTR","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","AUSD","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","BNC","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","DOT","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","acala","MOONBEAM_CHAINS_MAP","astar","bifrost","parallel","phala","acalaGlmrId","getMoonAssetId","astarGlmrId","bifrostGlmrId","parallelGlmrId","phalaGlmrId","GLMR","moonbeam","balance","extrinsic","getPalletInstance","withdraw","asset","MOONBEAM_ASSETS_MAP","feeAsset","origin","MOONBEAM_CHAINS_MAP","IBTC","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","INTR","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","PARA","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","PHA","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","RING","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","originAssetId","getAssetForeignId","USDT","balance","extrinsic","getPalletInstance","withdraw","MOONBEAM_CONFIGS","ACA","ASTR","AUSD","BNC","DOT","GLMR","IBTC","INTR","PARA","PHA","RING","USDT","MOONRIVER_ASSETS","MOONRIVER_ASSETS_MAP","MOONRIVER_CHAINS","MOONRIVER_CHAINS_MAP","moonriver","MOON_CHAINS","balance","createBalanceBuilder","extrinsic","createExtrinsicBuilder","withdraw","createWithdrawBuilder","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","AUSD","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","BNC","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","CRAB","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","CSM","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","HKO","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","KAR","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","feeAsset","origin","MOONRIVER_CHAINS_MAP","KBTC","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","KINT","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","KMA","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","KSM","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","LIT","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","bifrost","MOONRIVER_CHAINS_MAP","calamari","crust","karura","khala","parallel","shiden","calamariMovrId","getMoonAssetId","crustMovrId","karuraMovrId","khalaMovrId","parallelMovrId","shidenMovrId","MOVR","moonriver","balance","extrinsic","getPalletInstance","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","PHA","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","originAssetId","getAssetForeignId","RMRK","balance","extrinsic","getPalletInstance","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","SDN","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","TEER","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","originAssetId","getAssetForeignId","USDT","balance","extrinsic","getPalletInstance","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","XRT","balance","extrinsic","withdraw","MOONRIVER_CONFIGS","AUSD","BNC","CRAB","CSM","HKO","KAR","KBTC","KINT","KMA","KSM","LIT","MOVR","PHA","RMRK","SDN","TEER","USDT","XRT","createConfig","assets","moonAsset","moonChain","chains","configs","transact","symbolOrAsset","symbol","getSymbol","config","chain","keyOrChain","key","getChainKey","depositConfig","withdrawConfig","chainsTo","chainsFrom","acc","overallWeight","getOverallFee","txWeight","getOverallWeight","moonbase","MOONBASE_ASSETS_MAP","MOON_CHAINS","MOONBASE_CHAINS_MAP","MOONBASE_CONFIGS","MOONBASE_TRANSACT_CONFIGS","moonbeam","MOONBEAM_ASSETS_MAP","MOONBEAM_CHAINS_MAP","MOONBEAM_CONFIGS","moonriver","MOONRIVER_ASSETS_MAP","MOONRIVER_CHAINS_MAP","MOONRIVER_CONFIGS"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/balance/balance.ts","../src/balance/balance.constants.ts","../src/constants/assets.ts","../src/constants/chains.ts","../src/config/config.utils.ts","../src/extrinsic/polkadotXcm/polkadotXcm.constants.ts","../src/extrinsic/extrinsic.constants.ts","../src/extrinsic/polkadotXcm/polkadotXcm.util.ts","../src/extrinsic/polkadotXcm/polkadotXcm.ts","../src/extrinsic/xcmPallet/xcmPallet.ts","../src/extrinsic/xTokens/xTokens.constants.ts","../src/extrinsic/xTokens/xTokens.util.ts","../src/extrinsic/xTokens/xTokens.ts","../src/extrinsic/xTransfer/xTransfer.constants.ts","../src/extrinsic/xTransfer/xTransfer.ts","../src/extrinsic/extrinsic.ts","../src/multilocation/multilocation.ts","../src/transact/transact.ts","../src/withdraw/withdraw.ts","../src/config/moonbase/moonbase.assets.ts","../src/config/moonbase/moonbase.chains.ts","../src/config/moonbase/moonbase.common.ts","../src/config/moonbase/assets/auq.ts","../src/config/moonbase/assets/neer.ts","../src/config/moonbase/assets/bit.ts","../src/config/moonbase/assets/dev.ts","../src/config/moonbase/assets/lit.ts","../src/config/moonbase/assets/tt1.ts","../src/config/moonbase/assets/unit.ts","../src/config/moonbase/moonbase.ts","../src/config/moonbase/transact/beta.ts","../src/config/moonbase/moonbase.transact.ts","../src/config/moonbeam/moonbeam.assets.ts","../src/config/moonbeam/moonbeam.chains.ts","../src/config/moonbeam/moonbeam.common.ts","../src/config/moonbeam/assets/aca.ts","../src/config/moonbeam/assets/astr.ts","../src/config/moonbeam/assets/ausd.ts","../src/config/moonbeam/assets/bnc.ts","../src/config/moonbeam/assets/dot.ts","../src/config/moonbeam/assets/glmr.ts","../src/config/moonbeam/assets/ibtc.ts","../src/config/moonbeam/assets/intr.ts","../src/config/moonbeam/assets/para.ts","../src/config/moonbeam/assets/pha.ts","../src/config/moonbeam/assets/ring.ts","../src/config/moonbeam/assets/usdt.ts","../src/config/moonbeam/moonbeam.ts","../src/config/moonriver/moonriver.assets.ts","../src/config/moonriver/moonriver.chains.ts","../src/config/moonriver/moonriver.common.ts","../src/config/moonriver/assets/ausd.ts","../src/config/moonriver/assets/bnc.ts","../src/config/moonriver/assets/crab.ts","../src/config/moonriver/assets/csm.ts","../src/config/moonriver/assets/hko.ts","../src/config/moonriver/assets/kar.ts","../src/config/moonriver/assets/kbtc.ts","../src/config/moonriver/assets/kint.ts","../src/config/moonriver/assets/kma.ts","../src/config/moonriver/assets/ksm.ts","../src/config/moonriver/assets/lit.ts","../src/config/moonriver/assets/movr.ts","../src/config/moonriver/assets/pha.ts","../src/config/moonriver/assets/rmrk.ts","../src/config/moonriver/assets/sdn.ts","../src/config/moonriver/assets/teer.ts","../src/config/moonriver/assets/usdt.ts","../src/config/moonriver/assets/xrt.ts","../src/config/moonriver/moonriver.ts","../src/config/config.ts"],"sourcesContent":["import '@polkadot/api-augment';\n\nexport * from './balance';\nexport * from './config';\nexport * from './constants';\nexport * from './deposit';\nexport * from './extrinsic';\nexport * from './interfaces';\nexport * from './multilocation';\nexport * from './transact';\nexport * from './withdraw';\n","import '@polkadot/api-augment';\n\nimport { u128 } from '@polkadot/types';\nimport { PalletBalancesAccountData } from '@polkadot/types/lookup';\nimport { AssetSymbol } from '../constants';\nimport { AssetId } from '../interfaces';\nimport {\n BalanceCurrencyTypes,\n BalanceFunction,\n BalancePallet,\n} from './balance.constants';\nimport {\n AssetsBalanceConfig,\n MinBalanceAssetRegistryConfig,\n MinBalanceAssetsConfig,\n OrmlTokensBalanceConfig,\n SystemBalanceConfig,\n TokensBalanceConfig,\n TokensBalanceParamAsset,\n TokensPalletAccountData,\n} from './balance.interfaces';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function createBalanceBuilder<\n Symbols extends AssetSymbol = AssetSymbol,\n>() {\n return {\n assets,\n minAssetPallet,\n minAssetRegistryPallet,\n minCurrencyMetadata,\n ormlTokens,\n system,\n tokens: () => tokens<Symbols>(),\n };\n}\n\nfunction assets(asset: AssetId): AssetsBalanceConfig {\n return {\n pallet: BalancePallet.Assets,\n function: BalanceFunction.Account,\n path: ['balance'],\n getParams: (account: string) => [asset, account],\n calc: (balance: u128) => balance.toBigInt(),\n };\n}\n\nfunction minAssetPallet(asset: AssetId): MinBalanceAssetsConfig {\n return {\n pallet: BalancePallet.Assets,\n function: BalanceFunction.Asset,\n path: ['minBalance'],\n params: [asset],\n };\n}\n\nfunction minAssetRegistryPallet(asset: AssetId): MinBalanceAssetRegistryConfig {\n return {\n pallet: BalancePallet.AssetRegistry,\n function: BalanceFunction.AssetMetadatas,\n path: ['minimalBalance'],\n params: [{ ForeignAssetId: asset }],\n };\n}\n\nfunction minCurrencyMetadata(asset: AssetId): MinBalanceAssetRegistryConfig {\n return {\n pallet: BalancePallet.AssetRegistry,\n function: BalanceFunction.CurrencyMetadatas,\n path: ['minimalBalance'],\n params: [{ Token2: asset }],\n };\n}\n\nfunction ormlTokens(asset: AssetId): OrmlTokensBalanceConfig {\n return {\n pallet: BalancePallet.OrmlTokens,\n function: BalanceFunction.Accounts,\n path: [],\n getParams: (account: string) => [account, { ForeignAsset: asset }],\n calc: ({ free, frozen }: TokensPalletAccountData) =>\n BigInt(free.sub(frozen).toString()),\n };\n}\n\nfunction system(): SystemBalanceConfig {\n return {\n pallet: BalancePallet.System,\n function: BalanceFunction.Account,\n path: ['data'],\n getParams: (account: string) => [account],\n calc: ({ free, miscFrozen }: PalletBalancesAccountData) =>\n BigInt(free.sub(miscFrozen).toString()),\n };\n}\n\nfunction tokens<Symbols extends AssetSymbol = AssetSymbol>() {\n return {\n foreignAsset: (asset: AssetId | Symbols) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.ForeignAsset]: asset }),\n fungibleToken: (asset: AssetId) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.FungibleToken]: asset }),\n miningResource: (asset: AssetId) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.MiningResource]: asset }),\n token: (asset: Symbols | AssetSymbol.KUSD) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.Token]: asset }),\n token2: (asset: AssetId) =>\n tokensBase<Symbols>({ [BalanceCurrencyTypes.Token2]: asset }),\n };\n}\n\nfunction tokensBase<Symbols extends AssetSymbol = AssetSymbol>(\n asset: TokensBalanceParamAsset<Symbols>,\n): TokensBalanceConfig<Symbols> {\n return {\n pallet: BalancePallet.Tokens,\n function: BalanceFunction.Accounts,\n path: [],\n getParams: (account: string) => [account, asset],\n calc: ({ free, frozen }: TokensPalletAccountData) =>\n BigInt(free.sub(frozen).toString()),\n };\n}\n","export enum BalancePallet {\n Assets = 'assets',\n AssetRegistry = 'assetRegistry',\n OrmlTokens = 'ormlTokens',\n System = 'system',\n Tokens = 'tokens',\n}\n\nexport enum BalanceFunction {\n Account = 'account',\n Accounts = 'accounts',\n Asset = 'asset',\n AssetMetadatas = 'assetMetadatas',\n CurrencyMetadatas = 'currencyMetadatas',\n}\n\nexport enum BalanceCurrencyTypes {\n Token = 'Token',\n Token2 = 'Token2',\n ForeignAsset = 'ForeignAsset',\n NativeToken = 'NativeToken',\n MiningResource = 'MiningResource',\n FungibleToken = 'FungibleToken',\n}\n","export enum AssetSymbol {\n ACA = 'ACA',\n ASTR = 'ASTR',\n AUSD = 'AUSD',\n AUQ = 'AUQ',\n BIT = 'BIT',\n BNC = 'BNC',\n CRAB = 'CRAB',\n CSM = 'CSM',\n DEV = 'DEV',\n DOT = 'DOT',\n GLMR = 'GLMR',\n HKO = 'HKO',\n IBTC = 'IBTC',\n INTR = 'INTR',\n KAR = 'KAR',\n KBTC = 'KBTC',\n KINT = 'KINT',\n KMA = 'KMA',\n KSM = 'KSM',\n KUSD = 'KUSD',\n LIT = 'LIT',\n MOVR = 'MOVR',\n NEER = 'NEER',\n PARA = 'PARA',\n PHA = 'PHA',\n RING = 'RING',\n RMRK = 'RMRK',\n SDN = 'SDN',\n TEER = 'TEER',\n TT1 = 'TT1',\n UNIT = 'UNIT',\n USDT = 'USDT',\n XRT = 'XRT',\n}\n","import { MoonChain } from '../interfaces';\n\nexport enum MoonChainKey {\n MoonbaseAlpha = 'MoonbaseAlpha',\n Moonbeam = 'Moonbeam',\n Moonriver = 'Moonriver',\n}\nexport const MOON_CHAINS: Record<MoonChainKey, MoonChain> = {\n [MoonChainKey.MoonbaseAlpha]: {\n key: MoonChainKey.MoonbaseAlpha,\n name: 'Moonbase Alpha',\n ws: 'wss://wss.api.moonbase.moonbeam.network',\n parachainId: 1000,\n decimals: 18,\n chainId: 1287,\n unitsPerSecond: 50_000_000_000_000_000n,\n weights: {\n descendOriginWeight: 9_620_000n,\n withdrawAssetWeight: 200_000_000n,\n buyExecutionWeight: 130_464_000n + 100_000_000n,\n transactWeight: 31_693_000n + 25_000_000n,\n },\n },\n [MoonChainKey.Moonbeam]: {\n key: MoonChainKey.Moonbeam,\n name: 'Moonbeam',\n ws: 'wss://wss.api.moonbeam.network',\n parachainId: 2004,\n decimals: 18,\n chainId: 1284,\n unitsPerSecond: 10_000_000_000_000_000_000n,\n },\n [MoonChainKey.Moonriver]: {\n key: MoonChainKey.Moonriver,\n name: 'Moonriver',\n ws: 'wss://wss.api.moonriver.moonbeam.network',\n parachainId: 2023,\n decimals: 18,\n chainId: 1285,\n unitsPerSecond: 100_000_000_000_000_000n,\n },\n};\n\nexport enum ChainKey {\n Acala = 'Acala',\n AlphanetRelay = 'AlphanetRelay',\n Astar = 'Astar',\n Bifrost = 'Bifrost',\n BitCountryPioneer = 'BitCountryPioneer',\n BifrostPolkadot = 'BifrostPolkadot',\n Calamari = 'Calamari',\n Crab = 'Crab',\n CrustShadow = 'CrustShadow',\n Darwinia = 'Darwinia',\n Integritee = 'Integritee',\n Interlay = 'Interlay',\n Karura = 'Karura',\n Khala = 'Khala',\n Kintsugi = 'Kintsugi',\n Kusama = 'Kusama',\n LitentryAlphanet = 'LitentryAlphanet',\n Litmus = 'Litmus',\n MoonbaseBeta = 'MoonbaseBeta',\n Parallel = 'Parallel',\n ParallelHeiko = 'ParallelHeiko',\n Phala = 'Phala',\n Polkadot = 'Polkadot',\n Robonomics = 'Robonomics',\n Shiden = 'Shiden',\n Statemine = 'Statemine',\n StatemineAlphanet = 'StatemineAlphanet',\n Statemint = 'Statemint',\n UniqueAlpha = 'UniqueAlpha',\n}\n","import { isString, isUndefined } from '@polkadot/util';\nimport { AssetSymbol, ChainKey } from '../constants';\nimport {\n ExtrinsicConfig,\n ExtrinsicPallet,\n XTokensExtrinsic,\n XTokensTransferMultiCurrenciesExtrinsic,\n} from '../extrinsic';\nimport { Asset, AssetId, Chain, MoonChain } from '../interfaces';\n\nexport function getAssetForeignId<Symbols extends AssetSymbol = AssetSymbol>(\n asset: Asset<Symbols>,\n chain: ChainKey,\n): AssetId {\n const id = asset.foreignIds?.[chain];\n\n if (isUndefined(id)) {\n throw new Error(\n `No foreignAssetId defined for asset ${asset.originSymbol} and chain ${chain}`,\n );\n }\n\n return id;\n}\n\nexport function getMoonAssetId<ChainKeys extends ChainKey>(\n chain: Chain<ChainKeys>,\n): bigint | number {\n if (isUndefined(chain.moonAssetId)) {\n throw new Error(`No moonAssetId defined for chain ${chain.key}`);\n }\n\n return chain.moonAssetId;\n}\n\nexport function getUnitsPerSecond<ChainKeys extends ChainKey>(\n chain: Chain<ChainKeys>,\n): bigint {\n if (isUndefined(chain.unitsPerSecond)) {\n throw new Error(`No unitsPerSecond defined for chain ${chain.key}`);\n }\n\n return chain.unitsPerSecond;\n}\n\nexport function getPalletInstance<ChainKeys extends ChainKey>(\n chain: Chain<ChainKeys>,\n): number {\n if (isUndefined(chain.palletInstance)) {\n throw new Error(`No palletInstance defined for chain ${chain.key}`);\n }\n\n return chain.palletInstance;\n}\n\nexport function isMultiCurrency<Symbols extends AssetSymbol = AssetSymbol>(\n extrinsic: ExtrinsicConfig<Symbols>,\n): extrinsic is XTokensTransferMultiCurrenciesExtrinsic<Symbols> {\n return (\n extrinsic.pallet === ExtrinsicPallet.XTokens &&\n extrinsic.extrinsic === XTokensExtrinsic.TransferMultiCurrencies\n );\n}\n\nexport function getSymbol<Symbols extends AssetSymbol>(\n symbolOrAsset: Symbols | Asset<Symbols>,\n): Symbols {\n return isString(symbolOrAsset) ? symbolOrAsset : symbolOrAsset.originSymbol;\n}\n\nexport function getChainKey<ChainKeys extends ChainKey>(\n keyOrChain: ChainKeys | Chain<ChainKeys>,\n): ChainKeys {\n return isString(keyOrChain) ? keyOrChain : keyOrChain.key;\n}\n\nexport function getOverallWeight<ChainKeys extends ChainKey = ChainKey>(\n chain: Chain<ChainKeys> | MoonChain,\n txWeight: bigint,\n): bigint {\n if (!chain.weights) {\n throw new Error(`No weights found for chain: ${chain.key}`);\n }\n\n const {\n descendOriginWeight,\n withdrawAssetWeight,\n buyExecutionWeight,\n transactWeight,\n } = chain.weights;\n\n return (\n descendOriginWeight +\n withdrawAssetWeight +\n buyExecutionWeight +\n transactWeight +\n txWeight\n );\n}\n\nexport function getOverallFee(\n overallWeight: bigint,\n unitsPerSecond: bigint,\n): bigint {\n const weightPerSecond = 1_000_000_000_000n;\n\n return (overallWeight * unitsPerSecond) / weightPerSecond;\n}\n","export enum PolkadotXcmExtrinsic {\n LimitedReserveTransferAssets = 'limitedReserveTransferAssets',\n LimitedReserveWithdrawAssets = 'limitedReserveWithdrawAssets',\n}\n\nexport enum PolkadotXcmExtrinsicSuccessEvent {\n Attempted = 'Attempted',\n}\n","export enum ExtrinsicPallet {\n PolkadotXcm = 'polkadotXcm',\n XcmPallet = 'xcmPallet',\n XTokens = 'xTokens',\n XTransfer = 'xTransfer',\n}\n","import { ChainKey } from '../../constants';\nimport { Chain, MoonChain } from '../../interfaces';\nimport { Parents } from '../common.interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n PolkadotXcmExtrinsic,\n PolkadotXcmExtrinsicSuccessEvent,\n} from './polkadotXcm.constants';\nimport {\n PolkadotXcmAssetParam,\n PolkadotXcmPallet,\n} from './polkadotXcm.interfaces';\n\nexport function getCreateExtrinsic<ChainKeys extends ChainKey>(\n extrinsic: PolkadotXcmExtrinsic,\n event: PolkadotXcmExtrinsicSuccessEvent,\n config: MoonChain,\n origin: Chain<ChainKeys>,\n parents: Parents = 1,\n) {\n return (\n getAsset: (amount: bigint) => PolkadotXcmAssetParam,\n ): PolkadotXcmPallet => ({\n pallet: ExtrinsicPallet.PolkadotXcm,\n extrinsic,\n successEvent: event,\n getParams: ({ account, amount }) => [\n {\n V1: {\n parents,\n interior: {\n X1: {\n Parachain: config.parachainId,\n },\n },\n },\n },\n {\n V1: {\n parents: 0,\n interior: {\n X1: {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n },\n },\n },\n getAsset(amount),\n 0,\n {\n Limited: origin.weight,\n },\n ],\n });\n}\n","import { ChainKey } from '../../constants';\nimport { AssetId, Chain, MoonChain } from '../../interfaces';\nimport {\n PolkadotXcmExtrinsic,\n PolkadotXcmExtrinsicSuccessEvent,\n} from './polkadotXcm.constants';\nimport { getCreateExtrinsic } from './polkadotXcm.util';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function polkadotXcm<ChainKeys extends ChainKey>(chain: MoonChain) {\n return {\n limitedReserveTransferAssets: () =>\n limitedReserveTransferAssets<ChainKeys>(chain),\n limitedReserveWithdrawAssets: () =>\n limitedReserveWithdrawAssets<ChainKeys>(chain),\n };\n}\n\nfunction limitedReserveTransferAssets<ChainKeys extends ChainKey>(\n chain: MoonChain,\n) {\n return {\n successEvent: (event: PolkadotXcmExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => {\n const createExtrinsic = getCreateExtrinsic(\n PolkadotXcmExtrinsic.LimitedReserveTransferAssets,\n event,\n chain,\n origin,\n );\n\n return {\n V0: () =>\n createExtrinsic((amount) => ({\n V0: [\n {\n ConcreteFungible: {\n id: 'Null',\n amount,\n },\n },\n ],\n })),\n V1: () => ({\n here: () =>\n createExtrinsic((amount) => ({\n V1: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ],\n })),\n X1: () =>\n createExtrinsic((amount) => ({\n V1: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X1: {\n PalletInstance: 5,\n },\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ],\n })),\n X2: (palletInstance: number, assetId: AssetId) =>\n createExtrinsic((amount) => ({\n V1: [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: {\n X2: [\n {\n PalletInstance: palletInstance,\n },\n {\n GeneralIndex: assetId,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ],\n })),\n }),\n };\n },\n }),\n };\n}\n\nfunction limitedReserveWithdrawAssets<ChainKeys extends ChainKey>(\n chain: MoonChain,\n) {\n return {\n successEvent: (event: PolkadotXcmExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => {\n const createExtrinsic = getCreateExtrinsic(\n PolkadotXcmExtrinsic.LimitedReserveWithdrawAssets,\n event,\n chain,\n origin,\n );\n\n return {\n V1: () => ({\n X2: (palletInstance: number) =>\n createExtrinsic((amount) => ({\n V1: [\n {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n PalletInstance: palletInstance,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ],\n })),\n }),\n };\n },\n }),\n };\n}\n","import { ChainKey } from '../../constants';\nimport { Chain, MoonChain } from '../../interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n getCreateExtrinsic,\n PolkadotXcmExtrinsic,\n PolkadotXcmExtrinsicSuccessEvent,\n} from '../polkadotXcm';\nimport { XcmPallet } from './xcmPallet.interfaces';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function xcmPallet<ChainKeys extends ChainKey>(chain: MoonChain) {\n return {\n limitedReserveTransferAssets: () =>\n limitedReserveTransferAssets<ChainKeys>(chain),\n };\n}\n\nfunction limitedReserveTransferAssets<ChainKeys extends ChainKey>(\n chain: MoonChain,\n) {\n return {\n successEvent: (event: PolkadotXcmExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>): XcmPallet => {\n const createExtrinsic = getCreateExtrinsic(\n PolkadotXcmExtrinsic.LimitedReserveTransferAssets,\n event,\n chain,\n origin,\n 0,\n );\n\n return {\n ...createExtrinsic((amount) => ({\n V0: [\n {\n ConcreteFungible: {\n id: 'Null',\n amount,\n },\n },\n ],\n })),\n pallet: ExtrinsicPallet.XcmPallet,\n };\n },\n }),\n };\n}\n","export enum XTokensExtrinsic {\n Transfer = 'transfer',\n TransferMultiAsset = 'transferMultiasset',\n TransferMultiCurrencies = 'transferMulticurrencies',\n}\n\nexport enum XTokensExtrinsicSuccessEvent {\n Transferred = 'Transferred',\n TransferredMultiAssets = 'TransferredMultiAssets',\n TransferredMultiCurrencies = 'TransferredMultiCurrencies',\n}\n\nexport enum XTokensExtrinsicCurrencyTypes {\n ForeignAsset = 'ForeignAsset',\n FungibleToken = 'FungibleToken',\n MantaCurrency = 'MantaCurrency',\n MiningResource = 'MiningResource',\n Native = 'Native',\n NativeAssetId = 'NativeAssetId',\n NativeToken = 'NativeToken',\n OtherReserve = 'OtherReserve',\n Token = 'Token',\n Token2 = 'Token2',\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { XTokensWeightLimit } from './xTokens.interfaces';\n\n/**\n * Workaround for weight parameter type change in xTokens pallet\n * https://github.com/open-web3-stack/open-runtime-module-library/pull/841\n */\nexport function getWeightXTokens(\n weight: number,\n extrinsicCall?: SubmittableExtrinsicFunction<'promise'>,\n): XTokensWeightLimit {\n return extrinsicCall?.meta.args.at(-1)?.type.eq('XcmV2WeightLimit')\n ? {\n Limited: weight,\n }\n : weight;\n}\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { Asset, Chain, MoonChain } from '../../interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n XTokensExtrinsic,\n XTokensExtrinsicSuccessEvent,\n} from './xTokens.constants';\nimport {\n XTokensTransferExtrinsic,\n XTokensTransferExtrinsicParamsAsset,\n XTokensTransferMultiAssetExtrinsic,\n XTokensTransferMultiCurrenciesExtrinsic,\n} from './xTokens.interfaces';\nimport { getWeightXTokens } from './xTokens.util';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function xTokens<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>(chain: MoonChain) {\n return {\n transfer: () => transfer<Symbols, ChainKeys>(chain),\n transferMultiAsset: () => transferMultiAsset<Symbols, ChainKeys>(chain),\n transferMultiCurrencies: () =>\n transferMultiCurrencies<Symbols, ChainKeys>(chain),\n };\n}\n\nfunction transfer<Symbols extends AssetSymbol, ChainKeys extends ChainKey>(\n chain: MoonChain,\n) {\n return {\n successEvent: (event: XTokensExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => ({\n asset: (\n token: XTokensTransferExtrinsicParamsAsset<Symbols>,\n ): XTokensTransferExtrinsic<Symbols> => ({\n pallet: ExtrinsicPallet.XTokens,\n extrinsic: XTokensExtrinsic.Transfer,\n successEvent: event,\n getParams: ({ account, amount, extrinsicCall }) => [\n token,\n amount,\n {\n V1: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n },\n },\n getWeightXTokens(origin.weight, extrinsicCall),\n ],\n }),\n }),\n }),\n };\n}\n\nfunction transferMultiAsset<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>(chain: MoonChain) {\n return {\n successEvent: (event: XTokensExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => ({\n asset: (\n asset: Asset<Symbols>,\n ): XTokensTransferMultiAssetExtrinsic<Symbols> => ({\n pallet: ExtrinsicPallet.XTokens,\n extrinsic: XTokensExtrinsic.TransferMultiAsset,\n successEvent: event,\n getParams: ({ account, amount, extrinsicCall }) => [\n {\n V1: {\n id: {\n Concrete: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: origin.parachainId,\n },\n {\n GeneralKey: asset.originSymbol,\n },\n ],\n },\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n },\n {\n V1: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n },\n },\n getWeightXTokens(origin.weight, extrinsicCall),\n ],\n }),\n }),\n }),\n };\n}\n\nfunction transferMultiCurrencies<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>(chain: MoonChain) {\n return {\n successEvent: (event: XTokensExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => ({\n assets: (\n asset: XTokensTransferExtrinsicParamsAsset<Symbols>,\n feeAsset: XTokensTransferExtrinsicParamsAsset<Symbols>,\n ): XTokensTransferMultiCurrenciesExtrinsic<Symbols> => ({\n pallet: ExtrinsicPallet.XTokens,\n extrinsic: XTokensExtrinsic.TransferMultiCurrencies,\n successEvent: event,\n getParams: ({ account, amount, extrinsicCall, fee = 0n }) => [\n [\n [asset, amount],\n [feeAsset, fee],\n ],\n 1,\n {\n V1: {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n },\n },\n getWeightXTokens(origin.weight, extrinsicCall),\n ],\n }),\n }),\n }),\n };\n}\n","export enum XTransferExtrinsic {\n Transfer = 'transfer',\n}\n\nexport enum XTransferExtrinsicSuccessEvent {\n Deposited = 'Deposited',\n Withdrawn = 'Withdrawn',\n}\n","import { ChainKey } from '../../constants';\nimport { Chain, MoonChain } from '../../interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n XTransferExtrinsic,\n XTransferExtrinsicSuccessEvent,\n} from './xTransfer.constants';\nimport {\n XTransferConcreteParam,\n XTransferPallet,\n} from './xTransfer.interfaces';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function xTransfer<ChainKeys extends ChainKey>(chain: MoonChain) {\n return {\n transfer: () => transfer<ChainKeys>(chain),\n };\n}\n\nfunction transfer<ChainKeys extends ChainKey>(chain: MoonChain) {\n return {\n successEvent: (event: XTransferExtrinsicSuccessEvent) => ({\n origin: (origin: Chain<ChainKeys>) => {\n const createExtrinsic = getCreateExtrinsic(\n XTransferExtrinsic.Transfer,\n event,\n chain,\n origin,\n );\n\n return {\n here: () =>\n createExtrinsic(() => ({\n parents: 0,\n interior: 'Here',\n })),\n X2: (palletInstance: number) =>\n createExtrinsic(() => ({\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n PalletInstance: palletInstance,\n },\n ],\n },\n })),\n };\n },\n }),\n };\n}\n\nfunction getCreateExtrinsic<ChainKeys extends ChainKey>(\n extrinsic: XTransferExtrinsic,\n event: XTransferExtrinsicSuccessEvent,\n chain: MoonChain,\n origin: Chain<ChainKeys>,\n) {\n return (getConcrete: () => XTransferConcreteParam): XTransferPallet => ({\n pallet: ExtrinsicPallet.XTransfer,\n extrinsic,\n successEvent: event,\n getParams: ({ account, amount }) => [\n {\n id: {\n Concrete: getConcrete(),\n },\n fun: {\n Fungible: amount,\n },\n },\n {\n parents: 1,\n interior: {\n X2: [\n {\n Parachain: chain.parachainId,\n },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n },\n origin.weight,\n ],\n });\n}\n","import { AssetSymbol, ChainKey } from '../constants';\nimport { MoonChain } from '../interfaces';\nimport { polkadotXcm } from './polkadotXcm';\nimport { xcmPallet } from './xcmPallet';\nimport { xTokens } from './xTokens';\nimport { xTransfer } from './xTransfer';\n\nexport function createExtrinsicBuilder<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>(chain: MoonChain) {\n return {\n polkadotXcm: () => polkadotXcm<ChainKeys>(chain),\n xcmPallet: () => xcmPallet<ChainKeys>(chain),\n xTokens: () => xTokens<Symbols, ChainKeys>(chain),\n xTransfer: () => xTransfer<ChainKeys>(chain),\n };\n}\n","import { Parents } from '../extrinsic';\nimport {\n AccountMultilocationV1,\n DestinationMultilocationV1,\n GetterAccountMultilocationV1,\n PrecompileDestinationMultilocationV1,\n} from './multilocation.interfaces';\n\nexport function createMultilocationBuilder() {\n return {\n v1: () => ({\n destination: (\n parachainId: number,\n parents: Parents = 1,\n ): DestinationMultilocationV1 => ({\n V1: {\n parents,\n interior: {\n X1: {\n Parachain: parachainId,\n },\n },\n },\n toPrecompileMultilocation: (): PrecompileDestinationMultilocationV1 => [\n parents,\n [`0x0000000${parachainId.toString(16)}`],\n ],\n }),\n account: (\n parachainId: number,\n parents: Parents = 1,\n ): GetterAccountMultilocationV1 => ({\n get: (account: string): AccountMultilocationV1 => ({\n parents,\n interior: {\n X2: [\n { Parachain: parachainId },\n {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n ],\n },\n }),\n }),\n }),\n };\n}\n","import { getPalletInstance } from '../config/config.utils';\nimport { ChainKey } from '../constants';\nimport { Chain } from '../interfaces';\nimport {\n PrecompileXcmTransactThroughSignedMultilocationParams,\n XcmTransactThroughSigned,\n XcmTransactThroughSignedMultilocation,\n XcmTransactThroughSignedParams,\n} from './transact.interfaces';\n\nexport function createTransactBuilder<ChainKeys extends ChainKey = ChainKey>() {\n return {\n xcmTransactor: () => ({\n transactThroughSigned: (\n chain: Chain<ChainKeys>,\n ): XcmTransactThroughSigned => ({\n getParams: ({\n callHash,\n overallFee,\n overallWeight,\n txWeight,\n }): XcmTransactThroughSignedParams => {\n const palletInstance = getPalletInstance(chain);\n\n return [\n // TODO: use multiLocation module\n {\n V1: {\n parents: 1,\n interior: {\n X1: {\n Parachain: chain.parachainId,\n },\n },\n },\n },\n {\n currency: {\n AsMultiLocation: {\n V1: {\n parents: 1,\n interior: {\n X2: [\n { Parachain: chain.parachainId },\n { PalletInstance: palletInstance },\n ],\n },\n },\n },\n },\n feeAmount: overallFee,\n },\n callHash,\n {\n transactRequiredWeightAtMost: txWeight,\n overallWeight,\n },\n ];\n },\n }),\n transactThroughSignedMultilocation: (\n chain: Chain<ChainKeys>,\n ): XcmTransactThroughSignedMultilocation => ({\n getParams: ({\n callHash,\n overallFee,\n overallWeight,\n txWeight,\n }): PrecompileXcmTransactThroughSignedMultilocationParams => {\n const palletInstance = getPalletInstance(chain);\n const parachainId = `0x0000000${chain.parachainId.toString(16)}`;\n\n return {\n destination: [1, [parachainId]],\n asset: [1, [parachainId, `0x040${palletInstance}`]],\n txWeight,\n callHash,\n overallFee,\n overallWeight,\n };\n },\n }),\n }),\n };\n}\n","import { u8aToHex } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { AssetSymbol } from '../constants';\nimport {\n WithdrawXTokensConfig,\n WithdrawXTokensOptions,\n} from './withdraw.interfaces';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function createWithdrawBuilder<\n Symbols extends AssetSymbol = AssetSymbol,\n>() {\n return {\n xTokens: (options: WithdrawXTokensOptions<Symbols>) =>\n xTokens<Symbols>(options),\n };\n}\n\nfunction xTokens<Symbols extends AssetSymbol = AssetSymbol>({\n balance,\n destination,\n feePerWeight,\n sourceMinBalance,\n xcmFeeAsset,\n weight = 4_000_000_000,\n}: WithdrawXTokensOptions<Symbols>): WithdrawXTokensConfig<Symbols> {\n return {\n balance,\n destination,\n feePerWeight,\n sourceMinBalance,\n xcmFeeAsset,\n weight,\n getParams: (account: string) => {\n const { parachainId } = destination;\n const acc = `0x01${u8aToHex(decodeAddress(account), -1, false)}00`;\n\n return [\n 1,\n parachainId ? [`0x0000000${parachainId.toString(16)}`, acc] : [acc],\n ];\n },\n };\n}\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { AssetsMap } from '../config.interfaces';\nimport { MoonbaseAssets } from './moonbase.interfaces';\n\nexport const MOONBASE_ASSETS = <const>[\n AssetSymbol.AUQ,\n AssetSymbol.BIT,\n AssetSymbol.DEV,\n AssetSymbol.LIT,\n AssetSymbol.NEER,\n AssetSymbol.TT1,\n AssetSymbol.UNIT,\n];\n\nexport const MOONBASE_ASSETS_MAP: AssetsMap<MoonbaseAssets> = {\n [AssetSymbol.AUQ]: {\n id: '69536036667157951501899290870203586130',\n erc20Id: '0xffffffff3450274d4ab181de8830c189f4509652',\n originSymbol: AssetSymbol.AUQ,\n },\n [AssetSymbol.BIT]: {\n id: '306639095083798603270835754515874921389',\n erc20Id: '0xffffffffe6b08aa1fbbaa02f004d3e5aa27f3bad',\n originSymbol: AssetSymbol.BIT,\n },\n [AssetSymbol.DEV]: {\n id: '',\n erc20Id: '0x0000000000000000000000000000000000000802',\n originSymbol: AssetSymbol.DEV,\n isNative: true,\n },\n [AssetSymbol.LIT]: {\n id: '65216491554813189869575508812319036608',\n erc20Id: '0xffffffff31103d490325bb0a8e40ef62e2f614c0',\n originSymbol: AssetSymbol.LIT,\n },\n [AssetSymbol.NEER]: {\n id: '52280927600883288560727505734200597597',\n erc20Id: '0xffffffff2754f0bdf7eb215503c69204ccd61c5d',\n originSymbol: AssetSymbol.NEER,\n },\n [AssetSymbol.UNIT]: {\n id: '42259045809535163221576417993425387648',\n erc20Id: '0xffffffff1fcacbd218edc0eba20fc2308c778080',\n originSymbol: AssetSymbol.UNIT,\n },\n [AssetSymbol.TT1]: {\n id: '156305701417244550631956600137082963628',\n erc20Id: '0xffffffff75976211c786fe4d73d2477e222786ac',\n originSymbol: AssetSymbol.TT1,\n foreignIds: {\n [ChainKey.StatemineAlphanet]: 2,\n },\n },\n};\n","import { ChainKey } from '../../constants';\nimport { ChainsMap } from '../config.interfaces';\nimport { MoonbaseChains } from './moonbase.interfaces';\n\nexport const MOONBASE_CHAINS = <const>[\n ChainKey.AlphanetRelay,\n ChainKey.LitentryAlphanet,\n ChainKey.BitCountryPioneer,\n ChainKey.MoonbaseBeta,\n ChainKey.StatemineAlphanet,\n ChainKey.UniqueAlpha,\n];\n\nexport const MOONBASE_CHAINS_MAP: ChainsMap<MoonbaseChains> = {\n [ChainKey.AlphanetRelay]: {\n key: ChainKey.AlphanetRelay,\n name: 'Alphanet Relay',\n ws: 'wss://frag-moonbase-relay-rpc-ws.g.moonbase.moonbeam.network',\n weight: 1_000_000_000,\n parachainId: 0,\n ss58Format: 42,\n genesisHash:\n '0xe1ea3ab1d46ba8f4898b6b4b9c54ffc05282d299f89e84bd0fd08067758c9443',\n },\n [ChainKey.BitCountryPioneer]: {\n key: ChainKey.BitCountryPioneer,\n name: 'Bit.Country Pioneer',\n ws: 'wss://moonbase-rpc.bit.country',\n weight: 1_000_000_000,\n parachainId: 2096,\n moonAssetId: 0,\n ss58Format: 268,\n genesisHash:\n '0xb27da7332d3a229f0d5f2a83f711b3f74a70f22b68021e92c37817057de58e74',\n },\n [ChainKey.LitentryAlphanet]: {\n key: ChainKey.LitentryAlphanet,\n name: 'Litentry Alphanet',\n ws: 'wss://moonbase-parachain-sg-0.litentry.io',\n weight: 1_000_000_000,\n parachainId: 2106,\n ss58Format: 131,\n genesisHash:\n '0x4decfd421755d9008781d00ce40ea4cf47ec24a3717a34ca995126fc4a78c4f8',\n },\n [ChainKey.MoonbaseBeta]: {\n key: ChainKey.MoonbaseBeta,\n name: 'Moonbase Beta',\n ws: 'wss://frag-moonbase-beta-rpc-ws.g.moonbase.moonbeam.network',\n weight: 1_000_000_000,\n palletInstance: 3,\n parachainId: 888,\n unitsPerSecond: 50_000_000_000_000_000n,\n ss58Format: 0,\n genesisHash:\n '0xeebb5d05763801e54d6a7a60a4b7998ac125c4d050dcec418dd07ea959a54464',\n weights: {\n descendOriginWeight: 9_620_000n,\n withdrawAssetWeight: 200_000_000n,\n buyExecutionWeight: 130_464_000n + 100_000_000n,\n transactWeight: 31_693_000n + 25_000_000n,\n },\n },\n [ChainKey.StatemineAlphanet]: {\n key: ChainKey.StatemineAlphanet,\n name: 'Statemine Alphanet',\n ws: 'wss://frag-moonbase-sm-rpc-ws.g.moonbase.moonbeam.network/',\n weight: 1_000_000_000,\n parachainId: 1001,\n palletInstance: 50,\n ss58Format: 42,\n genesisHash:\n '0x2c63baa36880c9cf820d5ccfc4e49841bfd714e93ede2bebc4abc4531dd4e8a0',\n },\n [ChainKey.UniqueAlpha]: {\n key: ChainKey.UniqueAlpha,\n name: 'Unique Alphanet',\n ws: 'wss://unique-alpha.unique.network',\n weight: 1_000_000_000,\n parachainId: 2095,\n ss58Format: 255,\n genesisHash:\n '0xbdf55f33d9f0b390f56413ec803c693af348edae64a659760248974b48b9a99e',\n },\n};\n","import { createBalanceBuilder } from '../../balance';\nimport { MoonChainKey, MOON_CHAINS } from '../../constants';\nimport { createExtrinsicBuilder } from '../../extrinsic';\nimport { createMultilocationBuilder } from '../../multilocation';\nimport { createTransactBuilder } from '../../transact';\nimport { createWithdrawBuilder } from '../../withdraw';\nimport { MOONBASE_ASSETS_MAP as assets } from './moonbase.assets';\nimport { MOONBASE_CHAINS_MAP as chains } from './moonbase.chains';\nimport { MoonbaseAssets, MoonbaseChains } from './moonbase.interfaces';\n\nexport { assets, chains };\n\nexport const moonbase = MOON_CHAINS[MoonChainKey.MoonbaseAlpha];\nexport const balance = createBalanceBuilder<MoonbaseAssets>();\nexport const extrinsic = createExtrinsicBuilder<MoonbaseAssets, MoonbaseChains>(\n moonbase,\n);\nexport const withdraw = createWithdrawBuilder<MoonbaseAssets>();\nexport const transact = createTransactBuilder<MoonbaseChains>();\nexport const multilocation = createMultilocationBuilder();\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.AUQ];\nconst origin = chains[ChainKey.UniqueAlpha];\n\nexport const AUQ: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.NativeAssetId]: 'Here' }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.NEER];\nconst origin = chains[ChainKey.BitCountryPioneer];\n\nexport const NEER: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.NativeToken]: 0 }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport { WithdrawConfig } from '../../../withdraw';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\nimport { NEER } from './neer';\n\nconst asset = assets[AssetSymbol.BIT];\nconst feeAsset = assets[AssetSymbol.NEER];\nconst origin = chains[ChainKey.BitCountryPioneer];\nconst neerWithdrawConfig = NEER.withdraw[\n origin.key\n] as WithdrawConfig<AssetSymbol.NEER>;\n\nexport const BIT: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().miningResource(0),\n sourceFeeBalance: balance.system(),\n xcmFeeAsset: {\n asset: feeAsset,\n balance: balance.system(),\n },\n extrinsic: extrinsic\n .xTokens()\n .transferMultiCurrencies()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .assets(\n {\n [XTokensExtrinsicCurrencyTypes.MiningResource]: 0,\n },\n {\n [XTokensExtrinsicCurrencyTypes.NativeToken]: 0,\n },\n ),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().miningResource(0),\n destination: origin,\n feePerWeight: neerWithdrawConfig.feePerWeight,\n weight: neerWithdrawConfig.weight,\n xcmFeeAsset: {\n asset: feeAsset,\n balance: {\n destination: balance.system(),\n origin: balance.assets(feeAsset.id),\n },\n },\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport { getMoonAssetId } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n moonbase,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.DEV];\nconst pioneer = chains[ChainKey.BitCountryPioneer];\n\nconst pioneerDevId = getMoonAssetId(pioneer);\n\nexport const DEV: MoonbaseXcmConfig = {\n asset,\n origin: moonbase,\n deposit: {\n [pioneer.key]: {\n source: pioneer,\n balance: balance.tokens().fungibleToken(pioneerDevId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(pioneer)\n .asset({ [XTokensExtrinsicCurrencyTypes.FungibleToken]: pioneerDevId }),\n },\n },\n withdraw: {\n [pioneer.key]: withdraw.xTokens({\n balance: balance.tokens().fungibleToken(pioneerDevId),\n destination: pioneer,\n feePerWeight: 50_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.LIT];\nconst origin = chains[ChainKey.LitentryAlphanet];\n\nexport const LIT: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset('SelfReserve'),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport { getAssetForeignId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.TT1];\nconst origin = chains[ChainKey.StatemineAlphanet];\nconst originAssetId = getAssetForeignId(asset, origin.key);\n\nexport const TT1: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.assets(originAssetId),\n sourceFeeBalance: balance.system(),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X2(getPalletInstance(origin), originAssetId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.assets(originAssetId),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n destination: origin,\n feePerWeight: 1_265_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.UNIT];\nconst origin = chains[ChainKey.AlphanetRelay];\n\nexport const UNIT: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xcmPallet()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 12.65,\n }),\n },\n};\n","import { AssetSymbol } from '../../constants';\nimport { MoonbaseXcmConfigs } from './moonbase.interfaces';\n\nimport { AUQ } from './assets/auq';\nimport { BIT } from './assets/bit';\nimport { DEV } from './assets/dev';\nimport { LIT } from './assets/lit';\nimport { NEER } from './assets/neer';\nimport { TT1 } from './assets/tt1';\nimport { UNIT } from './assets/unit';\n\nexport const MOONBASE_CONFIGS: MoonbaseXcmConfigs = {\n [AssetSymbol.AUQ]: AUQ,\n [AssetSymbol.BIT]: BIT,\n [AssetSymbol.DEV]: DEV,\n [AssetSymbol.LIT]: LIT,\n [AssetSymbol.NEER]: NEER,\n [AssetSymbol.TT1]: TT1,\n [AssetSymbol.UNIT]: UNIT,\n};\n","import { ChainKey } from '../../../constants';\nimport { getUnitsPerSecond } from '../../config.utils';\nimport {\n balance,\n chains,\n moonbase,\n multilocation,\n transact,\n} from '../moonbase.common';\nimport { MoonbaseTransactConfig } from '../moonbase.interfaces';\n\nconst beta = chains[ChainKey.MoonbaseBeta];\nconst unitsPerSecond = getUnitsPerSecond(beta);\n\nexport const BETA: MoonbaseTransactConfig = {\n chain: beta,\n unitsPerSecond,\n balance: balance.system(),\n from: {\n multilocation: {\n account: multilocation.v1().account(beta.parachainId),\n },\n transact: transact.xcmTransactor().transactThroughSigned(beta),\n },\n to: {\n multilocation: {\n account: multilocation.v1().account(moonbase.parachainId),\n },\n transact: transact.xcmTransactor().transactThroughSignedMultilocation(beta),\n },\n};\n","import { ChainKey } from '../../constants';\nimport { MoonbaseTransactConfigs } from './moonbase.interfaces';\nimport { BETA } from './transact/beta';\n\nexport const MOONBASE_TRANSACT_CONFIGS: MoonbaseTransactConfigs = {\n [ChainKey.MoonbaseBeta]: BETA,\n};\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { AssetsMap } from '../config.interfaces';\nimport { MoonbeamAssets } from './moonbeam.interfaces';\n\nexport const MOONBEAM_ASSETS = <const>[\n AssetSymbol.ACA,\n AssetSymbol.ASTR,\n AssetSymbol.AUSD,\n AssetSymbol.BNC,\n AssetSymbol.DOT,\n AssetSymbol.GLMR,\n AssetSymbol.IBTC,\n AssetSymbol.INTR,\n AssetSymbol.PARA,\n AssetSymbol.PHA,\n AssetSymbol.RING,\n AssetSymbol.USDT,\n];\n\nexport const MOONBEAM_ASSETS_MAP: AssetsMap<MoonbeamAssets> = {\n [AssetSymbol.ACA]: {\n id: '224821240862170613278369189818311486111',\n erc20Id: '0xffffffffa922fef94566104a6e5a35a4fcddaa9f',\n originSymbol: AssetSymbol.ACA,\n },\n [AssetSymbol.ASTR]: {\n id: '224077081838586484055667086558292981199',\n erc20Id: '0xffffffffa893ad19e540e172c10d78d4d479b5cf',\n originSymbol: AssetSymbol.ASTR,\n },\n [AssetSymbol.AUSD]: {\n id: '110021739665376159354538090254163045594',\n erc20Id: '0xffffffff52c56a9257bb97f4b2b6f7b2d624ecda',\n originSymbol: AssetSymbol.AUSD,\n },\n [AssetSymbol.BNC]: {\n id: '165823357460190568952172802245839421906',\n erc20Id: '0xffffffff7cc06abdf7201b350a1265c62c8601d2',\n originSymbol: AssetSymbol.BNC,\n },\n [AssetSymbol.DOT]: {\n id: '42259045809535163221576417993425387648',\n erc20Id: '0xffffffff1fcacbd218edc0eba20fc2308c778080',\n originSymbol: AssetSymbol.DOT,\n },\n [AssetSymbol.GLMR]: {\n id: '',\n erc20Id: '0x0000000000000000000000000000000000000802',\n originSymbol: AssetSymbol.GLMR,\n isNative: true,\n },\n [AssetSymbol.IBTC]: {\n id: '120637696315203257380661607956669368914',\n erc20Id: '0xffffffff5ac1f9a51a93f5c527385edf7fe98a52',\n originSymbol: AssetSymbol.IBTC,\n },\n [AssetSymbol.INTR]: {\n id: '101170542313601871197860408087030232491',\n erc20Id: '0xffffffff4c1cbcd97597339702436d4f18a375ab',\n originSymbol: AssetSymbol.INTR,\n },\n [AssetSymbol.PARA]: {\n id: '32615670524745285411807346420584982855',\n erc20Id: '0xffffffff18898cb5fe1e88e668152b4f4052a947',\n originSymbol: AssetSymbol.PARA,\n },\n [AssetSymbol.PHA]: {\n id: '132685552157663328694213725410064821485',\n erc20Id: '0xffffffff63d24ecc8eb8a7b5d0803e900f7b6ced',\n originSymbol: AssetSymbol.PHA,\n },\n [AssetSymbol.RING]: {\n id: '125699734534028342599692732320197985871',\n erc20Id: '0xffffffff5e90e365edca87fb4c8306df1e91464f',\n originSymbol: AssetSymbol.RING,\n },\n [AssetSymbol.USDT]: {\n id: '311091173110107856861649819128533077277',\n erc20Id: '0xffffffffea09fb06d082fd1275cd48b191cbcd1d',\n originSymbol: AssetSymbol.USDT,\n foreignIds: {\n [ChainKey.Statemint]: 1984,\n },\n },\n};\n","import { ChainKey } from '../../constants';\nimport { ChainsMap } from '../config.interfaces';\nimport { MoonbeamChains } from './moonbeam.interfaces';\n\nexport const MOONBEAM_CHAINS = <const>[\n ChainKey.Acala,\n ChainKey.Astar,\n ChainKey.BifrostPolkadot,\n ChainKey.Darwinia,\n ChainKey.Interlay,\n ChainKey.Parallel,\n ChainKey.Phala,\n ChainKey.Polkadot,\n ChainKey.Statemint,\n];\n\nexport const MOONBEAM_CHAINS_MAP: ChainsMap<MoonbeamChains> = {\n [ChainKey.Acala]: {\n key: ChainKey.Acala,\n name: 'Acala',\n ws: 'wss://acala-rpc-0.aca-api.network',\n weight: 1_000_000_000,\n parachainId: 2000,\n moonAssetId: 0,\n ss58Format: 10,\n genesisHash:\n '0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c',\n },\n [ChainKey.Astar]: {\n key: ChainKey.Astar,\n name: 'Astar',\n ws: 'wss://rpc.astar.network',\n weight: 1_000_000_000,\n parachainId: 2006,\n moonAssetId: 18446744073709551619n,\n palletInstance: 10,\n ss58Format: 5,\n genesisHash:\n '0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6',\n },\n [ChainKey.BifrostPolkadot]: {\n key: ChainKey.BifrostPolkadot,\n name: 'Bifrost',\n ws: 'wss://hk.p.bifrost-rpc.liebi.com/ws',\n weight: 1_000_000_000,\n parachainId: 2030,\n moonAssetId: 1,\n ss58Format: 6,\n genesisHash:\n '0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b',\n },\n [ChainKey.Darwinia]: {\n key: ChainKey.Darwinia,\n name: 'Darwinia',\n ws: 'wss://parachain-rpc.darwinia.network',\n weight: 1_000_000_000,\n parachainId: 2046,\n ss58Format: 18,\n genesisHash:\n '0xe71578b37a7c799b0ab4ee87ffa6f059a6b98f71f06fb8c84a8d88013a548ad6',\n },\n [ChainKey.Interlay]: {\n key: ChainKey.Interlay,\n name: 'Interlay',\n ws: 'wss://interlay.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2032,\n ss58Format: 2032,\n genesisHash:\n '0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72',\n },\n [ChainKey.Parallel]: {\n key: ChainKey.Parallel,\n name: 'Parallel',\n ws: 'wss://rpc.parallel.fi',\n weight: 1_000_000_000,\n parachainId: 2012,\n moonAssetId: 114,\n ss58Format: 172,\n genesisHash:\n '0xe61a41c53f5dcd0beb09df93b34402aada44cb05117b71059cce40a2723a4e97',\n },\n [ChainKey.Phala]: {\n key: ChainKey.Phala,\n name: 'Phala',\n ws: 'wss://api.phala.network/ws',\n weight: 1_000_000_000,\n parachainId: 2035,\n moonAssetId: 1,\n ss58Format: 30,\n genesisHash:\n '0x1bb969d85965e4bb5a651abbedf21a54b6b31a21f66b5401cc3f1e286268d736',\n },\n [ChainKey.Polkadot]: {\n key: ChainKey.Polkadot,\n name: 'Polkadot',\n ws: 'wss://rpc.polkadot.io',\n weight: 1_000_000_000,\n parachainId: 0,\n ss58Format: 42,\n genesisHash:\n '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n },\n [ChainKey.Statemint]: {\n key: ChainKey.Statemint,\n name: 'Statemint',\n ws: 'wss://statemint-rpc.polkadot.io',\n weight: 1_000_000_000,\n parachainId: 1000,\n palletInstance: 50,\n ss58Format: 42,\n genesisHash:\n '0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f',\n },\n};\n","import { createBalanceBuilder } from '../../balance';\nimport { MoonChainKey, MOON_CHAINS } from '../../constants';\nimport { createExtrinsicBuilder } from '../../extrinsic';\nimport { createWithdrawBuilder } from '../../withdraw';\nimport { MOONBEAM_ASSETS_MAP as assets } from './moonbeam.assets';\nimport { MOONBEAM_CHAINS_MAP as chains } from './moonbeam.chains';\nimport { MoonbeamAssets, MoonbeamChains } from './moonbeam.interfaces';\n\nexport { assets, chains };\n\nexport const moonbeam = MOON_CHAINS[MoonChainKey.Moonbeam];\nexport const balance = createBalanceBuilder<MoonbeamAssets>();\nexport const extrinsic = createExtrinsicBuilder<MoonbeamAssets, MoonbeamChains>(\n moonbeam,\n);\nexport const withdraw = createWithdrawBuilder<MoonbeamAssets>();\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.ACA];\nconst origin = chains[ChainKey.Acala];\n\nexport const ACA: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.ASTR];\nconst origin = chains[ChainKey.Astar];\n\nexport const ASTR: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.AUSD];\nconst origin = chains[ChainKey.Acala];\n\nexport const AUSD: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 64,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.BNC];\nconst origin = chains[ChainKey.BifrostPolkadot];\n\nexport const BNC: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Native]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 64,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.DOT];\nconst origin = chains[ChainKey.Polkadot];\n\nexport const DOT: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xcmPallet()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.13,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n PolkadotXcmExtrinsicSuccessEvent,\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n XTransferExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport { getMoonAssetId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n moonbeam,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.GLMR];\nconst acala = chains[ChainKey.Acala];\nconst astar = chains[ChainKey.Astar];\nconst bifrost = chains[ChainKey.BifrostPolkadot];\nconst parallel = chains[ChainKey.Parallel];\nconst phala = chains[ChainKey.Phala];\n\nconst acalaGlmrId = getMoonAssetId(acala);\nconst astarGlmrId = getMoonAssetId(astar);\nconst bifrostGlmrId = getMoonAssetId(bifrost);\nconst parallelGlmrId = getMoonAssetId(parallel);\nconst phalaGlmrId = getMoonAssetId(phala);\n\nexport const GLMR: MoonbeamXcmConfig = {\n asset,\n origin: moonbeam,\n deposit: {\n [acala.key]: {\n source: acala,\n balance: balance.tokens().foreignAsset(acalaGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(acala)\n .asset({\n [XTokensExtrinsicCurrencyTypes.ForeignAsset]: acalaGlmrId,\n }),\n },\n [astar.key]: {\n source: astar,\n balance: balance.assets(astarGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveWithdrawAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(astar)\n .V1()\n .X2(getPalletInstance(astar)),\n },\n [bifrost.key]: {\n source: bifrost,\n balance: balance.tokens().token2(bifrostGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(bifrost)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token2]: bifrostGlmrId,\n }),\n },\n [parallel.key]: {\n source: parallel,\n balance: balance.assets(parallelGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(parallel)\n .asset(parallelGlmrId),\n },\n [phala.key]: {\n source: phala,\n balance: balance.assets(phalaGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTransfer()\n .transfer()\n .successEvent(XTransferExtrinsicSuccessEvent.Withdrawn)\n .origin(phala)\n .X2(10),\n },\n },\n withdraw: {\n [acala.key]: withdraw.xTokens({\n balance: balance.tokens().foreignAsset(acalaGlmrId),\n destination: acala,\n feePerWeight: 8_000_000,\n sourceMinBalance: balance.minAssetRegistryPallet(acalaGlmrId),\n }),\n [astar.key]: withdraw.xTokens({\n balance: balance.assets(astarGlmrId),\n destination: astar,\n feePerWeight: 50_000,\n }),\n [bifrost.key]: withdraw.xTokens({\n balance: balance.tokens().token2(bifrostGlmrId),\n destination: bifrost,\n feePerWeight: 0.8,\n sourceMinBalance: balance.minCurrencyMetadata(bifrostGlmrId),\n }),\n [parallel.key]: withdraw.xTokens({\n balance: balance.assets(parallelGlmrId),\n destination: parallel,\n feePerWeight: 8,\n }),\n [phala.key]: withdraw.xTokens({\n balance: balance.assets(phalaGlmrId),\n destination: phala,\n feePerWeight: 50_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.IBTC];\nconst feeAsset = assets[AssetSymbol.INTR];\nconst origin = chains[ChainKey.Interlay];\n\nexport const IBTC: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n sourceFeeBalance: balance.tokens().token(feeAsset.originSymbol),\n xcmFeeAsset: {\n asset: feeAsset,\n balance: balance.tokens().token(feeAsset.originSymbol),\n },\n extrinsic: extrinsic\n .xTokens()\n .transferMultiCurrencies()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .assets(\n {\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n },\n {\n [XTokensExtrinsicCurrencyTypes.Token]: feeAsset.originSymbol,\n },\n ),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 0.00000619,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.INTR];\nconst origin = chains[ChainKey.Interlay];\n\nexport const INTR: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 1.87,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.PARA];\nconst origin = chains[ChainKey.Parallel];\n\nexport const PARA: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transferMultiAsset()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset(asset),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 16,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTransferExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.PHA];\nconst origin = chains[ChainKey.Phala];\n\nexport const PHA: MoonbeamXcmConfig = <const>{\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTransfer()\n .transfer()\n .successEvent(XTransferExtrinsicSuccessEvent.Deposited)\n .origin(origin)\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 80,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.RING];\nconst origin = chains[ChainKey.Darwinia];\n\nexport const RING: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X1(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 1_000_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport { getAssetForeignId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.USDT];\nconst origin = chains[ChainKey.Statemint];\nconst originAssetId = getAssetForeignId(asset, origin.key);\n\nexport const USDT: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.assets(originAssetId),\n sourceFeeBalance: balance.system(),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X2(getPalletInstance(origin), originAssetId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.assets(originAssetId),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n destination: origin,\n feePerWeight: 0.00000378,\n }),\n },\n};\n","import { AssetSymbol } from '../../constants';\nimport { MoonbeamXcmConfigs } from './moonbeam.interfaces';\n\nimport { ACA } from './assets/aca';\nimport { ASTR } from './assets/astr';\nimport { AUSD } from './assets/ausd';\nimport { BNC } from './assets/bnc';\nimport { DOT } from './assets/dot';\nimport { GLMR } from './assets/glmr';\nimport { IBTC } from './assets/ibtc';\nimport { INTR } from './assets/intr';\nimport { PARA } from './assets/para';\nimport { PHA } from './assets/pha';\nimport { RING } from './assets/ring';\nimport { USDT } from './assets/usdt';\n\nexport const MOONBEAM_CONFIGS: MoonbeamXcmConfigs = {\n [AssetSymbol.ACA]: ACA,\n [AssetSymbol.ASTR]: ASTR,\n [AssetSymbol.AUSD]: AUSD,\n [AssetSymbol.BNC]: BNC,\n [AssetSymbol.DOT]: DOT,\n [AssetSymbol.GLMR]: GLMR,\n [AssetSymbol.IBTC]: IBTC,\n [AssetSymbol.INTR]: INTR,\n [AssetSymbol.PARA]: PARA,\n [AssetSymbol.PHA]: PHA,\n [AssetSymbol.RING]: RING,\n [AssetSymbol.USDT]: USDT,\n};\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { AssetsMap } from '../config.interfaces';\nimport { MoonriverAssets } from './moonriver.interfaces';\n\nexport const MOONRIVER_ASSETS = <const>[\n AssetSymbol.AUSD,\n AssetSymbol.BNC,\n AssetSymbol.CRAB,\n AssetSymbol.CSM,\n AssetSymbol.HKO,\n AssetSymbol.KAR,\n AssetSymbol.KBTC,\n AssetSymbol.KINT,\n AssetSymbol.KMA,\n AssetSymbol.KSM,\n AssetSymbol.LIT,\n AssetSymbol.MOVR,\n AssetSymbol.PHA,\n AssetSymbol.RMRK,\n AssetSymbol.SDN,\n AssetSymbol.TEER,\n AssetSymbol.USDT,\n AssetSymbol.XRT,\n];\n\nexport const MOONRIVER_ASSETS_MAP: AssetsMap<MoonriverAssets> = {\n [AssetSymbol.AUSD]: {\n id: '214920334981412447805621250067209749032',\n erc20Id: '0xffffffffa1b026a00fbaa67c86d5d1d5bf8d8228',\n originSymbol: AssetSymbol.AUSD,\n },\n [AssetSymbol.BNC]: {\n id: '319623561105283008236062145480775032445',\n erc20Id: '0xfffffffff075423be54811ecb478e911f22dde7d',\n originSymbol: AssetSymbol.BNC,\n },\n [AssetSymbol.CRAB]: {\n id: '173481220575862801646329923366065693029',\n erc20Id: '0xffffffff8283448b3cb519ca4732f2dddc6a6165',\n originSymbol: AssetSymbol.CRAB,\n },\n [AssetSymbol.CSM]: {\n id: '108457044225666871745333730479173774551',\n erc20Id: '0xffffffff519811215e05efa24830eebe9c43acd7',\n originSymbol: AssetSymbol.CSM,\n },\n [AssetSymbol.HKO]: {\n id: '76100021443485661246318545281171740067',\n erc20Id: '0xffffffff394054bcda1902b6a6436840435655a3',\n originSymbol: AssetSymbol.HKO,\n },\n [AssetSymbol.KAR]: {\n id: '10810581592933651521121702237638664357',\n erc20Id: '0xffffffff08220ad2e6e157f26ed8bd22a336a0a5',\n originSymbol: AssetSymbol.KAR,\n },\n [AssetSymbol.KBTC]: {\n id: '328179947973504579459046439826496046832',\n erc20Id: '0xfffffffff6e528ad57184579beee00c5d5e646f0',\n originSymbol: AssetSymbol.KBTC,\n },\n [AssetSymbol.KINT]: {\n id: '175400718394635817552109270754364440562',\n erc20Id: '0xffffffff83f4f317d3cbf6ec6250aec3697b3ff2',\n originSymbol: AssetSymbol.KINT,\n },\n [AssetSymbol.KMA]: {\n id: '213357169630950964874127107356898319277',\n erc20Id: '0xffffffffa083189f870640b141ae1e882c2b5bad',\n originSymbol: AssetSymbol.KMA,\n },\n [AssetSymbol.KSM]: {\n id: '42259045809535163221576417993425387648',\n erc20Id: '0xffffffff1fcacbd218edc0eba20fc2308c778080',\n originSymbol: AssetSymbol.KSM,\n },\n [AssetSymbol.LIT]: {\n id: '65216491554813189869575508812319036608',\n erc20Id: '0xffffffff31103d490325bb0a8e40ef62e2f614c0',\n originSymbol: AssetSymbol.LIT,\n },\n [AssetSymbol.MOVR]: {\n id: '',\n erc20Id: '0x0000000000000000000000000000000000000802',\n originSymbol: AssetSymbol.MOVR,\n isNative: true,\n },\n [AssetSymbol.PHA]: {\n id: '189307976387032586987344677431204943363',\n erc20Id: '0xffffffff8e6b63d9e447b6d4c45bda8af9dc9603',\n originSymbol: AssetSymbol.PHA,\n },\n [AssetSymbol.RMRK]: {\n id: '182365888117048807484804376330534607370',\n erc20Id: '0xffffffff893264794d9d57e1e0e21e0042af5a0a',\n originSymbol: AssetSymbol.RMRK,\n foreignIds: {\n [ChainKey.Statemine]: 8,\n },\n },\n [AssetSymbol.SDN]: {\n id: '16797826370226091782818345603793389938',\n erc20Id: '0xffffffff0ca324c842330521525e7de111f38972',\n originSymbol: AssetSymbol.SDN,\n },\n [AssetSymbol.TEER]: {\n id: '105075627293246237499203909093923548958',\n erc20Id: '0xffffffff4f0cd46769550e5938f6bee2f5d4ef1e',\n originSymbol: AssetSymbol.TEER,\n },\n [AssetSymbol.USDT]: {\n id: '311091173110107856861649819128533077277',\n erc20Id: '0xffffffffea09fb06d082fd1275cd48b191cbcd1d',\n originSymbol: AssetSymbol.USDT,\n foreignIds: {\n [ChainKey.Statemine]: 1984,\n },\n },\n [AssetSymbol.XRT]: {\n id: '108036400430056508975016746969135344601',\n erc20Id: '0xffffffff51470dca3dbe535bd2880a9ccdbc6bd9',\n originSymbol: AssetSymbol.XRT,\n },\n};\n","import { ChainKey } from '../../constants';\nimport { ChainsMap } from '../config.interfaces';\nimport { MoonriverChains } from './moonriver.interfaces';\n\nexport const MOONRIVER_CHAINS = <const>[\n ChainKey.Bifrost,\n ChainKey.Calamari,\n ChainKey.CrustShadow,\n ChainKey.Crab,\n ChainKey.Integritee,\n ChainKey.Karura,\n ChainKey.Khala,\n ChainKey.Kintsugi,\n ChainKey.Kusama,\n ChainKey.Litmus,\n ChainKey.Parallel,\n ChainKey.Robonomics,\n ChainKey.Shiden,\n ChainKey.Statemine,\n];\n\nexport const MOONRIVER_CHAINS_MAP: ChainsMap<MoonriverChains> = {\n [ChainKey.Bifrost]: {\n key: ChainKey.Bifrost,\n name: 'Bifrost',\n ws: 'wss://bifrost-rpc.liebi.com/ws',\n weight: 1_000_000_000,\n parachainId: 2001,\n ss58Format: 6,\n genesisHash:\n '0x9f28c6a68e0fc9646eff64935684f6eeeece527e37bbe1f213d22caa1d9d6bed',\n },\n [ChainKey.Calamari]: {\n key: ChainKey.Calamari,\n name: 'Calamari',\n ws: 'wss://ws.calamari.systems',\n weight: 1_000_000_000,\n parachainId: 2084,\n moonAssetId: 11,\n ss58Format: 78,\n genesisHash:\n '0x4ac80c99289841dd946ef92765bf659a307d39189b3ce374a92b5f0415ee17a1',\n },\n [ChainKey.CrustShadow]: {\n key: ChainKey.CrustShadow,\n name: 'Crust Shadow',\n ws: 'wss://rpc2-shadow.crust.network',\n weight: 1_000_000_000,\n parachainId: 2012,\n moonAssetId: 232263652204149413431520870009560565298n,\n ss58Format: 66,\n genesisHash:\n '0xd4c0c08ca49dc7c680c3dac71a7c0703e5b222f4b6c03fe4c5219bb8f22c18dc',\n },\n [ChainKey.Crab]: {\n key: ChainKey.Crab,\n name: 'Darwinia Crab',\n ws: 'wss://crab-parachain-rpc.darwinia.network',\n weight: 1_000_000_000,\n parachainId: 2105,\n ss58Format: 42,\n genesisHash:\n '0xeac895d7768b17837a9c3a9f0280c01502c3ef40193df923490a0fa9c60ea076',\n },\n [ChainKey.Integritee]: {\n key: ChainKey.Integritee,\n name: 'Integritee',\n ws: 'wss://integritee-kusama.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2015,\n ss58Format: 13,\n genesisHash:\n '0xcdedc8eadbfa209d3f207bba541e57c3c58a667b05a2e1d1e86353c9000758da',\n },\n [ChainKey.Karura]: {\n key: ChainKey.Karura,\n name: 'Karura',\n ws: 'wss://karura-rpc-0.aca-api.network',\n weight: 1_000_000_000,\n parachainId: 2000,\n moonAssetId: 3,\n ss58Format: 8,\n genesisHash:\n '0xbaf5aabe40646d11f0ee8abbdc64f4a4b7674925cba08e4a05ff9ebed6e2126b',\n },\n [ChainKey.Khala]: {\n key: ChainKey.Khala,\n name: 'Khala',\n ws: 'wss://khala.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2004,\n moonAssetId: 6,\n palletInstance: 10,\n ss58Format: 30,\n genesisHash:\n '0xd43540ba6d3eb4897c28a77d48cb5b729fea37603cbbfc7a86a73b72adb3be8d',\n },\n [ChainKey.Kintsugi]: {\n key: ChainKey.Kintsugi,\n name: 'Kintsugi',\n ws: 'wss://api-kusama.interlay.io/parachain',\n weight: 1_000_000_000,\n parachainId: 2092,\n ss58Format: 2092,\n genesisHash:\n '0x9af9a64e6e4da8e3073901c3ff0cc4c3aad9563786d89daf6ad820b6e14a0b8b',\n },\n [ChainKey.Kusama]: {\n key: ChainKey.Kusama,\n name: 'Kusama',\n ws: 'wss://kusama-rpc.polkadot.io',\n weight: 1_000_000_000,\n parachainId: 0,\n ss58Format: 2,\n genesisHash:\n '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n },\n [ChainKey.Litmus]: {\n key: ChainKey.Litmus,\n name: 'Litmus',\n ws: 'wss://rpc.litmus-parachain.litentry.io',\n weight: 1_000_000_000,\n parachainId: 2106,\n ss58Format: 131,\n genesisHash:\n '0xda5831fbc8570e3c6336d0d72b8c08f8738beefec812df21ef2afc2982ede09c',\n },\n [ChainKey.Parallel]: {\n key: ChainKey.Parallel,\n name: 'Parallel Heiko',\n ws: 'wss://heiko-rpc.parallel.fi',\n weight: 1_000_000_000,\n parachainId: 2085,\n moonAssetId: 113,\n ss58Format: 110,\n genesisHash:\n '0x64a1c658a48b2e70a7fb1ad4c39eea35022568c20fc44a6e2e3d0a57aee6053b',\n },\n [ChainKey.Robonomics]: {\n key: ChainKey.Robonomics,\n name: 'Robonomics',\n ws: 'wss://robonomics.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2048,\n ss58Format: 32,\n genesisHash:\n '0x631ccc82a078481584041656af292834e1ae6daab61d2875b4dd0c14bb9b17bc',\n },\n [ChainKey.Shiden]: {\n key: ChainKey.Shiden,\n name: 'Shiden',\n ws: 'wss://shiden.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2007,\n moonAssetId: 18446744073709551620n,\n palletInstance: 10,\n ss58Format: 5,\n genesisHash:\n '0xf1cf9022c7ebb34b162d5b5e34e705a5a740b2d0ecc1009fb89023e62a488108',\n },\n [ChainKey.Statemine]: {\n key: ChainKey.Statemine,\n name: 'Statemine',\n ws: 'wss://statemine-rpc.polkadot.io',\n weight: 1_000_000_000,\n parachainId: 1000,\n palletInstance: 50,\n ss58Format: 2,\n genesisHash:\n '0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a',\n },\n};\n","import { createBalanceBuilder } from '../../balance';\nimport { MoonChainKey, MOON_CHAINS } from '../../constants';\nimport { createExtrinsicBuilder } from '../../extrinsic';\nimport { createWithdrawBuilder } from '../../withdraw';\nimport { MOONRIVER_ASSETS_MAP as assets } from './moonriver.assets';\nimport { MOONRIVER_CHAINS_MAP as chains } from './moonriver.chains';\nimport { MoonriverAssets, MoonriverChains } from './moonriver.interfaces';\n\nexport { assets, chains };\n\nexport const moonriver = MOON_CHAINS[MoonChainKey.Moonriver];\nexport const balance = createBalanceBuilder<MoonriverAssets>();\nexport const extrinsic = createExtrinsicBuilder<\n MoonriverAssets,\n MoonriverChains\n>(moonriver);\nexport const withdraw = createWithdrawBuilder<MoonriverAssets>();\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.AUSD];\nconst origin = chains[ChainKey.Karura];\n\nexport const AUSD: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(AssetSymbol.KUSD),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: AssetSymbol.KUSD,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(AssetSymbol.KUSD),\n destination: origin,\n feePerWeight: 64,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.BNC];\nconst origin = chains[ChainKey.Bifrost];\n\nexport const BNC: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Native]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 6.4,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.CRAB];\nconst origin = chains[ChainKey.Crab];\n\nexport const CRAB: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X1(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 1_000_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.CSM];\nconst origin = chains[ChainKey.CrustShadow];\n\nexport const CSM: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V0(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 1,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.HKO];\nconst origin = chains[ChainKey.Parallel];\n\nexport const HKO: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transferMultiAsset()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset(asset),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 4.8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KAR];\nconst origin = chains[ChainKey.Karura];\n\nexport const KAR: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KBTC];\nconst feeAsset = assets[AssetSymbol.KINT];\nconst origin = chains[ChainKey.Kintsugi];\n\nexport const KBTC: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n sourceFeeBalance: balance.tokens().token(feeAsset.originSymbol),\n xcmFeeAsset: {\n asset: feeAsset,\n balance: balance.tokens().token(feeAsset.originSymbol),\n },\n extrinsic: extrinsic\n .xTokens()\n .transferMultiCurrencies()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .assets(\n {\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n },\n {\n [XTokensExtrinsicCurrencyTypes.Token]: feeAsset.originSymbol,\n },\n ),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 0.000000107,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KINT];\nconst origin = chains[ChainKey.Kintsugi];\n\nexport const KINT: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.tokens().token(asset.originSymbol),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.tokens().token(asset.originSymbol),\n destination: origin,\n feePerWeight: 0.21,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KMA];\nconst origin = chains[ChainKey.Calamari];\n\nexport const KMA: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset({ [XTokensExtrinsicCurrencyTypes.MantaCurrency]: 1 }),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.001,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.KSM];\nconst origin = chains[ChainKey.Kusama];\n\nexport const KSM: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xcmPallet()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.42,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.LIT];\nconst origin = chains[ChainKey.Litmus];\n\nexport const LIT: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset('SelfReserve'),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.8,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n PolkadotXcmExtrinsicSuccessEvent,\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n XTransferExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport { getMoonAssetId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n moonriver,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.MOVR];\nconst bifrost = chains[ChainKey.Bifrost];\nconst calamari = chains[ChainKey.Calamari];\nconst crust = chains[ChainKey.CrustShadow];\nconst karura = chains[ChainKey.Karura];\nconst khala = chains[ChainKey.Khala];\nconst parallel = chains[ChainKey.Parallel];\nconst shiden = chains[ChainKey.Shiden];\n\nconst calamariMovrId = getMoonAssetId(calamari);\nconst crustMovrId = getMoonAssetId(crust);\nconst karuraMovrId = getMoonAssetId(karura);\nconst khalaMovrId = getMoonAssetId(khala);\nconst parallelMovrId = getMoonAssetId(parallel);\nconst shidenMovrId = getMoonAssetId(shiden);\n\nexport const MOVR: MoonriverXcmConfig = {\n asset,\n origin: moonriver,\n deposit: {\n [bifrost.key]: {\n source: bifrost,\n balance: balance.tokens().token(AssetSymbol.MOVR),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(bifrost)\n .asset({\n [XTokensExtrinsicCurrencyTypes.Token]: asset.originSymbol,\n }),\n },\n [calamari.key]: {\n source: calamari,\n balance: balance.assets(calamariMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(calamari)\n .asset({\n [XTokensExtrinsicCurrencyTypes.MantaCurrency]: calamariMovrId,\n }),\n },\n [crust.key]: {\n source: crust,\n balance: balance.assets(crustMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(crust)\n .asset({\n [XTokensExtrinsicCurrencyTypes.OtherReserve]: crustMovrId,\n }),\n },\n [karura.key]: {\n source: karura,\n balance: balance.tokens().foreignAsset(karuraMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(karura)\n .asset({\n [XTokensExtrinsicCurrencyTypes.ForeignAsset]: karuraMovrId,\n }),\n },\n [khala.key]: {\n source: khala,\n balance: balance.assets(khalaMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTransfer()\n .transfer()\n .successEvent(XTransferExtrinsicSuccessEvent.Withdrawn)\n .origin(khala)\n .X2(getPalletInstance(khala)),\n },\n [parallel.key]: {\n source: parallel,\n balance: balance.assets(parallelMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(parallel)\n .asset(parallelMovrId),\n },\n [shiden.key]: {\n source: shiden,\n balance: balance.assets(shidenMovrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveWithdrawAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(shiden)\n .V1()\n .X2(getPalletInstance(shiden)),\n },\n },\n withdraw: {\n [bifrost.key]: withdraw.xTokens({\n balance: balance.tokens().token(AssetSymbol.MOVR),\n destination: bifrost,\n feePerWeight: 213_600,\n }),\n [calamari.key]: withdraw.xTokens({\n balance: balance.assets(calamariMovrId),\n destination: calamari,\n feePerWeight: 50_000,\n sourceMinBalance: balance.minAssetPallet(calamariMovrId),\n }),\n [crust.key]: withdraw.xTokens({\n balance: balance.assets(crustMovrId),\n destination: crust,\n feePerWeight: 50_000,\n }),\n [karura.key]: withdraw.xTokens({\n balance: balance.tokens().foreignAsset(karuraMovrId),\n destination: karura,\n feePerWeight: 50_000,\n sourceMinBalance: balance.minAssetRegistryPallet(karuraMovrId),\n }),\n [khala.key]: withdraw.xTokens({\n balance: balance.assets(khalaMovrId),\n destination: khala,\n feePerWeight: 50_000,\n }),\n [parallel.key]: withdraw.xTokens({\n balance: balance.assets(parallelMovrId),\n destination: parallel,\n feePerWeight: 0.48,\n }),\n [shiden.key]: withdraw.xTokens({\n balance: balance.assets(shidenMovrId),\n destination: shiden,\n feePerWeight: 50_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTransferExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.PHA];\nconst origin = chains[ChainKey.Khala];\n\nexport const PHA: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTransfer()\n .transfer()\n .successEvent(XTransferExtrinsicSuccessEvent.Deposited)\n .origin(origin)\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 80,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport { getAssetForeignId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.RMRK];\nconst origin = chains[ChainKey.Statemine];\nconst originAssetId = getAssetForeignId(asset, origin.key);\n\nexport const RMRK: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.assets(originAssetId),\n sourceFeeBalance: balance.system(),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X2(getPalletInstance(origin), originAssetId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.assets(originAssetId),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n destination: origin,\n feePerWeight: 0.000126,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.SDN];\nconst origin = chains[ChainKey.Shiden];\n\nexport const SDN: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 8_000_000,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { XTokensExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.TEER];\nconst origin = chains[ChainKey.Integritee];\n\nexport const TEER: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(origin)\n .asset(asset.originSymbol),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 1,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport { getAssetForeignId, getPalletInstance } from '../../config.utils';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.USDT];\nconst origin = chains[ChainKey.Statemine];\nconst originAssetId = getAssetForeignId(asset, origin.key);\n\nexport const USDT: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.assets(originAssetId),\n sourceFeeBalance: balance.system(),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .X2(getPalletInstance(origin), originAssetId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.assets(originAssetId),\n sourceMinBalance: balance.minAssetPallet(originAssetId),\n destination: origin,\n feePerWeight: 0.00000126,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { PolkadotXcmExtrinsicSuccessEvent } from '../../../extrinsic';\nimport {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonriver.common';\nimport { MoonriverXcmConfig } from '../moonriver.interfaces';\n\nconst asset = assets[AssetSymbol.XRT];\nconst origin = chains[ChainKey.Robonomics];\n\nexport const XRT: MoonriverXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.system(),\n extrinsic: extrinsic\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .successEvent(PolkadotXcmExtrinsicSuccessEvent.Attempted)\n .origin(origin)\n .V1()\n .here(),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 0.000008,\n }),\n },\n};\n","import { AssetSymbol } from '../../constants';\nimport { MoonriverXcmConfigs } from './moonriver.interfaces';\n\nimport { AUSD } from './assets/ausd';\nimport { BNC } from './assets/bnc';\nimport { CRAB } from './assets/crab';\nimport { CSM } from './assets/csm';\nimport { HKO } from './assets/hko';\nimport { KAR } from './assets/kar';\nimport { KBTC } from './assets/kbtc';\nimport { KINT } from './assets/kint';\nimport { KMA } from './assets/kma';\nimport { KSM } from './assets/ksm';\nimport { LIT } from './assets/lit';\nimport { MOVR } from './assets/movr';\nimport { PHA } from './assets/pha';\nimport { RMRK } from './assets/rmrk';\nimport { SDN } from './assets/sdn';\nimport { TEER } from './assets/teer';\nimport { USDT } from './assets/usdt';\nimport { XRT } from './assets/xrt';\n\nexport const MOONRIVER_CONFIGS: MoonriverXcmConfigs = {\n [AssetSymbol.AUSD]: AUSD,\n [AssetSymbol.BNC]: BNC,\n [AssetSymbol.CRAB]: CRAB,\n [AssetSymbol.CSM]: CSM,\n [AssetSymbol.HKO]: HKO,\n [AssetSymbol.KAR]: KAR,\n [AssetSymbol.KBTC]: KBTC,\n [AssetSymbol.KINT]: KINT,\n [AssetSymbol.KMA]: KMA,\n [AssetSymbol.KSM]: KSM,\n [AssetSymbol.LIT]: LIT,\n [AssetSymbol.MOVR]: MOVR,\n [AssetSymbol.PHA]: PHA,\n [AssetSymbol.RMRK]: RMRK,\n [AssetSymbol.SDN]: SDN,\n [AssetSymbol.TEER]: TEER,\n [AssetSymbol.USDT]: USDT,\n [AssetSymbol.XRT]: XRT,\n};\n","import { AssetSymbol, ChainKey, MoonChainKey, MOON_CHAINS } from '../constants';\nimport { Asset, Chain } from '../interfaces';\nimport {\n CreateConfigParams,\n TransactConfig,\n XcmConfigBuilder,\n} from './config.interfaces';\nimport {\n getChainKey,\n getOverallFee,\n getOverallWeight,\n getSymbol,\n} from './config.utils';\nimport {\n MoonbaseAssets,\n MoonbaseChains,\n MOONBASE_ASSETS_MAP,\n MOONBASE_CHAINS_MAP,\n MOONBASE_CONFIGS,\n MOONBASE_TRANSACT_CONFIGS,\n} from './moonbase';\nimport {\n MoonbeamAssets,\n MoonbeamChains,\n MOONBEAM_ASSETS_MAP,\n MOONBEAM_CHAINS_MAP,\n MOONBEAM_CONFIGS,\n} from './moonbeam';\nimport {\n MoonriverAssets,\n MoonriverChains,\n MOONRIVER_ASSETS_MAP,\n MOONRIVER_CHAINS_MAP,\n MOONRIVER_CONFIGS,\n} from './moonriver';\n\nexport function createConfig<\n Symbols extends AssetSymbol,\n ChainKeys extends ChainKey,\n>({\n assets,\n moonAsset,\n moonChain,\n chains,\n configs,\n transact,\n}: CreateConfigParams<Symbols, ChainKeys>): XcmConfigBuilder<\n Symbols,\n ChainKeys\n> {\n return {\n symbols: Object.keys(assets) as Symbols[],\n assets,\n moonAsset,\n moonChain,\n deposit: (symbolOrAsset: Symbols | Asset<Symbols>) => {\n const symbol = getSymbol(symbolOrAsset);\n const config = configs[symbol];\n\n if (!config) {\n throw new Error(`No config found for asset: ${symbol}`);\n }\n\n return {\n chains: (Object.keys(config.deposit) as ChainKeys[]).map(\n (chain) => chains[chain],\n ),\n from: (keyOrChain: ChainKeys | Chain<ChainKeys>) => {\n const key = getChainKey(keyOrChain);\n const depositConfig = config.deposit[key];\n\n if (!depositConfig) {\n throw new Error(\n `No deposit config found for asset: ${symbol} and chain: ${key}`,\n );\n }\n\n return {\n asset: config.asset,\n origin: config.origin,\n config: depositConfig,\n };\n },\n };\n },\n withdraw: (symbolOrAsset: Symbols | Asset<Symbols>) => {\n const symbol = getSymbol(symbolOrAsset);\n const config = configs[symbol];\n\n if (!config) {\n throw new Error(`No config found for asset: ${symbol}`);\n }\n\n return {\n chains: (Object.keys(config.withdraw) as ChainKeys[]).map(\n (chain) => chains[chain],\n ),\n to: (keyOrChain: ChainKeys | Chain<ChainKeys>) => {\n const key = getChainKey(keyOrChain);\n const withdrawConfig = config.withdraw[key];\n\n if (!withdrawConfig) {\n throw new Error(\n `No withdraw config found for asset: ${symbol} and chain: ${key}`,\n );\n }\n\n return {\n asset: config.asset,\n origin: config.origin,\n config: withdrawConfig,\n };\n },\n };\n },\n transact: () => {\n const { chainsTo, chainsFrom } = Object.values<\n TransactConfig<Symbols, ChainKeys>\n >(transact as { [s: string]: TransactConfig<Symbols, ChainKeys> }).reduce(\n (acc, config) => {\n if (config.from) {\n acc.chainsFrom.push(config.chain);\n }\n\n if (config.to) {\n acc.chainsTo.push(config.chain);\n }\n\n return acc;\n },\n {\n chainsTo: [] as Chain<ChainKeys>[],\n chainsFrom: [] as Chain<ChainKeys>[],\n },\n );\n\n return {\n chainsFrom,\n chainsTo,\n from: (keyOrChain: ChainKeys | Chain<ChainKeys>) => {\n const key = getChainKey(keyOrChain);\n const config = transact[key];\n\n if (!config?.from) {\n throw new Error(`No transact config found from chain: ${key}`);\n }\n\n return {\n chain: config.chain,\n config: config.from,\n balance: config.balance,\n getOverallFee: (overallWeight: bigint) =>\n getOverallFee(overallWeight, moonChain.unitsPerSecond),\n getOverallWeight: (txWeight: bigint) =>\n getOverallWeight(moonChain, txWeight),\n };\n },\n to: (keyOrChain: ChainKeys | Chain<ChainKeys>) => {\n const key = getChainKey(keyOrChain);\n const config = transact[key];\n\n if (!config?.to) {\n throw new Error(`No transact config found to chain: ${key}`);\n }\n\n return {\n chain: config.chain,\n config: config.to,\n balance: config.balance,\n getOverallFee: (overallWeight: bigint) =>\n getOverallFee(overallWeight, config.unitsPerSecond),\n getOverallWeight: (txWeight: bigint) =>\n getOverallWeight(config.chain, txWeight),\n };\n },\n };\n },\n };\n}\n\nexport const moonbase = createConfig<MoonbaseAssets, MoonbaseChains>({\n assets: MOONBASE_ASSETS_MAP,\n moonAsset: MOONBASE_ASSETS_MAP[AssetSymbol.DEV],\n moonChain: MOON_CHAINS[MoonChainKey.MoonbaseAlpha],\n chains: MOONBASE_CHAINS_MAP,\n configs: MOONBASE_CONFIGS,\n transact: MOONBASE_TRANSACT_CONFIGS,\n});\nexport const moonbeam = createConfig<MoonbeamAssets, MoonbeamChains>({\n assets: MOONBEAM_ASSETS_MAP,\n moonAsset: MOONBEAM_ASSETS_MAP[AssetSymbol.GLMR],\n moonChain: MOON_CHAINS[MoonChainKey.Moonbeam],\n chains: MOONBEAM_CHAINS_MAP,\n configs: MOONBEAM_CONFIGS,\n transact: {},\n});\nexport const moonriver = createConfig<MoonriverAssets, MoonriverChains>({\n assets: MOONRIVER_ASSETS_MAP,\n moonAsset: MOONRIVER_ASSETS_MAP[AssetSymbol.MOVR],\n moonChain: MOON_CHAINS[MoonChainKey.Moonriver],\n chains: MOONRIVER_CHAINS_MAP,\n configs: MOONRIVER_CONFIGS,\n transact: {},\n});\n"],"mappings":"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E,iBAAkB,CAChB,GAAI,OACJ,OAAAA,CACF,CACF,CACF,CACF,EAAE,EACJ,GAAI,KAAO,CACT,KAAM,IACJF,EAAiBE,IAAY,CAC3B,GAAI,CACF,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUA,CACZ,CACF,CACF,CACF,EAAE,EACJ,GAAI,IACFF,EAAiBE,IAAY,CAC3B,GAAI,CACF,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,eAAgB,CAClB,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,CACZ,CACF,CACF,CACF,EAAE,EACJ,GAAI,CAACC,EAAwBC,IAC3BJ,EAAiBE,IAAY,CAC3B,GAAI,CACF,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,eAAgBC,CAClB,EACA,CACE,aAAcC,CAChB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUF,CACZ,CACF,CACF,CACF,EAAE,CACN,EACF,CACF,CACF,EACF,CACF,CAEA,SAASL,GACPF,EACA,CACA,MAAO,CACL,aAAeG,IAA6C,CAC1D,OAASC,GAA6B,CACpC,IAAMC,EAAkBC,iCAEtBH,EACAH,EACAI,CACF,EAEA,MAAO,CACL,GAAI,KAAO,CACT,GAAKI,GACHH,EAAiBE,IAAY,CAC3B,GAAI,CACF,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWP,EAAM,WACnB,EACA,CACE,eAAgBQ,CAClB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUD,CACZ,CACF,CACF,CACF,EAAE,CACN,EACF,CACF,CACF,EACF,CACF,CClJO,SAASG,GAAsCC,EAAkB,CACtE,MAAO,CACL,6BAA8B,IAC5BC,GAAwCD,CAAK,CACjD,CACF,CAEA,SAASC,GACPD,EACA,CACA,MAAO,CACL,aAAeE,IAA6C,CAC1D,OAASC,IASA,CACL,GATsBC,iCAEtBF,EACAF,EACAG,EACA,CACF,EAGsB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","names":["src_exports","__export","AssetSymbol","BalanceCurrencyTypes","BalanceFunction","BalancePallet","ChainKey","ExtrinsicPallet","MOONBASE_ASSETS","MOONBASE_ASSETS_MAP","MOONBASE_CHAINS","MOONBASE_CHAINS_MAP","MOONBASE_CONFIGS","MOONBASE_TRANSACT_CONFIGS","MOONBEAM_ASSETS","MOONBEAM_ASSETS_MAP","MOONBEAM_CHAINS","MOONBEAM_CHAINS_MAP","MOONBEAM_CONFIGS","MOONRIVER_ASSETS","MOONRIVER_ASSETS_MAP","MOONRIVER_CHAINS","MOONRIVER_CHAINS_MAP","MOONRIVER_CONFIGS","MOON_CHAINS","MoonChainKey","PolkadotXcmExtrinsic","PolkadotXcmExtrinsicSuccessEvent","XTokensExtrinsic","XTokensExtrinsicCurrencyTypes","XTokensExtrinsicSuccessEvent","XTransferExtrinsic","XTransferExtrinsicSuccessEvent","createBalanceBuilder","createConfig","createExtrinsicBuilder","createMultilocationBuilder","createTransactBuilder","createWithdrawBuilder","getCreateExtrinsic","isMultiCurrency","moonbase","moonbeam","moonriver","polkadotXcm","xTokens","xTransfer","xcmPallet","__toCommonJS","import_api_augment","import_api_augment","BalancePallet","BalanceFunction","BalanceCurrencyTypes","createBalanceBuilder","assets","minAssetPallet","minAssetRegistryPallet","minCurrencyMetadata","ormlTokens","system","tokens","asset","account","balance","free","frozen","miscFrozen","tokensBase","AssetSymbol","MoonChainKey","MOON_CHAINS","ChainKey","import_util","PolkadotXcmExtrinsic","PolkadotXcmExtrinsicSuccessEvent","ExtrinsicPallet","getCreateExtrinsic","extrinsic","event","config","origin","parents","getAsset","account","amount","polkadotXcm","chain","limitedReserveTransferAssets","limitedReserveWithdrawAssets","event","origin","createExtrinsic","getCreateExtrinsic","amount","palletInstance","assetId","xcmPallet","chain","limitedReserveTransferAssets","event","origin","getCreateExtrinsic","amount","XTokensExtrinsic","XTokensExtrinsicSuccessEvent","XTokensExtrinsicCurrencyTypes","getWeightXTokens","weight","extrinsicCall","_a","xTokens","chain","transfer","transferMultiAsset","transferMultiCurrencies","event","origin","token","account","amount","extrinsicCall","getWeightXTokens","asset","feeAsset","fee","XTransferExtrinsic","XTransferExtrinsicSuccessEvent","xTransfer","chain","transfer","event","origin","createExtrinsic","getCreateExtrinsic","palletInstance","extrinsic","getConcrete","account","amount","createExtrinsicBuilder","chain","polkadotXcm","xcmPallet","xTokens","xTransfer","getAssetForeignId","asset","chain","_a","id","getMoonAssetId","getUnitsPerSecond","getPalletInstance","isMultiCurrency","extrinsic","getSymbol","symbolOrAsset","getChainKey","keyOrChain","getOverallWeight","txWeight","descendOriginWeight","withdrawAssetWeight","buyExecutionWeight","transactWeight","getOverallFee","overallWeight","unitsPerSecond","weightPerSecond","createMultilocationBuilder","parachainId","parents","account","createTransactBuilder","chain","callHash","overallFee","overallWeight","txWeight","palletInstance","getPalletInstance","parachainId","import_util","import_util_crypto","createWithdrawBuilder","options","xTokens","balance","destination","feePerWeight","sourceMinBalance","xcmFeeAsset","weight","account","parachainId","acc","MOONBASE_ASSETS","MOONBASE_ASSETS_MAP","MOONBASE_CHAINS","MOONBASE_CHAINS_MAP","moonbase","MOON_CHAINS","balance","createBalanceBuilder","extrinsic","createExtrinsicBuilder","withdraw","createWithdrawBuilder","transact","createTransactBuilder","multilocation","createMultilocationBuilder","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","AUQ","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","NEER","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","feeAsset","origin","MOONBASE_CHAINS_MAP","neerWithdrawConfig","NEER","BIT","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","pioneer","MOONBASE_CHAINS_MAP","pioneerDevId","getMoonAssetId","DEV","moonbase","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","LIT","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","originAssetId","getAssetForeignId","TT1","balance","extrinsic","getPalletInstance","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","UNIT","balance","extrinsic","withdraw","MOONBASE_CONFIGS","AUQ","BIT","DEV","LIT","NEER","TT1","UNIT","beta","MOONBASE_CHAINS_MAP","unitsPerSecond","getUnitsPerSecond","BETA","balance","multilocation","transact","moonbase","MOONBASE_TRANSACT_CONFIGS","BETA","MOONBEAM_ASSETS","MOONBEAM_ASSETS_MAP","MOONBEAM_CHAINS","MOONBEAM_CHAINS_MAP","moonbeam","MOON_CHAINS","balance","createBalanceBuilder","extrinsic","createExtrinsicBuilder","withdraw","createWithdrawBuilder","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","ACA","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","ASTR","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","AUSD","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","BNC","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","DOT","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","acala","MOONBEAM_CHAINS_MAP","astar","bifrost","parallel","phala","acalaGlmrId","getMoonAssetId","astarGlmrId","bifrostGlmrId","parallelGlmrId","phalaGlmrId","GLMR","moonbeam","balance","extrinsic","getPalletInstance","withdraw","asset","MOONBEAM_ASSETS_MAP","feeAsset","origin","MOONBEAM_CHAINS_MAP","IBTC","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","INTR","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","PARA","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","PHA","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","RING","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","originAssetId","getAssetForeignId","USDT","balance","extrinsic","getPalletInstance","withdraw","MOONBEAM_CONFIGS","ACA","ASTR","AUSD","BNC","DOT","GLMR","IBTC","INTR","PARA","PHA","RING","USDT","MOONRIVER_ASSETS","MOONRIVER_ASSETS_MAP","MOONRIVER_CHAINS","MOONRIVER_CHAINS_MAP","moonriver","MOON_CHAINS","balance","createBalanceBuilder","extrinsic","createExtrinsicBuilder","withdraw","createWithdrawBuilder","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","AUSD","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","BNC","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","CRAB","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","CSM","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","HKO","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","KAR","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","feeAsset","origin","MOONRIVER_CHAINS_MAP","KBTC","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","KINT","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","KMA","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","KSM","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","LIT","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","bifrost","MOONRIVER_CHAINS_MAP","calamari","crust","karura","khala","parallel","shiden","calamariMovrId","getMoonAssetId","crustMovrId","karuraMovrId","khalaMovrId","parallelMovrId","shidenMovrId","MOVR","moonriver","balance","extrinsic","getPalletInstance","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","PHA","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","originAssetId","getAssetForeignId","RMRK","balance","extrinsic","getPalletInstance","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","SDN","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","TEER","balance","extrinsic","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","originAssetId","getAssetForeignId","USDT","balance","extrinsic","getPalletInstance","withdraw","asset","MOONRIVER_ASSETS_MAP","origin","MOONRIVER_CHAINS_MAP","XRT","balance","extrinsic","withdraw","MOONRIVER_CONFIGS","AUSD","BNC","CRAB","CSM","HKO","KAR","KBTC","KINT","KMA","KSM","LIT","MOVR","PHA","RMRK","SDN","TEER","USDT","XRT","createConfig","assets","moonAsset","moonChain","chains","configs","transact","symbolOrAsset","symbol","getSymbol","config","chain","keyOrChain","key","getChainKey","depositConfig","withdrawConfig","chainsTo","chainsFrom","acc","overallWeight","getOverallFee","txWeight","getOverallWeight","moonbase","MOONBASE_ASSETS_MAP","MOON_CHAINS","MOONBASE_CHAINS_MAP","MOONBASE_CONFIGS","MOONBASE_TRANSACT_CONFIGS","moonbeam","MOONBEAM_ASSETS_MAP","MOONBEAM_CHAINS_MAP","MOONBEAM_CONFIGS","moonriver","MOONRIVER_ASSETS_MAP","MOONRIVER_CHAINS_MAP","MOONRIVER_CONFIGS"]}
|