@moonbeam-network/xcm-types 2.2.5 → 2.3.0

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/asset/Asset.ts","../src/asset/AssetAmount.ts","../src/chain/Chain.interfaces.ts","../src/chain/Chain.ts","../src/chain/parachain/EvmParachain.ts","../src/chain/parachain/Parachain.ts"],"sourcesContent":["export * from './asset';\nexport * from './chain';\nexport * from './common.interfaces';\n","export interface AssetConstructorParams {\n key: string;\n originSymbol: string;\n}\n\nexport class Asset {\n readonly key: string;\n\n readonly originSymbol: string;\n\n constructor({ key, originSymbol }: AssetConstructorParams) {\n this.key = key;\n this.originSymbol = originSymbol;\n }\n\n isEqual(asset: Asset): boolean {\n return this.key === asset.key && this.originSymbol === asset.originSymbol;\n }\n}\n","import { toDecimal } from '@moonbeam-network/xcm-utils';\nimport Big, { RoundingMode } from 'big.js';\nimport { Asset, AssetConstructorParams } from './Asset';\n\nBig.NE = -18;\n\nexport interface AssetAmountParams {\n amount: bigint;\n decimals: number;\n symbol?: string;\n}\n\nexport interface AssetAmountConstructorParams\n extends AssetConstructorParams,\n AssetAmountParams {}\n\nexport class AssetAmount extends Asset {\n readonly amount: bigint;\n\n readonly decimals: number;\n\n readonly symbol: string;\n\n constructor({\n amount,\n decimals,\n symbol,\n ...other\n }: AssetAmountConstructorParams) {\n super(other);\n\n this.amount = BigInt(amount);\n this.decimals = decimals;\n this.symbol = symbol || this.originSymbol;\n }\n\n static fromAsset(asset: Asset, params: AssetAmountParams) {\n return new AssetAmount({\n ...asset,\n ...params,\n });\n }\n\n isSame(asset: AssetAmount): boolean {\n return super.isEqual(asset) && this.decimals === asset.decimals;\n }\n\n isEqual(asset: AssetAmount): boolean {\n return this.isSame(asset) && this.amount === asset.amount;\n }\n\n copyWith(params: Partial<AssetAmountConstructorParams>) {\n return new AssetAmount({\n ...this,\n ...params,\n });\n }\n\n toBig(): Big {\n return Big(this.amount.toString());\n }\n\n toBigDecimal(maxDecimal?: number, roundType?: RoundingMode): Big {\n return Big(this.toDecimal(maxDecimal, roundType));\n }\n\n toDecimal(maxDecimal?: number, roundType?: RoundingMode): string {\n return toDecimal(this.amount, this.decimals, maxDecimal, roundType);\n }\n}\n","import type { EvmParachain, Parachain } from './parachain';\n\nexport type AnyChain = Parachain | EvmParachain;\nexport type AnyParachain = Parachain | EvmParachain;\n\nexport enum ChainType {\n 'Parachain' = 'parachain',\n 'EvmParachain' = 'evm-parachain',\n}\n\nexport enum Ecosystem {\n Polkadot = 'polkadot',\n Kusama = 'kusama',\n AlphanetRelay = 'alphanet-relay',\n}\n","import { ChainType, Ecosystem } from './Chain.interfaces';\nimport type { EvmParachain, Parachain } from './parachain';\n\nexport interface ChainConstructorParams {\n ecosystem?: Ecosystem;\n isTestChain?: boolean;\n key: string;\n name: string;\n type: ChainType;\n}\n\nexport abstract class Chain {\n readonly ecosystem?: Ecosystem;\n\n readonly isTestChain: boolean;\n\n readonly key: string;\n\n readonly name: string;\n\n readonly type: ChainType;\n\n constructor({\n ecosystem,\n isTestChain = false,\n key,\n name,\n type,\n }: ChainConstructorParams) {\n this.ecosystem = ecosystem;\n this.isTestChain = isTestChain;\n this.key = key;\n this.name = name;\n this.type = type;\n }\n\n isParachain(): this is Parachain {\n return this.type === ChainType.Parachain;\n }\n\n isEvmParachain(): this is EvmParachain {\n return this.type === ChainType.EvmParachain;\n }\n}\n","import { Address, defineChain } from 'viem';\nimport { Chain } from 'viem/chains';\nimport { ChainType } from '../Chain.interfaces';\nimport { Parachain, ParachainConstructorParams } from './Parachain';\n\nexport interface EvmParachainConstructorParams\n extends Omit<ParachainConstructorParams, 'type'> {\n id: number;\n rpc: string;\n nativeCurrency: NativeCurrency;\n isEvmSigner?: boolean;\n contracts?: Contracts;\n}\n\ntype NativeCurrency = {\n decimals: number;\n name: string;\n symbol: string;\n};\n\ntype Contracts = {\n Xtokens?: Address;\n};\n\nexport class EvmParachain extends Parachain {\n readonly id: number;\n\n readonly rpc: string;\n\n readonly nativeCurrency: NativeCurrency;\n\n readonly isEvmSigner: boolean;\n\n readonly contracts?: Contracts;\n\n constructor({\n id,\n rpc,\n nativeCurrency,\n isEvmSigner = false,\n contracts,\n ...others\n }: EvmParachainConstructorParams) {\n super({ type: ChainType.EvmParachain, ...others });\n\n this.contracts = contracts;\n this.id = id;\n this.rpc = rpc;\n this.nativeCurrency = nativeCurrency;\n this.isEvmSigner = isEvmSigner;\n }\n\n getViemChain(): Chain {\n return defineChain({\n id: this.id,\n name: this.name,\n nativeCurrency: this.nativeCurrency,\n rpcUrls: {\n default: {\n http: [this.rpc],\n webSocket: Array.isArray(this.ws) ? this.ws : [this.ws],\n },\n },\n });\n }\n}\n","import { Asset } from '../../asset';\nimport { SetOptional } from '../../common.interfaces';\nimport { Chain, ChainConstructorParams } from '../Chain';\nimport { ChainType } from '../Chain.interfaces';\nimport { ChainAssetId, ChainAssetsData } from './Parachain.interfaces';\n\nexport interface ParachainConstructorParams\n extends SetOptional<ChainConstructorParams, 'type'> {\n assetsData?: Map<string, ChainAssetsData> | ChainAssetsData[];\n genesisHash: string;\n parachainId: number;\n ss58Format: number;\n usesChainDecimals?: boolean;\n weight?: number;\n ws: string | string[];\n}\n\nexport class Parachain extends Chain {\n readonly assetsData: Map<string, ChainAssetsData>;\n\n readonly genesisHash: string;\n\n readonly parachainId: number;\n\n readonly ss58Format: number;\n\n readonly usesChainDecimals: boolean;\n\n readonly weight: number | undefined;\n\n readonly ws: string | string[];\n\n constructor({\n assetsData,\n genesisHash,\n parachainId,\n usesChainDecimals,\n ss58Format,\n weight,\n ws,\n type = ChainType.Parachain,\n ...others\n }: ParachainConstructorParams) {\n super({ type, ...others });\n\n this.assetsData =\n assetsData instanceof Map\n ? assetsData\n : new Map(assetsData?.map((data) => [data.asset.key, data]));\n this.genesisHash = genesisHash;\n this.parachainId = parachainId;\n this.ss58Format = ss58Format;\n this.usesChainDecimals = !!usesChainDecimals;\n this.weight = weight;\n this.ws = ws;\n }\n\n getAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.id ?? asset.originSymbol;\n }\n\n getBalanceAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.balanceId ?? this.getAssetId(asset);\n }\n\n getMinAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.minId ?? this.getAssetId(asset);\n }\n\n getMetadataAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.metadataId ?? this.getAssetId(asset);\n }\n\n getAssetPalletInstance(asset: Asset): number | undefined {\n return this.assetsData.get(asset.key)?.palletInstance;\n }\n\n getAssetDecimals(asset: Asset): number | undefined {\n return this.assetsData.get(asset.key)?.decimals;\n }\n\n getAssetMin(asset: Asset): number {\n return this.assetsData.get(asset.key)?.min ?? 0;\n }\n}\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,gBAAAC,EAAA,UAAAC,EAAA,cAAAC,EAAA,cAAAC,EAAA,iBAAAC,EAAA,cAAAC,IAAA,eAAAC,EAAAT,GCKO,IAAMU,EAAN,KAAY,CACR,IAEA,aAET,YAAY,CAAE,IAAAC,EAAK,aAAAC,CAAa,EAA2B,CACzD,KAAK,IAAMD,EACX,KAAK,aAAeC,CACtB,CAEA,QAAQC,EAAuB,CAC7B,OAAO,KAAK,MAAQA,EAAM,KAAO,KAAK,eAAiBA,EAAM,YAC/D,CACF,EClBA,IAAAC,EAA0B,uCAC1BC,EAAkC,uBAGlC,EAAAC,QAAI,GAAK,IAYF,IAAMC,EAAN,MAAMC,UAAoBC,CAAM,CAC5B,OAEA,SAEA,OAET,YAAY,CACV,OAAAC,EACA,SAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EAAiC,CAC/B,MAAMA,CAAK,EAEX,KAAK,OAAS,OAAOH,CAAM,EAC3B,KAAK,SAAWC,EAChB,KAAK,OAASC,GAAU,KAAK,YAC/B,CAEA,OAAO,UAAUE,EAAcC,EAA2B,CACxD,OAAO,IAAIP,EAAY,CACrB,GAAGM,EACH,GAAGC,CACL,CAAC,CACH,CAEA,OAAOD,EAA6B,CAClC,OAAO,MAAM,QAAQA,CAAK,GAAK,KAAK,WAAaA,EAAM,QACzD,CAEA,QAAQA,EAA6B,CACnC,OAAO,KAAK,OAAOA,CAAK,GAAK,KAAK,SAAWA,EAAM,MACrD,CAEA,SAASC,EAA+C,CACtD,OAAO,IAAIP,EAAY,CACrB,GAAG,KACH,GAAGO,CACL,CAAC,CACH,CAEA,OAAa,CACX,SAAO,EAAAT,SAAI,KAAK,OAAO,SAAS,CAAC,CACnC,CAEA,aAAaU,EAAqBC,EAA+B,CAC/D,SAAO,EAAAX,SAAI,KAAK,UAAUU,EAAYC,CAAS,CAAC,CAClD,CAEA,UAAUD,EAAqBC,EAAkC,CAC/D,SAAO,aAAU,KAAK,OAAQ,KAAK,SAAUD,EAAYC,CAAS,CACpE,CACF,EChEO,IAAKC,OACVA,EAAA,UAAc,YACdA,EAAA,aAAiB,gBAFPA,OAAA,IAKAC,OACVA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,cAAgB,iBAHNA,OAAA,ICCL,IAAeC,EAAf,KAAqB,CACjB,UAEA,YAEA,IAEA,KAEA,KAET,YAAY,CACV,UAAAC,EACA,YAAAC,EAAc,GACd,IAAAC,EACA,KAAAC,EACA,KAAAC,CACF,EAA2B,CACzB,KAAK,UAAYJ,EACjB,KAAK,YAAcC,EACnB,KAAK,IAAMC,EACX,KAAK,KAAOC,EACZ,KAAK,KAAOC,CACd,CAEA,aAAiC,CAC/B,OAAO,KAAK,OAAS,WACvB,CAEA,gBAAuC,CACrC,OAAO,KAAK,OAAS,eACvB,CACF,EC3CA,IAAAC,EAAqC,gBCiB9B,IAAMC,EAAN,cAAwBC,CAAM,CAC1B,WAEA,YAEA,YAEA,WAEA,kBAEA,OAEA,GAET,YAAY,CACV,WAAAC,EACA,YAAAC,EACA,YAAAC,EACA,kBAAAC,EACA,WAAAC,EACA,OAAAC,EACA,GAAAC,EACA,KAAAC,cACA,GAAGC,CACL,EAA+B,CAC7B,MAAM,CAAE,KAAAD,EAAM,GAAGC,CAAO,CAAC,EAEzB,KAAK,WACHR,aAAsB,IAClBA,EACA,IAAI,IAAIA,GAAA,YAAAA,EAAY,IAAKS,GAAS,CAACA,EAAK,MAAM,IAAKA,CAAI,EAAE,EAC/D,KAAK,YAAcR,EACnB,KAAK,YAAcC,EACnB,KAAK,WAAaE,EAClB,KAAK,kBAAoB,CAAC,CAACD,EAC3B,KAAK,OAASE,EACd,KAAK,GAAKC,CACZ,CAEA,WAAWI,EAA4B,CAzDzC,IAAAC,EA0DI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,KAAMD,EAAM,YACrD,CAEA,kBAAkBA,EAA4B,CA7DhD,IAAAC,EA8DI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,YAAa,KAAK,WAAWD,CAAK,CAC3E,CAEA,cAAcA,EAA4B,CAjE5C,IAAAC,EAkEI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,QAAS,KAAK,WAAWD,CAAK,CACvE,CAEA,mBAAmBA,EAA4B,CArEjD,IAAAC,EAsEI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,aAAc,KAAK,WAAWD,CAAK,CAC5E,CAEA,uBAAuBA,EAAkC,CAzE3D,IAAAC,EA0EI,OAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,cACzC,CAEA,iBAAiBD,EAAkC,CA7ErD,IAAAC,EA8EI,OAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,QACzC,CAEA,YAAYD,EAAsB,CAjFpC,IAAAC,EAkFI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,MAAO,CAChD,CACF,ED5DO,IAAMC,EAAN,cAA2BC,CAAU,CACjC,GAEA,IAEA,eAEA,YAEA,UAET,YAAY,CACV,GAAAC,EACA,IAAAC,EACA,eAAAC,EACA,YAAAC,EAAc,GACd,UAAAC,EACA,GAAGC,CACL,EAAkC,CAChC,MAAM,CAAE,qBAA8B,GAAGA,CAAO,CAAC,EAEjD,KAAK,UAAYD,EACjB,KAAK,GAAKJ,EACV,KAAK,IAAMC,EACX,KAAK,eAAiBC,EACtB,KAAK,YAAcC,CACrB,CAEA,cAAsB,CACpB,SAAO,eAAY,CACjB,GAAI,KAAK,GACT,KAAM,KAAK,KACX,eAAgB,KAAK,eACrB,QAAS,CACP,QAAS,CACP,KAAM,CAAC,KAAK,GAAG,EACf,UAAW,MAAM,QAAQ,KAAK,EAAE,EAAI,KAAK,GAAK,CAAC,KAAK,EAAE,CACxD,CACF,CACF,CAAC,CACH,CACF","names":["src_exports","__export","Asset","AssetAmount","Chain","ChainType","Ecosystem","EvmParachain","Parachain","__toCommonJS","Asset","key","originSymbol","asset","import_xcm_utils","import_big","Big","AssetAmount","_AssetAmount","Asset","amount","decimals","symbol","other","asset","params","maxDecimal","roundType","ChainType","Ecosystem","Chain","ecosystem","isTestChain","key","name","type","import_viem","Parachain","Chain","assetsData","genesisHash","parachainId","usesChainDecimals","ss58Format","weight","ws","type","others","data","asset","_a","EvmParachain","Parachain","id","rpc","nativeCurrency","isEvmSigner","contracts","others"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/asset/Asset.ts","../src/asset/AssetAmount.ts","../src/chain/Chain.interfaces.ts","../src/chain/Chain.ts","../src/chain/parachain/EvmParachain.ts","../src/chain/parachain/Parachain.ts"],"sourcesContent":["export * from './asset';\nexport * from './chain';\nexport * from './common.interfaces';\n","export interface AssetConstructorParams {\n key: string;\n originSymbol: string;\n}\n\nexport class Asset {\n readonly key: string;\n\n readonly originSymbol: string;\n\n constructor({ key, originSymbol }: AssetConstructorParams) {\n this.key = key;\n this.originSymbol = originSymbol;\n }\n\n isEqual(asset: Asset): boolean {\n return this.key === asset.key && this.originSymbol === asset.originSymbol;\n }\n}\n","import { toDecimal } from '@moonbeam-network/xcm-utils';\nimport Big, { RoundingMode } from 'big.js';\nimport { Asset, AssetConstructorParams } from './Asset';\n\nBig.NE = -18;\n\nexport interface AssetAmountParams {\n amount: bigint;\n decimals: number;\n symbol?: string;\n}\n\nexport interface AssetAmountConstructorParams\n extends AssetConstructorParams,\n AssetAmountParams {}\n\nexport class AssetAmount extends Asset {\n readonly amount: bigint;\n\n readonly decimals: number;\n\n readonly symbol: string;\n\n constructor({\n amount,\n decimals,\n symbol,\n ...other\n }: AssetAmountConstructorParams) {\n super(other);\n\n this.amount = BigInt(amount);\n this.decimals = decimals;\n this.symbol = symbol || this.originSymbol;\n }\n\n static fromAsset(asset: Asset, params: AssetAmountParams) {\n return new AssetAmount({\n ...asset,\n ...params,\n });\n }\n\n isSame(asset: AssetAmount): boolean {\n return super.isEqual(asset) && this.decimals === asset.decimals;\n }\n\n isEqual(asset: AssetAmount): boolean {\n return this.isSame(asset) && this.amount === asset.amount;\n }\n\n copyWith(params: Partial<AssetAmountConstructorParams>) {\n return new AssetAmount({\n ...this,\n ...params,\n });\n }\n\n toBig(): Big {\n return Big(this.amount.toString());\n }\n\n toBigDecimal(maxDecimal?: number, roundType?: RoundingMode): Big {\n return Big(this.toDecimal(maxDecimal, roundType));\n }\n\n toDecimal(maxDecimal?: number, roundType?: RoundingMode): string {\n return toDecimal(this.amount, this.decimals, maxDecimal, roundType);\n }\n}\n","import type { EvmParachain, Parachain } from './parachain';\n\nexport type AnyChain = Parachain | EvmParachain;\nexport type AnyParachain = Parachain | EvmParachain;\n\nexport enum ChainType {\n 'Parachain' = 'parachain',\n 'EvmParachain' = 'evm-parachain',\n}\n\nexport enum Ecosystem {\n Polkadot = 'polkadot',\n Kusama = 'kusama',\n AlphanetRelay = 'alphanet-relay',\n}\n","import { ChainType, Ecosystem } from './Chain.interfaces';\nimport type { EvmParachain, Parachain } from './parachain';\n\nexport interface ChainConstructorParams {\n ecosystem?: Ecosystem;\n isTestChain?: boolean;\n key: string;\n name: string;\n type: ChainType;\n}\n\nexport abstract class Chain {\n readonly ecosystem?: Ecosystem;\n\n readonly isTestChain: boolean;\n\n readonly key: string;\n\n readonly name: string;\n\n readonly type: ChainType;\n\n constructor({\n ecosystem,\n isTestChain = false,\n key,\n name,\n type,\n }: ChainConstructorParams) {\n this.ecosystem = ecosystem;\n this.isTestChain = isTestChain;\n this.key = key;\n this.name = name;\n this.type = type;\n }\n\n isParachain(): this is Parachain {\n return this.type === ChainType.Parachain;\n }\n\n isEvmParachain(): this is EvmParachain {\n return this.type === ChainType.EvmParachain;\n }\n}\n","import { Address, defineChain } from 'viem';\nimport { Chain } from 'viem/chains';\nimport { ChainType } from '../Chain.interfaces';\nimport { Parachain, ParachainConstructorParams } from './Parachain';\n\nexport interface EvmParachainConstructorParams\n extends Omit<ParachainConstructorParams, 'type'> {\n id: number;\n rpc: string;\n nativeCurrency: NativeCurrency;\n isEvmSigner?: boolean;\n contracts?: Contracts;\n}\n\ntype NativeCurrency = {\n decimals: number;\n name: string;\n symbol: string;\n};\n\ntype Contracts = {\n Xtokens?: Address;\n};\n\nexport class EvmParachain extends Parachain {\n readonly id: number;\n\n readonly rpc: string;\n\n readonly nativeCurrency: NativeCurrency;\n\n readonly isEvmSigner: boolean;\n\n readonly contracts?: Contracts;\n\n constructor({\n id,\n rpc,\n nativeCurrency,\n isEvmSigner = false,\n contracts,\n ...others\n }: EvmParachainConstructorParams) {\n super({ type: ChainType.EvmParachain, ...others });\n\n this.contracts = contracts;\n this.id = id;\n this.rpc = rpc;\n this.nativeCurrency = nativeCurrency;\n this.isEvmSigner = isEvmSigner;\n }\n\n getViemChain(): Chain {\n return defineChain({\n id: this.id,\n name: this.name,\n nativeCurrency: this.nativeCurrency,\n rpcUrls: {\n default: {\n http: [this.rpc],\n webSocket: Array.isArray(this.ws) ? this.ws : [this.ws],\n },\n },\n });\n }\n}\n","import { Asset } from '../../asset';\nimport { SetOptional } from '../../common.interfaces';\nimport { Chain, ChainConstructorParams } from '../Chain';\nimport { ChainType } from '../Chain.interfaces';\nimport { ChainAssetId, ChainAssetsData } from './Parachain.interfaces';\n\nexport interface ParachainConstructorParams\n extends SetOptional<ChainConstructorParams, 'type'> {\n assetsData?: Map<string, ChainAssetsData> | ChainAssetsData[];\n genesisHash: string;\n parachainId: number;\n ss58Format: number;\n usesChainDecimals?: boolean;\n weight?: number;\n ws: string[];\n}\n\nexport class Parachain extends Chain {\n readonly assetsData: Map<string, ChainAssetsData>;\n\n readonly genesisHash: string;\n\n readonly parachainId: number;\n\n readonly ss58Format: number;\n\n readonly usesChainDecimals: boolean;\n\n readonly weight: number | undefined;\n\n readonly ws: string[];\n\n constructor({\n assetsData,\n genesisHash,\n parachainId,\n usesChainDecimals,\n ss58Format,\n weight,\n ws,\n type = ChainType.Parachain,\n ...others\n }: ParachainConstructorParams) {\n super({ type, ...others });\n\n this.assetsData =\n assetsData instanceof Map\n ? assetsData\n : new Map(assetsData?.map((data) => [data.asset.key, data]));\n this.genesisHash = genesisHash;\n this.parachainId = parachainId;\n this.ss58Format = ss58Format;\n this.usesChainDecimals = !!usesChainDecimals;\n this.weight = weight;\n this.ws = ws;\n }\n\n getAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.id ?? asset.originSymbol;\n }\n\n getBalanceAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.balanceId ?? this.getAssetId(asset);\n }\n\n getMinAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.minId ?? this.getAssetId(asset);\n }\n\n getMetadataAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.metadataId ?? this.getAssetId(asset);\n }\n\n getAssetPalletInstance(asset: Asset): number | undefined {\n return this.assetsData.get(asset.key)?.palletInstance;\n }\n\n getAssetDecimals(asset: Asset): number | undefined {\n return this.assetsData.get(asset.key)?.decimals;\n }\n\n getAssetMin(asset: Asset): number {\n return this.assetsData.get(asset.key)?.min ?? 0;\n }\n}\n"],"mappings":"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","names":["src_exports","__export","Asset","AssetAmount","Chain","ChainType","Ecosystem","EvmParachain","Parachain","__toCommonJS","Asset","key","originSymbol","asset","import_xcm_utils","import_big","Big","AssetAmount","_AssetAmount","Asset","amount","decimals","symbol","other","asset","params","maxDecimal","roundType","ChainType","Ecosystem","Chain","ecosystem","isTestChain","key","name","type","import_viem","Parachain","Chain","assetsData","genesisHash","parachainId","usesChainDecimals","ss58Format","weight","ws","type","others","data","asset","_a","EvmParachain","Parachain","id","rpc","nativeCurrency","isEvmSigner","contracts","others"]}
package/build/index.d.cts CHANGED
@@ -58,7 +58,7 @@ interface ParachainConstructorParams extends SetOptional<ChainConstructorParams,
58
58
  ss58Format: number;
