@moonbeam-network/xcm-config 0.5.0 → 1.0.1

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.
@@ -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/extrinsic.utils.ts","../src/extrinsic/common.interfaces.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/eqBalances/eqBalances.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/eq.ts","../src/config/moonbase/assets/eqd.ts","../src/config/moonbase/assets/lit.ts","../src/config/moonbase/assets/paring.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/eq.ts","../src/config/moonbeam/assets/eqd.ts","../src/config/moonbeam/assets/glmr.ts","../src/config/moonbeam/assets/hdx.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 EquilibriumSystemBalanceConfig,\n EquilibriumSystemBalanceData,\n MinBalanceAssetRegistryConfig,\n MinBalanceAssetsConfig,\n OrmlTokensBalanceConfig,\n PalletBalancesAccountDataOld,\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 systemEquilibrium,\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: (data: PalletBalancesAccountData | PalletBalancesAccountDataOld) => {\n const frozen =\n (data as PalletBalancesAccountDataOld).miscFrozen ||\n (data as PalletBalancesAccountData).frozen;\n\n return BigInt(data.free.sub(frozen).toString());\n },\n };\n}\n\nfunction systemEquilibrium(id: number): EquilibriumSystemBalanceConfig {\n return {\n pallet: BalancePallet.System,\n function: BalanceFunction.Account,\n path: ['data'],\n getParams: (account: string) => [account],\n calc: (data) => {\n if (data.isEmpty) {\n return 0n;\n }\n\n const res = data.toJSON() as unknown;\n let balances: EquilibriumSystemBalanceData | undefined;\n\n if (Array.isArray(res)) {\n balances = res;\n }\n\n if (Array.isArray((res as any)?.v0?.balance)) {\n balances = (res as any).v0.balance;\n }\n\n if (!balances) {\n throw new Error(\"Can't get balance from Equilibrium chain\");\n }\n\n const balance = balances.find(([assetId]) => assetId === id);\n\n if (!balance) {\n return 0n;\n }\n\n return BigInt(balance[1].positive);\n },\n };\n}\n\nfunction tokens<Symbols extends AssetSymbol = AssetSymbol>() {\n return {\n tokensBase: (asset: AssetId | Symbols) => tokensBase<Symbols>(asset),\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 AUQ = 'AUQ',\n AUSD = 'AUSD',\n BIT = 'BIT',\n BNC = 'BNC',\n CRAB = 'CRAB',\n CSM = 'CSM',\n DEV = 'DEV',\n DOT = 'DOT',\n EQ = 'EQ',\n EQD = 'EQD',\n GLMR = 'GLMR',\n HDX = 'HDX',\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 PARING = 'PARING',\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 DarwiniaPangoro = 'DarwiniaPangoro',\n Equilibrium = 'Equilibrium',\n EquilibriumAlphanet = 'EquilibriumAlphanet',\n HydraDX = 'HydraDX',\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 EqBalances = 'eqBalances',\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\nimport { getTypeDef } from '@polkadot/types';\nimport { XcmVersion } from './common.interfaces';\n\nexport function getExtrinsicArgumentVersion(\n extrinsicCall?: SubmittableExtrinsicFunction<'promise'>,\n index: number = 0,\n): XcmVersion {\n if (!extrinsicCall) return XcmVersion.v1;\n\n const { type } = extrinsicCall.meta.args[index];\n const instance = extrinsicCall.meta.registry.createType(type.toString());\n const raw = getTypeDef(instance?.toRawType());\n\n if (!raw.sub) {\n return XcmVersion.v1;\n }\n\n const versions = Array.isArray(raw.sub)\n ? raw.sub.map((x) => x.name)\n : [raw.sub.name];\n\n if (versions.includes(XcmVersion.v1)) {\n return XcmVersion.v1;\n }\n\n if (versions.includes(XcmVersion.v2)) {\n return XcmVersion.v2;\n }\n\n if (versions.includes(XcmVersion.v3)) {\n return XcmVersion.v3;\n }\n\n throw new Error(\"Can't find Xcm version\");\n}\n","import { SubmittableExtrinsicFunction } from '@polkadot/api/types';\n\nexport type Parents = 0 | 1;\n\nexport interface XcmExtrinsicGetParams {\n account: string;\n amount: bigint;\n extrinsicCall?: SubmittableExtrinsicFunction<'promise'>;\n fee?: bigint;\n}\n\nexport enum XcmVersion {\n v1 = 'V1',\n v2 = 'V2',\n v3 = 'V3',\n}\n","import { MoonChain } from '../../interfaces';\nimport { Parents } from '../common.interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport { getExtrinsicArgumentVersion } from '../extrinsic.utils';\nimport {\n PolkadotXcmExtrinsic,\n PolkadotXcmExtrinsicSuccessEvent,\n} from './polkadotXcm.constants';\nimport {\n PolkadotXcmAssetParam,\n PolkadotXcmPallet,\n PolkadotXcmPalletParams,\n} from './polkadotXcm.interfaces';\n\nexport function getCreateV1V2Extrinsic(\n extrinsic: PolkadotXcmExtrinsic,\n event: PolkadotXcmExtrinsicSuccessEvent,\n config: MoonChain,\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: ({\n account,\n amount,\n extrinsicCall,\n }): PolkadotXcmPalletParams => {\n const version = getExtrinsicArgumentVersion(extrinsicCall);\n\n return [\n {\n [version]: {\n parents,\n interior: {\n X1: {\n Parachain: config.parachainId,\n },\n },\n },\n },\n {\n [version]: {\n parents: 0,\n interior: {\n X1: {\n AccountKey20: {\n network: 'Any',\n key: account,\n },\n },\n },\n },\n },\n {\n [version]: getAsset(amount),\n },\n 0,\n 'Unlimited',\n ];\n },\n });\n}\n","import { AssetId, MoonChain } from '../../interfaces';\nimport {\n PolkadotXcmExtrinsic,\n PolkadotXcmExtrinsicSuccessEvent,\n} from './polkadotXcm.constants';\nimport { getCreateV1V2Extrinsic } from './polkadotXcm.util';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function polkadotXcm(chain: MoonChain) {\n return {\n limitedReserveTransferAssets: () => limitedReserveTransferAssets(chain),\n limitedReserveWithdrawAssets: () => limitedReserveWithdrawAssets(chain),\n };\n}\n\nfunction limitedReserveTransferAssets(chain: MoonChain) {\n return {\n successEvent: (event: PolkadotXcmExtrinsicSuccessEvent) => {\n const createExtrinsic = getCreateV1V2Extrinsic(\n PolkadotXcmExtrinsic.LimitedReserveTransferAssets,\n event,\n chain,\n );\n\n return {\n V1V2: () => ({\n here: () =>\n createExtrinsic((amount) => [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ]),\n X1: () =>\n createExtrinsic((amount) => [\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 X2: (palletInstance: number, assetId: AssetId) =>\n createExtrinsic((amount) => [\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\nfunction limitedReserveWithdrawAssets(chain: MoonChain) {\n return {\n successEvent: (event: PolkadotXcmExtrinsicSuccessEvent) => {\n const createExtrinsic = getCreateV1V2Extrinsic(\n PolkadotXcmExtrinsic.LimitedReserveWithdrawAssets,\n event,\n chain,\n );\n\n return {\n V1V2: () => ({\n X2: (palletInstance: number) =>\n createExtrinsic((amount) => [\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","import { MoonChain } from '../../interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n getCreateV1V2Extrinsic,\n PolkadotXcmExtrinsic,\n PolkadotXcmExtrinsicSuccessEvent,\n} from '../polkadotXcm';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function xcmPallet(chain: MoonChain) {\n return {\n limitedReserveTransferAssets: () => limitedReserveTransferAssets(chain),\n };\n}\n\nfunction limitedReserveTransferAssets(chain: MoonChain) {\n return {\n successEvent: (event: PolkadotXcmExtrinsicSuccessEvent) => {\n const createExtrinsic = getCreateV1V2Extrinsic(\n PolkadotXcmExtrinsic.LimitedReserveTransferAssets,\n event,\n chain,\n 0,\n );\n\n return {\n ...createExtrinsic((amount) => [\n {\n id: {\n Concrete: {\n parents: 0,\n interior: 'Here',\n },\n },\n fun: {\n Fungible: amount,\n },\n },\n ]),\n pallet: ExtrinsicPallet.XcmPallet,\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 getXTokensWeight(\n weight: number,\n extrinsicCall?: SubmittableExtrinsicFunction<'promise'>,\n): XTokensWeightLimit {\n const type = extrinsicCall?.meta.args.at(-1)?.type;\n\n if (!type) {\n return weight;\n }\n\n if (type.eq('XcmV2WeightLimit')) {\n return {\n Limited: weight,\n };\n }\n\n if (type.eq('XcmV3WeightLimit')) {\n return {\n Limited: { refTime: weight, proofSize: 0 },\n };\n }\n\n return weight;\n}\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { Asset, Chain, MoonChain } from '../../interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport { getExtrinsicArgumentVersion } from '../extrinsic.utils';\nimport {\n XTokensExtrinsic,\n XTokensExtrinsicSuccessEvent,\n} from './xTokens.constants';\nimport {\n XTokensTransferExtrinsic,\n XTokensTransferExtrinsicParamsAsset,\n XTokensTransferMultiAssetExtrinsic,\n XTokensTransferMultiCurrenciesExtrinsic,\n} from './xTokens.interfaces';\nimport { getXTokensWeight } 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 const version = getExtrinsicArgumentVersion(extrinsicCall, 2);\n\n return [\n token,\n amount,\n {\n [version]: {\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 getXTokensWeight(origin.weight, extrinsicCall),\n ];\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 getXTokensWeight(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 getXTokensWeight(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 { 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(chain: MoonChain) {\n return {\n transfer: () => transfer(chain),\n };\n}\n\nfunction transfer(chain: MoonChain) {\n return {\n successEvent: (event: XTransferExtrinsicSuccessEvent) => {\n const createExtrinsic = getCreateExtrinsic(\n XTransferExtrinsic.Transfer,\n event,\n chain,\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\nfunction getCreateExtrinsic(\n extrinsic: XTransferExtrinsic,\n event: XTransferExtrinsicSuccessEvent,\n chain: MoonChain,\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 key: account,\n },\n },\n ],\n },\n },\n {\n refTime: 5_000_000_000,\n proofSize: 0,\n },\n ],\n });\n}\n","import { MoonChain } from '../../interfaces';\nimport { ExtrinsicPallet } from '../extrinsic.constants';\nimport {\n EqBalancesExtrinsic,\n EqBalancesFee,\n EqBalancesSuccessEvent,\n} from './eqBalances.constants';\nimport {\n EqBalancesTransferXcm,\n EqBalancesXcmTransfer,\n} from './eqBalances.interfaces';\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nexport function eqBalances(chain: MoonChain) {\n return {\n xcmTransfer: () => xcmTransfer(chain),\n transferXcm: () => transferXcm(chain),\n };\n}\n\nfunction xcmTransfer(chain: MoonChain) {\n return {\n successEvent: (event: EqBalancesSuccessEvent) => ({\n asset: (id: number) => ({\n fee: (fee: EqBalancesFee): EqBalancesXcmTransfer => ({\n pallet: ExtrinsicPallet.EqBalances,\n extrinsic: EqBalancesExtrinsic.XcmTransfer,\n successEvent: event,\n getParams: ({ account, amount }) => [\n id,\n amount,\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 fee,\n ],\n }),\n }),\n }),\n };\n}\n\nfunction transferXcm(chain: MoonChain) {\n return {\n successEvent: (event: EqBalancesSuccessEvent) => ({\n asset: (assetId: number) => ({\n feeAsset: (feeAssetId: number): EqBalancesTransferXcm => ({\n pallet: ExtrinsicPallet.EqBalances,\n extrinsic: EqBalancesExtrinsic.TransferXcm,\n successEvent: event,\n getParams: ({ account, amount, fee = 0n }) => {\n const amountWithoutFee = amount - fee > 0n ? amount - fee : 0n;\n\n return [\n [assetId, assetId === feeAssetId ? amountWithoutFee : amount],\n [feeAssetId, fee],\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 ];\n },\n }),\n }),\n }),\n };\n}\n","import { AssetSymbol, ChainKey } from '../constants';\nimport { MoonChain } from '../interfaces';\nimport { eqBalances } from './eqBalances';\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(chain),\n xcmPallet: () => xcmPallet(chain),\n xTokens: () => xTokens<Symbols, ChainKeys>(chain),\n xTransfer: () => xTransfer(chain),\n eqBalances: () => eqBalances(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, usesEthereumAccounts = false) => {\n const { parachainId } = destination;\n // 01: AccountId32\n // 03: AccountKey20\n // https://docs.moonbeam.network/builders/interoperability/xcm/xc20/xtokens/#building-the-precompile-multilocation\n const accountType = usesEthereumAccounts ? '03' : '01';\n\n const acc = `0x${accountType}${u8aToHex(\n decodeAddress(account),\n -1,\n false,\n )}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.EQ,\n AssetSymbol.EQD,\n AssetSymbol.LIT,\n AssetSymbol.NEER,\n AssetSymbol.PARING,\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.EQ]: {\n id: '190590555344745888270686124937537713878',\n erc20Id: '0xffffffff8f6267e040d8a0638c576dfba4f0f6d6',\n originSymbol: AssetSymbol.EQ,\n },\n [AssetSymbol.EQD]: {\n id: '187224307232923873519830480073807488153',\n erc20Id: '0xffffffff8cda1707baf23834d211b08726b1e499',\n originSymbol: AssetSymbol.EQD,\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.PARING]: {\n id: '173481220575862801646329923366065693029',\n erc20Id: '0xffffffff8283448b3cb519ca4732f2dddc6a6165',\n originSymbol: AssetSymbol.PARING,\n },\n [AssetSymbol.TT1]: {\n id: '156305701417244550631956600137082963628',\n erc20Id: '0xffffffff75976211c786fe4d73d2477e222786ac',\n originSymbol: AssetSymbol.TT1,\n foreignIds: {\n [ChainKey.StatemineAlphanet]: 2,\n },\n },\n [AssetSymbol.UNIT]: {\n id: '42259045809535163221576417993425387648',\n erc20Id: '0xffffffff1fcacbd218edc0eba20fc2308c778080',\n originSymbol: AssetSymbol.UNIT,\n },\n};\n","import { AssetSymbol, ChainKey } from '../../constants';\nimport { ChainsMap } from '../config.interfaces';\nimport { MoonbaseChains } from './moonbase.interfaces';\n\nexport const MOONBASE_CHAINS = <const>[\n ChainKey.AlphanetRelay,\n ChainKey.EquilibriumAlphanet,\n ChainKey.LitentryAlphanet,\n ChainKey.BitCountryPioneer,\n ChainKey.DarwiniaPangoro,\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.DarwiniaPangoro]: {\n key: ChainKey.DarwiniaPangoro,\n name: 'Pangoro',\n ws: 'wss://pangoro-rpc.darwinia.network',\n weight: 1_000_000_000,\n parachainId: 2105,\n usesEthereumAccounts: true,\n genesisHash:\n '0xaaa8b33b723b30b44e45e4e6c01936cc92e7559b4184fb0cee2853d55610fcbf',\n },\n [ChainKey.EquilibriumAlphanet]: {\n key: ChainKey.EquilibriumAlphanet,\n name: 'EquilibriumAlphanet',\n ws: 'wss://devnet.equilab.io/alphanet/collator/api/wss',\n weight: 1_000_000_000,\n parachainId: 2011,\n moonAssetId: 1_735_159_154,\n ss58Format: 68,\n genesisHash:\n '0x0ba4508078664cfd04f00bf17892dd1a0764ce61d90857f76c6a2ea61f008247',\n assetsDecimals: {\n [AssetSymbol.DEV]: 9,\n },\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 { EqBalancesSuccessEvent } from '../../../extrinsic/eqBalances';\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 eqa = chains[ChainKey.EquilibriumAlphanet];\nconst pioneer = chains[ChainKey.BitCountryPioneer];\n\nconst pioneerDevId = getMoonAssetId(pioneer);\nconst eqaDevId = getMoonAssetId(eqa) as number;\n\nexport const DEV: MoonbaseXcmConfig = {\n asset,\n origin: moonbase,\n deposit: {\n [eqa.key]: {\n source: eqa,\n balance: balance.systemEquilibrium(eqaDevId),\n extrinsic: extrinsic\n .eqBalances()\n .transferXcm()\n .successEvent(EqBalancesSuccessEvent.ExtrinsicSuccess)\n .asset(eqaDevId)\n .feeAsset(eqaDevId),\n },\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 [eqa.key]: withdraw.xTokens({\n balance: balance.systemEquilibrium(eqaDevId),\n destination: eqa,\n feePerWeight: 1,\n }),\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 { EqBalancesSuccessEvent } from '../../../extrinsic/eqBalances';\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.EQ];\nconst origin = chains[ChainKey.EquilibriumAlphanet];\nconst eqId = 25_969;\n\nexport const EQ: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.systemEquilibrium(eqId),\n extrinsic: extrinsic\n .eqBalances()\n .transferXcm()\n .successEvent(EqBalancesSuccessEvent.ExtrinsicSuccess)\n .asset(eqId)\n .feeAsset(eqId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.systemEquilibrium(eqId),\n destination: origin,\n feePerWeight: 3.5,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { EqBalancesSuccessEvent } from '../../../extrinsic/eqBalances';\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.EQD];\nconst feeAsset = assets[AssetSymbol.EQ];\nconst origin = chains[ChainKey.EquilibriumAlphanet];\nconst eqId = 25_969;\nconst eqdId = 6_648_164;\n\nexport const EQD: MoonbaseXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.systemEquilibrium(eqdId),\n sourceFeeBalance: balance.systemEquilibrium(eqId),\n xcmFeeAsset: {\n asset: feeAsset,\n balance: balance.systemEquilibrium(eqId),\n },\n extrinsic: extrinsic\n .eqBalances()\n .transferXcm()\n .successEvent(EqBalancesSuccessEvent.ExtrinsicSuccess)\n .asset(eqdId)\n .feeAsset(eqId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.systemEquilibrium(eqdId),\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 '../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 {\n assets,\n balance,\n chains,\n extrinsic,\n withdraw,\n} from '../moonbase.common';\nimport { MoonbaseXcmConfig } from '../moonbase.interfaces';\n\nconst asset = assets[AssetSymbol.PARING];\nconst origin = chains[ChainKey.DarwiniaPangoro];\n\nexport const PARING: MoonbaseXcmConfig = {\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 .V1V2()\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 '../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 .V1V2()\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 },\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 { EQ } from './assets/eq';\nimport { EQD } from './assets/eqd';\nimport { LIT } from './assets/lit';\nimport { NEER } from './assets/neer';\nimport { PARING } from './assets/paring';\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.EQ]: EQ,\n [AssetSymbol.EQD]: EQD,\n [AssetSymbol.LIT]: LIT,\n [AssetSymbol.NEER]: NEER,\n [AssetSymbol.PARING]: PARING,\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.EQ,\n AssetSymbol.EQD,\n AssetSymbol.DOT,\n AssetSymbol.GLMR,\n AssetSymbol.HDX,\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.EQ]: {\n id: '190590555344745888270686124937537713878',\n erc20Id: '0xffffffff8f6267e040d8a0638c576dfba4f0f6d6',\n originSymbol: AssetSymbol.EQ,\n },\n [AssetSymbol.EQD]: {\n id: '187224307232923873519830480073807488153',\n erc20Id: '0xffffffff8cda1707baf23834d211b08726b1e499',\n originSymbol: AssetSymbol.EQD,\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.HDX]: {\n id: '69606720909260275826784788104880799692',\n erc20Id: '0xffffffff345dc44ddae98df024eb494321e73fcc',\n originSymbol: AssetSymbol.HDX,\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 { AssetSymbol, 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.Equilibrium,\n ChainKey.HydraDX,\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.Equilibrium]: {\n key: ChainKey.Equilibrium,\n name: 'Equilibrium',\n ws: 'wss://node.pol.equilibrium.io',\n weight: 1_000_000_000,\n parachainId: 2011,\n moonAssetId: 1_735_159_154,\n ss58Format: 68,\n genesisHash:\n '0x89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907',\n assetsDecimals: {\n [AssetSymbol.GLMR]: 9,\n },\n },\n [ChainKey.HydraDX]: {\n key: ChainKey.HydraDX,\n name: 'HydraDX',\n ws: 'wss://hydradx.api.onfinality.io/public-ws',\n weight: 1_000_000_000,\n parachainId: 2034,\n moonAssetId: 16,\n ss58Format: 63,\n genesisHash:\n '0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d',\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 .V1V2()\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 },\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 { EqBalancesSuccessEvent } from '../../../extrinsic/eqBalances';\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.EQ];\nconst origin = chains[ChainKey.Equilibrium];\nconst eqId = 25_969;\n\nexport const EQ: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.systemEquilibrium(eqId),\n extrinsic: extrinsic\n .eqBalances()\n .transferXcm()\n .successEvent(EqBalancesSuccessEvent.ExtrinsicSuccess)\n .asset(eqId)\n .feeAsset(eqId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.systemEquilibrium(eqId),\n destination: origin,\n feePerWeight: 100,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport { EqBalancesSuccessEvent } from '../../../extrinsic/eqBalances';\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.EQD];\nconst feeAsset = assets[AssetSymbol.EQ];\nconst origin = chains[ChainKey.Equilibrium];\nconst eqId = 25_969;\nconst eqdId = 6_648_164;\n\nexport const EQD: MoonbeamXcmConfig = {\n asset,\n origin,\n deposit: {\n [origin.key]: {\n source: origin,\n balance: balance.systemEquilibrium(eqdId),\n sourceFeeBalance: balance.systemEquilibrium(eqId),\n xcmFeeAsset: {\n asset: feeAsset,\n balance: balance.systemEquilibrium(eqId),\n },\n extrinsic: extrinsic\n .eqBalances()\n .transferXcm()\n .successEvent(EqBalancesSuccessEvent.ExtrinsicSuccess)\n .asset(eqdId)\n .feeAsset(eqId),\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.systemEquilibrium(eqdId),\n destination: origin,\n feePerWeight: 0.0375,\n }),\n },\n};\n","import { AssetSymbol, ChainKey } from '../../../constants';\nimport {\n PolkadotXcmExtrinsicSuccessEvent,\n XTokensExtrinsicCurrencyTypes,\n XTokensExtrinsicSuccessEvent,\n XTransferExtrinsicSuccessEvent,\n} from '../../../extrinsic';\nimport { EqBalancesSuccessEvent } from '../../../extrinsic/eqBalances';\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 equilibrium = chains[ChainKey.Equilibrium];\nconst parallel = chains[ChainKey.Parallel];\nconst phala = chains[ChainKey.Phala];\nconst hydradx = chains[ChainKey.HydraDX];\n\nconst acalaGlmrId = getMoonAssetId(acala);\nconst astarGlmrId = getMoonAssetId(astar);\nconst bifrostGlmrId = getMoonAssetId(bifrost);\nconst equilibriumGlmrId = getMoonAssetId(equilibrium) as number;\nconst parallelGlmrId = getMoonAssetId(parallel);\nconst phalaGlmrId = getMoonAssetId(phala);\nconst hydradxGlmrId = getMoonAssetId(hydradx);\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 .V1V2()\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 [equilibrium.key]: {\n source: equilibrium,\n balance: balance.systemEquilibrium(equilibriumGlmrId),\n extrinsic: extrinsic\n .eqBalances()\n .transferXcm()\n .successEvent(EqBalancesSuccessEvent.ExtrinsicSuccess)\n .asset(equilibriumGlmrId)\n .feeAsset(equilibriumGlmrId),\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 .X2(10),\n },\n [hydradx.key]: {\n source: hydradx,\n balance: balance.tokens().tokensBase(hydradxGlmrId),\n sourceFeeBalance: balance.system(),\n extrinsic: extrinsic\n .xTokens()\n .transfer()\n .successEvent(XTokensExtrinsicSuccessEvent.TransferredMultiAssets)\n .origin(hydradx)\n .asset(hydradxGlmrId),\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 [equilibrium.key]: withdraw.xTokens({\n balance: balance.systemEquilibrium(equilibriumGlmrId),\n destination: equilibrium,\n feePerWeight: 0.125,\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 [hydradx.key]: withdraw.xTokens({\n balance: balance.tokens().tokensBase(hydradxGlmrId),\n destination: hydradx,\n feePerWeight: 12_500_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 '../moonbeam.common';\nimport { MoonbeamXcmConfig } from '../moonbeam.interfaces';\n\nconst asset = assets[AssetSymbol.HDX];\nconst origin = chains[ChainKey.HydraDX];\n\nexport const HDX: 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(0), // currencyId\n },\n },\n withdraw: {\n [origin.key]: withdraw.xTokens({\n balance: balance.system(),\n destination: origin,\n feePerWeight: 150,\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 .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 .V1V2()\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 .V1V2()\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 { EQ } from './assets/eq';\nimport { EQD } from './assets/eqd';\nimport { GLMR } from './assets/glmr';\nimport { HDX } from './assets/hdx';\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.EQ]: EQ,\n [AssetSymbol.EQD]: EQD,\n [AssetSymbol.DOT]: DOT,\n [AssetSymbol.GLMR]: GLMR,\n [AssetSymbol.HDX]: HDX,\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 usesEthereumAccounts: true,\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 .V1V2()\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 .V1V2()\n .here(),\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 },\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 .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 .V1V2()\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 .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 .V1V2()\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 .V1V2()\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 .V1V2()\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 .V1V2()\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":"AAAA,MAAO,wBCAP,MAAO,wBCAA,IAAKA,QACVA,EAAA,OAAS,SACTA,EAAA,cAAgB,gBAChBA,EAAA,WAAa,aACbA,EAAA,OAAS,SACTA,EAAA,OAAS,SALCA,QAAA,IAQAC,QACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,MAAQ,QACRA,EAAA,eAAiB,iBACjBA,EAAA,kBAAoB,oBALVA,QAAA,IAQAC,QACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,aAAe,eACfA,EAAA,YAAc,cACdA,EAAA,eAAiB,iBACjBA,EAAA,cAAgB,gBANNA,QAAA,IDUL,SAASC,GAEZ,CACF,MAAO,CACL,OAAAC,GACA,eAAAC,GACA,uBAAAC,GACA,oBAAAC,GACA,WAAAC,GACA,OAAAC,GACA,kBAAAC,GACA,OAAQ,IAAMC,GAAgB,CAChC,CACF,CAEA,SAASP,GAAOQ,EAAqC,CACnD,MAAO,CACL,gBACA,mBACA,KAAM,CAAC,SAAS,EAChB,UAAYC,GAAoB,CAACD,EAAOC,CAAO,EAC/C,KAAOC,GAAkBA,EAAQ,SAAS,CAC5C,CACF,CAEA,SAAST,GAAeO,EAAwC,CAC9D,MAAO,CACL,gBACA,iBACA,KAAM,CAAC,YAAY,EACnB,OAAQ,CAACA,CAAK,CAChB,CACF,CAEA,SAASN,GAAuBM,EAA+C,CAC7E,MAAO,CACL,uBACA,0BACA,KAAM,CAAC,gBAAgB,EACvB,OAAQ,CAAC,CAAE,eAAgBA,CAAM,CAAC,CACpC,CACF,CAEA,SAASL,GAAoBK,EAA+C,CAC1E,MAAO,CACL,uBACA,6BACA,KAAM,CAAC,gBAAgB,EACvB,OAAQ,CAAC,CAAE,OAAQA,CAAM,CAAC,CAC5B,CACF,CAEA,SAASJ,GAAWI,EAAyC,CAC3D,MAAO,CACL,oBACA,oBACA,KAAM,CAAC,EACP,UAAYC,GAAoB,CAACA,EAAS,CAAE,aAAcD,CAAM,CAAC,EACjE,KAAM,CAAC,CAAE,KAAAG,EAAM,OAAAC,CAAO,IACpB,OAAOD,EAAK,IAAIC,CAAM,EAAE,SAAS,CAAC,CACtC,CACF,CAEA,SAASP,IAA8B,CACrC,MAAO,CACL,gBACA,mBACA,KAAM,CAAC,MAAM,EACb,UAAYI,GAAoB,CAACA,CAAO,EACxC,KAAOI,GAAmE,CACxE,IAAMD,EACHC,EAAsC,YACtCA,EAAmC,OAEtC,OAAO,OAAOA,EAAK,KAAK,IAAID,CAAM,EAAE,SAAS,CAAC,CAChD,CACF,CACF,CAEA,SAASN,GAAkBQ,EAA4C,CACrE,MAAO,CACL,gBACA,mBACA,KAAM,CAAC,MAAM,EACb,UAAYL,GAAoB,CAACA,CAAO,EACxC,KAAOI,GAAS,CA/GpB,IAAAE,EAgHM,GAAIF,EAAK,QACP,OAAO,GAGT,IAAMG,EAAMH,EAAK,OAAO,EACpBI,EAUJ,GARI,MAAM,QAAQD,CAAG,IACnBC,EAAWD,GAGT,MAAM,SAASD,EAAAC,GAAA,YAAAA,EAAa,KAAb,YAAAD,EAAiB,OAAO,IACzCE,EAAYD,EAAY,GAAG,SAGzB,CAACC,EACH,MAAM,IAAI,MAAM,0CAA0C,EAG5D,IAAMP,EAAUO,EAAS,KAAK,CAAC,CAACC,CAAO,IAAMA,IAAYJ,CAAE,EAE3D,OAAKJ,EAIE,OAAOA,EAAQ,CAAC,EAAE,QAAQ,EAHxB,EAIX,CACF,CACF,CAEA,SAASH,IAAoD,CAC3D,MAAO,CACL,WAAaC,GAA6BW,EAAoBX,CAAK,EACnE,aAAeA,GACbW,EAAoB,CAAE,eAAkC,EAAGX,CAAM,CAAC,EACpE,cAAgBA,GACdW,EAAoB,CAAE,gBAAmC,EAAGX,CAAM,CAAC,EACrE,eAAiBA,GACfW,EAAoB,CAAE,iBAAoC,EAAGX,CAAM,CAAC,EACtE,MAAQA,GACNW,EAAoB,CAAE,QAA2B,EAAGX,CAAM,CAAC,EAC7D,OAASA,GACPW,EAAoB,CAAE,SAA4B,EAAGX,CAAM,CAAC,CAChE,CACF,CAEA,SAASW,EACPX,EAC8B,CAC9B,MAAO,CACL,gBACA,oBACA,KAAM,CAAC,EACP,UAAYC,GAAoB,CAACA,EAASD,CAAK,EAC/C,KAAM,CAAC,CAAE,KAAAG,EAAM,OAAAC,CAAO,IACpB,OAAOD,EAAK,IAAIC,CAAM,EAAE,SAAS,CAAC,CACtC,CACF,CEzKO,IAAKQ,OACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,GAAK,KACLA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,IAAM,MArCIA,OAAA,ICEL,IAAKC,QACVA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WACXA,EAAA,UAAY,YAHFA,QAAA,IAKCC,EAA+C,CAC1D,CAAC,eAA0B,EAAG,CAC5B,IAAK,gBACL,KAAM,iBACN,GAAI,0CACJ,YAAa,IACb,SAAU,GACV,QAAS,KACT,eAAgB,mBAChB,QAAS,CACP,oBAAqB,SACrB,oBAAqB,WACrB,mBAAoB,WAAe,WACnC,eAAgB,UAAc,SAChC,CACF,EACA,CAAC,UAAqB,EAAG,CACvB,IAAK,WACL,KAAM,WACN,GAAI,iCACJ,YAAa,KACb,SAAU,GACV,QAAS,KACT,eAAgB,qBAClB,EACA,CAAC,WAAsB,EAAG,CACxB,IAAK,YACL,KAAM,YACN,GAAI,2CACJ,YAAa,KACb,SAAU,GACV,QAAS,KACT,eAAgB,mBAClB,CACF,EAEYC,OACVA,EAAA,MAAQ,QACRA,EAAA,cAAgB,gBAChBA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,kBAAoB,oBACpBA,EAAA,gBAAkB,kBAClBA,EAAA,SAAW,WACXA,EAAA,KAAO,OACPA,EAAA,YAAc,cACdA,EAAA,SAAW,WACXA,EAAA,gBAAkB,kBAClBA,EAAA,YAAc,cACdA,EAAA,oBAAsB,sBACtBA,EAAA,QAAU,UACVA,EAAA,WAAa,aACbA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,iBAAmB,mBACnBA,EAAA,OAAS,SACTA,EAAA,aAAe,eACfA,EAAA,SAAW,WACXA,EAAA,cAAgB,gBAChBA,EAAA,MAAQ,QACRA,EAAA,SAAW,WACXA,EAAA,WAAa,aACbA,EAAA,OAAS,SACTA,EAAA,UAAY,YACZA,EAAA,kBAAoB,oBACpBA,EAAA,UAAY,YACZA,EAAA,YAAc,cAjCJA,OAAA,IC3CZ,OAAS,YAAAC,GAAU,eAAAC,OAAmB,iBCA/B,IAAKC,QACVA,EAAA,6BAA+B,+BAC/BA,EAAA,6BAA+B,+BAFrBA,QAAA,IAKAC,OACVA,EAAA,UAAY,YADFA,OAAA,ICLL,IAAKC,OACVA,EAAA,YAAc,cACdA,EAAA,UAAY,YACZA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,WAAa,aALHA,OAAA,ICCZ,OAAS,cAAAC,OAAkB,kBCUpB,IAAKC,QACVA,EAAA,GAAK,KACLA,EAAA,GAAK,KACLA,EAAA,GAAK,KAHKA,QAAA,IDPL,SAASC,GACdC,EACAC,EAAgB,EACJ,CACZ,GAAI,CAACD,EAAe,WAEpB,GAAM,CAAE,KAAAE,CAAK,EAAIF,EAAc,KAAK,KAAKC,CAAK,EACxCE,EAAWH,EAAc,KAAK,SAAS,WAAWE,EAAK,SAAS,CAAC,EACjEE,EAAMC,GAAWF,GAAA,YAAAA,EAAU,WAAW,EAE5C,GAAI,CAACC,EAAI,IACP,WAGF,IAAME,EAAW,MAAM,QAAQF,EAAI,GAAG,EAClCA,EAAI,IAAI,IAAKG,GAAMA,EAAE,IAAI,EACzB,CAACH,EAAI,IAAI,IAAI,EAEjB,GAAIE,EAAS,aAAsB,EACjC,WAGF,GAAIA,EAAS,aAAsB,EACjC,WAGF,GAAIA,EAAS,aAAsB,EACjC,WAGF,MAAM,IAAI,MAAM,wBAAwB,CAC1C,CErBO,SAASE,GACdC,EACAC,EACAC,EACAC,EAAmB,EACnB,CACA,OACEC,IACuB,CACvB,qBACA,UAAAJ,EACA,aAAcC,EACd,UAAW,CAAC,CACV,QAAAI,EACA,OAAAC,EACA,cAAAC,CACF,IAA+B,CAC7B,IAAMC,EAAUC,GAA4BF,CAAa,EAEzD,MAAO,CACL,CACE,CAACC,CAAO,EAAG,CACT,QAAAL,EACA,SAAU,CACR,GAAI,CACF,UAAWD,EAAO,WACpB,CACF,CACF,CACF,EACA,CACE,CAACM,CAAO,EAAG,CACT,QAAS,EACT,SAAU,CACR,GAAI,CACF,aAAc,CACZ,QAAS,MACT,IAAKH,CACP,CACF,CACF,CACF,CACF,EACA,CACE,CAACG,CAAO,EAAGJ,EAASE,CAAM,CAC5B,EACA,EACA,WACF,CACF,CACF,EACF,CCzDO,SAASI,GAAYC,EAAkB,CAC5C,MAAO,CACL,6BAA8B,IAAMC,GAA6BD,CAAK,EACtE,6BAA8B,IAAME,GAA6BF,CAAK,CACxE,CACF,CAEA,SAASC,GAA6BD,EAAkB,CACtD,MAAO,CACL,aAAeG,GAA4C,CACzD,IAAMC,EAAkBC,kCAEtBF,EACAH,CACF,EAEA,MAAO,CACL,KAAM,KAAO,CACX,KAAM,IACJI,EAAiBE,GAAW,CAC1B,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUA,CACZ,CACF,CACF,CAAC,EACH,GAAI,IACFF,EAAiBE,GAAW,CAC1B,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,eAAgB,CAClB,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUA,CACZ,CACF,CACF,CAAC,EACH,GAAI,CAACC,EAAwBC,IAC3BJ,EAAiBE,GAAW,CAC1B,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,CAAC,CACL,EACF,CACF,CACF,CACF,CAEA,SAASJ,GAA6BF,EAAkB,CACtD,MAAO,CACL,aAAeG,GAA4C,CACzD,IAAMC,EAAkBC,kCAEtBF,EACAH,CACF,EAEA,MAAO,CACL,KAAM,KAAO,CACX,GAAKO,GACHH,EAAiBE,GAAW,CAC1B,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWN,EAAM,WACnB,EACA,CACE,eAAgBO,CAClB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUD,CACZ,CACF,CACF,CAAC,CACL,EACF,CACF,CACF,CACF,CCpHO,SAASG,GAAUC,EAAkB,CAC1C,MAAO,CACL,6BAA8B,IAAMC,GAA6BD,CAAK,CACxE,CACF,CAEA,SAASC,GAA6BD,EAAkB,CACtD,MAAO,CACL,aAAeE,IAQN,CACL,GARsBC,kCAEtBD,EACAF,EACA,CACF,EAGsBI,GAAW,CAC7B,CACE,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,MACZ,CACF,EACA,IAAK,CACH,SAAUA,CACZ,CACF,CACF,CAAC,EACD,kBACF,EAEJ,CACF,CC3CO,IAAKC,QACVA,EAAA,SAAW,WACXA,EAAA,mBAAqB,qBACrBA,EAAA,wBAA0B,0BAHhBA,QAAA,IAMAC,OACVA,EAAA,YAAc,cACdA,EAAA,uBAAyB,yBACzBA,EAAA,2BAA6B,6BAHnBA,OAAA,IAMAC,OACVA,EAAA,aAAe,eACfA,EAAA,cAAgB,gBAChBA,EAAA,cAAgB,gBAChBA,EAAA,eAAiB,iBACjBA,EAAA,OAAS,SACTA,EAAA,cAAgB,gBAChBA,EAAA,YAAc,cACdA,EAAA,aAAe,eACfA,EAAA,MAAQ,QACRA,EAAA,OAAS,SAVCA,OAAA,ICLL,SAASC,GACdC,EACAC,EACoB,CAVtB,IAAAC,EAWE,IAAMC,GAAOD,EAAAD,GAAA,YAAAA,EAAe,KAAK,KAAK,GAAG,MAA5B,YAAAC,EAAiC,KAE9C,OAAKC,EAIDA,EAAK,GAAG,kBAAkB,EACrB,CACL,QAASH,CACX,EAGEG,EAAK,GAAG,kBAAkB,EACrB,CACL,QAAS,CAAE,QAASH,EAAQ,UAAW,CAAE,CAC3C,EAGKA,EAfEA,CAgBX,CCbO,SAASI,GAGdC,EAAkB,CAClB,MAAO,CACL,SAAU,IAAMC,GAA6BD,CAAK,EAClD,mBAAoB,IAAME,GAAuCF,CAAK,EACtE,wBAAyB,IACvBG,GAA4CH,CAAK,CACrD,CACF,CAEA,SAASC,GACPD,EACA,CACA,MAAO,CACL,aAAeI,IAAyC,CACtD,OAASC,IAA8B,CACrC,MACEC,IACuC,CACvC,iBACA,qBACA,aAAcF,EACd,UAAW,CAAC,CAAE,QAAAG,EAAS,OAAAC,EAAQ,cAAAC,CAAc,IAAM,CACjD,IAAMC,EAAUC,GAA4BF,EAAe,CAAC,EAE5D,MAAO,CACLH,EACAE,EACA,CACE,CAACE,CAAO,EAAG,CACT,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWV,EAAM,WACnB,EACA,CACE,aAAc,CACZ,QAAS,MACT,IAAKO,CACP,CACF,CACF,CACF,CACF,CACF,EACAK,GAAiBP,EAAO,OAAQI,CAAa,CAC/C,CACF,CACF,EACF,EACF,EACF,CACF,CAEA,SAASP,GAGPF,EAAkB,CAClB,MAAO,CACL,aAAeI,IAAyC,CACtD,OAASC,IAA8B,CACrC,MACEQ,IACiD,CACjD,iBACA,+BACA,aAAcT,EACd,UAAW,CAAC,CAAE,QAAAG,EAAS,OAAAC,EAAQ,cAAAC,CAAc,IAAM,CACjD,CACE,GAAI,CACF,GAAI,CACF,SAAU,CACR,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWJ,EAAO,WACpB,EACA,CACE,WAAYQ,EAAM,YACpB,CACF,CACF,CACF,CACF,EACA,IAAK,CACH,SAAUL,CACZ,CACF,CACF,EACA,CACE,GAAI,CACF,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWR,EAAM,WACnB,EACA,CACE,aAAc,CACZ,QAAS,MACT,IAAKO,CACP,CACF,CACF,CACF,CACF,CACF,EACAK,GAAiBP,EAAO,OAAQI,CAAa,CAC/C,CACF,EACF,EACF,EACF,CACF,CAEA,SAASN,GAGPH,EAAkB,CAClB,MAAO,CACL,aAAeI,IAAyC,CACtD,OAASC,IAA8B,CACrC,OAAQ,CACNQ,EACAC,KACsD,CACtD,iBACA,oCACA,aAAcV,EACd,UAAW,CAAC,CAAE,QAAAG,EAAS,OAAAC,EAAQ,cAAAC,EAAe,IAAAM,EAAM,EAAG,IAAM,CAC3D,CACE,CAACF,EAAOL,CAAM,EACd,CAACM,EAAUC,CAAG,CAChB,EACA,EACA,CACE,GAAI,CACF,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWf,EAAM,WACnB,EACA,CACE,aAAc,CACZ,QAAS,MACT,IAAKO,CACP,CACF,CACF,CACF,CACF,CACF,EACAK,GAAiBP,EAAO,OAAQI,CAAa,CAC/C,CACF,EACF,EACF,EACF,CACF,CCpLO,IAAKO,QACVA,EAAA,SAAW,WADDA,QAAA,IAIAC,QACVA,EAAA,UAAY,YACZA,EAAA,UAAY,YAFFA,QAAA,ICQL,SAASC,GAAUC,EAAkB,CAC1C,MAAO,CACL,SAAU,IAAMC,GAASD,CAAK,CAChC,CACF,CAEA,SAASC,GAASD,EAAkB,CAClC,MAAO,CACL,aAAeE,GAA0C,CACvD,IAAMC,EAAkBC,cAEtBF,EACAF,CACF,EAEA,MAAO,CACL,KAAM,IACJG,EAAgB,KAAO,CACrB,QAAS,EACT,SAAU,MACZ,EAAE,EACJ,GAAKE,GACHF,EAAgB,KAAO,CACrB,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWH,EAAM,WACnB,EACA,CACE,eAAgBK,CAClB,CACF,CACF,CACF,EAAE,CACN,CACF,CACF,CACF,CAEA,SAASD,GACPE,EACAJ,EACAF,EACA,CACA,OAAQO,IAAgE,CACtE,mBACA,UAAAD,EACA,aAAcJ,EACd,UAAW,CAAC,CAAE,QAAAM,EAAS,OAAAC,CAAO,IAAM,CAClC,CACE,GAAI,CACF,SAAUF,EAAY,CACxB,EACA,IAAK,CACH,SAAUE,CACZ,CACF,EACA,CACE,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWT,EAAM,WACnB,EACA,CACE,aAAc,CACZ,IAAKQ,CACP,CACF,CACF,CACF,CACF,EACA,CACE,QAAS,IACT,UAAW,CACb,CACF,CACF,EACF,CC9EO,SAASE,GAAWC,EAAkB,CAC3C,MAAO,CACL,YAAa,IAAMC,GAAYD,CAAK,EACpC,YAAa,IAAME,GAAYF,CAAK,CACtC,CACF,CAEA,SAASC,GAAYD,EAAkB,CACrC,MAAO,CACL,aAAeG,IAAmC,CAChD,MAAQC,IAAgB,CACtB,IAAMC,IAA+C,CACnD,oBACA,wBACA,aAAcF,EACd,UAAW,CAAC,CAAE,QAAAG,EAAS,OAAAC,CAAO,IAAM,CAClCH,EACAG,EACA,CACE,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWP,EAAM,WACnB,EACA,CACE,aAAc,CACZ,QAAS,MACT,IAAKM,CACP,CACF,CACF,CACF,CACF,EACAD,CACF,CACF,EACF,EACF,EACF,CACF,CAEA,SAASH,GAAYF,EAAkB,CACrC,MAAO,CACL,aAAeG,IAAmC,CAChD,MAAQK,IAAqB,CAC3B,SAAWC,IAA+C,CACxD,oBACA,wBACA,aAAcN,EACd,UAAW,CAAC,CAAE,QAAAG,EAAS,OAAAC,EAAQ,IAAAF,EAAM,EAAG,IAAM,CAC5C,IAAMK,EAAmBH,EAASF,EAAM,GAAKE,EAASF,EAAM,GAE5D,MAAO,CACL,CAACG,EAASA,IAAYC,EAAaC,EAAmBH,CAAM,EAC5D,CAACE,EAAYJ,CAAG,EAChB,CACE,QAAS,EACT,SAAU,CACR,GAAI,CACF,CACE,UAAWL,EAAM,WACnB,EACA,CACE,aAAc,CACZ,QAAS,MACT,IAAKM,CACP,CACF,CACF,CACF,CACF,CACF,CACF,CACF,EACF,EACF,EACF,CACF,CCnFO,SAASK,EAGdC,EAAkB,CAClB,MAAO,CACL,YAAa,IAAMC,GAAYD,CAAK,EACpC,UAAW,IAAME,GAAUF,CAAK,EAChC,QAAS,IAAMG,GAA4BH,CAAK,EAChD,UAAW,IAAMI,GAAUJ,CAAK,EAChC,WAAY,IAAMK,GAAWL,CAAK,CACpC,CACF,CdTO,SAASM,EACdC,EACAC,EACS,CAbX,IAAAC,EAcE,IAAMC,GAAKD,EAAAF,EAAM,aAAN,YAAAE,EAAmBD,GAE9B,GAAIG,GAAYD,CAAE,EAChB,MAAM,IAAI,MACR,uCAAuCH,EAAM,0BAA0BC,GACzE,EAGF,OAAOE,CACT,CAEO,SAASE,EACdJ,EACiB,CACjB,GAAIG,GAAYH,EAAM,WAAW,EAC/B,MAAM,IAAI,MAAM,oCAAoCA,EAAM,KAAK,EAGjE,OAAOA,EAAM,WACf,CAEO,SAASK,GACdL,EACQ,CACR,GAAIG,GAAYH,EAAM,cAAc,EAClC,MAAM,IAAI,MAAM,uCAAuCA,EAAM,KAAK,EAGpE,OAAOA,EAAM,cACf,CAEO,SAASM,EACdN,EACQ,CACR,GAAIG,GAAYH,EAAM,cAAc,EAClC,MAAM,IAAI,MAAM,uCAAuCA,EAAM,KAAK,EAGpE,OAAOA,EAAM,cACf,CAEO,SAASO,GACdC,EAC+D,CAC/D,OACEA,EAAU,oBACVA,EAAU,qCAEd,CAEO,SAASC,GACdC,EACS,CACT,OAAOC,GAASD,CAAa,EAAIA,EAAgBA,EAAc,YACjE,CAEO,SAASE,GACdC,EACW,CACX,OAAOF,GAASE,CAAU,EAAIA,EAAaA,EAAW,GACxD,CAEO,SAASC,GACdd,EACAe,EACQ,CACR,GAAI,CAACf,EAAM,QACT,MAAM,IAAI,MAAM,+BAA+BA,EAAM,KAAK,EAG5D,GAAM,CACJ,oBAAAgB,EACA,oBAAAC,EACA,mBAAAC,EACA,eAAAC,CACF,EAAInB,EAAM,QAEV,OACEgB,EACAC,EACAC,EACAC,EACAJ,CAEJ,CAEO,SAASK,GACdC,EACAC,EACQ,CACR,IAAMC,EAAkB,eAExB,OAAQF,EAAgBC,EAAkBC,CAC5C,CenGO,SAASC,IAA6B,CAC3C,MAAO,CACL,GAAI,KAAO,CACT,YAAa,CACXC,EACAC,EAAmB,KACa,CAChC,GAAI,CACF,QAAAA,EACA,SAAU,CACR,GAAI,CACF,UAAWD,CACb,CACF,CACF,EACA,0BAA2B,IAA4C,CACrEC,EACA,CAAC,YAAYD,EAAY,SAAS,EAAE,GAAG,CACzC,CACF,GACA,QAAS,CACPA,EACAC,EAAmB,KACe,CAClC,IAAMC,IAA6C,CACjD,QAAAD,EACA,SAAU,CACR,GAAI,CACF,CAAE,UAAWD,CAAY,EACzB,CACE,aAAc,CACZ,QAAS,MACT,IAAKE,CACP,CACF,CACF,CACF,CACF,EACF,EACF,EACF,CACF,CCvCO,SAASC,IAA+D,CAC7E,MAAO,CACL,cAAe,KAAO,CACpB,sBACEC,IAC8B,CAC9B,UAAW,CAAC,CACV,SAAAC,EACA,WAAAC,EACA,cAAAC,EACA,SAAAC,CACF,IAAsC,CACpC,IAAMC,EAAiBC,EAAkBN,CAAK,EAE9C,MAAO,CAEL,CACE,GAAI,CACF,QAAS,EACT,SAAU,CACR,GAAI,CACF,UAAWA,EAAM,WACnB,CACF,CACF,CACF,EACA,CACE,SAAU,CACR,gBAAiB,CACf,GAAI,CACF,QAAS,EACT,SAAU,CACR,GAAI,CACF,CAAE,UAAWA,EAAM,WAAY,EAC/B,CAAE,eAAgBK,CAAe,CACnC,CACF,CACF,CACF,CACF,EACA,UAAWH,CACb,EACAD,EACA,CACE,6BAA8BG,EAC9B,cAAAD,CACF,CACF,CACF,CACF,GACA,mCACEH,IAC2C,CAC3C,UAAW,CAAC,CACV,SAAAC,EACA,WAAAC,EACA,cAAAC,EACA,SAAAC,CACF,IAA6D,CAC3D,IAAMC,EAAiBC,EAAkBN,CAAK,EACxCO,EAAc,YAAYP,EAAM,YAAY,SAAS,EAAE,IAE7D,MAAO,CACL,YAAa,CAAC,EAAG,CAACO,CAAW,CAAC,EAC9B,MAAO,CAAC,EAAG,CAACA,EAAa,QAAQF,GAAgB,CAAC,EAClD,SAAAD,EACA,SAAAH,EACA,WAAAC,EACA,cAAAC,CACF,CACF,CACF,EACF,EACF,CACF,CCpFA,OAAS,YAAAK,OAAgB,iBACzB,OAAS,iBAAAC,OAAqB,wBAQvB,SAASC,GAEZ,CACF,MAAO,CACL,QAAUC,GACRC,GAAiBD,CAAO,CAC5B,CACF,CAEA,SAASC,GAAmD,CAC1D,QAAAC,EACA,YAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,OAAAC,EAAS,GACX,EAAoE,CAClE,MAAO,CACL,QAAAL,EACA,YAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,OAAAC,EACA,UAAW,CAACC,EAAiBC,EAAuB,KAAU,CAC5D,GAAM,CAAE,YAAAC,CAAY,EAAIP,EAMlBQ,EAAM,KAFQF,EAAuB,KAAO,OAEnBZ,GAC7BC,GAAcU,CAAO,EACrB,GACA,EACF,MAEA,MAAO,CACL,EACAE,EAAc,CAAC,YAAYA,EAAY,SAAS,EAAE,IAAKC,CAAG,EAAI,CAACA,CAAG,CACpE,CACF,CACF,CACF,CChDO,IAAMC,GAAyB,gEAWtC,EAEaC,EAAiD,CAC5D,MAAgB,EAAG,CACjB,GAAI,yCACJ,QAAS,6CACT,kBACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,MAAgB,EAAG,CACjB,GAAI,GACJ,QAAS,6CACT,mBACA,SAAU,EACZ,EACA,KAAe,EAAG,CAChB,GAAI,0CACJ,QAAS,6CACT,iBACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,MAAgB,EAAG,CACjB,GAAI,yCACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,yCACJ,QAAS,6CACT,mBACF,EACA,SAAmB,EAAG,CACpB,GAAI,0CACJ,QAAS,6CACT,qBACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,mBACA,WAAY,CACV,oBAA2B,EAAG,CAChC,CACF,EACA,OAAiB,EAAG,CAClB,GAAI,yCACJ,QAAS,6CACT,mBACF,CACF,ECpEO,IAAMC,GAAyB,gJAStC,EAEaC,EAAiD,CAC5D,gBAAuB,EAAG,CACxB,oBACA,KAAM,iBACN,GAAI,+DACJ,OAAQ,IACR,YAAa,EACb,WAAY,GACZ,YACE,oEACJ,EACA,oBAA2B,EAAG,CAC5B,wBACA,KAAM,sBACN,GAAI,iCACJ,OAAQ,IACR,YAAa,KACb,YAAa,EACb,WAAY,IACZ,YACE,oEACJ,EACA,kBAAyB,EAAG,CAC1B,sBACA,KAAM,UACN,GAAI,qCACJ,OAAQ,IACR,YAAa,KACb,qBAAsB,GACtB,YACE,oEACJ,EACA,sBAA6B,EAAG,CAC9B,0BACA,KAAM,sBACN,GAAI,oDACJ,OAAQ,IACR,YAAa,KACb,YAAa,WACb,WAAY,GACZ,YACE,qEACF,eAAgB,CACd,MAAgB,EAAG,CACrB,CACF,EACA,mBAA0B,EAAG,CAC3B,uBACA,KAAM,oBACN,GAAI,4CACJ,OAAQ,IACR,YAAa,KACb,WAAY,IACZ,YACE,oEACJ,EACA,eAAsB,EAAG,CACvB,mBACA,KAAM,gBACN,GAAI,8DACJ,OAAQ,IACR,eAAgB,EAChB,YAAa,IACb,eAAgB,mBAChB,WAAY,EACZ,YACE,qEACF,QAAS,CACP,oBAAqB,SACrB,oBAAqB,WACrB,mBAAoB,WAAe,WACnC,eAAgB,UAAc,SAChC,CACF,EACA,oBAA2B,EAAG,CAC5B,wBACA,KAAM,qBACN,GAAI,6DACJ,OAAQ,IACR,YAAa,KACb,eAAgB,GAChB,WAAY,GACZ,YACE,oEACJ,EACA,cAAqB,EAAG,CACtB,kBACA,KAAM,kBACN,GAAI,oCACJ,OAAQ,IACR,YAAa,KACb,WAAY,IACZ,YACE,oEACJ,CACF,EClGO,IAAMC,GAAWC,iBAAsC,EACjDC,EAAUC,EAAqC,EAC/CC,EAAYC,EACvBL,EACF,EACaM,EAAWC,EAAsC,EACjDC,GAAWC,GAAsC,EACjDC,GAAgBC,GAA2B,ECLxD,IAAMC,GAAQC,OAAsB,EAC9BC,EAASC,eAA2B,EAE7BC,GAAyB,CACpC,MAAAJ,GACA,OAAAE,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,CAAM,EACb,MAAM,CAAE,gBAA4C,EAAG,MAAO,CAAC,CACpE,CACF,EACA,SAAU,CACR,CAACA,EAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,EACb,aAAc,CAChB,CAAC,CACH,CACF,ECzBA,IAAMM,GAAQC,QAAuB,EAC/BC,EAASC,qBAAiC,EAEnCC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,CAAM,EACb,MAAM,CAAE,cAA0C,EAAG,CAAE,CAAC,CAC7D,CACF,EACA,SAAU,CACR,CAACA,EAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,EACb,aAAc,GAChB,CAAC,CACH,CACF,ECvBA,IAAMM,GAAQC,OAAsB,EAC9BC,GAAWD,QAAuB,EAClCE,EAASC,qBAAiC,EAC1CC,GAAqBC,GAAK,SAC9BH,EAAO,GACT,EAEaI,GAAyB,CACpC,MAAAP,GACA,OAAAG,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASK,EAAQ,OAAO,EAAE,eAAe,CAAC,EAC1C,iBAAkBA,EAAQ,OAAO,EACjC,YAAa,CACX,MAAON,GACP,QAASM,EAAQ,OAAO,CAC1B,EACA,UAAWC,EACR,QAAQ,EACR,wBAAwB,EACxB,qCAAgE,EAChE,OAAON,CAAM,EACb,OACC,CACE,iBAA6C,EAAG,CAClD,EACA,CACE,cAA0C,EAAG,CAC/C,CACF,CACJ,CACF,EACA,SAAU,CACR,CAACA,EAAO,GAAG,EAAGO,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EAAE,eAAe,CAAC,EAC1C,YAAaL,EACb,aAAcE,GAAmB,aACjC,OAAQA,GAAmB,OAC3B,YAAa,CACX,MAAOH,GACP,QAAS,CACP,YAAaM,EAAQ,OAAO,EAC5B,OAAQA,EAAQ,OAAON,GAAS,EAAE,CACpC,CACF,CACF,CAAC,CACH,CACF,EChDA,IAAMS,GAAQC,OAAsB,EAC9BC,GAAMC,uBAAmC,EACzCC,EAAUD,qBAAiC,EAE3CE,GAAeC,EAAeF,CAAO,EACrCG,GAAWD,EAAeJ,EAAG,EAEtBM,GAAyB,CACpC,MAAAR,GACA,OAAQS,GACR,QAAS,CACP,CAACP,GAAI,GAAG,EAAG,CACT,OAAQA,GACR,QAASQ,EAAQ,kBAAkBH,EAAQ,EAC3C,UAAWI,EACR,WAAW,EACX,YAAY,EACZ,+BAAoD,EACpD,MAAMJ,EAAQ,EACd,SAASA,EAAQ,CACtB,EACA,CAACH,EAAQ,GAAG,EAAG,CACb,OAAQA,EACR,QAASM,EAAQ,OAAO,EAAE,cAAcL,EAAY,EACpD,iBAAkBK,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOP,CAAO,EACd,MAAM,CAAE,gBAA4C,EAAGC,EAAa,CAAC,CAC1E,CACF,EACA,SAAU,CACR,CAACH,GAAI,GAAG,EAAGU,EAAS,QAAQ,CAC1B,QAASF,EAAQ,kBAAkBH,EAAQ,EAC3C,YAAaL,GACb,aAAc,CAChB,CAAC,EACD,CAACE,EAAQ,GAAG,EAAGQ,EAAS,QAAQ,CAC9B,QAASF,EAAQ,OAAO,EAAE,cAAcL,EAAY,EACpD,YAAaD,EACb,aAAc,GAChB,CAAC,CACH,CACF,ECnDA,IAAMS,GAAQC,MAAqB,EAC7BC,GAASC,uBAAmC,EAC5CC,GAAO,MAEAC,GAAwB,CACnC,MAAAL,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASI,EAAQ,kBAAkBF,EAAI,EACvC,UAAWG,EACR,WAAW,EACX,YAAY,EACZ,+BAAoD,EACpD,MAAMH,EAAI,EACV,SAASA,EAAI,CAClB,CACF,EACA,SAAU,CACR,CAACF,GAAO,GAAG,EAAGM,EAAS,QAAQ,CAC7B,QAASF,EAAQ,kBAAkBF,EAAI,EACvC,YAAaF,GACb,aAAc,GAChB,CAAC,CACH,CACF,EC1BA,IAAMO,GAAQC,OAAsB,EAC9BC,GAAWD,MAAqB,EAChCE,GAASC,uBAAmC,EAC5CC,GAAO,MACPC,GAAQ,QAEDC,GAAyB,CACpC,MAAAP,GACA,OAAAG,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASK,EAAQ,kBAAkBF,EAAK,EACxC,iBAAkBE,EAAQ,kBAAkBH,EAAI,EAChD,YAAa,CACX,MAAOH,GACP,QAASM,EAAQ,kBAAkBH,EAAI,CACzC,EACA,UAAWI,EACR,WAAW,EACX,YAAY,EACZ,+BAAoD,EACpD,MAAMH,EAAK,EACX,SAASD,EAAI,CAClB,CACF,EACA,SAAU,CACR,CAACF,GAAO,GAAG,EAAGO,EAAS,QAAQ,CAC7B,QAASF,EAAQ,kBAAkBF,EAAK,EACxC,YAAaH,GACb,aAAc,CAChB,CAAC,CACH,CACF,ECjCA,IAAMQ,GAAQC,OAAsB,EAC9BC,EAASC,oBAAgC,EAElCC,GAAyB,CACpC,MAAAJ,GACA,OAAAE,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,CAAM,EACb,MAAM,aAAa,CACxB,CACF,EACA,SAAU,CACR,CAACA,EAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,EACb,aAAc,CAChB,CAAC,CACH,CACF,ECzBA,IAAMM,GAAQC,UAAyB,EACjCC,GAASC,mBAA+B,EAEjCC,GAA4B,CACvC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,GAAG,CACR,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECxBA,IAAMM,GAAQC,OAAsB,EAC9BC,EAASC,qBAAiC,EAC1CC,GAAgBC,EAAkBL,GAAOE,EAAO,GAAG,EAE5CI,GAAyB,CACpC,MAAAN,GACA,OAAAE,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASK,EAAQ,OAAOH,EAAa,EACrC,iBAAkBG,EAAQ,OAAO,EACjC,iBAAkBA,EAAQ,eAAeH,EAAa,EACtD,UAAWI,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,GAAGC,EAAkBP,CAAM,EAAGE,EAAa,CAChD,CACF,EACA,SAAU,CACR,CAACF,EAAO,GAAG,EAAGQ,EAAS,QAAQ,CAC7B,QAASH,EAAQ,OAAOH,EAAa,EACrC,iBAAkBG,EAAQ,eAAeH,EAAa,EACtD,YAAaF,EACb,aAAc,MAChB,CAAC,CACH,CACF,EC9BA,IAAMS,GAAQC,QAAuB,EAC/BC,GAASC,iBAA6B,EAE/BC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,UAAU,EACV,6BAA6B,EAC7B,wBAAuD,CAC5D,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,KAChB,CAAC,CACH,CACF,ECpBO,IAAMM,GAAuC,CAClD,MAAgB,EAAGC,GACnB,MAAgB,EAAGC,GACnB,MAAgB,EAAGC,GACnB,KAAe,EAAGC,GAClB,MAAgB,EAAGC,GACnB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,SAAmB,EAAGC,GACtB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,EACtB,ECdA,IAAMC,GAAOC,gBAA4B,EACnCC,GAAiBC,GAAkBH,EAAI,EAEhCI,GAA+B,CAC1C,MAAOJ,GACP,eAAAE,GACA,QAASG,EAAQ,OAAO,EACxB,KAAM,CACJ,cAAe,CACb,QAASC,GAAc,GAAG,EAAE,QAAQN,GAAK,WAAW,CACtD,EACA,SAAUO,GAAS,cAAc,EAAE,sBAAsBP,EAAI,CAC/D,EACA,GAAI,CACF,cAAe,CACb,QAASM,GAAc,GAAG,EAAE,QAAQE,GAAS,WAAW,CAC1D,EACA,SAAUD,GAAS,cAAc,EAAE,mCAAmCP,EAAI,CAC5E,CACF,EC1BO,IAAMS,GAAqD,CAChE,eAAsB,EAAGC,EAC3B,ECFO,IAAMC,GAAyB,iGAgBtC,EAEaC,EAAiD,CAC5D,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,KAAe,EAAG,CAChB,GAAI,0CACJ,QAAS,6CACT,iBACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,MAAgB,EAAG,CACjB,GAAI,yCACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,GACJ,QAAS,6CACT,oBACA,SAAU,EACZ,EACA,MAAgB,EAAG,CACjB,GAAI,yCACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,OAAiB,EAAG,CAClB,GAAI,yCACJ,QAAS,6CACT,mBACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,oBACA,WAAY,CACV,YAAmB,EAAG,IACxB,CACF,CACF,EClGO,IAAMC,GAAyB,0HAYtC,EAEaC,EAAiD,CAC5D,QAAe,EAAG,CAChB,YACA,KAAM,QACN,GAAI,oCACJ,OAAQ,IACR,YAAa,IACb,YAAa,EACb,WAAY,GACZ,YACE,oEACJ,EACA,QAAe,EAAG,CAChB,YACA,KAAM,QACN,GAAI,0BACJ,OAAQ,IACR,YAAa,KACb,YAAa,sBACb,eAAgB,GAChB,WAAY,EACZ,YACE,oEACJ,EACA,kBAAyB,EAAG,CAC1B,sBACA,KAAM,UACN,GAAI,sCACJ,OAAQ,IACR,YAAa,KACb,YAAa,EACb,WAAY,EACZ,YACE,oEACJ,EACA,WAAkB,EAAG,CACnB,eACA,KAAM,WACN,GAAI,uCACJ,OAAQ,IACR,YAAa,KACb,WAAY,GACZ,YACE,oEACJ,EACA,cAAqB,EAAG,CACtB,kBACA,KAAM,cACN,GAAI,gCACJ,OAAQ,IACR,YAAa,KACb,YAAa,WACb,WAAY,GACZ,YACE,qEACF,eAAgB,CACd,OAAiB,EAAG,CACtB,CACF,EACA,UAAiB,EAAG,CAClB,cACA,KAAM,UACN,GAAI,4CACJ,OAAQ,IACR,YAAa,KACb,YAAa,GACb,WAAY,GACZ,YACE,oEACJ,EACA,WAAkB,EAAG,CACnB,eACA,KAAM,WACN,GAAI,6CACJ,OAAQ,IACR,YAAa,KACb,WAAY,KACZ,YACE,oEACJ,EACA,WAAkB,EAAG,CACnB,eACA,KAAM,WACN,GAAI,wBACJ,OAAQ,IACR,YAAa,KACb,YAAa,IACb,WAAY,IACZ,YACE,oEACJ,EACA,QAAe,EAAG,CAChB,YACA,KAAM,QACN,GAAI,6BACJ,OAAQ,IACR,YAAa,KACb,YAAa,EACb,WAAY,GACZ,YACE,oEACJ,EACA,WAAkB,EAAG,CACnB,eACA,KAAM,WACN,GAAI,wBACJ,OAAQ,IACR,YAAa,EACb,WAAY,GACZ,YACE,oEACJ,EACA,YAAmB,EAAG,CACpB,gBACA,KAAM,YACN,GAAI,kCACJ,OAAQ,IACR,YAAa,IACb,eAAgB,GAChB,WAAY,GACZ,YACE,oEACJ,CACF,ECnIO,IAAMC,GAAWC,YAAiC,EAC5CC,EAAUC,EAAqC,EAC/CC,EAAYC,EACvBL,EACF,EACaM,EAAWC,EAAsC,ECD9D,IAAMC,GAAQC,OAAsB,EAC9BC,EAASC,SAAqB,EAEvBC,GAAyB,CACpC,MAAAJ,GACA,OAAAE,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,CAAM,EACb,MAAM,CACL,QAAoC,EAAGF,GAAM,YAC/C,CAAC,CACL,CACF,EACA,SAAU,CACR,CAACE,EAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,EACb,aAAc,CAChB,CAAC,CACH,CACF,EC9BA,IAAMM,GAAQC,QAAuB,EAC/BC,GAASC,SAAqB,EAEvBC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,KAAK,CACV,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECtBA,IAAMM,GAAQC,QAAuB,EAC/BC,EAASC,SAAqB,EAEvBC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASG,EAAQ,OAAO,EAAE,MAAML,GAAM,YAAY,EAClD,iBAAkBK,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,CAAM,EACb,MAAM,CACL,QAAoC,EAAGF,GAAM,YAC/C,CAAC,CACL,CACF,EACA,SAAU,CACR,CAACE,EAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EAAE,MAAML,GAAM,YAAY,EAClD,YAAaE,EACb,aAAc,EAChB,CAAC,CACH,CACF,EC5BA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,mBAA+B,EAEjCC,GAAyB,CACpC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAM,CACL,SAAqC,EAAGF,GAAM,YAChD,CAAC,CACL,CACF,EACA,SAAU,CACR,CAACE,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,EAChB,CAAC,CACH,CACF,EC9BA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,YAAwB,EAE1BC,GAAyB,CACpC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,UAAU,EACV,6BAA6B,EAC7B,wBAAuD,CAC5D,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECvBA,IAAMM,GAAQC,MAAqB,EAC7BC,GAASC,eAA2B,EACpCC,GAAO,MAEAC,GAAwB,CACnC,MAAAL,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASI,EAAQ,kBAAkBF,EAAI,EACvC,UAAWG,EACR,WAAW,EACX,YAAY,EACZ,+BAAoD,EACpD,MAAMH,EAAI,EACV,SAASA,EAAI,CAClB,CACF,EACA,SAAU,CACR,CAACF,GAAO,GAAG,EAAGM,EAAS,QAAQ,CAC7B,QAASF,EAAQ,kBAAkBF,EAAI,EACvC,YAAaF,GACb,aAAc,GAChB,CAAC,CACH,CACF,EC1BA,IAAMO,GAAQC,OAAsB,EAC9BC,GAAWD,MAAqB,EAChCE,GAASC,eAA2B,EACpCC,GAAO,MACPC,GAAQ,QAEDC,GAAyB,CACpC,MAAAP,GACA,OAAAG,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASK,EAAQ,kBAAkBF,EAAK,EACxC,iBAAkBE,EAAQ,kBAAkBH,EAAI,EAChD,YAAa,CACX,MAAOH,GACP,QAASM,EAAQ,kBAAkBH,EAAI,CACzC,EACA,UAAWI,EACR,WAAW,EACX,YAAY,EACZ,+BAAoD,EACpD,MAAMH,EAAK,EACX,SAASD,EAAI,CAClB,CACF,EACA,SAAU,CACR,CAACF,GAAO,GAAG,EAAGO,EAAS,QAAQ,CAC7B,QAASF,EAAQ,kBAAkBF,EAAK,EACxC,YAAaH,GACb,aAAc,KAChB,CAAC,CACH,CACF,ECzBA,IAAMQ,GAAQC,QAAuB,EAC/BC,GAAQC,SAAqB,EAC7BC,GAAQD,SAAqB,EAC7BE,GAAUF,mBAA+B,EACzCG,GAAcH,eAA2B,EACzCI,GAAWJ,YAAwB,EACnCK,GAAQL,SAAqB,EAC7BM,GAAUN,WAAuB,EAEjCO,GAAcC,EAAeT,EAAK,EAClCU,GAAcD,EAAeP,EAAK,EAClCS,GAAgBF,EAAeN,EAAO,EACtCS,GAAoBH,EAAeL,EAAW,EAC9CS,GAAiBJ,EAAeJ,EAAQ,EACxCS,GAAcL,EAAeH,EAAK,EAClCS,GAAgBN,EAAeF,EAAO,EAE/BS,GAA0B,CACrC,MAAAlB,GACA,OAAQmB,GACR,QAAS,CACP,CAACjB,GAAM,GAAG,EAAG,CACX,OAAQA,GACR,QAASkB,EAAQ,OAAO,EAAE,aAAaV,EAAW,EAClD,iBAAkBU,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOnB,EAAK,EACZ,MAAM,CACL,eAA2C,EAAGQ,EAChD,CAAC,CACL,EACA,CAACN,GAAM,GAAG,EAAG,CACX,OAAQA,GACR,QAASgB,EAAQ,OAAOR,EAAW,EACnC,iBAAkBQ,EAAQ,OAAO,EACjC,UAAWC,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,GAAGC,EAAkBlB,EAAK,CAAC,CAChC,EACA,CAACC,GAAQ,GAAG,EAAG,CACb,OAAQA,GACR,QAASe,EAAQ,OAAO,EAAE,OAAOP,EAAa,EAC9C,iBAAkBO,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOhB,EAAO,EACd,MAAM,CACL,SAAqC,EAAGQ,EAC1C,CAAC,CACL,EACA,CAACP,GAAY,GAAG,EAAG,CACjB,OAAQA,GACR,QAASc,EAAQ,kBAAkBN,EAAiB,EACpD,UAAWO,EACR,WAAW,EACX,YAAY,EACZ,+BAAoD,EACpD,MAAMP,EAAiB,EACvB,SAASA,EAAiB,CAC/B,EACA,CAACP,GAAS,GAAG,EAAG,CACd,OAAQA,GACR,QAASa,EAAQ,OAAOL,EAAc,EACtC,iBAAkBK,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOd,EAAQ,EACf,MAAMQ,EAAc,CACzB,EACA,CAACP,GAAM,GAAG,EAAG,CACX,OAAQA,GACR,QAASY,EAAQ,OAAOJ,EAAW,EACnC,iBAAkBI,EAAQ,OAAO,EACjC,UAAWC,EACR,UAAU,EACV,SAAS,EACT,wBAAqD,EACrD,GAAG,EAAE,CACV,EACA,CAACZ,GAAQ,GAAG,EAAG,CACb,OAAQA,GACR,QAASW,EAAQ,OAAO,EAAE,WAAWH,EAAa,EAClD,iBAAkBG,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOZ,EAAO,EACd,MAAMQ,EAAa,CACxB,CACF,EACA,SAAU,CACR,CAACf,GAAM,GAAG,EAAGqB,EAAS,QAAQ,CAC5B,QAASH,EAAQ,OAAO,EAAE,aAAaV,EAAW,EAClD,YAAaR,GACb,aAAc,IACd,iBAAkBkB,EAAQ,uBAAuBV,EAAW,CAC9D,CAAC,EACD,CAACN,GAAM,GAAG,EAAGmB,EAAS,QAAQ,CAC5B,QAASH,EAAQ,OAAOR,EAAW,EACnC,YAAaR,GACb,aAAc,GAChB,CAAC,EACD,CAACC,GAAQ,GAAG,EAAGkB,EAAS,QAAQ,CAC9B,QAASH,EAAQ,OAAO,EAAE,OAAOP,EAAa,EAC9C,YAAaR,GACb,aAAc,GACd,iBAAkBe,EAAQ,oBAAoBP,EAAa,CAC7D,CAAC,EACD,CAACP,GAAY,GAAG,EAAGiB,EAAS,QAAQ,CAClC,QAASH,EAAQ,kBAAkBN,EAAiB,EACpD,YAAaR,GACb,aAAc,IAChB,CAAC,EACD,CAACC,GAAS,GAAG,EAAGgB,EAAS,QAAQ,CAC/B,QAASH,EAAQ,OAAOL,EAAc,EACtC,YAAaR,GACb,aAAc,CAChB,CAAC,EACD,CAACC,GAAM,GAAG,EAAGe,EAAS,QAAQ,CAC5B,QAASH,EAAQ,OAAOJ,EAAW,EACnC,YAAaR,GACb,aAAc,GAChB,CAAC,EACD,CAACC,GAAQ,GAAG,EAAGc,EAAS,QAAQ,CAC9B,QAASH,EAAQ,OAAO,EAAE,WAAWH,EAAa,EAClD,YAAaR,GACb,aAAc,KAChB,CAAC,CACH,CACF,ECpJA,IAAMe,GAAQC,OAAsB,EAC9BC,GAASC,WAAuB,EAEzBC,GAAyB,CACpC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAM,CAAC,CACZ,CACF,EACA,SAAU,CACR,CAACA,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECtBA,IAAMM,GAAQC,QAAuB,EAC/BC,GAAWD,QAAuB,EAClCE,GAASC,YAAwB,EAE1BC,GAA0B,CACrC,MAAAL,GACA,OAAAG,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EAAE,MAAMN,GAAM,YAAY,EAClD,iBAAkBM,EAAQ,OAAO,EAAE,MAAMJ,GAAS,YAAY,EAC9D,YAAa,CACX,MAAOA,GACP,QAASI,EAAQ,OAAO,EAAE,MAAMJ,GAAS,YAAY,CACvD,EACA,UAAWK,EACR,QAAQ,EACR,wBAAwB,EACxB,qCAAgE,EAChE,OAAOJ,EAAM,EACb,OACC,CACE,QAAoC,EAAGH,GAAM,YAC/C,EACA,CACE,QAAoC,EAAGE,GAAS,YAClD,CACF,CACJ,CACF,EACA,SAAU,CACR,CAACC,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EAAE,MAAMN,GAAM,YAAY,EAClD,YAAaG,GACb,aAAc,MAChB,CAAC,CACH,CACF,ECtCA,IAAMM,GAAQC,QAAuB,EAC/BC,GAASC,YAAwB,EAE1BC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EAAE,MAAML,GAAM,YAAY,EAClD,UAAWM,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAM,CAAE,QAAoC,EAAGF,GAAM,YAAa,CAAC,CACxE,CACF,EACA,SAAU,CACR,CAACE,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EAAE,MAAML,GAAM,YAAY,EAClD,YAAaE,GACb,aAAc,IAChB,CAAC,CACH,CACF,EC5BA,IAAMM,GAAQC,QAAuB,EAC/BC,GAASC,YAAwB,EAE1BC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,mBAAmB,EACnB,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAMF,EAAK,CAChB,CACF,EACA,SAAU,CACR,CAACE,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,EAChB,CAAC,CACH,CACF,ECzBA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,SAAqB,EAEvBC,GAAgC,CAC3C,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,UAAU,EACV,SAAS,EACT,wBAAqD,EACrD,KAAK,CACV,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,EAChB,CAAC,CACH,CACF,ECxBA,IAAMM,GAAQC,QAAuB,EAC/BC,GAASC,YAAwB,EAE1BC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,GAAG,CACR,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECxBA,IAAMM,GAAQC,QAAuB,EAC/BC,EAASC,aAAyB,EAClCC,GAAgBC,EAAkBL,GAAOE,EAAO,GAAG,EAE5CI,GAA0B,CACrC,MAAAN,GACA,OAAAE,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASK,EAAQ,OAAOH,EAAa,EACrC,iBAAkBG,EAAQ,OAAO,EACjC,iBAAkBA,EAAQ,eAAeH,EAAa,EACtD,UAAWI,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,GAAGC,EAAkBP,CAAM,EAAGE,EAAa,CAChD,CACF,EACA,SAAU,CACR,CAACF,EAAO,GAAG,EAAGQ,EAAS,QAAQ,CAC7B,QAASH,EAAQ,OAAOH,EAAa,EACrC,iBAAkBG,EAAQ,eAAeH,EAAa,EACtD,YAAaF,EACb,aAAc,MAChB,CAAC,CACH,CACF,ECtBO,IAAMS,GAAuC,CAClD,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,OAAiB,EAAGC,GACpB,MAAgB,EAAGC,GACnB,KAAe,EAAGC,GAClB,MAAgB,EAAGC,GACnB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,OAAiB,EAAGC,GACpB,OAAiB,EAAGC,GACpB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,OAAiB,EAAGC,EACtB,EC/BO,IAAMC,GAA0B,oHAmBvC,EAEaC,EAAmD,CAC9D,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,MAAgB,EAAG,CACjB,GAAI,yCACJ,QAAS,6CACT,kBACF,EACA,MAAgB,EAAG,CACjB,GAAI,yCACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,MAAgB,EAAG,CACjB,GAAI,yCACJ,QAAS,6CACT,kBACF,EACA,MAAgB,EAAG,CACjB,GAAI,yCACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,GACJ,QAAS,6CACT,oBACA,SAAU,EACZ,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,oBACA,WAAY,CACV,YAAmB,EAAG,CACxB,CACF,EACA,MAAgB,EAAG,CACjB,GAAI,yCACJ,QAAS,6CACT,kBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,mBACF,EACA,OAAiB,EAAG,CAClB,GAAI,0CACJ,QAAS,6CACT,oBACA,WAAY,CACV,YAAmB,EAAG,IACxB,CACF,EACA,MAAgB,EAAG,CACjB,GAAI,0CACJ,QAAS,6CACT,kBACF,CACF,ECvHO,IAAMC,GAA0B,kJAevC,EAEaC,EAAmD,CAC9D,UAAiB,EAAG,CAClB,cACA,KAAM,UACN,GAAI,iCACJ,OAAQ,IACR,YAAa,KACb,WAAY,EACZ,YACE,oEACJ,EACA,WAAkB,EAAG,CACnB,eACA,KAAM,WACN,GAAI,4BACJ,OAAQ,IACR,YAAa,KACb,YAAa,GACb,WAAY,GACZ,YACE,oEACJ,EACA,cAAqB,EAAG,CACtB,kBACA,KAAM,eACN,GAAI,kCACJ,OAAQ,IACR,YAAa,KACb,YAAa,yCACb,WAAY,GACZ,YACE,oEACJ,EACA,OAAc,EAAG,CACf,WACA,KAAM,gBACN,GAAI,4CACJ,OAAQ,IACR,YAAa,KACb,qBAAsB,GACtB,YACE,oEACJ,EACA,aAAoB,EAAG,CACrB,iBACA,KAAM,aACN,GAAI,sDACJ,OAAQ,IACR,YAAa,KACb,WAAY,GACZ,YACE,oEACJ,EACA,SAAgB,EAAG,CACjB,aACA,KAAM,SACN,GAAI,qCACJ,OAAQ,IACR,YAAa,IACb,YAAa,EACb,WAAY,EACZ,YACE,oEACJ,EACA,QAAe,EAAG,CAChB,YACA,KAAM,QACN,GAAI,0CACJ,OAAQ,IACR,YAAa,KACb,YAAa,EACb,eAAgB,GAChB,WAAY,GACZ,YACE,oEACJ,EACA,WAAkB,EAAG,CACnB,eACA,KAAM,WACN,GAAI,yCACJ,OAAQ,IACR,YAAa,KACb,WAAY,KACZ,YACE,oEACJ,EACA,SAAgB,EAAG,CACjB,aACA,KAAM,SACN,GAAI,+BACJ,OAAQ,IACR,YAAa,EACb,WAAY,EACZ,YACE,oEACJ,EACA,SAAgB,EAAG,CACjB,aACA,KAAM,SACN,GAAI,yCACJ,OAAQ,IACR,YAAa,KACb,WAAY,IACZ,YACE,oEACJ,EACA,WAAkB,EAAG,CACnB,eACA,KAAM,iBACN,GAAI,8BACJ,OAAQ,IACR,YAAa,KACb,YAAa,IACb,WAAY,IACZ,YACE,oEACJ,EACA,aAAoB,EAAG,CACrB,iBACA,KAAM,aACN,GAAI,+CACJ,OAAQ,IACR,YAAa,KACb,WAAY,GACZ,YACE,oEACJ,EACA,SAAgB,EAAG,CACjB,aACA,KAAM,SACN,GAAI,2CACJ,OAAQ,IACR,YAAa,KACb,YAAa,sBACb,eAAgB,GAChB,WAAY,EACZ,YACE,oEACJ,EACA,YAAmB,EAAG,CACpB,gBACA,KAAM,YACN,GAAI,kCACJ,OAAQ,IACR,YAAa,IACb,eAAgB,GAChB,WAAY,EACZ,YACE,oEACJ,CACF,ECjKO,IAAMC,GAAYC,aAAkC,EAC9CC,EAAUC,EAAsC,EAChDC,EAAYC,EAGvBL,EAAS,EACEM,EAAWC,EAAuC,ECF/D,IAAMC,GAAQC,QAAuB,EAC/BC,GAASC,UAAsB,EAExBC,GAA2B,CACtC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EAAE,YAAsB,EAChD,iBAAkBA,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAM,CACL,QAAoC,QACtC,CAAC,CACL,CACF,EACA,SAAU,CACR,CAACA,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EAAE,YAAsB,EAChD,YAAaH,GACb,aAAc,EAChB,CAAC,CACH,CACF,EC5BA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,WAAuB,EAEzBC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAM,CACL,SAAqC,EAAGF,GAAM,YAChD,CAAC,CACL,CACF,EACA,SAAU,CACR,CAACE,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,EC9BA,IAAMM,GAAQC,QAAuB,EAC/BC,GAASC,QAAoB,EAEtBC,GAA2B,CACtC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,GAAG,CACR,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECzBA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,eAA2B,EAE7BC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,KAAK,CACV,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,CAChB,CAAC,CACH,CACF,ECzBA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,YAAwB,EAE1BC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,mBAAmB,EACnB,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAMF,EAAK,CAChB,CACF,EACA,SAAU,CACR,CAACE,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECtBA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,UAAsB,EAExBC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAM,CACL,QAAoC,EAAGF,GAAM,YAC/C,CAAC,CACL,CACF,EACA,SAAU,CACR,CAACE,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,CAChB,CAAC,CACH,CACF,EC3BA,IAAMM,GAAQC,QAAuB,EAC/BC,GAAWD,QAAuB,EAClCE,GAASC,YAAwB,EAE1BC,GAA2B,CACtC,MAAAL,GACA,OAAAG,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EAAE,MAAMN,GAAM,YAAY,EAClD,iBAAkBM,EAAQ,OAAO,EAAE,MAAMJ,GAAS,YAAY,EAC9D,YAAa,CACX,MAAOA,GACP,QAASI,EAAQ,OAAO,EAAE,MAAMJ,GAAS,YAAY,CACvD,EACA,UAAWK,EACR,QAAQ,EACR,wBAAwB,EACxB,qCAAgE,EAChE,OAAOJ,EAAM,EACb,OACC,CACE,QAAoC,EAAGH,GAAM,YAC/C,EACA,CACE,QAAoC,EAAGE,GAAS,YAClD,CACF,CACJ,CACF,EACA,SAAU,CACR,CAACC,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EAAE,MAAMN,GAAM,YAAY,EAClD,YAAaG,GACb,aAAc,MAChB,CAAC,CACH,CACF,ECtCA,IAAMM,GAAQC,QAAuB,EAC/BC,GAASC,YAAwB,EAE1BC,GAA2B,CACtC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EAAE,MAAML,GAAM,YAAY,EAClD,UAAWM,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAM,CAAE,QAAoC,EAAGF,GAAM,YAAa,CAAC,CACxE,CACF,EACA,SAAU,CACR,CAACE,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EAAE,MAAML,GAAM,YAAY,EAClD,YAAaE,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECzBA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,YAAwB,EAE1BC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAM,CAAE,gBAA4C,EAAG,CAAE,CAAC,CAC/D,CACF,EACA,SAAU,CACR,CAACA,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,IAChB,CAAC,CACH,CACF,EC5BA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,UAAsB,EAExBC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,UAAU,EACV,6BAA6B,EAC7B,wBAAuD,CAC5D,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECvBA,IAAMM,GAAQC,OAAsB,EAC9BC,GAASC,UAAsB,EAExBC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAM,aAAa,CACxB,CACF,EACA,SAAU,CACR,CAACA,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,EAChB,CAAC,CACH,CACF,EClBA,IAAMM,GAAQC,QAAuB,EAC/BC,GAAUC,WAAuB,EACjCC,GAAWD,YAAwB,EACnCE,GAAQF,eAA2B,EACnCG,GAASH,UAAsB,EAC/BI,GAAQJ,SAAqB,EAC7BK,GAAWL,YAAwB,EACnCM,GAASN,UAAsB,EAE/BO,GAAiBC,EAAeP,EAAQ,EACxCQ,GAAcD,EAAeN,EAAK,EAClCQ,GAAeF,EAAeL,EAAM,EACpCQ,GAAcH,EAAeJ,EAAK,EAClCQ,GAAiBJ,EAAeH,EAAQ,EACxCQ,GAAeL,EAAeF,EAAM,EAE7BQ,GAA2B,CACtC,MAAAjB,GACA,OAAQkB,GACR,QAAS,CACP,CAAChB,GAAQ,GAAG,EAAG,CACb,OAAQA,GACR,QAASiB,EAAQ,OAAO,EAAE,YAAsB,EAChD,iBAAkBA,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOlB,EAAO,EACd,MAAM,CACL,QAAoC,EAAGF,GAAM,YAC/C,CAAC,CACL,EACA,CAACI,GAAS,GAAG,EAAG,CACd,OAAQA,GACR,QAASe,EAAQ,OAAOT,EAAc,EACtC,iBAAkBS,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOhB,EAAQ,EACf,MAAM,CACL,gBAA4C,EAAGM,EACjD,CAAC,CACL,EACA,CAACL,GAAM,GAAG,EAAG,CACX,OAAQA,GACR,QAASc,EAAQ,OAAOP,EAAW,EACnC,iBAAkBO,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOf,EAAK,EACZ,MAAM,CACL,eAA2C,EAAGO,EAChD,CAAC,CACL,EACA,CAACN,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASa,EAAQ,OAAO,EAAE,aAAaN,EAAY,EACnD,iBAAkBM,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOd,EAAM,EACb,MAAM,CACL,eAA2C,EAAGO,EAChD,CAAC,CACL,EACA,CAACN,GAAM,GAAG,EAAG,CACX,OAAQA,GACR,QAASY,EAAQ,OAAOL,EAAW,EACnC,iBAAkBK,EAAQ,OAAO,EACjC,UAAWC,EACR,UAAU,EACV,SAAS,EACT,wBAAqD,EACrD,GAAGC,EAAkBd,EAAK,CAAC,CAChC,EACA,CAACC,GAAS,GAAG,EAAG,CACd,OAAQA,GACR,QAASW,EAAQ,OAAOJ,EAAc,EACtC,iBAAkBI,EAAQ,OAAO,EACjC,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOZ,EAAQ,EACf,MAAMO,EAAc,CACzB,EACA,CAACN,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASU,EAAQ,OAAOH,EAAY,EACpC,iBAAkBG,EAAQ,OAAO,EACjC,UAAWC,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,GAAGC,EAAkBZ,EAAM,CAAC,CACjC,CACF,EACA,SAAU,CACR,CAACP,GAAQ,GAAG,EAAGoB,EAAS,QAAQ,CAC9B,QAASH,EAAQ,OAAO,EAAE,YAAsB,EAChD,YAAajB,GACb,aAAc,MAChB,CAAC,EACD,CAACE,GAAS,GAAG,EAAGkB,EAAS,QAAQ,CAC/B,QAASH,EAAQ,OAAOT,EAAc,EACtC,YAAaN,GACb,aAAc,IACd,iBAAkBe,EAAQ,eAAeT,EAAc,CACzD,CAAC,EACD,CAACL,GAAM,GAAG,EAAGiB,EAAS,QAAQ,CAC5B,QAASH,EAAQ,OAAOP,EAAW,EACnC,YAAaP,GACb,aAAc,GAChB,CAAC,EACD,CAACC,GAAO,GAAG,EAAGgB,EAAS,QAAQ,CAC7B,QAASH,EAAQ,OAAO,EAAE,aAAaN,EAAY,EACnD,YAAaP,GACb,aAAc,IACd,iBAAkBa,EAAQ,uBAAuBN,EAAY,CAC/D,CAAC,EACD,CAACN,GAAM,GAAG,EAAGe,EAAS,QAAQ,CAC5B,QAASH,EAAQ,OAAOL,EAAW,EACnC,YAAaP,GACb,aAAc,GAChB,CAAC,EACD,CAACC,GAAS,GAAG,EAAGc,EAAS,QAAQ,CAC/B,QAASH,EAAQ,OAAOJ,EAAc,EACtC,YAAaP,GACb,aAAc,GAChB,CAAC,EACD,CAACC,GAAO,GAAG,EAAGa,EAAS,QAAQ,CAC7B,QAASH,EAAQ,OAAOH,EAAY,EACpC,YAAaP,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECvJA,IAAMc,GAAQC,OAAsB,EAC9BC,GAASC,SAAqB,EAEvBC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,UAAU,EACV,SAAS,EACT,wBAAqD,EACrD,KAAK,CACV,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,EAChB,CAAC,CACH,CACF,ECvBA,IAAMM,GAAQC,QAAuB,EAC/BC,EAASC,aAAyB,EAClCC,GAAgBC,EAAkBL,GAAOE,EAAO,GAAG,EAE5CI,GAA2B,CACtC,MAAAN,GACA,OAAAE,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASK,EAAQ,OAAOH,EAAa,EACrC,iBAAkBG,EAAQ,OAAO,EACjC,iBAAkBA,EAAQ,eAAeH,EAAa,EACtD,UAAWI,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,GAAGC,EAAkBP,CAAM,EAAGE,EAAa,CAChD,CACF,EACA,SAAU,CACR,CAACF,EAAO,GAAG,EAAGQ,EAAS,QAAQ,CAC7B,QAASH,EAAQ,OAAOH,EAAa,EACrC,iBAAkBG,EAAQ,eAAeH,EAAa,EACtD,YAAaF,EACb,aAAc,MAChB,CAAC,CACH,CACF,EC9BA,IAAMS,GAAQC,OAAsB,EAC9BC,GAASC,UAAsB,EAExBC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,KAAK,CACV,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,GAChB,CAAC,CACH,CACF,ECzBA,IAAMM,GAAQC,QAAuB,EAC/BC,GAASC,cAA0B,EAE5BC,GAA2B,CACtC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,QAAQ,EACR,SAAS,EACT,qCAAgE,EAChE,OAAOJ,EAAM,EACb,MAAMF,GAAM,YAAY,CAC7B,CACF,EACA,SAAU,CACR,CAACE,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,CAChB,CAAC,CACH,CACF,ECxBA,IAAMM,GAAQC,QAAuB,EAC/BC,EAASC,aAAyB,EAClCC,GAAgBC,EAAkBL,GAAOE,EAAO,GAAG,EAE5CI,GAA2B,CACtC,MAAAN,GACA,OAAAE,EACA,QAAS,CACP,CAACA,EAAO,GAAG,EAAG,CACZ,OAAQA,EACR,QAASK,EAAQ,OAAOH,EAAa,EACrC,iBAAkBG,EAAQ,OAAO,EACjC,iBAAkBA,EAAQ,eAAeH,EAAa,EACtD,UAAWI,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,GAAGC,EAAkBP,CAAM,EAAGE,EAAa,CAChD,CACF,EACA,SAAU,CACR,CAACF,EAAO,GAAG,EAAGQ,EAAS,QAAQ,CAC7B,QAASH,EAAQ,OAAOH,EAAa,EACrC,iBAAkBG,EAAQ,eAAeH,EAAa,EACtD,YAAaF,EACb,aAAc,MAChB,CAAC,CACH,CACF,EC9BA,IAAMS,GAAQC,OAAsB,EAC9BC,GAASC,cAA0B,EAE5BC,GAA0B,CACrC,MAAAJ,GACA,OAAAE,GACA,QAAS,CACP,CAACA,GAAO,GAAG,EAAG,CACZ,OAAQA,GACR,QAASG,EAAQ,OAAO,EACxB,UAAWC,EACR,YAAY,EACZ,6BAA6B,EAC7B,wBAAuD,EACvD,KAAK,EACL,KAAK,CACV,CACF,EACA,SAAU,CACR,CAACJ,GAAO,GAAG,EAAGK,EAAS,QAAQ,CAC7B,QAASF,EAAQ,OAAO,EACxB,YAAaH,GACb,aAAc,IAChB,CAAC,CACH,CACF,ECdO,IAAMM,GAAyC,CACpD,OAAiB,EAAGC,GACpB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,MAAgB,EAAGC,GACnB,MAAgB,EAAGC,GACnB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,OAAiB,EAAGC,GACpB,MAAgB,EAAGC,GACnB,MAAgB,EAAGC,GACnB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,MAAgB,EAAGC,GACnB,OAAiB,EAAGC,GACpB,OAAiB,EAAGC,GACpB,MAAgB,EAAGC,EACrB,ECLO,SAASC,GAGd,CACA,OAAAC,EACA,UAAAC,EACA,UAAAC,EACA,OAAAC,EACA,QAAAC,EACA,SAAAC,CACF,EAGE,CACA,MAAO,CACL,QAAS,OAAO,KAAKL,CAAM,EAC3B,OAAAA,EACA,UAAAC,EACA,UAAAC,EACA,QAAUI,GAA4C,CACpD,IAAMC,EAASC,GAAUF,CAAa,EAChCG,EAASL,EAAQG,CAAM,EAE7B,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,8BAA8BF,GAAQ,EAGxD,MAAO,CACL,OAAS,OAAO,KAAKE,EAAO,OAAO,EAAkB,IAClDC,GAAUP,EAAOO,CAAK,CACzB,EACA,KAAOC,GAA6C,CAClD,IAAMC,EAAMC,GAAYF,CAAU,EAC5BG,EAAgBL,EAAO,QAAQG,CAAG,EAExC,GAAI,CAACE,EACH,MAAM,IAAI,MACR,sCAAsCP,gBAAqBK,GAC7D,EAGF,MAAO,CACL,MAAOH,EAAO,MACd,OAAQA,EAAO,OACf,OAAQK,CACV,CACF,CACF,CACF,EACA,SAAWR,GAA4C,CACrD,IAAMC,EAASC,GAAUF,CAAa,EAChCG,EAASL,EAAQG,CAAM,EAE7B,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,8BAA8BF,GAAQ,EAGxD,MAAO,CACL,OAAS,OAAO,KAAKE,EAAO,QAAQ,EAAkB,IACnDC,GAAUP,EAAOO,CAAK,CACzB,EACA,GAAKC,GAA6C,CAChD,IAAMC,EAAMC,GAAYF,CAAU,EAC5BI,EAAiBN,EAAO,SAASG,CAAG,EAE1C,GAAI,CAACG,EACH,MAAM,IAAI,MACR,uCAAuCR,gBAAqBK,GAC9D,EAGF,MAAO,CACL,MAAOH,EAAO,MACd,OAAQA,EAAO,OACf,OAAQM,CACV,CACF,CACF,CACF,EACA,SAAU,IAAM,CACd,GAAM,CAAE,SAAAC,EAAU,WAAAC,CAAW,EAAI,OAAO,OAEtCZ,CAA+D,EAAE,OACjE,CAACa,EAAKT,KACAA,EAAO,MACTS,EAAI,WAAW,KAAKT,EAAO,KAAK,EAG9BA,EAAO,IACTS,EAAI,SAAS,KAAKT,EAAO,KAAK,EAGzBS,GAET,CACE,SAAU,CAAC,EACX,WAAY,CAAC,CACf,CACF,EAEA,MAAO,CACL,WAAAD,EACA,SAAAD,EACA,KAAOL,GAA6C,CAClD,IAAMC,EAAMC,GAAYF,CAAU,EAC5BF,EAASJ,EAASO,CAAG,EAE3B,GAAI,EAACH,GAAA,MAAAA,EAAQ,MACX,MAAM,IAAI,MAAM,wCAAwCG,GAAK,EAG/D,MAAO,CACL,MAAOH,EAAO,MACd,OAAQA,EAAO,KACf,QAASA,EAAO,QAChB,cAAgBU,GACdC,GAAcD,EAAejB,EAAU,cAAc,EACvD,iBAAmBmB,GACjBC,GAAiBpB,EAAWmB,CAAQ,CACxC,CACF,EACA,GAAKV,GAA6C,CAChD,IAAMC,EAAMC,GAAYF,CAAU,EAC5BF,EAASJ,EAASO,CAAG,EAE3B,GAAI,EAACH,GAAA,MAAAA,EAAQ,IACX,MAAM,IAAI,MAAM,sCAAsCG,GAAK,EAG7D,MAAO,CACL,MAAOH,EAAO,MACd,OAAQA,EAAO,GACf,QAASA,EAAO,QAChB,cAAgBU,GACdC,GAAcD,EAAeV,EAAO,cAAc,EACpD,iBAAmBY,GACjBC,GAAiBb,EAAO,MAAOY,CAAQ,CAC3C,CACF,CACF,CACF,CACF,CACF,CAEO,IAAME,GAAWxB,GAA6C,CACnE,OAAQyB,EACR,UAAWA,OAAmC,EAC9C,UAAWC,iBAAsC,EACjD,OAAQC,EACR,QAASC,GACT,SAAUC,EACZ,CAAC,EACYC,GAAW9B,GAA6C,CACnE,OAAQ+B,EACR,UAAWA,QAAoC,EAC/C,UAAWL,YAAiC,EAC5C,OAAQM,EACR,QAASC,GACT,SAAU,CAAC,CACb,CAAC,EACYC,GAAYlC,GAA+C,CACtE,OAAQmC,EACR,UAAWA,QAAqC,EAChD,UAAWT,aAAkC,EAC7C,OAAQU,EACR,QAASC,GACT,SAAU,CAAC,CACb,CAAC","names":["BalancePallet","BalanceFunction","BalanceCurrencyTypes","createBalanceBuilder","assets","minAssetPallet","minAssetRegistryPallet","minCurrencyMetadata","ormlTokens","system","systemEquilibrium","tokens","asset","account","balance","free","frozen","data","id","_a","res","balances","assetId","tokensBase","AssetSymbol","MoonChainKey","MOON_CHAINS","ChainKey","isString","isUndefined","PolkadotXcmExtrinsic","PolkadotXcmExtrinsicSuccessEvent","ExtrinsicPallet","getTypeDef","XcmVersion","getExtrinsicArgumentVersion","extrinsicCall","index","type","instance","raw","getTypeDef","versions","x","getCreateV1V2Extrinsic","extrinsic","event","config","parents","getAsset","account","amount","extrinsicCall","version","getExtrinsicArgumentVersion","polkadotXcm","chain","limitedReserveTransferAssets","limitedReserveWithdrawAssets","event","createExtrinsic","getCreateV1V2Extrinsic","amount","palletInstance","assetId","xcmPallet","chain","limitedReserveTransferAssets","event","getCreateV1V2Extrinsic","amount","XTokensExtrinsic","XTokensExtrinsicSuccessEvent","XTokensExtrinsicCurrencyTypes","getXTokensWeight","weight","extrinsicCall","_a","type","xTokens","chain","transfer","transferMultiAsset","transferMultiCurrencies","event","origin","token","account","amount","extrinsicCall","version","getExtrinsicArgumentVersion","getXTokensWeight","asset","feeAsset","fee","XTransferExtrinsic","XTransferExtrinsicSuccessEvent","xTransfer","chain","transfer","event","createExtrinsic","getCreateExtrinsic","palletInstance","extrinsic","getConcrete","account","amount","eqBalances","chain","xcmTransfer","transferXcm","event","id","fee","account","amount","assetId","feeAssetId","amountWithoutFee","createExtrinsicBuilder","chain","polkadotXcm","xcmPallet","xTokens","xTransfer","eqBalances","getAssetForeignId","asset","chain","_a","id","isUndefined","getMoonAssetId","getUnitsPerSecond","getPalletInstance","isMultiCurrency","extrinsic","getSymbol","symbolOrAsset","isString","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","u8aToHex","decodeAddress","createWithdrawBuilder","options","xTokens","balance","destination","feePerWeight","sourceMinBalance","xcmFeeAsset","weight","account","usesEthereumAccounts","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","eqa","MOONBASE_CHAINS_MAP","pioneer","pioneerDevId","getMoonAssetId","eqaDevId","DEV","moonbase","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","eqId","EQ","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","feeAsset","origin","MOONBASE_CHAINS_MAP","eqId","eqdId","EQD","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","LIT","balance","extrinsic","withdraw","asset","MOONBASE_ASSETS_MAP","origin","MOONBASE_CHAINS_MAP","PARING","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","EQ","EQD","LIT","NEER","PARING","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","origin","MOONBEAM_CHAINS_MAP","eqId","EQ","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","feeAsset","origin","MOONBEAM_CHAINS_MAP","eqId","eqdId","EQD","balance","extrinsic","withdraw","asset","MOONBEAM_ASSETS_MAP","acala","MOONBEAM_CHAINS_MAP","astar","bifrost","equilibrium","parallel","phala","hydradx","acalaGlmrId","getMoonAssetId","astarGlmrId","bifrostGlmrId","equilibriumGlmrId","parallelGlmrId","phalaGlmrId","hydradxGlmrId","GLMR","moonbeam","balance","extrinsic","getPalletInstance","withdraw","asset","MOONBEAM_ASSETS_MAP","origin","MOONBEAM_CHAINS_MAP","HDX","balance","extrinsic","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","EQ","EQD","DOT","GLMR","HDX","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/assets.ts","../src/chains.ts","../src/configs/acala.ts","../src/types/AssetConfig.ts","../src/types/ChainConfig.ts","../src/configs/alphanetRelay.ts","../src/configs/astar.ts","../src/configs/bifrostKusama.ts","../src/configs/bifrostPolkadot.ts","../src/configs/calamari.ts","../src/configs/crustShadow.ts","../src/configs/darwinia.ts","../src/configs/darwiniaCrab.ts","../src/configs/darwiniaPangoro.ts","../src/configs/equilibrium.ts","../src/configs/equilibriumAlphanet.ts","../src/configs/hydraDX.ts","../src/configs/integritee.ts","../src/configs/interlay.ts","../src/configs/karura.ts","../src/configs/khala.ts","../src/configs/kintsugi.ts","../src/configs/kusama.ts","../src/configs/litentryAlphanet.ts","../src/configs/litmus.ts","../src/configs/mangataKusama.ts","../src/configs/moonbaseAlpha.ts","../src/configs/moonbeam.ts","../src/configs/moonriver.ts","../src/configs/parallel.ts","../src/configs/parallelHeiko.ts","../src/configs/phala.ts","../src/configs/polkadot.ts","../src/configs/robonomics.ts","../src/configs/shiden.ts","../src/configs/statemine.ts","../src/configs/statemineAlphanet.ts","../src/configs/statemint.ts","../src/configs/uniqueAlpha.ts","../src/configs/index.ts","../src/ConfigBuilder/ConfigBuilder.utils.ts","../src/ConfigBuilder/ConfigBuilder.ts"],"sourcesContent":["import { Asset } from '@moonbeam-network/xcm-types';\n\nexport const aca = new Asset({\n key: 'aca',\n originSymbol: 'ACA',\n});\n\nexport const astr = new Asset({\n key: 'astr',\n originSymbol: 'ASTR',\n});\n\nexport const auq = new Asset({\n key: 'auq',\n originSymbol: 'AUQ',\n});\n\nexport const ausd = new Asset({\n key: 'ausd',\n originSymbol: 'AUSD',\n});\n\nexport const bnc = new Asset({\n key: 'bnc',\n originSymbol: 'BNC',\n});\n\nexport const crab = new Asset({\n key: 'crab',\n originSymbol: 'CRAB',\n});\n\nexport const csm = new Asset({\n key: 'csm',\n originSymbol: 'CSM',\n});\n\nexport const dev = new Asset({\n key: 'dev',\n originSymbol: 'DEV',\n});\n\nexport const dot = new Asset({\n key: 'dot',\n originSymbol: 'DOT',\n});\n\nexport const eq = new Asset({\n key: 'eq',\n originSymbol: 'EQ',\n});\n\nexport const eqd = new Asset({\n key: 'eqd',\n originSymbol: 'EQD',\n});\n\nexport const glmr = new Asset({\n key: 'glmr',\n originSymbol: 'GLMR',\n});\n\nexport const hdx = new Asset({\n key: 'hdx',\n originSymbol: 'HDX',\n});\n\nexport const hko = new Asset({\n key: 'hko',\n originSymbol: 'HKO',\n});\n\nexport const ibtc = new Asset({\n key: 'ibtc',\n originSymbol: 'IBTC',\n});\n\nexport const intr = new Asset({\n key: 'intr',\n originSymbol: 'INTR',\n});\n\nexport const kar = new Asset({\n key: 'kar',\n originSymbol: 'KAR',\n});\n\nexport const kbtc = new Asset({\n key: 'kbtc',\n originSymbol: 'KBTC',\n});\n\nexport const kint = new Asset({\n key: 'kint',\n originSymbol: 'KINT',\n});\n\nexport const kma = new Asset({\n key: 'kma',\n originSymbol: 'KMA',\n});\n\nexport const ksm = new Asset({\n key: 'ksm',\n originSymbol: 'KSM',\n});\n\nexport const lit = new Asset({\n key: 'lit',\n originSymbol: 'LIT',\n});\n\nexport const mgx = new Asset({\n key: 'mgx',\n originSymbol: 'MGX',\n});\n\nexport const movr = new Asset({\n key: 'movr',\n originSymbol: 'MOVR',\n});\n\nexport const para = new Asset({\n key: 'para',\n originSymbol: 'PARA',\n});\n\nexport const paring = new Asset({\n key: 'paring',\n originSymbol: 'PARING',\n});\n\nexport const pha = new Asset({\n key: 'pha',\n originSymbol: 'PHA',\n});\n\nexport const ring = new Asset({\n key: 'ring',\n originSymbol: 'RING',\n});\n\nexport const rmrk = new Asset({\n key: 'rmrk',\n originSymbol: 'RMRK',\n});\n\nexport const sdn = new Asset({\n key: 'sdn',\n originSymbol: 'SDN',\n});\n\nexport const teer = new Asset({\n key: 'teer',\n originSymbol: 'TEER',\n});\n\nexport const tt1 = new Asset({\n key: 'tt1',\n originSymbol: 'TT1',\n});\n\nexport const unit = new Asset({\n key: 'unit',\n originSymbol: 'Unit',\n});\n\nexport const usdt = new Asset({\n key: 'usdt',\n originSymbol: 'USDT',\n});\n\nexport const xrt = new Asset({\n key: 'xrt',\n originSymbol: 'XRT',\n});\n\nexport const assetsList: Asset[] = [\n aca,\n astr,\n auq,\n ausd,\n bnc,\n crab,\n csm,\n dev,\n dot,\n eq,\n eqd,\n glmr,\n hdx,\n hko,\n ibtc,\n intr,\n kar,\n kbtc,\n kint,\n kma,\n ksm,\n lit,\n mgx,\n movr,\n para,\n paring,\n pha,\n ring,\n rmrk,\n sdn,\n teer,\n tt1,\n unit,\n usdt,\n xrt,\n];\n\nexport const assetsMap = new Map<string, Asset>(\n assetsList.map((asset) => [asset.key, asset]),\n);\n","import {\n AnyChain,\n Ecosystem,\n EvmParachain,\n Parachain,\n} from '@moonbeam-network/xcm-types';\nimport {\n aca,\n astr,\n auq,\n ausd,\n bnc,\n crab,\n csm,\n dev,\n dot,\n eq,\n eqd,\n glmr,\n hdx,\n hko,\n ibtc,\n intr,\n kar,\n kbtc,\n kint,\n kma,\n ksm,\n lit,\n mgx,\n movr,\n para,\n paring,\n pha,\n ring,\n rmrk,\n sdn,\n teer,\n tt1,\n unit,\n usdt,\n xrt,\n} from './assets';\n\nexport const acala = new Parachain({\n assetsData: [\n {\n asset: aca,\n id: { Token: aca.originSymbol },\n metadataId: { NativeAssetId: { Token: aca.originSymbol } },\n },\n {\n asset: ausd,\n id: { Token: ausd.originSymbol },\n metadataId: { NativeAssetId: { Token: ausd.originSymbol } },\n minId: { NativeAssetId: { Token: ausd.originSymbol } },\n },\n {\n asset: glmr,\n id: { ForeignAsset: 0 },\n metadataId: { ForeignAssetId: 0 },\n minId: { ForeignAssetId: 0 },\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c',\n key: 'acala',\n name: 'Acala',\n parachainId: 2000,\n ss58Format: 10,\n ws: 'wss://acala-rpc-0.aca-api.network',\n});\n\nexport const alphanetRelay = new Parachain({\n ecosystem: Ecosystem.AlphanetRelay,\n genesisHash:\n '0xe1ea3ab1d46ba8f4898b6b4b9c54ffc05282d299f89e84bd0fd08067758c9443',\n isTestChain: true,\n key: 'alphanet-relay',\n name: 'Alphanet Relay',\n parachainId: 0,\n ss58Format: 42,\n ws: 'wss://frag-moonbase-relay-rpc-ws.g.moonbase.moonbeam.network',\n});\n\nexport const astar = new Parachain({\n assetsData: [\n {\n asset: glmr,\n id: 18446744073709551619n,\n palletInstance: 10,\n },\n // NOTE: no meta for native token\n {\n asset: astr,\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6',\n key: 'astar',\n name: 'Astar',\n parachainId: 2006,\n ss58Format: 5,\n ws: 'wss://rpc.astar.network',\n});\n\nexport const bifrostKusama = new Parachain({\n assetsData: [\n {\n asset: movr,\n id: { Token: movr.originSymbol },\n },\n {\n asset: bnc,\n id: { Native: bnc.originSymbol },\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0x9f28c6a68e0fc9646eff64935684f6eeeece527e37bbe1f213d22caa1d9d6bed',\n key: 'bifrost-kusama',\n name: 'Bifrost',\n parachainId: 2001,\n ss58Format: 6,\n ws: 'wss://bifrost-rpc.liebi.com/ws',\n});\n\nexport const bifrostPolkadot = new Parachain({\n assetsData: [\n {\n asset: glmr,\n id: { Token2: 1 },\n },\n {\n asset: bnc,\n id: { Native: bnc.originSymbol },\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b',\n key: 'bifrost-polkadot',\n name: 'Bifrost',\n parachainId: 2030,\n ss58Format: 6,\n ws: 'wss://hk.p.bifrost-rpc.liebi.com/ws',\n});\n\nexport const calamari = new Parachain({\n assetsData: [\n {\n asset: movr,\n balanceId: 11,\n id: { MantaCurrency: 11 },\n },\n {\n asset: kma,\n id: { MantaCurrency: 1 },\n // NOTE: no meta for native token\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0x4ac80c99289841dd946ef92765bf659a307d39189b3ce374a92b5f0415ee17a1',\n key: 'calamari',\n name: 'Calamari',\n parachainId: 2084,\n ss58Format: 78,\n ws: 'wss://ws.calamari.systems',\n});\n\nexport const crustShadow = new Parachain({\n assetsData: [\n {\n asset: movr,\n balanceId: 232263652204149413431520870009560565298n,\n id: { OtherReserve: 232263652204149413431520870009560565298n },\n },\n // NOTE: no meta for native token\n {\n asset: csm,\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0xd4c0c08ca49dc7c680c3dac71a7c0703e5b222f4b6c03fe4c5219bb8f22c18dc',\n key: 'crust-shadow',\n name: 'Crust Shadow',\n parachainId: 2012,\n ss58Format: 66,\n ws: 'wss://rpc2-shadow.crust.network',\n});\n\nexport const darwinia = new EvmParachain({\n assetsData: [\n {\n // NOTE: no meta for native token\n asset: ring,\n metadataId: 0,\n },\n {\n // NOTE: no meta for movr\n asset: glmr,\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0xf0b8924b12e8108550d28870bc03f7b45a947e1b2b9abf81bfb0b89ecb60570e',\n id: 46,\n key: 'darwinia',\n name: 'Darwinia',\n parachainId: 2046,\n rpc: 'https://rpc.darwinia.network',\n ss58Format: 18,\n ws: 'wss://parachain-rpc.darwinia.network',\n});\n\nexport const darwiniaCrab = new EvmParachain({\n assetsData: [\n {\n // NOTE: no meta for native token\n asset: crab,\n metadataId: 0,\n },\n {\n // NOTE: no meta for movr\n asset: movr,\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0x86e49c195aeae7c5c4a86ced251f1a28c67b3c35d8289c387ede1776cdd88b24',\n id: 44,\n key: 'darwinia-crab',\n name: 'Darwinia Crab',\n parachainId: 2105,\n rpc: 'https://crab-rpc.darwinia.network',\n ss58Format: 18,\n ws: 'wss://crab-parachain-rpc.darwinia.network',\n});\n\nexport const darwiniaPangoro = new EvmParachain({\n assetsData: [\n {\n // NOTE: no meta for native token\n asset: paring,\n metadataId: 0,\n },\n {\n // NOTE: no meta for movr\n asset: dev,\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.AlphanetRelay,\n genesisHash:\n '0xaaa8b33b723b30b44e45e4e6c01936cc92e7559b4184fb0cee2853d55610fcbf',\n id: 45,\n isTestChain: true,\n key: 'darwinia-pangoro',\n name: 'Pangoro',\n parachainId: 2105,\n rpc: 'https://pangoro-rpc.darwinia.network',\n ss58Format: 18,\n ws: 'wss://pangoro-rpc.darwinia.network',\n});\n\nexport const equilibrium = new Parachain({\n assetsData: [\n {\n asset: glmr,\n decimals: 9,\n id: 1_735_159_154,\n },\n {\n asset: eq,\n id: 25_969,\n },\n {\n asset: eqd,\n id: 6_648_164,\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0x89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907',\n key: 'equilibrium',\n name: 'Equilibrium',\n parachainId: 2011,\n ss58Format: 68,\n ws: 'wss://node.pol.equilibrium.io',\n});\n\nexport const equilibriumAlphanet = new Parachain({\n assetsData: [\n {\n asset: dev,\n decimals: 9,\n id: 1_735_159_154,\n },\n {\n asset: eq,\n id: 25_969,\n },\n {\n asset: eqd,\n id: 6_648_164,\n },\n ],\n ecosystem: Ecosystem.AlphanetRelay,\n genesisHash:\n '0x0ba4508078664cfd04f00bf17892dd1a0764ce61d90857f76c6a2ea61f008247',\n isTestChain: true,\n key: 'equilibrium-alphanet',\n name: 'EquilibriumAlphanet',\n parachainId: 2011,\n ss58Format: 68,\n ws: 'wss://devnet.equilab.io/alphanet/collator/api/wss',\n});\n\nexport const hydraDX = new Parachain({\n assetsData: [\n {\n asset: hdx,\n id: 0,\n },\n {\n asset: glmr,\n id: 16,\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d',\n key: 'hydra-dx',\n name: 'HydraDX',\n parachainId: 2034,\n ss58Format: 63,\n ws: 'wss://hydradx.api.onfinality.io/public-ws',\n});\n\nexport const interlay = new Parachain({\n assetsData: [\n {\n asset: intr,\n decimals: 10,\n id: { Token: intr.originSymbol },\n },\n {\n asset: ibtc,\n decimals: 8,\n id: { Token: ibtc.originSymbol },\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72',\n key: 'interlay',\n name: 'Interlay',\n parachainId: 2032,\n ss58Format: 2032,\n ws: 'wss://interlay.api.onfinality.io/public-ws',\n});\n\nexport const integritee = new Parachain({\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0xcdedc8eadbfa209d3f207bba541e57c3c58a667b05a2e1d1e86353c9000758da',\n key: 'integritee',\n name: 'Integritee',\n parachainId: 2015,\n ss58Format: 13,\n ws: 'wss://integritee-kusama.api.onfinality.io/public-ws',\n});\n\nexport const karura = new Parachain({\n assetsData: [\n {\n asset: movr,\n id: { ForeignAsset: 3 },\n metadataId: { ForeignAssetId: 3 },\n minId: { ForeignAssetId: 3 },\n },\n {\n asset: kar,\n id: { Token: kar.originSymbol },\n metadataId: { NativeAssetId: { Token: kar.originSymbol } },\n },\n {\n asset: ausd,\n id: { Token: 'KUSD' },\n metadataId: { NativeAssetId: { Token: 'KUSD' } },\n minId: { NativeAssetId: { Token: 'KUSD' } },\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0xbaf5aabe40646d11f0ee8abbdc64f4a4b7674925cba08e4a05ff9ebed6e2126b',\n key: 'karura',\n name: 'Karura',\n parachainId: 2000,\n ss58Format: 8,\n ws: 'wss://karura-rpc-0.aca-api.network',\n});\n\nexport const khala = new Parachain({\n assetsData: [\n {\n asset: movr,\n id: 6,\n palletInstance: 10,\n },\n // NOTE: no meta for native token\n {\n asset: pha,\n metadataId: 99999999,\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0xd43540ba6d3eb4897c28a77d48cb5b729fea37603cbbfc7a86a73b72adb3be8d',\n key: 'khala',\n name: 'Khala',\n parachainId: 2004,\n ss58Format: 30,\n ws: 'wss://khala.api.onfinality.io/public-ws',\n});\n\nexport const kintsugi = new Parachain({\n assetsData: [\n {\n asset: kint,\n id: { Token: kint.originSymbol },\n },\n {\n asset: kbtc,\n decimals: 8,\n id: { Token: kbtc.originSymbol },\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0x9af9a64e6e4da8e3073901c3ff0cc4c3aad9563786d89daf6ad820b6e14a0b8b',\n key: 'kintsugi',\n name: 'Kintsugi',\n parachainId: 2092,\n ss58Format: 2092,\n ws: 'wss://api-kusama.interlay.io/parachain',\n});\n\nexport const kusama = new Parachain({\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n key: 'kusama',\n name: 'Kusama',\n parachainId: 0,\n ss58Format: 2,\n ws: 'wss://kusama-rpc.polkadot.io',\n});\n\nexport const litentryAlphanet = new Parachain({\n assetsData: [\n {\n asset: lit,\n id: 'SelfReserve',\n },\n ],\n ecosystem: Ecosystem.AlphanetRelay,\n genesisHash:\n '0x4decfd421755d9008781d00ce40ea4cf47ec24a3717a34ca995126fc4a78c4f8',\n isTestChain: true,\n key: 'litentry-alphanet',\n name: 'Litentry Alphanet',\n parachainId: 2106,\n ss58Format: 131,\n ws: 'wss://moonbase-parachain-sg-0.litentry.io',\n});\n\nexport const litmus = new Parachain({\n assetsData: [\n {\n asset: lit,\n id: 'SelfReserve',\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0xda5831fbc8570e3c6336d0d72b8c08f8738beefec812df21ef2afc2982ede09c',\n key: 'litmus',\n name: 'Litmus',\n parachainId: 2106,\n ss58Format: 131,\n ws: 'wss://rpc.litmus-parachain.litentry.io',\n});\n\nexport const mangataKusama = new Parachain({\n assetsData: [\n {\n asset: mgx,\n id: 0,\n },\n {\n asset: movr,\n id: 39,\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0xd611f22d291c5b7b69f1e105cca03352984c344c4421977efaa4cbdd1834e2aa',\n key: 'mangata-kusama',\n name: 'Mangata',\n parachainId: 2110,\n ss58Format: 42,\n ws: 'wss://kusama-archive.mangata.online',\n});\n\nexport const moonbaseAlpha = new EvmParachain({\n assetsData: [\n {\n asset: auq,\n id: '69536036667157951501899290870203586130',\n },\n {\n asset: dev,\n id: '0x0000000000000000000000000000000000000802',\n min: 0.01,\n },\n {\n asset: eq,\n id: '190590555344745888270686124937537713878',\n },\n {\n asset: eqd,\n id: '187224307232923873519830480073807488153',\n },\n {\n asset: lit,\n id: '65216491554813189869575508812319036608',\n },\n {\n asset: paring,\n id: '173481220575862801646329923366065693029',\n },\n {\n asset: tt1,\n id: '156305701417244550631956600137082963628',\n },\n {\n asset: unit,\n id: '42259045809535163221576417993425387648',\n },\n ],\n ecosystem: Ecosystem.AlphanetRelay,\n genesisHash:\n '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527',\n id: 1287,\n isTestChain: true,\n key: 'moonbase-alpha',\n name: 'Moonbase Alpha',\n parachainId: 1000,\n rpc: 'https://rpc.api.moonbase.moonbeam.network',\n ss58Format: 1287,\n ws: 'wss://wss.api.moonbase.moonbeam.network',\n});\n\nexport const moonbaseBeta = new EvmParachain({\n ecosystem: Ecosystem.AlphanetRelay,\n genesisHash:\n '0xeebb5d05763801e54d6a7a60a4b7998ac125c4d050dcec418dd07ea959a54464',\n id: 1287,\n isTestChain: true,\n key: 'moonbase-beta',\n name: 'Moonbase Beta',\n parachainId: 888,\n rpc: 'https://rpc.api.moondev.network',\n ss58Format: 1287,\n ws: 'wss://frag-moonbase-beta-rpc-ws.g.moonbase.moonbeam.network',\n});\n\nexport const moonbeam = new EvmParachain({\n assetsData: [\n {\n asset: aca,\n id: '224821240862170613278369189818311486111',\n },\n {\n asset: astr,\n id: '224077081838586484055667086558292981199',\n },\n {\n asset: ausd,\n id: '110021739665376159354538090254163045594',\n },\n {\n asset: bnc,\n id: '165823357460190568952172802245839421906',\n },\n {\n asset: dot,\n id: '42259045809535163221576417993425387648',\n },\n {\n asset: eq,\n id: '190590555344745888270686124937537713878',\n },\n {\n asset: eqd,\n id: '187224307232923873519830480073807488153',\n },\n {\n asset: glmr,\n id: '0x0000000000000000000000000000000000000802',\n min: 0.1,\n },\n {\n asset: hdx,\n id: '69606720909260275826784788104880799692',\n },\n {\n asset: ibtc,\n id: '120637696315203257380661607956669368914',\n },\n {\n asset: intr,\n id: '101170542313601871197860408087030232491',\n },\n {\n asset: para,\n id: '32615670524745285411807346420584982855',\n },\n {\n asset: pha,\n id: '132685552157663328694213725410064821485',\n },\n {\n asset: ring,\n id: '125699734534028342599692732320197985871',\n },\n {\n asset: usdt,\n id: '311091173110107856861649819128533077277',\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d',\n id: 1284,\n key: 'moonbeam',\n name: 'Moonbeam',\n parachainId: 2004,\n rpc: 'https://rpc.api.moonbeam.network',\n ss58Format: 1284,\n ws: 'wss://wss.api.moonbeam.network',\n});\n\nexport const moonriver = new EvmParachain({\n assetsData: [\n {\n asset: ausd,\n id: '214920334981412447805621250067209749032',\n },\n {\n asset: bnc,\n id: '319623561105283008236062145480775032445',\n },\n {\n asset: crab,\n id: '173481220575862801646329923366065693029',\n },\n {\n asset: csm,\n id: '108457044225666871745333730479173774551',\n },\n {\n asset: hko,\n id: '76100021443485661246318545281171740067',\n },\n {\n asset: kar,\n id: '10810581592933651521121702237638664357',\n },\n {\n asset: kbtc,\n id: '328179947973504579459046439826496046832',\n },\n {\n asset: kint,\n id: '175400718394635817552109270754364440562',\n },\n {\n asset: kma,\n id: '213357169630950964874127107356898319277',\n },\n {\n asset: ksm,\n id: '42259045809535163221576417993425387648',\n },\n {\n asset: lit,\n id: '65216491554813189869575508812319036608',\n },\n {\n asset: mgx,\n id: '118095707745084482624853002839493125353',\n },\n {\n asset: movr,\n id: '0x0000000000000000000000000000000000000802',\n min: 0.01,\n },\n {\n asset: pha,\n id: '189307976387032586987344677431204943363',\n },\n {\n asset: rmrk,\n id: '182365888117048807484804376330534607370',\n },\n {\n asset: sdn,\n id: '16797826370226091782818345603793389938',\n },\n {\n asset: teer,\n id: '105075627293246237499203909093923548958',\n },\n {\n asset: usdt,\n id: '311091173110107856861649819128533077277',\n },\n {\n asset: xrt,\n id: '108036400430056508975016746969135344601',\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0x401a1f9dca3da46f5c4091016c8a2f26dcea05865116b286f60f668207d1474b',\n id: 1285,\n key: 'moonriver',\n name: 'Moonriver',\n parachainId: 2023,\n rpc: 'https://rpc.api.moonriver.moonbeam.network',\n ss58Format: 1285,\n ws: 'wss://wss.api.moonriver.moonbeam.network',\n});\n\nexport const parallel = new Parachain({\n assetsData: [\n {\n asset: glmr,\n id: 114,\n },\n // NOTE: no meta for native token\n {\n asset: para,\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0xe61a41c53f5dcd0beb09df93b34402aada44cb05117b71059cce40a2723a4e97',\n key: 'parallel',\n name: 'Parallel',\n parachainId: 2012,\n ss58Format: 172,\n ws: 'wss://rpc.parallel.fi',\n});\n\nexport const parallelHeiko = new Parachain({\n assetsData: [\n {\n asset: movr,\n id: 113,\n },\n // NOTE: no meta for native token\n {\n asset: hko,\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0x64a1c658a48b2e70a7fb1ad4c39eea35022568c20fc44a6e2e3d0a57aee6053b',\n key: 'parallel-heiko',\n name: 'Parallel Heiko',\n parachainId: 2085,\n ss58Format: 110,\n ws: 'wss://heiko-rpc.parallel.fi',\n});\n\nexport const phala = new Parachain({\n assetsData: [\n {\n asset: glmr,\n id: 1,\n palletInstance: 10,\n },\n // NOTE: no meta for native token\n {\n asset: pha,\n metadataId: 99999999,\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0x1bb969d85965e4bb5a651abbedf21a54b6b31a21f66b5401cc3f1e286268d736',\n key: 'phala',\n name: 'Phala',\n parachainId: 2035,\n ss58Format: 30,\n ws: 'wss://api.phala.network/ws',\n});\n\nexport const polkadot = new Parachain({\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n key: 'polkadot',\n name: 'Polkadot',\n parachainId: 0,\n ss58Format: 0,\n ws: 'wss://rpc.polkadot.io',\n});\n\nexport const robonomics = new Parachain({\n assetsData: [\n {\n asset: xrt,\n // NOTE: no meta for native token\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0x631ccc82a078481584041656af292834e1ae6daab61d2875b4dd0c14bb9b17bc',\n key: 'robonomics',\n name: 'Robonomics',\n parachainId: 2048,\n ss58Format: 32,\n ws: 'wss://robonomics.api.onfinality.io/public-ws',\n});\n\nexport const shiden = new Parachain({\n assetsData: [\n {\n asset: movr,\n id: 18446744073709551620n,\n palletInstance: 10,\n },\n // NOTE: no meta for native token\n {\n asset: sdn,\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0xf1cf9022c7ebb34b162d5b5e34e705a5a740b2d0ecc1009fb89023e62a488108',\n key: 'shiden',\n name: 'Shiden',\n parachainId: 2007,\n ss58Format: 5,\n ws: 'wss://shiden.api.onfinality.io/public-ws',\n});\n\nexport const statemine = new Parachain({\n assetsData: [\n {\n asset: usdt,\n id: 1984,\n palletInstance: 50,\n },\n {\n asset: rmrk,\n id: 8,\n palletInstance: 50,\n },\n {\n asset: ksm,\n // NOTE: no meta for native token\n metadataId: 9999999,\n },\n ],\n ecosystem: Ecosystem.Kusama,\n genesisHash:\n '0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a',\n key: 'statemine',\n name: 'Statemine',\n parachainId: 1000,\n ss58Format: 2,\n ws: 'wss://statemine-rpc.polkadot.io',\n});\n\nexport const statemineAlphanet = new Parachain({\n assetsData: [\n {\n asset: tt1,\n id: 2,\n palletInstance: 50,\n },\n // NOTE: no meta for native token\n {\n asset: unit,\n metadataId: 0,\n },\n ],\n ecosystem: Ecosystem.AlphanetRelay,\n genesisHash:\n '0x2c63baa36880c9cf820d5ccfc4e49841bfd714e93ede2bebc4abc4531dd4e8a0',\n isTestChain: true,\n key: 'statemine-alphanet',\n name: 'Statemine Alphanet',\n parachainId: 1001,\n ss58Format: 42,\n ws: 'wss://frag-moonbase-sm-rpc-ws.g.moonbase.moonbeam.network/',\n});\n\nexport const statemint = new Parachain({\n assetsData: [\n {\n asset: usdt,\n id: 1984,\n palletInstance: 50,\n },\n {\n asset: dot,\n // NOTE: no meta for native token\n metadataId: 9999999,\n },\n ],\n ecosystem: Ecosystem.Polkadot,\n genesisHash:\n '0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f',\n key: 'statemint',\n name: 'Statemint',\n parachainId: 1000,\n ss58Format: 42,\n ws: 'wss://statemint-rpc.polkadot.io',\n});\n\nexport const uniqueAlpha = new Parachain({\n assetsData: [\n {\n asset: auq,\n id: { NativeAssetId: 'Here' },\n },\n ],\n ecosystem: Ecosystem.AlphanetRelay,\n genesisHash:\n '0xbdf55f33d9f0b390f56413ec803c693af348edae64a659760248974b48b9a99e',\n isTestChain: true,\n key: 'unique-alphanet',\n name: 'Unique Alphanet',\n parachainId: 2095,\n ss58Format: 255,\n ws: 'wss://unique-alpha.unique.network',\n});\n\nexport const chainsList: AnyChain[] = [\n acala,\n alphanetRelay,\n astar,\n bifrostKusama,\n bifrostPolkadot,\n calamari,\n crustShadow,\n darwinia,\n darwiniaCrab,\n darwiniaPangoro,\n equilibrium,\n equilibriumAlphanet,\n hydraDX,\n integritee,\n interlay,\n karura,\n khala,\n kintsugi,\n kusama,\n litentryAlphanet,\n litmus,\n mangataKusama,\n moonbaseAlpha,\n moonbaseBeta,\n moonbeam,\n moonriver,\n parallel,\n parallelHeiko,\n phala,\n polkadot,\n robonomics,\n shiden,\n statemine,\n statemineAlphanet,\n statemint,\n uniqueAlpha,\n];\n\nexport const chainsMap = new Map<string, AnyChain>(\n chainsList.map((chain) => [chain.key, chain]),\n);\n","import {\n AssetMinBuilder,\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { aca, ausd, glmr } from '../assets';\nimport { acala, moonbeam } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const acalaConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: aca,\n balance: BalanceBuilder().system().account(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: aca,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n new AssetConfig({\n asset: ausd,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: ausd,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: aca,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assetRegistry().assetMetadatas(),\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonbeam,\n destinationFee: {\n amount: 0.01,\n asset: glmr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: aca,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assetRegistry().assetMetadatas(),\n }),\n ],\n chain: acala,\n});\n","import {\n AssetMinConfigBuilder,\n BalanceConfigBuilder,\n ContractConfigBuilder,\n ExtrinsicConfigBuilder,\n FeeConfigBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { AnyChain, Asset } from '@moonbeam-network/xcm-types';\n\nexport interface AssetConfigConstructorParams {\n asset: Asset;\n balance: BalanceConfigBuilder;\n contract?: ContractConfigBuilder;\n destination: AnyChain;\n destinationFee: DestinationFeeConfig;\n extrinsic?: ExtrinsicConfigBuilder;\n fee?: FeeAssetConfig;\n min?: AssetMinConfigBuilder;\n}\n\nexport interface DestinationFeeConfig {\n asset: Asset;\n amount: number | FeeConfigBuilder;\n}\n\nexport interface FeeAssetConfig {\n asset: Asset;\n balance: BalanceConfigBuilder;\n}\n\nexport class AssetConfig {\n readonly asset: Asset;\n\n readonly balance: BalanceConfigBuilder;\n\n readonly contract?: ContractConfigBuilder;\n\n readonly destination: AnyChain;\n\n readonly destinationFee: DestinationFeeConfig;\n\n readonly extrinsic?: ExtrinsicConfigBuilder;\n\n readonly fee?: FeeAssetConfig;\n\n readonly min?: AssetMinConfigBuilder;\n\n constructor({\n asset,\n balance,\n contract,\n destination,\n destinationFee,\n extrinsic,\n fee,\n min,\n }: AssetConfigConstructorParams) {\n this.asset = asset;\n this.balance = balance;\n this.contract = contract;\n this.destination = destination;\n this.destinationFee = destinationFee;\n this.extrinsic = extrinsic;\n this.fee = fee;\n this.min = min;\n }\n}\n","import { AnyChain, Asset } from '@moonbeam-network/xcm-types';\nimport { AssetConfig } from './AssetConfig';\n\nexport interface ChainConfigConstructorParams {\n assets: AssetConfig[];\n chain: AnyChain;\n}\n\nexport class ChainConfig {\n readonly #assets: Map<string, AssetConfig> = new Map();\n\n readonly chain: AnyChain;\n\n constructor({ assets, chain }: ChainConfigConstructorParams) {\n this.chain = chain;\n this.#assets = new Map(\n assets.map((asset) => [\n `${asset.asset.key}-${asset.destination.key}`,\n asset,\n ]),\n );\n }\n\n getAssetsConfigs(): AssetConfig[] {\n return Array.from(this.#assets.values());\n }\n\n getAssetConfigs(asset: Asset): AssetConfig[] {\n return this.getAssetsConfigs().filter(\n (assetConfig) => assetConfig.asset.key === asset.key,\n );\n }\n\n getAssetDestinations(asset: Asset): AnyChain[] {\n return this.getAssetConfigs(asset).map(\n (assetConfig) => assetConfig.destination,\n );\n }\n\n getAssetDestinationConfig(asset: Asset, destination: AnyChain): AssetConfig {\n const assetConfig = this.#assets.get(`${asset.key}-${destination.key}`);\n\n if (!assetConfig) {\n throw new Error(\n `AssetConfig for ${asset.key} and destination ${destination.key} not found`,\n );\n }\n\n return assetConfig;\n }\n}\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { unit } from '../assets';\nimport { alphanetRelay, moonbaseAlpha } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const alphanetRelayConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: unit,\n balance: BalanceBuilder().system().account(),\n destination: moonbaseAlpha,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: unit,\n },\n extrinsic: ExtrinsicBuilder()\n .xcmPallet()\n .limitedReserveTransferAssets(0)\n .here(),\n }),\n ],\n chain: alphanetRelay,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { astr, glmr } from '../assets';\nimport { astar, moonbeam } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const astarConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: astr,\n balance: BalanceBuilder().system().account(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: astr,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .here(),\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().assets().account(),\n destination: moonbeam,\n destinationFee: {\n amount: 0.01,\n asset: glmr,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .X2(),\n fee: {\n asset: astr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: astar,\n});\n","import {\n AssetMinBuilder,\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { bnc, movr } from '../assets';\nimport { bifrostKusama, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const bifrostKusamaConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: bnc,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: bnc,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonriver,\n destinationFee: {\n amount: 0.0001,\n asset: movr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: bnc,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assetRegistry().currencyMetadatas(),\n }),\n ],\n chain: bifrostKusama,\n});\n","import {\n AssetMinBuilder,\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { bnc, glmr } from '../assets';\nimport { bifrostPolkadot, moonbeam } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const bifrostPolkadotConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: bnc,\n balance: BalanceBuilder().system().account(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: bnc,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonbeam,\n destinationFee: {\n amount: 0.01,\n asset: glmr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: bnc,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assetRegistry().currencyMetadatas(),\n }),\n ],\n chain: bifrostPolkadot,\n});\n","import {\n AssetMinBuilder,\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { kma, movr } from '../assets';\nimport { calamari, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const calamariConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: kma,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: kma,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().assets().account(),\n destination: moonriver,\n destinationFee: {\n amount: 0.0001,\n asset: movr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: kma,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assets().asset(),\n }),\n ],\n chain: calamari,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { csm, movr } from '../assets';\nimport { crustShadow, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const crustShadowConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: csm,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: csm,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .here(),\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().assets().account(),\n destination: moonriver,\n destinationFee: {\n amount: 0.0001,\n asset: movr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: csm,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: crustShadow,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { ring } from '../assets';\nimport { darwinia, moonbeam } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const darwiniaConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: ring,\n balance: BalanceBuilder().system().account(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: ring,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .X1(),\n }),\n ],\n chain: darwinia,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { crab } from '../assets';\nimport { darwiniaCrab, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const darwiniaCrabConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: crab,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: crab,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .X1(),\n }),\n ],\n chain: darwiniaCrab,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { paring } from '../assets';\nimport { darwiniaPangoro, moonbaseAlpha } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const darwiniaPangoroConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: paring,\n balance: BalanceBuilder().system().account(),\n destination: moonbaseAlpha,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: paring,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .X1(),\n }),\n ],\n chain: darwiniaPangoro,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { eq, eqd, glmr } from '../assets';\nimport { equilibrium, moonbeam } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const equilibriumConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: eq,\n balance: BalanceBuilder().system().accountEquilibrium(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: eq,\n },\n extrinsic: ExtrinsicBuilder().eqBalances().transferXcm(),\n }),\n new AssetConfig({\n asset: eqd,\n balance: BalanceBuilder().system().accountEquilibrium(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: eq,\n },\n extrinsic: ExtrinsicBuilder().eqBalances().transferXcm(),\n fee: {\n asset: eq,\n balance: BalanceBuilder().system().accountEquilibrium(),\n },\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().system().accountEquilibrium(),\n destination: moonbeam,\n destinationFee: {\n amount: 0.01,\n asset: glmr,\n },\n extrinsic: ExtrinsicBuilder().eqBalances().transferXcm(),\n fee: {\n asset: eq,\n balance: BalanceBuilder().system().accountEquilibrium(),\n },\n }),\n ],\n chain: equilibrium,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { dev, eq, eqd } from '../assets';\nimport { equilibriumAlphanet, moonbaseAlpha } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const equilibriumAlphanetConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: eq,\n balance: BalanceBuilder().system().accountEquilibrium(),\n destination: moonbaseAlpha,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: eq,\n },\n extrinsic: ExtrinsicBuilder().eqBalances().transferXcm(),\n }),\n new AssetConfig({\n asset: eqd,\n balance: BalanceBuilder().system().accountEquilibrium(),\n destination: moonbaseAlpha,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: eq,\n },\n extrinsic: ExtrinsicBuilder().eqBalances().transferXcm(),\n fee: {\n asset: eq,\n balance: BalanceBuilder().system().accountEquilibrium(),\n },\n }),\n new AssetConfig({\n asset: dev,\n balance: BalanceBuilder().system().accountEquilibrium(),\n destination: moonbaseAlpha,\n destinationFee: {\n amount: 0.00005,\n asset: dev,\n },\n extrinsic: ExtrinsicBuilder().eqBalances().transferXcm(),\n fee: {\n asset: eq,\n balance: BalanceBuilder().system().accountEquilibrium(),\n },\n }),\n ],\n chain: equilibriumAlphanet,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { glmr, hdx } from '../assets';\nimport { hydraDX, moonbeam } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const hydraDxConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: hdx,\n balance: BalanceBuilder().system().account(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: hdx,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonbeam,\n destinationFee: {\n amount: 0.01,\n asset: glmr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n ],\n chain: hydraDX,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { teer } from '../assets';\nimport { integritee, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const integriteeConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: teer,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: teer,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n ],\n chain: integritee,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { ibtc, intr } from '../assets';\nimport { interlay, moonbeam } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const interlayConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: intr,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: intr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n new AssetConfig({\n asset: ibtc,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: intr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transferMultiCurrencies(),\n fee: {\n asset: intr,\n balance: BalanceBuilder().tokens().accounts(),\n },\n }),\n ],\n chain: interlay,\n});\n","import {\n AssetMinBuilder,\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { ausd, kar, movr } from '../assets';\nimport { karura, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const karuraConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: kar,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: kar,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n new AssetConfig({\n asset: ausd,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: ausd,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: kar,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assetRegistry().assetMetadatas(),\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonriver,\n destinationFee: {\n amount: 0.0001,\n asset: movr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: kar,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assetRegistry().assetMetadatas(),\n }),\n ],\n chain: karura,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { movr, pha } from '../assets';\nimport { khala, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const khalaConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: pha,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: pha,\n },\n extrinsic: ExtrinsicBuilder().xTransfer().transfer().here(),\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().assets().account(),\n destination: moonriver,\n destinationFee: {\n amount: 0.0001,\n asset: movr,\n },\n extrinsic: ExtrinsicBuilder().xTransfer().transfer().X2(),\n fee: {\n asset: pha,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: khala,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { kbtc, kint } from '../assets';\nimport { kintsugi, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const kintsugiConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: kint,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: kint,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n new AssetConfig({\n asset: kbtc,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: kint,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transferMultiCurrencies(),\n fee: {\n asset: kint,\n balance: BalanceBuilder().tokens().accounts(),\n },\n }),\n ],\n chain: kintsugi,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { ksm } from '../assets';\nimport { kusama, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const kusamaConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: ksm,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: ksm,\n },\n extrinsic: ExtrinsicBuilder()\n .xcmPallet()\n .limitedReserveTransferAssets(0)\n .here(),\n }),\n ],\n chain: kusama,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { lit } from '../assets';\nimport { litentryAlphanet, moonbaseAlpha } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const litentryAlphanetConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: lit,\n balance: BalanceBuilder().system().account(),\n destination: moonbaseAlpha,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: lit,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n ],\n chain: litentryAlphanet,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { lit } from '../assets';\nimport { litmus, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const litmusConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: lit,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: lit,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n ],\n chain: litmus,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { mgx, movr } from '../assets';\nimport { mangataKusama, moonriver } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const mangataKusamaConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: mgx,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: mgx,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().tokens().accounts(),\n destination: moonriver,\n destinationFee: {\n amount: 0.000008,\n asset: movr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: mgx,\n balance: BalanceBuilder().tokens().accounts(),\n },\n }),\n ],\n chain: mangataKusama,\n});\n","import { BalanceBuilder, ContractBuilder } from '@moonbeam-network/xcm-builder';\nimport { dev, eq, eqd, lit, paring, tt1, unit } from '../assets';\nimport {\n alphanetRelay,\n darwiniaPangoro,\n equilibriumAlphanet,\n litentryAlphanet,\n moonbaseAlpha,\n statemineAlphanet,\n} from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const moonbaseAlphaConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: dev,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: equilibriumAlphanet,\n destinationFee: {\n amount: 4,\n asset: dev,\n },\n }),\n // NOTE: Disabling because ws endpoint is not working\n // new AssetConfig({\n // asset: auq,\n // balance: BalanceBuilder().assets().account(),\n // contract: ContractBuilder().Xtokens().transfer(),\n // destination: uniqueAlpha,\n // destinationFee: {\n // amount: 0,\n // asset: auq,\n // },\n // fee: {\n // asset: dev,\n // balance: BalanceBuilder().system().account(),\n // },\n // }),\n new AssetConfig({\n asset: eq,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: equilibriumAlphanet,\n destinationFee: {\n amount: 14,\n asset: eq,\n },\n fee: {\n asset: dev,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: eqd,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: equilibriumAlphanet,\n destinationFee: {\n amount: 4,\n asset: eqd,\n },\n fee: {\n asset: dev,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: lit,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: litentryAlphanet,\n destinationFee: {\n amount: 0.032,\n asset: lit,\n },\n fee: {\n asset: dev,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: paring,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: darwiniaPangoro,\n destinationFee: {\n amount: 4,\n asset: paring,\n },\n fee: {\n asset: dev,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: tt1,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: statemineAlphanet,\n destinationFee: {\n amount: 5,\n asset: tt1,\n },\n fee: {\n asset: dev,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: unit,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: alphanetRelay,\n destinationFee: {\n amount: 0.0506,\n asset: unit,\n },\n fee: {\n asset: dev,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: moonbaseAlpha,\n});\n","import { BalanceBuilder, ContractBuilder } from '@moonbeam-network/xcm-builder';\nimport {\n aca,\n astr,\n ausd,\n bnc,\n dot,\n eq,\n eqd,\n glmr,\n hdx,\n ibtc,\n intr,\n para,\n pha,\n ring,\n usdt,\n} from '../assets';\nimport {\n acala,\n astar,\n bifrostPolkadot,\n darwinia,\n equilibrium,\n hydraDX,\n interlay,\n moonbeam,\n parallel,\n phala,\n polkadot,\n statemint,\n} from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const moonbeamConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: acala,\n destinationFee: {\n amount: 0.01,\n asset: glmr,\n },\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: astar,\n destinationFee: {\n amount: 0.0002,\n asset: glmr,\n },\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: bifrostPolkadot,\n destinationFee: {\n amount: 0.000001,\n asset: glmr,\n },\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: equilibrium,\n destinationFee: {\n amount: 0.5,\n asset: glmr,\n },\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: hydraDX,\n destinationFee: {\n amount: 0.05,\n asset: glmr,\n },\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: parallel,\n destinationFee: {\n amount: 0.000000032,\n asset: glmr,\n },\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: phala,\n destinationFee: {\n amount: 0.0002,\n asset: glmr,\n },\n }),\n new AssetConfig({\n asset: aca,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: acala,\n destinationFee: {\n amount: 0.032,\n asset: aca,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: astr,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: astar,\n destinationFee: {\n amount: 0.032,\n asset: astr,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: ausd,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: acala,\n destinationFee: {\n amount: 0.256,\n asset: ausd,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: bnc,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: bifrostPolkadot,\n destinationFee: {\n amount: 0.256,\n asset: bnc,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: dot,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: polkadot,\n destinationFee: {\n amount: 0.052,\n asset: dot,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: eq,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: equilibrium,\n destinationFee: {\n amount: 400,\n asset: eq,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: eqd,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: equilibrium,\n destinationFee: {\n amount: 0.15,\n asset: eqd,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: ibtc,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: interlay,\n destinationFee: {\n amount: 0.0002476,\n asset: ibtc,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: intr,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: interlay,\n destinationFee: {\n amount: 0.748,\n asset: intr,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: para,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: parallel,\n destinationFee: {\n amount: 0.064,\n asset: para,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: pha,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: phala,\n destinationFee: {\n amount: 0.32,\n asset: pha,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: ring,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: darwinia,\n destinationFee: {\n amount: 4,\n asset: ring,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: usdt,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: statemint,\n destinationFee: {\n amount: 0.7,\n asset: usdt,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: hdx,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: hydraDX,\n destinationFee: {\n amount: 0.6,\n asset: hdx,\n },\n fee: {\n asset: glmr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: moonbeam,\n});\n","import { BalanceBuilder, ContractBuilder } from '@moonbeam-network/xcm-builder';\nimport {\n ausd,\n bnc,\n crab,\n csm,\n hko,\n kar,\n kbtc,\n kint,\n kma,\n ksm,\n lit,\n mgx,\n movr,\n pha,\n rmrk,\n sdn,\n teer,\n usdt,\n xrt,\n} from '../assets';\nimport {\n bifrostKusama,\n calamari,\n crustShadow,\n darwiniaCrab,\n integritee,\n karura,\n khala,\n kintsugi,\n kusama,\n litmus,\n mangataKusama,\n moonriver,\n parallelHeiko,\n robonomics,\n shiden,\n statemine,\n} from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const moonriverConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: bifrostKusama,\n destinationFee: {\n amount: 0.0008544,\n asset: movr,\n },\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: calamari,\n destinationFee: {\n amount: 0.001,\n asset: movr,\n },\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: crustShadow,\n destinationFee: {\n amount: 0.0002,\n asset: movr,\n },\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: karura,\n destinationFee: {\n amount: 0.001,\n asset: movr,\n },\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: khala,\n destinationFee: {\n amount: 0.0002,\n asset: movr,\n },\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: mangataKusama,\n destinationFee: {\n amount: 0.002,\n asset: movr,\n },\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: parallelHeiko,\n destinationFee: {\n amount: 0.00000000192,\n asset: movr,\n },\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().system().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: shiden,\n destinationFee: {\n amount: 0.0002,\n asset: movr,\n },\n }),\n new AssetConfig({\n asset: ausd,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: karura,\n destinationFee: {\n amount: 0.256,\n asset: ausd,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: bnc,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: bifrostKusama,\n destinationFee: {\n amount: 0.0256,\n asset: bnc,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: crab,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: darwiniaCrab,\n destinationFee: {\n amount: 4,\n asset: crab,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: csm,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: crustShadow,\n destinationFee: {\n amount: 0.004,\n asset: csm,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: hko,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: parallelHeiko,\n destinationFee: {\n amount: 0.0192,\n asset: hko,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: kar,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: karura,\n destinationFee: {\n amount: 0.032,\n asset: kar,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: kbtc,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: kintsugi,\n destinationFee: {\n amount: 0.00000428,\n asset: kbtc,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: kint,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: kintsugi,\n destinationFee: {\n amount: 0.00084,\n asset: kint,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: kma,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: calamari,\n destinationFee: {\n amount: 0.000004,\n asset: kma,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: ksm,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: kusama,\n destinationFee: {\n amount: 0.00168,\n asset: ksm,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: lit,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: litmus,\n destinationFee: {\n amount: 0.0032,\n asset: lit,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: mgx,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: mangataKusama,\n destinationFee: {\n amount: 5.5,\n asset: mgx,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: pha,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: khala,\n destinationFee: {\n amount: 0.32,\n asset: pha,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: rmrk,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: statemine,\n destinationFee: {\n amount: 0.0000504,\n asset: rmrk,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: sdn,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: shiden,\n destinationFee: {\n amount: 0.032,\n asset: sdn,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: teer,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: integritee,\n destinationFee: {\n amount: 0.004,\n asset: teer,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: usdt,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: statemine,\n destinationFee: {\n amount: 0.00504,\n asset: usdt,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n new AssetConfig({\n asset: xrt,\n balance: BalanceBuilder().assets().account(),\n contract: ContractBuilder().Xtokens().transfer(),\n destination: robonomics,\n destinationFee: {\n amount: 0.000032,\n asset: xrt,\n },\n fee: {\n asset: movr,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: moonriver,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { glmr, para } from '../assets';\nimport { moonbeam, parallel } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const parallelConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: para,\n balance: BalanceBuilder().system().account(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: para,\n },\n extrinsic: ExtrinsicBuilder()\n .xTokens()\n .transferMultiAsset(parallel.parachainId),\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().assets().account(),\n destination: moonbeam,\n destinationFee: {\n amount: 0.01,\n asset: glmr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: para,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: parallel,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { hko, movr } from '../assets';\nimport { moonriver, parallelHeiko } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const parallelHeikoConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: hko,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: hko,\n },\n extrinsic: ExtrinsicBuilder()\n .xTokens()\n .transferMultiAsset(parallelHeiko.parachainId),\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().assets().account(),\n destination: moonriver,\n destinationFee: {\n amount: 0.0001,\n asset: movr,\n },\n extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n fee: {\n asset: hko,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: parallelHeiko,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { glmr, pha } from '../assets';\nimport { moonbeam, phala } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const phalaConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: pha,\n balance: BalanceBuilder().system().account(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: pha,\n },\n extrinsic: ExtrinsicBuilder().xTransfer().transfer().here(),\n }),\n new AssetConfig({\n asset: glmr,\n balance: BalanceBuilder().assets().account(),\n destination: moonbeam,\n destinationFee: {\n amount: 0.01,\n asset: glmr,\n },\n extrinsic: ExtrinsicBuilder().xTransfer().transfer().X2(),\n fee: {\n asset: pha,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: phala,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { dot } from '../assets';\nimport { moonbeam, polkadot } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const polkadotConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: dot,\n balance: BalanceBuilder().system().account(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: dot,\n },\n extrinsic: ExtrinsicBuilder()\n .xcmPallet()\n .limitedReserveTransferAssets(0)\n .here(),\n }),\n ],\n chain: polkadot,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { xrt } from '../assets';\nimport { moonriver, robonomics } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const robonomicsConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: xrt,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: xrt,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .here(),\n }),\n ],\n chain: robonomics,\n});\n","import {\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { movr, sdn } from '../assets';\nimport { moonriver, shiden } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const shidenConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: sdn,\n balance: BalanceBuilder().system().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: sdn,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .here(),\n }),\n new AssetConfig({\n asset: movr,\n balance: BalanceBuilder().assets().account(),\n destination: moonriver,\n destinationFee: {\n amount: 0.0001,\n asset: movr,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveWithdrawAssets()\n .X2(),\n fee: {\n asset: sdn,\n balance: BalanceBuilder().system().account(),\n },\n }),\n ],\n chain: shiden,\n});\n","import {\n AssetMinBuilder,\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { ksm, rmrk, usdt } from '../assets';\nimport { moonriver, statemine } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const statemineConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: rmrk,\n balance: BalanceBuilder().assets().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: rmrk,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .X2(),\n fee: {\n asset: ksm,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assets().asset(),\n }),\n new AssetConfig({\n asset: usdt,\n balance: BalanceBuilder().assets().account(),\n destination: moonriver,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: usdt,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .X2(),\n fee: {\n asset: ksm,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assets().asset(),\n }),\n ],\n chain: statemine,\n});\n","import {\n AssetMinBuilder,\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { tt1, unit } from '../assets';\nimport { moonbaseAlpha, statemineAlphanet } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const statemineAlphanetConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: tt1,\n balance: BalanceBuilder().assets().account(),\n destination: moonbaseAlpha,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: tt1,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .X2(),\n fee: {\n asset: unit,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assets().asset(),\n }),\n ],\n chain: statemineAlphanet,\n});\n","import {\n AssetMinBuilder,\n BalanceBuilder,\n ExtrinsicBuilder,\n FeeBuilder,\n} from '@moonbeam-network/xcm-builder';\nimport { dot, usdt } from '../assets';\nimport { moonbeam, statemint } from '../chains';\nimport { AssetConfig } from '../types/AssetConfig';\nimport { ChainConfig } from '../types/ChainConfig';\n\nexport const statemintConfig = new ChainConfig({\n assets: [\n new AssetConfig({\n asset: usdt,\n balance: BalanceBuilder().assets().account(),\n destination: moonbeam,\n destinationFee: {\n amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n asset: usdt,\n },\n extrinsic: ExtrinsicBuilder()\n .polkadotXcm()\n .limitedReserveTransferAssets()\n .X2(),\n fee: {\n asset: dot,\n balance: BalanceBuilder().system().account(),\n },\n min: AssetMinBuilder().assets().asset(),\n }),\n ],\n chain: statemint,\n});\n","import { uniqueAlpha } from '../chains';\nimport { ChainConfig } from '../types/ChainConfig';\n\n// NOTE: Disabling because ws endpoint is not working\nexport const uniqueAlphaConfig = new ChainConfig({\n assets: [\n // new AssetConfig({\n // asset: auq,\n // balance: BalanceBuilder().assets().account(),\n // destination: moonbaseAlpha,\n // destinationFee: {\n // amount: FeeBuilder().assetManager().assetTypeUnitsPerSecond(),\n // asset: auq,\n // },\n // extrinsic: ExtrinsicBuilder().xTokens().transfer(),\n // }),\n ],\n chain: uniqueAlpha,\n});\n","import { ChainConfig } from '../types/ChainConfig';\n\nimport { acalaConfig } from './acala';\nimport { alphanetRelayConfig } from './alphanetRelay';\nimport { astarConfig } from './astar';\nimport { bifrostKusamaConfig } from './bifrostKusama';\nimport { bifrostPolkadotConfig } from './bifrostPolkadot';\nimport { calamariConfig } from './calamari';\nimport { crustShadowConfig } from './crustShadow';\nimport { darwiniaConfig } from './darwinia';\nimport { darwiniaCrabConfig } from './darwiniaCrab';\nimport { darwiniaPangoroConfig } from './darwiniaPangoro';\nimport { equilibriumConfig } from './equilibrium';\nimport { equilibriumAlphanetConfig } from './equilibriumAlphanet';\nimport { hydraDxConfig } from './hydraDX';\nimport { integriteeConfig } from './integritee';\nimport { interlayConfig } from './interlay';\nimport { karuraConfig } from './karura';\nimport { khalaConfig } from './khala';\nimport { kintsugiConfig } from './kintsugi';\nimport { kusamaConfig } from './kusama';\nimport { litentryAlphanetConfig } from './litentryAlphanet';\nimport { litmusConfig } from './litmus';\nimport { mangataKusamaConfig } from './mangataKusama';\nimport { moonbaseAlphaConfig } from './moonbaseAlpha';\nimport { moonbeamConfig } from './moonbeam';\nimport { moonriverConfig } from './moonriver';\nimport { parallelConfig } from './parallel';\nimport { parallelHeikoConfig } from './parallelHeiko';\nimport { phalaConfig } from './phala';\nimport { polkadotConfig } from './polkadot';\nimport { robonomicsConfig } from './robonomics';\nimport { shidenConfig } from './shiden';\nimport { statemineConfig } from './statemine';\nimport { statemineAlphanetConfig } from './statemineAlphanet';\nimport { statemintConfig } from './statemint';\nimport { uniqueAlphaConfig } from './uniqueAlpha';\n\nexport const chainsConfigList: ChainConfig[] = [\n acalaConfig,\n alphanetRelayConfig,\n astarConfig,\n bifrostKusamaConfig,\n bifrostPolkadotConfig,\n calamariConfig,\n crustShadowConfig,\n darwiniaConfig,\n darwiniaCrabConfig,\n darwiniaPangoroConfig,\n equilibriumAlphanetConfig,\n equilibriumConfig,\n hydraDxConfig,\n integriteeConfig,\n interlayConfig,\n karuraConfig,\n khalaConfig,\n kintsugiConfig,\n kusamaConfig,\n litentryAlphanetConfig,\n litmusConfig,\n mangataKusamaConfig,\n moonbaseAlphaConfig,\n moonbeamConfig,\n moonriverConfig,\n parallelConfig,\n parallelHeikoConfig,\n phalaConfig,\n polkadotConfig,\n robonomicsConfig,\n shidenConfig,\n statemineAlphanetConfig,\n statemineConfig,\n statemintConfig,\n uniqueAlphaConfig,\n];\n\nexport const chainsConfigMap = new Map<string, ChainConfig>(\n chainsConfigList.map((config) => [config.chain.key, config]),\n);\n","import { AnyChain, Asset, Ecosystem } from '@moonbeam-network/xcm-types';\nimport { assetsList, assetsMap } from '../assets';\nimport { chainsMap } from '../chains';\nimport { chainsConfigMap } from '../configs';\nimport { AssetConfig } from '../types/AssetConfig';\n\nexport function getEcosystemAssets(ecosystem?: Ecosystem): Asset[] {\n if (!ecosystem) {\n return assetsList;\n }\n\n return Array.from(\n new Set(\n Array.from(chainsConfigMap.values())\n .filter((chainConfig) => chainConfig.chain.ecosystem === ecosystem)\n .map((chainConfig) => chainConfig.getAssetsConfigs())\n .flat(2)\n .map((assetConfig) => assetConfig.asset),\n ),\n ).sort((a, b) => a.key.localeCompare(b.key));\n}\n\nexport function getAsset(keyOrAsset: string | Asset): Asset {\n const key = typeof keyOrAsset === 'string' ? keyOrAsset : keyOrAsset.key;\n const asset = assetsMap.get(key);\n\n if (!asset) {\n throw new Error(`Asset ${key} not found`);\n }\n\n return asset;\n}\n\nexport function getChain(keyOrAsset: string | AnyChain): AnyChain {\n const key = typeof keyOrAsset === 'string' ? keyOrAsset : keyOrAsset.key;\n const chain = chainsMap.get(key);\n\n if (!chain) {\n throw new Error(`Chain ${key} not found`);\n }\n\n return chain;\n}\n\nexport function getSourceChains(\n asset: Asset,\n ecosystem: Ecosystem | undefined,\n): AnyChain[] {\n return Array.from(chainsConfigMap.values())\n .filter((chainConfig) => chainConfig.getAssetConfigs(asset).length)\n .filter(\n (chainConfig) => !ecosystem || chainConfig.chain.ecosystem === ecosystem,\n )\n .map((chainConfig) => chainConfig.chain);\n}\n\nexport function getDestinationChains(\n asset: Asset,\n source: AnyChain,\n): AnyChain[] {\n const chainConfig = chainsConfigMap.get(source.key);\n\n if (!chainConfig) {\n throw new Error(`Config for chain ${source.key} not found`);\n }\n\n return chainConfig.getAssetDestinations(asset);\n}\n\nexport function getAssetDestinationConfig(\n asset: Asset,\n source: AnyChain,\n destination: AnyChain,\n): AssetConfig {\n const chainConfig = chainsConfigMap.get(source.key);\n\n if (!chainConfig) {\n throw new Error(`Config for chain ${source.key} not found`);\n }\n\n return chainConfig.getAssetDestinationConfig(asset, destination);\n}\n","/* eslint-disable sort-keys */\nimport { AnyChain, Asset, Ecosystem } from '@moonbeam-network/xcm-types';\nimport { TransferConfig } from './ConfigBuilder.interfaces';\nimport {\n getAsset,\n getAssetDestinationConfig,\n getChain,\n getDestinationChains,\n getEcosystemAssets,\n getSourceChains,\n} from './ConfigBuilder.utils';\n\nexport function ConfigBuilder() {\n return {\n assets: (ecosystem?: Ecosystem) => {\n const assets = getEcosystemAssets(ecosystem);\n\n return {\n assets,\n asset: (keyOrAsset: string | Asset) => {\n const asset = getAsset(keyOrAsset);\n const sourceChains = getSourceChains(asset, ecosystem);\n\n return {\n sourceChains,\n source: (keyOrChain: string | AnyChain) => {\n const source = getChain(keyOrChain);\n const destinationChains = getDestinationChains(asset, source);\n\n return {\n destinationChains,\n destination: (\n // eslint-disable-next-line @typescript-eslint/no-shadow\n keyOrChain: string | AnyChain,\n ) => {\n const destination = getChain(keyOrChain);\n const sourceConfig = getAssetDestinationConfig(\n asset,\n source,\n destination,\n );\n const destinationConfig = getAssetDestinationConfig(\n asset,\n destination,\n source,\n );\n\n return {\n build: (): TransferConfig => ({\n asset,\n source: {\n chain: source,\n config: sourceConfig,\n },\n destination: {\n chain: destination,\n config: destinationConfig,\n },\n }),\n };\n },\n };\n },\n };\n },\n };\n },\n };\n}\n"],"mappings":"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,UAAWL,EAAU,OACrB,YACE,qEACF,IAAK,iBACL,KAAM,UACN,YAAa,KACb,WAAY,GACZ,GAAI,qCACN,CAAC,EAEY2C,EAAgB,IAAI9B,EAAa,CAC5C,WAAY,CACV,CACE,MAAO+B,GACP,GAAI,wCACN,EACA,CACE,MAAOzB,EACP,GAAI,6CACJ,IAAK,GACP,EACA,CACE,MAAOE,EACP,GAAI,yCACN,EACA,CACE,MAAOC,EACP,GAAI,yCACN,EACA,CACE,MAAOiB,EACP,GAAI,wCACN,EACA,CACE,MAAOrB,EACP,GAAI,yCACN,EACA,CACE,MAAO2B,EACP,GAAI,yCACN,EACA,CACE,MAAOC,EACP,GAAI,wCACN,CACF,EACA,UAAW9C,EAAU,cACrB,YACE,qEACF,GAAI,KACJ,YAAa,GACb,IAAK,iBACL,KAAM,iBACN,YAAa,IACb,IAAK,4CACL,WAAY,KACZ,GAAI,yCACN,CAAC,EAEY+C,GAAe,IAAIlC,EAAa,CAC3C,UAAWb,EAAU,cACrB,YACE,qEACF,GAAI,KACJ,YAAa,GACb,IAAK,gBACL,KAAM,gBACN,YAAa,IACb,IAAK,kCACL,WAAY,KACZ,GAAI,6DACN,CAAC,EAEYgD,EAAW,IAAInC,EAAa,CACvC,WAAY,CACV,CACE,MAAOhB,EACP,GAAI,yCACN,EACA,CACE,MAAOM,EACP,GAAI,yCACN,EACA,CACE,MAAOL,EACP,GAAI,yCACN,EACA,CACE,MAAOQ,EACP,GAAI,yCACN,EACA,CACE,MAAO2C,EACP,GAAI,wCACN,EACA,CACE,MAAO5B,EACP,GAAI,yCACN,EACA,CACE,MAAOC,EACP,GAAI,yCACN,EACA,CACE,MAAOvB,EACP,GAAI,6CACJ,IAAK,EACP,EACA,CACE,MAAO0B,EACP,GAAI,wCACN,EACA,CACE,MAAOG,EACP,GAAI,yCACN,EACA,CACE,MAAOD,EACP,GAAI,yCACN,EACA,CACE,MAAOuB,EACP,GAAI,wCACN,EACA,CACE,MAAOjB,EACP,GAAI,yCACN,EACA,CACE,MAAOnB,EACP,GAAI,yCACN,EACA,CACE,MAAOqC,EACP,GAAI,yCACN,CACF,EACA,UAAWnD,EAAU,SACrB,YACE,qEACF,GAAI,KACJ,IAAK,WACL,KAAM,WACN,YAAa,KACb,IAAK,mCACL,WAAY,KACZ,GAAI,gCACN,CAAC,EAEYoD,EAAY,IAAIvC,EAAa,CACxC,WAAY,CACV,CACE,MAAOf,EACP,GAAI,yCACN,EACA,CACE,MAAOQ,EACP,GAAI,yCACN,EACA,CACE,MAAOU,EACP,GAAI,yCACN,EACA,CACE,MAAOL,EACP,GAAI,yCACN,EACA,CACE,MAAO0C,EACP,GAAI,wCACN,EACA,CACE,MAAOtB,EACP,GAAI,wCACN,EACA,CACE,MAAOK,EACP,GAAI,yCACN,EACA,CACE,MAAOD,EACP,GAAI,yCACN,EACA,CACE,MAAO1B,EACP,GAAI,yCACN,EACA,CACE,MAAO6C,EACP,GAAI,wCACN,EACA,CACE,MAAOf,EACP,GAAI,wCACN,EACA,CACE,MAAOG,EACP,GAAI,yCACN,EACA,CACE,MAAOrC,EACP,GAAI,6CACJ,IAAK,GACP,EACA,CACE,MAAO4B,EACP,GAAI,yCACN,EACA,CACE,MAAOsB,EACP,GAAI,yCACN,EACA,CACE,MAAOC,EACP,GAAI,wCACN,EACA,CACE,MAAOC,EACP,GAAI,yCACN,EACA,CACE,MAAON,EACP,GAAI,yCACN,EACA,CACE,MAAOO,EACP,GAAI,yCACN,CACF,EACA,UAAW1D,EAAU,OACrB,YACE,qEACF,GAAI,KACJ,IAAK,YACL,KAAM,YACN,YAAa,KACb,IAAK,6CACL,WAAY,KACZ,GAAI,0CACN,CAAC,EAEY2D,GAAW,IAAI/D,EAAU,CACpC,WAAY,CACV,CACE,MAAOG,EACP,GAAI,GACN,EAEA,CACE,MAAOmD,EACP,WAAY,CACd,CACF,EACA,UAAWlD,EAAU,SACrB,YACE,qEACF,IAAK,WACL,KAAM,WACN,YAAa,KACb,WAAY,IACZ,GAAI,uBACN,CAAC,EAEY4D,GAAgB,IAAIhE,EAAU,CACzC,WAAY,CACV,CACE,MAAOS,EACP,GAAI,GACN,EAEA,CACE,MAAOgD,EACP,WAAY,CACd,CACF,EACA,UAAWrD,EAAU,OACrB,YACE,qEACF,IAAK,iBACL,KAAM,iBACN,YAAa,KACb,WAAY,IACZ,GAAI,6BACN,CAAC,EAEY6D,GAAQ,IAAIjE,EAAU,CACjC,WAAY,CACV,CACE,MAAOG,EACP,GAAI,EACJ,eAAgB,EAClB,EAEA,CACE,MAAOkC,EACP,WAAY,QACd,CACF,EACA,UAAWjC,EAAU,SACrB,YACE,qEACF,IAAK,QACL,KAAM,QACN,YAAa,KACb,WAAY,GACZ,GAAI,4BACN,CAAC,EAEY8D,GAAW,IAAIlE,EAAU,CACpC,UAAWI,EAAU,SACrB,YACE,qEACF,IAAK,WACL,KAAM,WACN,YAAa,EACb,WAAY,EACZ,GAAI,uBACN,CAAC,EAEY+D,GAAa,IAAInE,EAAU,CACtC,WAAY,CACV,CACE,MAAO8D,EAEP,WAAY,CACd,CACF,EACA,UAAW1D,EAAU,OACrB,YACE,qEACF,IAAK,aACL,KAAM,aACN,YAAa,KACb,WAAY,GACZ,GAAI,8CACN,CAAC,EAEYgE,GAAS,IAAIpE,EAAU,CAClC,WAAY,CACV,CACE,MAAOS,EACP,GAAI,sBACJ,eAAgB,EAClB,EAEA,CACE,MAAOmD,EACP,WAAY,CACd,CACF,EACA,UAAWxD,EAAU,OACrB,YACE,qEACF,IAAK,SACL,KAAM,SACN,YAAa,KACb,WAAY,EACZ,GAAI,0CACN,CAAC,EAEYiE,GAAY,IAAIrE,EAAU,CACrC,WAAY,CACV,CACE,MAAOuD,EACP,GAAI,KACJ,eAAgB,EAClB,EACA,CACE,MAAOI,EACP,GAAI,EACJ,eAAgB,EAClB,EACA,CACE,MAAOD,EAEP,WAAY,OACd,CACF,EACA,UAAWtD,EAAU,OACrB,YACE,qEACF,IAAK,YACL,KAAM,YACN,YAAa,IACb,WAAY,EACZ,GAAI,iCACN,CAAC,EAEYkE,GAAoB,IAAItE,EAAU,CAC7C,WAAY,CACV,CACE,MAAOiD,EACP,GAAI,EACJ,eAAgB,EAClB,EAEA,CACE,MAAOC,EACP,WAAY,CACd,CACF,EACA,UAAW9C,EAAU,cACrB,YACE,qEACF,YAAa,GACb,IAAK,qBACL,KAAM,qBACN,YAAa,KACb,WAAY,GACZ,GAAI,4DACN,CAAC,EAEYmE,GAAY,IAAIvE,EAAU,CACrC,WAAY,CACV,CACE,MAAOuD,EACP,GAAI,KACJ,eAAgB,EAClB,EACA,CACE,MAAOF,EAEP,WAAY,OACd,CACF,EACA,UAAWjD,EAAU,SACrB,YACE,qEACF,IAAK,YACL,KAAM,YACN,YAAa,IACb,WAAY,GACZ,GAAI,iCACN,CAAC,EAEYoE,GAAc,IAAIxE,EAAU,CACvC,WAAY,CACV,CACE,MAAOgD,GACP,GAAI,CAAE,cAAe,MAAO,CAC9B,CACF,EACA,UAAW5C,EAAU,cACrB,YACE,qEACF,YAAa,GACb,IAAK,kBACL,KAAM,kBACN,YAAa,KACb,WAAY,IACZ,GAAI,mCACN,CAAC,EAEYqE,GAAyB,CACpC1E,EACAM,GACAC,GACAE,GACAG,GACAC,GACAE,GACAE,GACAG,GACAE,GACAG,EACAG,GACAC,GACAK,GACAH,GACAI,GACAE,GACAE,GACAG,GACAC,GACAE,GACAC,GACAE,EACAI,GACAC,EACAI,EACAO,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EAEaE,GAAY,IAAI,IAC3BD,GAAW,IAAKE,GAAU,CAACA,EAAM,IAAKA,CAAK,CAAC,CAC9C,ECh/BA,OACE,mBAAAC,GACA,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCCyBA,IAAMC,EAAN,KAAkB,CACd,MAEA,QAEA,SAEA,YAEA,eAEA,UAEA,IAEA,IAET,YAAY,CACV,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,YAAAC,GACA,eAAAC,GACA,UAAAC,GACA,IAAAC,GACA,IAAAC,EACF,EAAiC,CAC/B,KAAK,MAAQP,EACb,KAAK,QAAUC,EACf,KAAK,SAAWC,EAChB,KAAK,YAAcC,GACnB,KAAK,eAAiBC,GACtB,KAAK,UAAYC,GACjB,KAAK,IAAMC,GACX,KAAK,IAAMC,EACb,CACF,EC1DO,IAAMC,EAAN,KAAkB,CACdC,GAAoC,IAAI,IAExC,MAET,YAAY,CAAE,OAAAC,EAAQ,MAAAC,CAAM,EAAiC,CAC3D,KAAK,MAAQA,EACb,KAAKF,GAAU,IAAI,IACjBC,EAAO,IAAKE,GAAU,CACpB,GAAGA,EAAM,MAAM,OAAOA,EAAM,YAAY,MACxCA,CACF,CAAC,CACH,CACF,CAEA,kBAAkC,CAChC,OAAO,MAAM,KAAK,KAAKH,GAAQ,OAAO,CAAC,CACzC,CAEA,gBAAgBG,EAA6B,CAC3C,OAAO,KAAK,iBAAiB,EAAE,OAC5BC,GAAgBA,EAAY,MAAM,MAAQD,EAAM,GACnD,CACF,CAEA,qBAAqBA,EAA0B,CAC7C,OAAO,KAAK,gBAAgBA,CAAK,EAAE,IAChCC,GAAgBA,EAAY,WAC/B,CACF,CAEA,0BAA0BD,EAAcE,EAAoC,CAC1E,IAAMD,EAAc,KAAKJ,GAAQ,IAAI,GAAGG,EAAM,OAAOE,EAAY,KAAK,EAEtE,GAAI,CAACD,EACH,MAAM,IAAI,MACR,mBAAmBD,EAAM,uBAAuBE,EAAY,eAC9D,EAGF,OAAOD,CACT,CACF,EFvCO,IAAME,GAAc,IAAIC,EAAY,CACzC,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOE,CACT,EACA,UAAWD,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,cAAc,EAAE,eAAe,CACxD,CAAC,EACD,IAAIP,EAAY,CACd,MAAOQ,EACP,QAASN,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQ,IACR,MAAOK,CACT,EACA,UAAWH,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,cAAc,EAAE,eAAe,CACxD,CAAC,CACH,EACA,MAAOE,CACT,CAAC,EGvDD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAsB,IAAIC,EAAY,CACjD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,UAAU,EACV,6BAA6B,CAAC,EAC9B,KAAK,CACV,CAAC,CACH,EACA,MAAOC,EACT,CAAC,EC3BD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAc,IAAIC,EAAY,CACzC,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,KAAK,CACV,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQ,IACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,GAAG,EACN,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAOK,EACT,CAAC,EC5CD,OACE,mBAAAC,GACA,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAsB,IAAIC,EAAY,CACjD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,cAAc,EAAE,kBAAkB,CAC3D,CAAC,CACH,EACA,MAAOC,EACT,CAAC,ECxCD,OACE,mBAAAC,GACA,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAwB,IAAIC,EAAY,CACnD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQ,IACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,cAAc,EAAE,kBAAkB,CAC3D,CAAC,CACH,EACA,MAAOC,EACT,CAAC,ECxCD,OACE,mBAAAC,GACA,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAiB,IAAIC,EAAY,CAC5C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,OAAO,EAAE,MAAM,CACxC,CAAC,CACH,EACA,MAAOC,EACT,CAAC,ECxCD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAoB,IAAIC,EAAY,CAC/C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,KAAK,CACV,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAOK,EACT,CAAC,ECzCD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAiB,IAAIC,EAAY,CAC5C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,GAAG,CACR,CAAC,CACH,EACA,MAAOC,EACT,CAAC,EC3BD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAqB,IAAIC,EAAY,CAChD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,GAAG,CACR,CAAC,CACH,EACA,MAAOC,EACT,CAAC,EC3BD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAwB,IAAIC,EAAY,CACnD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,GAAG,CACR,CAAC,CACH,EACA,MAAOC,EACT,CAAC,EC3BD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAoB,IAAIC,EAAY,CAC/C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,mBAAmB,EACtD,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,WAAW,EAAE,YAAY,CACzD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,mBAAmB,EACtD,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,WAAW,EAAE,YAAY,EACvD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,mBAAmB,CACxD,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOO,EACP,QAASL,GAAe,EAAE,OAAO,EAAE,mBAAmB,EACtD,YAAaC,EACb,eAAgB,CACd,OAAQ,IACR,MAAOI,CACT,EACA,UAAWF,GAAiB,EAAE,WAAW,EAAE,YAAY,EACvD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,mBAAmB,CACxD,CACF,CAAC,CACH,EACA,MAAOM,CACT,CAAC,ECpDD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAA4B,IAAIC,EAAY,CACvD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,mBAAmB,EACtD,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,WAAW,EAAE,YAAY,CACzD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,mBAAmB,EACtD,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,WAAW,EAAE,YAAY,EACvD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,mBAAmB,CACxD,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOO,EACP,QAASL,GAAe,EAAE,OAAO,EAAE,mBAAmB,EACtD,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOI,CACT,EACA,UAAWF,GAAiB,EAAE,WAAW,EAAE,YAAY,EACvD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,mBAAmB,CACxD,CACF,CAAC,CACH,EACA,MAAOM,EACT,CAAC,ECpDD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAgB,IAAIC,EAAY,CAC3C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQ,IACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,CACH,EACA,MAAOE,EACT,CAAC,EClCD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAmB,IAAIC,EAAY,CAC9C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,CACH,EACA,MAAOC,EACT,CAAC,ECxBD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAiB,IAAIC,EAAY,CAC5C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,wBAAwB,EAChE,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,SAAS,CAC9C,CACF,CAAC,CACH,EACA,MAAOK,EACT,CAAC,ECtCD,OACE,mBAAAC,GACA,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAe,IAAIC,EAAY,CAC1C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOE,CACT,EACA,UAAWD,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,cAAc,EAAE,eAAe,CACxD,CAAC,EACD,IAAIP,EAAY,CACd,MAAOQ,EACP,QAASN,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOK,CACT,EACA,UAAWH,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,cAAc,EAAE,eAAe,CACxD,CAAC,CACH,EACA,MAAOE,EACT,CAAC,ECvDD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAc,IAAIC,EAAY,CACzC,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAC5D,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EACxD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAOK,EACT,CAAC,ECtCD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAiB,IAAIC,EAAY,CAC5C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,wBAAwB,EAChE,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,SAAS,CAC9C,CACF,CAAC,CACH,EACA,MAAOK,EACT,CAAC,ECtCD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAe,IAAIC,EAAY,CAC1C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,UAAU,EACV,6BAA6B,CAAC,EAC9B,KAAK,CACV,CAAC,CACH,EACA,MAAOC,EACT,CAAC,EC3BD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAyB,IAAIC,EAAY,CACpD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,CACH,EACA,MAAOC,EACT,CAAC,ECxBD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAe,IAAIC,EAAY,CAC1C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,CACH,EACA,MAAOC,EACT,CAAC,ECxBD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAsB,IAAIC,EAAY,CACjD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,QAAQ,EAAE,SAAS,CACnD,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,SAAS,EAC5C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,SAAS,CAC9C,CACF,CAAC,CACH,EACA,MAAOK,EACT,CAAC,ECtCD,OAAS,kBAAAC,EAAgB,mBAAAC,OAAuB,gCAazC,IAAMC,GAAsB,IAAIC,EAAY,CACjD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,GAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaC,GACb,eAAgB,CACd,OAAQ,EACR,MAAOH,CACT,CACF,CAAC,EAgBD,IAAID,EAAY,CACd,MAAOK,EACP,QAASH,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,GAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaC,GACb,eAAgB,CACd,OAAQ,GACR,MAAOC,CACT,EACA,IAAK,CACH,MAAOJ,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOM,EACP,QAASJ,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,GAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaC,GACb,eAAgB,CACd,OAAQ,EACR,MAAOE,CACT,EACA,IAAK,CACH,MAAOL,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOO,EACP,QAASL,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,GAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaK,GACb,eAAgB,CACd,OAAQ,KACR,MAAOD,CACT,EACA,IAAK,CACH,MAAON,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOS,EACP,QAASP,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,GAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaO,GACb,eAAgB,CACd,OAAQ,EACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOR,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOW,EACP,QAAST,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,GAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaS,GACb,eAAgB,CACd,OAAQ,EACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOV,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOa,EACP,QAASX,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,GAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaW,GACb,eAAgB,CACd,OAAQ,MACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOZ,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAOa,CACT,CAAC,EC9HD,OAAS,kBAAAC,EAAgB,mBAAAC,MAAuB,gCAmCzC,IAAMC,GAAiB,IAAIC,EAAY,CAC5C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaC,EACb,eAAgB,CACd,OAAQ,IACR,MAAOH,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaE,GACb,eAAgB,CACd,OAAQ,KACR,MAAOJ,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaG,GACb,eAAgB,CACd,OAAQ,KACR,MAAOL,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaI,EACb,eAAgB,CACd,OAAQ,GACR,MAAON,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaK,GACb,eAAgB,CACd,OAAQ,IACR,MAAOP,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaM,GACb,eAAgB,CACd,OAAQ,MACR,MAAOR,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaO,GACb,eAAgB,CACd,OAAQ,KACR,MAAOT,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOW,EACP,QAAST,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOO,CACT,EACA,IAAK,CACH,MAAOV,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOY,EACP,QAASV,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaE,GACb,eAAgB,CACd,OAAQ,KACR,MAAOO,CACT,EACA,IAAK,CACH,MAAOX,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOa,EACP,QAASX,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOS,CACT,EACA,IAAK,CACH,MAAOZ,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOc,EACP,QAASZ,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaG,GACb,eAAgB,CACd,OAAQ,KACR,MAAOQ,CACT,EACA,IAAK,CACH,MAAOb,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOe,EACP,QAASb,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaa,GACb,eAAgB,CACd,OAAQ,KACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOd,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOiB,EACP,QAASf,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaI,EACb,eAAgB,CACd,OAAQ,IACR,MAAOU,CACT,EACA,IAAK,CACH,MAAOhB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOkB,EACP,QAAShB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaI,EACb,eAAgB,CACd,OAAQ,IACR,MAAOW,CACT,EACA,IAAK,CACH,MAAOjB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOmB,EACP,QAASjB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaiB,GACb,eAAgB,CACd,OAAQ,QACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOlB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOqB,EACP,QAASnB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaiB,GACb,eAAgB,CACd,OAAQ,KACR,MAAOC,CACT,EACA,IAAK,CACH,MAAOpB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOsB,EACP,QAASpB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaM,GACb,eAAgB,CACd,OAAQ,KACR,MAAOa,CACT,EACA,IAAK,CACH,MAAOrB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOuB,EACP,QAASrB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaO,GACb,eAAgB,CACd,OAAQ,IACR,MAAOa,CACT,EACA,IAAK,CACH,MAAOtB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOwB,EACP,QAAStB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAasB,GACb,eAAgB,CACd,OAAQ,EACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOvB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAO0B,EACP,QAASxB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAawB,GACb,eAAgB,CACd,OAAQ,GACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOzB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAO4B,EACP,QAAS1B,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaK,GACb,eAAgB,CACd,OAAQ,GACR,MAAOoB,CACT,EACA,IAAK,CACH,MAAO3B,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAO2B,CACT,CAAC,ECjTD,OAAS,kBAAAC,EAAgB,mBAAAC,MAAuB,gCA2CzC,IAAMC,GAAkB,IAAIC,EAAY,CAC7C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaC,GACb,eAAgB,CACd,OAAQ,QACR,MAAOH,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaE,GACb,eAAgB,CACd,OAAQ,KACR,MAAOJ,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaG,GACb,eAAgB,CACd,OAAQ,KACR,MAAOL,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaI,GACb,eAAgB,CACd,OAAQ,KACR,MAAON,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaK,GACb,eAAgB,CACd,OAAQ,KACR,MAAOP,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaM,GACb,eAAgB,CACd,OAAQ,KACR,MAAOR,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaO,GACb,eAAgB,CACd,OAAQ,QACR,MAAOT,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaQ,GACb,eAAgB,CACd,OAAQ,KACR,MAAOV,CACT,CACF,CAAC,EACD,IAAID,EAAY,CACd,MAAOY,EACP,QAASV,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaI,GACb,eAAgB,CACd,OAAQ,KACR,MAAOK,CACT,EACA,IAAK,CACH,MAAOX,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOa,EACP,QAASX,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaC,GACb,eAAgB,CACd,OAAQ,MACR,MAAOS,CACT,EACA,IAAK,CACH,MAAOZ,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOc,EACP,QAASZ,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaY,GACb,eAAgB,CACd,OAAQ,EACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOb,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOgB,EACP,QAASd,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaG,GACb,eAAgB,CACd,OAAQ,KACR,MAAOU,CACT,EACA,IAAK,CACH,MAAOf,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOiB,EACP,QAASf,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaO,GACb,eAAgB,CACd,OAAQ,MACR,MAAOO,CACT,EACA,IAAK,CACH,MAAOhB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOkB,EACP,QAAShB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaI,GACb,eAAgB,CACd,OAAQ,KACR,MAAOW,CACT,EACA,IAAK,CACH,MAAOjB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOmB,EACP,QAASjB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaiB,GACb,eAAgB,CACd,OAAQ,OACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOlB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOqB,EACP,QAASnB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaiB,GACb,eAAgB,CACd,OAAQ,MACR,MAAOC,CACT,EACA,IAAK,CACH,MAAOpB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOsB,EACP,QAASpB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaE,GACb,eAAgB,CACd,OAAQ,KACR,MAAOiB,CACT,EACA,IAAK,CACH,MAAOrB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOuB,EACP,QAASrB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaqB,GACb,eAAgB,CACd,OAAQ,OACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOtB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOyB,EACP,QAASvB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAauB,GACb,eAAgB,CACd,OAAQ,MACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOxB,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAO2B,EACP,QAASzB,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaM,GACb,eAAgB,CACd,OAAQ,IACR,MAAOkB,CACT,EACA,IAAK,CACH,MAAO1B,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAO4B,EACP,QAAS1B,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaK,GACb,eAAgB,CACd,OAAQ,IACR,MAAOoB,CACT,EACA,IAAK,CACH,MAAO3B,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAO6B,EACP,QAAS3B,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAa2B,GACb,eAAgB,CACd,OAAQ,OACR,MAAOD,CACT,EACA,IAAK,CACH,MAAO5B,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAO+B,EACP,QAAS7B,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaQ,GACb,eAAgB,CACd,OAAQ,KACR,MAAOoB,CACT,EACA,IAAK,CACH,MAAO9B,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOgC,EACP,QAAS9B,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAa8B,GACb,eAAgB,CACd,OAAQ,KACR,MAAOD,CACT,EACA,IAAK,CACH,MAAO/B,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOkC,EACP,QAAShC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAa2B,GACb,eAAgB,CACd,OAAQ,OACR,MAAOI,CACT,EACA,IAAK,CACH,MAAOjC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,EACD,IAAIF,EAAY,CACd,MAAOmC,EACP,QAASjC,EAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,SAAUC,EAAgB,EAAE,QAAQ,EAAE,SAAS,EAC/C,YAAaiC,GACb,eAAgB,CACd,OAAQ,MACR,MAAOD,CACT,EACA,IAAK,CACH,MAAOlC,EACP,QAASC,EAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAOmC,CACT,CAAC,EC3XD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAiB,IAAIC,EAAY,CAC5C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,QAAQ,EACR,mBAAmBC,GAAS,WAAW,CAC5C,CAAC,EACD,IAAIN,EAAY,CACd,MAAOO,EACP,QAASL,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQ,IACR,MAAOI,CACT,EACA,UAAWF,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAOI,EACT,CAAC,ECxCD,OACE,kBAAAE,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAsB,IAAIC,EAAY,CACjD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,QAAQ,EACR,mBAAmBC,GAAc,WAAW,CACjD,CAAC,EACD,IAAIN,EAAY,CACd,MAAOO,EACP,QAASL,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOI,CACT,EACA,UAAWF,GAAiB,EAAE,QAAQ,EAAE,SAAS,EACjD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAOI,EACT,CAAC,ECxCD,OACE,kBAAAE,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAc,IAAIC,EAAY,CACzC,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAC5D,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQ,IACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EACxD,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAOK,EACT,CAAC,ECtCD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAiB,IAAIC,EAAY,CAC5C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,UAAU,EACV,6BAA6B,CAAC,EAC9B,KAAK,CACV,CAAC,CACH,EACA,MAAOC,EACT,CAAC,EC3BD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAmB,IAAIC,EAAY,CAC9C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,KAAK,CACV,CAAC,CACH,EACA,MAAOC,EACT,CAAC,EC3BD,OACE,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAe,IAAIC,EAAY,CAC1C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,KAAK,CACV,CAAC,EACD,IAAIL,EAAY,CACd,MAAOM,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQ,KACR,MAAOG,CACT,EACA,UAAWD,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,GAAG,EACN,IAAK,CACH,MAAOJ,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,CACF,CAAC,CACH,EACA,MAAOK,EACT,CAAC,EC5CD,OACE,mBAAAC,GACA,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAkB,IAAIC,EAAY,CAC7C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,GAAG,EACN,IAAK,CACH,MAAOC,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,OAAO,EAAE,MAAM,CACxC,CAAC,EACD,IAAIP,EAAY,CACd,MAAOQ,EACP,QAASN,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOI,CACT,EACA,UAAWH,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,GAAG,EACN,IAAK,CACH,MAAOC,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,OAAO,EAAE,MAAM,CACxC,CAAC,CACH,EACA,MAAOE,EACT,CAAC,ECnDD,OACE,mBAAAC,GACA,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAA0B,IAAIC,EAAY,CACrD,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,GAAG,EACN,IAAK,CACH,MAAOC,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,OAAO,EAAE,MAAM,CACxC,CAAC,CACH,EACA,MAAOC,EACT,CAAC,ECjCD,OACE,mBAAAC,GACA,kBAAAC,GACA,oBAAAC,GACA,cAAAC,OACK,gCAMA,IAAMC,GAAkB,IAAIC,EAAY,CAC7C,OAAQ,CACN,IAAIC,EAAY,CACd,MAAOC,EACP,QAASC,GAAe,EAAE,OAAO,EAAE,QAAQ,EAC3C,YAAaC,EACb,eAAgB,CACd,OAAQC,GAAW,EAAE,aAAa,EAAE,wBAAwB,EAC5D,MAAOH,CACT,EACA,UAAWI,GAAiB,EACzB,YAAY,EACZ,6BAA6B,EAC7B,GAAG,EACN,IAAK,CACH,MAAOC,EACP,QAASJ,GAAe,EAAE,OAAO,EAAE,QAAQ,CAC7C,EACA,IAAKK,GAAgB,EAAE,OAAO,EAAE,MAAM,CACxC,CAAC,CACH,EACA,MAAOC,EACT,CAAC,EC7BM,IAAMC,GAAoB,IAAIC,EAAY,CAC/C,OAAQ,CAWR,EACA,MAAOC,EACT,CAAC,ECoBM,IAAMC,GAAkC,CAC7CC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EAEaC,GAAkB,IAAI,IACjCpC,GAAiB,IAAKqC,GAAW,CAACA,EAAO,MAAM,IAAKA,CAAM,CAAC,CAC7D,ECxEO,SAASC,GAAmBC,EAAgC,CACjE,OAAKA,EAIE,MAAM,KACX,IAAI,IACF,MAAM,KAAKC,GAAgB,OAAO,CAAC,EAChC,OAAQC,GAAgBA,EAAY,MAAM,YAAcF,CAAS,EACjE,IAAKE,GAAgBA,EAAY,iBAAiB,CAAC,EACnD,KAAK,CAAC,EACN,IAAKC,GAAgBA,EAAY,KAAK,CAC3C,CACF,EAAE,KAAK,CAACC,EAAGC,IAAMD,EAAE,IAAI,cAAcC,EAAE,GAAG,CAAC,EAXlCC,EAYX,CAEO,SAASC,GAASC,EAAmC,CAC1D,IAAMC,EAAM,OAAOD,GAAe,SAAWA,EAAaA,EAAW,IAC/DE,EAAQC,GAAU,IAAIF,CAAG,EAE/B,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,SAASD,aAAe,EAG1C,OAAOC,CACT,CAEO,SAASE,GAASJ,EAAyC,CAChE,IAAMC,EAAM,OAAOD,GAAe,SAAWA,EAAaA,EAAW,IAC/DK,EAAQC,GAAU,IAAIL,CAAG,EAE/B,GAAI,CAACI,EACH,MAAM,IAAI,MAAM,SAASJ,aAAe,EAG1C,OAAOI,CACT,CAEO,SAASE,GACdL,EACAV,EACY,CACZ,OAAO,MAAM,KAAKC,GAAgB,OAAO,CAAC,EACvC,OAAQC,GAAgBA,EAAY,gBAAgBQ,CAAK,EAAE,MAAM,EACjE,OACER,GAAgB,CAACF,GAAaE,EAAY,MAAM,YAAcF,CACjE,EACC,IAAKE,GAAgBA,EAAY,KAAK,CAC3C,CAEO,SAASc,GACdN,EACAO,EACY,CACZ,IAAMf,EAAcD,GAAgB,IAAIgB,EAAO,GAAG,EAElD,GAAI,CAACf,EACH,MAAM,IAAI,MAAM,oBAAoBe,EAAO,eAAe,EAG5D,OAAOf,EAAY,qBAAqBQ,CAAK,CAC/C,CAEO,SAASQ,GACdR,EACAO,EACAE,EACa,CACb,IAAMjB,EAAcD,GAAgB,IAAIgB,EAAO,GAAG,EAElD,GAAI,CAACf,EACH,MAAM,IAAI,MAAM,oBAAoBe,EAAO,eAAe,EAG5D,OAAOf,EAAY,0BAA0BQ,EAAOS,CAAW,CACjE,CCrEO,SAASC,IAAgB,CAC9B,MAAO,CACL,OAASC,IAGA,CACL,OAHaC,GAAmBD,CAAS,EAIzC,MAAQE,GAA+B,CACrC,IAAMC,EAAQC,GAASF,CAAU,EAGjC,MAAO,CACL,aAHmBG,GAAgBF,EAAOH,CAAS,EAInD,OAASM,IAAkC,CACzC,IAAMC,GAASC,GAASF,EAAU,EAGlC,MAAO,CACL,kBAHwBG,GAAqBN,EAAOI,EAAM,EAI1D,YAEED,IACG,CACH,IAAMI,GAAcF,GAASF,EAAU,EACjCK,GAAeC,GACnBT,EACAI,GACAG,EACF,EACMG,GAAoBD,GACxBT,EACAO,GACAH,EACF,EAEA,MAAO,CACL,MAAO,KAAuB,CAC5B,MAAAJ,EACA,OAAQ,CACN,MAAOI,GACP,OAAQI,EACV,EACA,YAAa,CACX,MAAOD,GACP,OAAQG,EACV,CACF,EACF,CACF,CACF,CACF,CACF,CACF,CACF,EAEJ,CACF","names":["Asset","aca","astr","auq","ausd","bnc","crab","csm","dev","dot","eq","eqd","glmr","hdx","hko","ibtc","intr","kar","kbtc","kint","kma","ksm","lit","mgx","movr","para","paring","pha","ring","rmrk","sdn","teer","tt1","unit","usdt","xrt","assetsList","assetsMap","asset","Ecosystem","EvmParachain","Parachain","acala","Parachain","aca","ausd","glmr","Ecosystem","alphanetRelay","astar","astr","bifrostKusama","movr","bnc","bifrostPolkadot","calamari","kma","crustShadow","csm","darwinia","EvmParachain","ring","darwiniaCrab","crab","darwiniaPangoro","paring","dev","equilibrium","eq","eqd","equilibriumAlphanet","hydraDX","hdx","interlay","intr","ibtc","integritee","karura","kar","khala","pha","kintsugi","kint","kbtc","kusama","litentryAlphanet","lit","litmus","mangataKusama","mgx","moonbaseAlpha","auq","tt1","unit","moonbaseBeta","moonbeam","dot","para","usdt","moonriver","hko","ksm","rmrk","sdn","teer","xrt","parallel","parallelHeiko","phala","polkadot","robonomics","shiden","statemine","statemineAlphanet","statemint","uniqueAlpha","chainsList","chainsMap","chain","AssetMinBuilder","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","AssetConfig","asset","balance","contract","destination","destinationFee","extrinsic","fee","min","ChainConfig","#assets","assets","chain","asset","assetConfig","destination","acalaConfig","ChainConfig","AssetConfig","aca","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","ausd","AssetMinBuilder","glmr","acala","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","alphanetRelayConfig","ChainConfig","AssetConfig","unit","BalanceBuilder","moonbaseAlpha","FeeBuilder","ExtrinsicBuilder","alphanetRelay","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","astarConfig","ChainConfig","AssetConfig","astr","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","glmr","astar","AssetMinBuilder","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","bifrostKusamaConfig","ChainConfig","AssetConfig","bnc","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","movr","AssetMinBuilder","bifrostKusama","AssetMinBuilder","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","bifrostPolkadotConfig","ChainConfig","AssetConfig","bnc","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","glmr","AssetMinBuilder","bifrostPolkadot","AssetMinBuilder","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","calamariConfig","ChainConfig","AssetConfig","kma","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","movr","AssetMinBuilder","calamari","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","crustShadowConfig","ChainConfig","AssetConfig","csm","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","movr","crustShadow","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","darwiniaConfig","ChainConfig","AssetConfig","ring","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","darwinia","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","darwiniaCrabConfig","ChainConfig","AssetConfig","crab","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","darwiniaCrab","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","darwiniaPangoroConfig","ChainConfig","AssetConfig","paring","BalanceBuilder","moonbaseAlpha","FeeBuilder","ExtrinsicBuilder","darwiniaPangoro","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","equilibriumConfig","ChainConfig","AssetConfig","eq","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","eqd","glmr","equilibrium","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","equilibriumAlphanetConfig","ChainConfig","AssetConfig","eq","BalanceBuilder","moonbaseAlpha","FeeBuilder","ExtrinsicBuilder","eqd","dev","equilibriumAlphanet","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","hydraDxConfig","ChainConfig","AssetConfig","hdx","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","glmr","hydraDX","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","integriteeConfig","ChainConfig","AssetConfig","teer","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","integritee","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","interlayConfig","ChainConfig","AssetConfig","intr","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","ibtc","interlay","AssetMinBuilder","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","karuraConfig","ChainConfig","AssetConfig","kar","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","ausd","AssetMinBuilder","movr","karura","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","khalaConfig","ChainConfig","AssetConfig","pha","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","movr","khala","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","kintsugiConfig","ChainConfig","AssetConfig","kint","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","kbtc","kintsugi","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","kusamaConfig","ChainConfig","AssetConfig","ksm","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","kusama","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","litentryAlphanetConfig","ChainConfig","AssetConfig","lit","BalanceBuilder","moonbaseAlpha","FeeBuilder","ExtrinsicBuilder","litentryAlphanet","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","litmusConfig","ChainConfig","AssetConfig","lit","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","litmus","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","mangataKusamaConfig","ChainConfig","AssetConfig","mgx","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","movr","mangataKusama","BalanceBuilder","ContractBuilder","moonbaseAlphaConfig","ChainConfig","AssetConfig","dev","BalanceBuilder","ContractBuilder","equilibriumAlphanet","eq","eqd","lit","litentryAlphanet","paring","darwiniaPangoro","tt1","statemineAlphanet","unit","alphanetRelay","moonbaseAlpha","BalanceBuilder","ContractBuilder","moonbeamConfig","ChainConfig","AssetConfig","glmr","BalanceBuilder","ContractBuilder","acala","astar","bifrostPolkadot","equilibrium","hydraDX","parallel","phala","aca","astr","ausd","bnc","dot","polkadot","eq","eqd","ibtc","interlay","intr","para","pha","ring","darwinia","usdt","statemint","hdx","moonbeam","BalanceBuilder","ContractBuilder","moonriverConfig","ChainConfig","AssetConfig","movr","BalanceBuilder","ContractBuilder","bifrostKusama","calamari","crustShadow","karura","khala","mangataKusama","parallelHeiko","shiden","ausd","bnc","crab","darwiniaCrab","csm","hko","kar","kbtc","kintsugi","kint","kma","ksm","kusama","lit","litmus","mgx","pha","rmrk","statemine","sdn","teer","integritee","usdt","xrt","robonomics","moonriver","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","parallelConfig","ChainConfig","AssetConfig","para","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","parallel","glmr","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","parallelHeikoConfig","ChainConfig","AssetConfig","hko","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","parallelHeiko","movr","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","phalaConfig","ChainConfig","AssetConfig","pha","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","glmr","phala","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","polkadotConfig","ChainConfig","AssetConfig","dot","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","polkadot","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","robonomicsConfig","ChainConfig","AssetConfig","xrt","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","robonomics","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","shidenConfig","ChainConfig","AssetConfig","sdn","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","movr","shiden","AssetMinBuilder","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","statemineConfig","ChainConfig","AssetConfig","rmrk","BalanceBuilder","moonriver","FeeBuilder","ExtrinsicBuilder","ksm","AssetMinBuilder","usdt","statemine","AssetMinBuilder","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","statemineAlphanetConfig","ChainConfig","AssetConfig","tt1","BalanceBuilder","moonbaseAlpha","FeeBuilder","ExtrinsicBuilder","unit","AssetMinBuilder","statemineAlphanet","AssetMinBuilder","BalanceBuilder","ExtrinsicBuilder","FeeBuilder","statemintConfig","ChainConfig","AssetConfig","usdt","BalanceBuilder","moonbeam","FeeBuilder","ExtrinsicBuilder","dot","AssetMinBuilder","statemint","uniqueAlphaConfig","ChainConfig","uniqueAlpha","chainsConfigList","acalaConfig","alphanetRelayConfig","astarConfig","bifrostKusamaConfig","bifrostPolkadotConfig","calamariConfig","crustShadowConfig","darwiniaConfig","darwiniaCrabConfig","darwiniaPangoroConfig","equilibriumAlphanetConfig","equilibriumConfig","hydraDxConfig","integriteeConfig","interlayConfig","karuraConfig","khalaConfig","kintsugiConfig","kusamaConfig","litentryAlphanetConfig","litmusConfig","mangataKusamaConfig","moonbaseAlphaConfig","moonbeamConfig","moonriverConfig","parallelConfig","parallelHeikoConfig","phalaConfig","polkadotConfig","robonomicsConfig","shidenConfig","statemineAlphanetConfig","statemineConfig","statemintConfig","uniqueAlphaConfig","chainsConfigMap","config","getEcosystemAssets","ecosystem","chainsConfigMap","chainConfig","assetConfig","a","b","assetsList","getAsset","keyOrAsset","key","asset","assetsMap","getChain","chain","chainsMap","getSourceChains","getDestinationChains","source","getAssetDestinationConfig","destination","ConfigBuilder","ecosystem","getEcosystemAssets","keyOrAsset","asset","getAsset","getSourceChains","keyOrChain","source","getChain","getDestinationChains","destination","sourceConfig","getAssetDestinationConfig","destinationConfig"]}