59
59
  usesChainDecimals?: boolean;
60
60
  weight?: number;
61
- ws: string | string[];
61
+ ws: string[];
62
62
  }
63
63
  declare class Parachain extends Chain {
64
64
  readonly assetsData: Map<string, ChainAssetsData>;
@@ -67,7 +67,7 @@ declare class Parachain extends Chain {
67
67
  readonly ss58Format: number;
68
68
  readonly usesChainDecimals: boolean;
69
69
  readonly weight: number | undefined;
70
- readonly ws: string | string[];
70
+ readonly ws: string[];
71
71
  constructor({ assetsData, genesisHash, parachainId, usesChainDecimals, ss58Format, weight, ws, type, ...others }: ParachainConstructorParams);
72
72
  getAssetId(asset: Asset): ChainAssetId;
73
73
  getBalanceAssetId(asset: Asset): ChainAssetId;
package/build/index.d.ts CHANGED
@@ -70,7 +70,7 @@ interface ParachainConstructorParams
70
70
  ss58Format: number;
71
71
  usesChainDecimals?: boolean;
72
72
  weight?: number;
73
- ws: string | string[];
73
+ ws: string[];
74
74
  }
75
75
  declare class Parachain extends Chain {
76
76
  readonly assetsData: Map<string, ChainAssetsData>;
@@ -79,7 +79,7 @@ declare class Parachain extends Chain {
79
79
  readonly ss58Format: number;
80
80
  readonly usesChainDecimals: boolean;
81
81
  readonly weight: number | undefined;
82
- readonly ws: string | string[];
82
+ readonly ws: string[];
83
83
  constructor({
84
84
  assetsData,
85
85
  genesisHash,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/asset/Asset.ts","../src/asset/AssetAmount.ts","../src/chain/Chain.interfaces.ts","../src/chain/Chain.ts","../src/chain/parachain/EvmParachain.ts","../src/chain/parachain/Parachain.ts"],"sourcesContent":["export interface AssetConstructorParams {\n key: string;\n originSymbol: string;\n}\n\nexport class Asset {\n readonly key: string;\n\n readonly originSymbol: string;\n\n constructor({ key, originSymbol }: AssetConstructorParams) {\n this.key = key;\n this.originSymbol = originSymbol;\n }\n\n isEqual(asset: Asset): boolean {\n return this.key === asset.key && this.originSymbol === asset.originSymbol;\n }\n}\n","import { toDecimal } from '@moonbeam-network/xcm-utils';\nimport Big, { RoundingMode } from 'big.js';\nimport { Asset, AssetConstructorParams } from './Asset';\n\nBig.NE = -18;\n\nexport interface AssetAmountParams {\n amount: bigint;\n decimals: number;\n symbol?: string;\n}\n\nexport interface AssetAmountConstructorParams\n extends AssetConstructorParams,\n AssetAmountParams {}\n\nexport class AssetAmount extends Asset {\n readonly amount: bigint;\n\n readonly decimals: number;\n\n readonly symbol: string;\n\n constructor({\n amount,\n decimals,\n symbol,\n ...other\n }: AssetAmountConstructorParams) {\n super(other);\n\n this.amount = BigInt(amount);\n this.decimals = decimals;\n this.symbol = symbol || this.originSymbol;\n }\n\n static fromAsset(asset: Asset, params: AssetAmountParams) {\n return new AssetAmount({\n ...asset,\n ...params,\n });\n }\n\n isSame(asset: AssetAmount): boolean {\n return super.isEqual(asset) && this.decimals === asset.decimals;\n }\n\n isEqual(asset: AssetAmount): boolean {\n return this.isSame(asset) && this.amount === asset.amount;\n }\n\n copyWith(params: Partial<AssetAmountConstructorParams>) {\n return new AssetAmount({\n ...this,\n ...params,\n });\n }\n\n toBig(): Big {\n return Big(this.amount.toString());\n }\n\n toBigDecimal(maxDecimal?: number, roundType?: RoundingMode): Big {\n return Big(this.toDecimal(maxDecimal, roundType));\n }\n\n toDecimal(maxDecimal?: number, roundType?: RoundingMode): string {\n return toDecimal(this.amount, this.decimals, maxDecimal, roundType);\n }\n}\n","import type { EvmParachain, Parachain } from './parachain';\n\nexport type AnyChain = Parachain | EvmParachain;\nexport type AnyParachain = Parachain | EvmParachain;\n\nexport enum ChainType {\n 'Parachain' = 'parachain',\n 'EvmParachain' = 'evm-parachain',\n}\n\nexport enum Ecosystem {\n Polkadot = 'polkadot',\n Kusama = 'kusama',\n AlphanetRelay = 'alphanet-relay',\n}\n","import { ChainType, Ecosystem } from './Chain.interfaces';\nimport type { EvmParachain, Parachain } from './parachain';\n\nexport interface ChainConstructorParams {\n ecosystem?: Ecosystem;\n isTestChain?: boolean;\n key: string;\n name: string;\n type: ChainType;\n}\n\nexport abstract class Chain {\n readonly ecosystem?: Ecosystem;\n\n readonly isTestChain: boolean;\n\n readonly key: string;\n\n readonly name: string;\n\n readonly type: ChainType;\n\n constructor({\n ecosystem,\n isTestChain = false,\n key,\n name,\n type,\n }: ChainConstructorParams) {\n this.ecosystem = ecosystem;\n this.isTestChain = isTestChain;\n this.key = key;\n this.name = name;\n this.type = type;\n }\n\n isParachain(): this is Parachain {\n return this.type === ChainType.Parachain;\n }\n\n isEvmParachain(): this is EvmParachain {\n return this.type === ChainType.EvmParachain;\n }\n}\n","import { Address, defineChain } from 'viem';\nimport { Chain } from 'viem/chains';\nimport { ChainType } from '../Chain.interfaces';\nimport { Parachain, ParachainConstructorParams } from './Parachain';\n\nexport interface EvmParachainConstructorParams\n extends Omit<ParachainConstructorParams, 'type'> {\n id: number;\n rpc: string;\n nativeCurrency: NativeCurrency;\n isEvmSigner?: boolean;\n contracts?: Contracts;\n}\n\ntype NativeCurrency = {\n decimals: number;\n name: string;\n symbol: string;\n};\n\ntype Contracts = {\n Xtokens?: Address;\n};\n\nexport class EvmParachain extends Parachain {\n readonly id: number;\n\n readonly rpc: string;\n\n readonly nativeCurrency: NativeCurrency;\n\n readonly isEvmSigner: boolean;\n\n readonly contracts?: Contracts;\n\n constructor({\n id,\n rpc,\n nativeCurrency,\n isEvmSigner = false,\n contracts,\n ...others\n }: EvmParachainConstructorParams) {\n super({ type: ChainType.EvmParachain, ...others });\n\n this.contracts = contracts;\n this.id = id;\n this.rpc = rpc;\n this.nativeCurrency = nativeCurrency;\n this.isEvmSigner = isEvmSigner;\n }\n\n getViemChain(): Chain {\n return defineChain({\n id: this.id,\n name: this.name,\n nativeCurrency: this.nativeCurrency,\n rpcUrls: {\n default: {\n http: [this.rpc],\n webSocket: Array.isArray(this.ws) ? this.ws : [this.ws],\n },\n },\n });\n }\n}\n","import { Asset } from '../../asset';\nimport { SetOptional } from '../../common.interfaces';\nimport { Chain, ChainConstructorParams } from '../Chain';\nimport { ChainType } from '../Chain.interfaces';\nimport { ChainAssetId, ChainAssetsData } from './Parachain.interfaces';\n\nexport interface ParachainConstructorParams\n extends SetOptional<ChainConstructorParams, 'type'> {\n assetsData?: Map<string, ChainAssetsData> | ChainAssetsData[];\n genesisHash: string;\n parachainId: number;\n ss58Format: number;\n usesChainDecimals?: boolean;\n weight?: number;\n ws: string | string[];\n}\n\nexport class Parachain extends Chain {\n readonly assetsData: Map<string, ChainAssetsData>;\n\n readonly genesisHash: string;\n\n readonly parachainId: number;\n\n readonly ss58Format: number;\n\n readonly usesChainDecimals: boolean;\n\n readonly weight: number | undefined;\n\n readonly ws: string | string[];\n\n constructor({\n assetsData,\n genesisHash,\n parachainId,\n usesChainDecimals,\n ss58Format,\n weight,\n ws,\n type = ChainType.Parachain,\n ...others\n }: ParachainConstructorParams) {\n super({ type, ...others });\n\n this.assetsData =\n assetsData instanceof Map\n ? assetsData\n : new Map(assetsData?.map((data) => [data.asset.key, data]));\n this.genesisHash = genesisHash;\n this.parachainId = parachainId;\n this.ss58Format = ss58Format;\n this.usesChainDecimals = !!usesChainDecimals;\n this.weight = weight;\n this.ws = ws;\n }\n\n getAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.id ?? asset.originSymbol;\n }\n\n getBalanceAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.balanceId ?? this.getAssetId(asset);\n }\n\n getMinAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.minId ?? this.getAssetId(asset);\n }\n\n getMetadataAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.metadataId ?? this.getAssetId(asset);\n }\n\n getAssetPalletInstance(asset: Asset): number | undefined {\n return this.assetsData.get(asset.key)?.palletInstance;\n }\n\n getAssetDecimals(asset: Asset): number | undefined {\n return this.assetsData.get(asset.key)?.decimals;\n }\n\n getAssetMin(asset: Asset): number {\n return this.assetsData.get(asset.key)?.min ?? 0;\n }\n}\n"],"mappings":"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","names":["Asset","key","originSymbol","asset","toDecimal","Big","Big","AssetAmount","_AssetAmount","Asset","amount","decimals","symbol","other","asset","params","maxDecimal","roundType","toDecimal","ChainType","Ecosystem","Chain","ecosystem","isTestChain","key","name","type","defineChain","Parachain","Chain","assetsData","genesisHash","parachainId","usesChainDecimals","ss58Format","weight","ws","type","others","data","asset","_a","EvmParachain","Parachain","id","rpc","nativeCurrency","isEvmSigner","contracts","others","defineChain"]}
1
+ {"version":3,"sources":["../src/asset/Asset.ts","../src/asset/AssetAmount.ts","../src/chain/Chain.interfaces.ts","../src/chain/Chain.ts","../src/chain/parachain/EvmParachain.ts","../src/chain/parachain/Parachain.ts"],"sourcesContent":["export interface AssetConstructorParams {\n key: string;\n originSymbol: string;\n}\n\nexport class Asset {\n readonly key: string;\n\n readonly originSymbol: string;\n\n constructor({ key, originSymbol }: AssetConstructorParams) {\n this.key = key;\n this.originSymbol = originSymbol;\n }\n\n isEqual(asset: Asset): boolean {\n return this.key === asset.key && this.originSymbol === asset.originSymbol;\n }\n}\n","import { toDecimal } from '@moonbeam-network/xcm-utils';\nimport Big, { RoundingMode } from 'big.js';\nimport { Asset, AssetConstructorParams } from './Asset';\n\nBig.NE = -18;\n\nexport interface AssetAmountParams {\n amount: bigint;\n decimals: number;\n symbol?: string;\n}\n\nexport interface AssetAmountConstructorParams\n extends AssetConstructorParams,\n AssetAmountParams {}\n\nexport class AssetAmount extends Asset {\n readonly amount: bigint;\n\n readonly decimals: number;\n\n readonly symbol: string;\n\n constructor({\n amount,\n decimals,\n symbol,\n ...other\n }: AssetAmountConstructorParams) {\n super(other);\n\n this.amount = BigInt(amount);\n this.decimals = decimals;\n this.symbol = symbol || this.originSymbol;\n }\n\n static fromAsset(asset: Asset, params: AssetAmountParams) {\n return new AssetAmount({\n ...asset,\n ...params,\n });\n }\n\n isSame(asset: AssetAmount): boolean {\n return super.isEqual(asset) && this.decimals === asset.decimals;\n }\n\n isEqual(asset: AssetAmount): boolean {\n return this.isSame(asset) && this.amount === asset.amount;\n }\n\n copyWith(params: Partial<AssetAmountConstructorParams>) {\n return new AssetAmount({\n ...this,\n ...params,\n });\n }\n\n toBig(): Big {\n return Big(this.amount.toString());\n }\n\n toBigDecimal(maxDecimal?: number, roundType?: RoundingMode): Big {\n return Big(this.toDecimal(maxDecimal, roundType));\n }\n\n toDecimal(maxDecimal?: number, roundType?: RoundingMode): string {\n return toDecimal(this.amount, this.decimals, maxDecimal, roundType);\n }\n}\n","import type { EvmParachain, Parachain } from './parachain';\n\nexport type AnyChain = Parachain | EvmParachain;\nexport type AnyParachain = Parachain | EvmParachain;\n\nexport enum ChainType {\n 'Parachain' = 'parachain',\n 'EvmParachain' = 'evm-parachain',\n}\n\nexport enum Ecosystem {\n Polkadot = 'polkadot',\n Kusama = 'kusama',\n AlphanetRelay = 'alphanet-relay',\n}\n","import { ChainType, Ecosystem } from './Chain.interfaces';\nimport type { EvmParachain, Parachain } from './parachain';\n\nexport interface ChainConstructorParams {\n ecosystem?: Ecosystem;\n isTestChain?: boolean;\n key: string;\n name: string;\n type: ChainType;\n}\n\nexport abstract class Chain {\n readonly ecosystem?: Ecosystem;\n\n readonly isTestChain: boolean;\n\n readonly key: string;\n\n readonly name: string;\n\n readonly type: ChainType;\n\n constructor({\n ecosystem,\n isTestChain = false,\n key,\n name,\n type,\n }: ChainConstructorParams) {\n this.ecosystem = ecosystem;\n this.isTestChain = isTestChain;\n this.key = key;\n this.name = name;\n this.type = type;\n }\n\n isParachain(): this is Parachain {\n return this.type === ChainType.Parachain;\n }\n\n isEvmParachain(): this is EvmParachain {\n return this.type === ChainType.EvmParachain;\n }\n}\n","import { Address, defineChain } from 'viem';\nimport { Chain } from 'viem/chains';\nimport { ChainType } from '../Chain.interfaces';\nimport { Parachain, ParachainConstructorParams } from './Parachain';\n\nexport interface EvmParachainConstructorParams\n extends Omit<ParachainConstructorParams, 'type'> {\n id: number;\n rpc: string;\n nativeCurrency: NativeCurrency;\n isEvmSigner?: boolean;\n contracts?: Contracts;\n}\n\ntype NativeCurrency = {\n decimals: number;\n name: string;\n symbol: string;\n};\n\ntype Contracts = {\n Xtokens?: Address;\n};\n\nexport class EvmParachain extends Parachain {\n readonly id: number;\n\n readonly rpc: string;\n\n readonly nativeCurrency: NativeCurrency;\n\n readonly isEvmSigner: boolean;\n\n readonly contracts?: Contracts;\n\n constructor({\n id,\n rpc,\n nativeCurrency,\n isEvmSigner = false,\n contracts,\n ...others\n }: EvmParachainConstructorParams) {\n super({ type: ChainType.EvmParachain, ...others });\n\n this.contracts = contracts;\n this.id = id;\n this.rpc = rpc;\n this.nativeCurrency = nativeCurrency;\n this.isEvmSigner = isEvmSigner;\n }\n\n getViemChain(): Chain {\n return defineChain({\n id: this.id,\n name: this.name,\n nativeCurrency: this.nativeCurrency,\n rpcUrls: {\n default: {\n http: [this.rpc],\n webSocket: Array.isArray(this.ws) ? this.ws : [this.ws],\n },\n },\n });\n }\n}\n","import { Asset } from '../../asset';\nimport { SetOptional } from '../../common.interfaces';\nimport { Chain, ChainConstructorParams } from '../Chain';\nimport { ChainType } from '../Chain.interfaces';\nimport { ChainAssetId, ChainAssetsData } from './Parachain.interfaces';\n\nexport interface ParachainConstructorParams\n extends SetOptional<ChainConstructorParams, 'type'> {\n assetsData?: Map<string, ChainAssetsData> | ChainAssetsData[];\n genesisHash: string;\n parachainId: number;\n ss58Format: number;\n usesChainDecimals?: boolean;\n weight?: number;\n ws: string[];\n}\n\nexport class Parachain extends Chain {\n readonly assetsData: Map<string, ChainAssetsData>;\n\n readonly genesisHash: string;\n\n readonly parachainId: number;\n\n readonly ss58Format: number;\n\n readonly usesChainDecimals: boolean;\n\n readonly weight: number | undefined;\n\n readonly ws: string[];\n\n constructor({\n assetsData,\n genesisHash,\n parachainId,\n usesChainDecimals,\n ss58Format,\n weight,\n ws,\n type = ChainType.Parachain,\n ...others\n }: ParachainConstructorParams) {\n super({ type, ...others });\n\n this.assetsData =\n assetsData instanceof Map\n ? assetsData\n : new Map(assetsData?.map((data) => [data.asset.key, data]));\n this.genesisHash = genesisHash;\n this.parachainId = parachainId;\n this.ss58Format = ss58Format;\n this.usesChainDecimals = !!usesChainDecimals;\n this.weight = weight;\n this.ws = ws;\n }\n\n getAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.id ?? asset.originSymbol;\n }\n\n getBalanceAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.balanceId ?? this.getAssetId(asset);\n }\n\n getMinAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.minId ?? this.getAssetId(asset);\n }\n\n getMetadataAssetId(asset: Asset): ChainAssetId {\n return this.assetsData.get(asset.key)?.metadataId ?? this.getAssetId(asset);\n }\n\n getAssetPalletInstance(asset: Asset): number | undefined {\n return this.assetsData.get(asset.key)?.palletInstance;\n }\n\n getAssetDecimals(asset: Asset): number | undefined {\n return this.assetsData.get(asset.key)?.decimals;\n }\n\n getAssetMin(asset: Asset): number {\n return this.assetsData.get(asset.key)?.min ?? 0;\n }\n}\n"],"mappings":"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","names":["Asset","key","originSymbol","asset","toDecimal","Big","Big","AssetAmount","_AssetAmount","Asset","amount","decimals","symbol","other","asset","params","maxDecimal","roundType","toDecimal","ChainType","Ecosystem","Chain","ecosystem","isTestChain","key","name","type","defineChain","Parachain","Chain","assetsData","genesisHash","parachainId","usesChainDecimals","ss58Format","weight","ws","type","others","data","asset","_a","EvmParachain","Parachain","id","rpc","nativeCurrency","isEvmSigner","contracts","others","defineChain"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moonbeam-network/xcm-types",
3
- "version": "2.2.5",
3
+ "version": "2.3.0",
4
4
  "description": "Moonbeam XCM Types",
5
5
  "scripts": {
6
6
  "build": "tsup",