@moonbeam-network/xcm-types 1.0.0-dev.14 → 1.0.0-dev.140

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var f=Object.create;var c=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var D=(r,t)=>{for(var a in t)c(r,a,{get:t[a],enumerable:!0})},d=(r,t,a,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of I(t))!E.call(r,e)&&e!==a&&c(r,e,{get:()=>t[e],enumerable:!(s=x(t,e))||s.enumerable});return r};var S=(r,t,a)=>(a=r!=null?f(k(r)):{},d(t||!r||!r.__esModule?c(a,"default",{value:r,enumerable:!0}):a,r)),v=r=>d(c({},"__esModule",{value:!0}),r);var M={};D(M,{Asset:()=>i,AssetAmount:()=>n,Chain:()=>m,ChainType:()=>o,Ecosystem:()=>A,EvmParachain:()=>l,Parachain:()=>h});module.exports=v(M);var i=class{key;originSymbol;constructor({key:t,originSymbol:a}){this.key=t,this.originSymbol=a}isEqual(t){return this.key===t.key&&this.originSymbol===t.originSymbol}};var g=require("@moonbeam-network/xcm-utils"),u=S(require("big.js"),1);u.default.NE=-18;var n=class extends i{amount;decimals;symbol;constructor({amount:t,decimals:a,symbol:s,...e}){super(e),this.amount=BigInt(t),this.decimals=a,this.symbol=s||this.originSymbol}static fromAsset(t,a){return new n({...t,...a})}isSame(t){return super.isEqual(t)&&this.decimals===t.decimals}isEqual(t){return this.isSame(t)&&this.amount===t.amount}copyWith(t){return new n({...this,...t})}toBig(){return(0,u.default)(this.amount.toString())}toBigDecimal(t,a){return(0,u.default)(this.toDecimal(t,a))}toDecimal(t,a){return(0,g.toDecimal)(this.amount,this.decimals,t,a)}};var o=(a=>(a.Parachain="parachain",a.EvmParachain="evm-parachain",a))(o||{}),A=(s=>(s.Polkadot="polkadot",s.Kusama="kusama",s.AlphanetRelay="alphanet-relay",s))(A||{});var m=class{ecosystem;isTestChain;key;name;type;constructor({ecosystem:t,isTestChain:a=!1,key:s,name:e,type:p}){this.ecosystem=t,this.isTestChain=a,this.key=s,this.name=e,this.type=p}isParachain(){return this.type==="parachain"}isEvmParachain(){return this.type==="evm-parachain"}};var h=class extends m{assetsData;genesisHash;parachainId;ss58Format;weight;ws;constructor({assetsData:t,genesisHash:a,parachainId:s,ss58Format:e,weight:p,ws:P,type:C="parachain",...b}){super({type:C,...b}),this.assetsData=t instanceof Map?t:new Map(t==null?void 0:t.map(y=>[y.asset.key,y])),this.genesisHash=a,this.parachainId=s,this.ss58Format=e,this.weight=p??1e9,this.ws=P}getAssetId(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.id)??t.originSymbol}getBalanceAssetId(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.balanceId)??this.getAssetId(t)}getMinAssetId(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.minId)??this.getAssetId(t)}getMetadataAssetId(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.metadataId)??this.getAssetId(t)}getAssetPalletInstance(t){var a;return(a=this.assetsData.get(t.key))==null?void 0:a.palletInstance}getAssetDecimals(t){var a;return(a=this.assetsData.get(t.key))==null?void 0:a.decimals}getAssetMin(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.min)??0}};var l=class extends h{id;rpc;constructor({id:t,rpc:a,...s}){super({type:"evm-parachain",...s}),this.id=t,this.rpc=a}};0&&(module.exports={Asset,AssetAmount,Chain,ChainType,Ecosystem,EvmParachain,Parachain});
1
+ "use strict";var v=Object.create;var h=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var B=(a,t)=>{for(var e in t)h(a,e,{get:t[e],enumerable:!0})},g=(a,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of D(t))!w.call(a,r)&&r!==e&&h(a,r,{get:()=>t[r],enumerable:!(s=S(t,r))||s.enumerable});return a};var M=(a,t,e)=>(e=a!=null?v(E(a)):{},g(t||!a||!a.__esModule?h(e,"default",{value:a,enumerable:!0}):e,a)),R=a=>g(h({},"__esModule",{value:!0}),a);var T={};B(T,{Asset:()=>i,AssetAmount:()=>d,Chain:()=>m,ChainType:()=>o,Ecosystem:()=>C,EvmParachain:()=>y,Parachain:()=>c});module.exports=R(T);var i=class{key;originSymbol;constructor({key:t,originSymbol:e}){this.key=t,this.originSymbol=e}isEqual(t){return this.key===t.key&&this.originSymbol===t.originSymbol}};var A=require("@moonbeam-network/xcm-utils"),u=M(require("big.js"),1);u.default.NE=-18;var d=class a extends i{amount;decimals;symbol;constructor({amount:t,decimals:e,symbol:s,...r}){super(r),this.amount=BigInt(t),this.decimals=e,this.symbol=s||this.originSymbol}static fromAsset(t,e){return new a({...t,...e})}isSame(t){return super.isEqual(t)&&this.decimals===t.decimals}isEqual(t){return this.isSame(t)&&this.amount===t.amount}copyWith(t){return new a({...this,...t})}toBig(){return(0,u.default)(this.amount.toString())}toBigDecimal(t,e){return(0,u.default)(this.toDecimal(t,e))}toDecimal(t,e){return(0,A.toDecimal)(this.amount,this.decimals,t,e)}};var o=(e=>(e.Parachain="parachain",e.EvmParachain="evm-parachain",e))(o||{}),C=(s=>(s.Polkadot="polkadot",s.Kusama="kusama",s.AlphanetRelay="alphanet-relay",s))(C||{});var m=class{ecosystem;isTestChain;key;name;type;constructor({ecosystem:t,isTestChain:e=!1,key:s,name:r,type:n}){this.ecosystem=t,this.isTestChain=e,this.key=s,this.name=r,this.type=n}isParachain(){return this.type==="parachain"}isEvmParachain(){return this.type==="evm-parachain"}};var P=require("viem");var c=class extends m{assetsData;checkSovereignAccountBalances;genesisHash;isRelay;parachainId;ss58Format;usesChainDecimals;weight;ws;constructor({assetsData:t,checkSovereignAccountBalances:e,genesisHash:s,isRelay:r,parachainId:n,usesChainDecimals:l,ss58Format:b,weight:f,ws:x,type:I="parachain",...k}){super({type:I,...k}),this.assetsData=t instanceof Map?t:new Map(t==null?void 0:t.map(p=>[p.asset.key,p])),this.checkSovereignAccountBalances=!!e,this.genesisHash=s,this.isRelay=!!r,this.parachainId=n,this.ss58Format=b,this.usesChainDecimals=!!l,this.weight=f,this.ws=x}getAssetId(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.id)??t.originSymbol}getBalanceAssetId(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.balanceId)??this.getAssetId(t)}getMinAssetId(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.minId)??this.getAssetId(t)}getMetadataAssetId(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.metadataId)??this.getAssetId(t)}getRegisteredAssetIdOrAddress(t){var s;let e=(s=this.assetsData.get(t.key))==null?void 0:s.metadataId;return e&&e!==0?e:this.getAssetId(t)}getAssetPalletInstance(t){var e;return(e=this.assetsData.get(t.key))==null?void 0:e.palletInstance}getAssetDecimals(t){var e;return(e=this.assetsData.get(t.key))==null?void 0:e.decimals}getAssetMin(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.min)??0}};var y=class extends c{id;rpc;nativeCurrency;isEvmSigner;contracts;constructor({id:t,rpc:e,nativeCurrency:s,isEvmSigner:r=!1,contracts:n,...l}){super({type:"evm-parachain",...l}),this.contracts=n,this.id=t,this.rpc=e,this.nativeCurrency=s,this.isEvmSigner=r}getViemChain(){return(0,P.defineChain)({id:this.id,name:this.name,nativeCurrency:this.nativeCurrency,rpcUrls:{default:{http:[this.rpc],webSocket:Array.isArray(this.ws)?this.ws:[this.ws]}}})}};0&&(module.exports={Asset,AssetAmount,Chain,ChainType,Ecosystem,EvmParachain,Parachain});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -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/Parachain.ts","../src/chain/parachain/EvmParachain.ts"],"sourcesContent":["export * from './asset';\nexport * from './chain';\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 { SetOptional } from 'type-fest';\nimport { Asset } from '../../asset';\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 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 weight: number;\n\n readonly ws: string;\n\n constructor({\n assetsData,\n genesisHash,\n parachainId,\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.weight = weight ?? 1_000_000_000;\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","import { 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}\n\nexport class EvmParachain extends Parachain {\n readonly id: number;\n\n readonly rpc: string;\n\n constructor({ id, rpc, ...others }: EvmParachainConstructorParams) {\n super({ type: ChainType.EvmParachain, ...others });\n\n this.id = id;\n this.rpc = rpc;\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,cAA0BC,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,EAAAR,SAAI,KAAK,OAAO,SAAS,CAAC,CACnC,CAEA,aAAaS,EAAqBC,EAA+B,CAC/D,SAAO,EAAAV,SAAI,KAAK,UAAUS,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,kBACd,CAEA,gBAAuC,CACrC,OAAO,KAAK,sBACd,CACF,EC3BO,IAAMC,EAAN,cAAwBC,CAAM,CAC1B,WAEA,YAEA,YAEA,WAEA,OAEA,GAET,YAAY,CACV,WAAAC,EACA,YAAAC,EACA,YAAAC,EACA,WAAAC,EACA,OAAAC,EACA,GAAAC,EACA,KAAAC,cACA,GAAGC,CACL,EAA+B,CAC7B,MAAM,CAAE,KAAAD,EAAM,GAAGC,CAAO,CAAC,EAEzB,KAAK,WACHP,aAAsB,IAClBA,EACA,IAAI,IAAIA,GAAA,YAAAA,EAAY,IAAKQ,GAAS,CAACA,EAAK,MAAM,IAAKA,CAAI,EAAE,EAC/D,KAAK,YAAcP,EACnB,KAAK,YAAcC,EACnB,KAAK,WAAaC,EAClB,KAAK,OAASC,GAAU,IACxB,KAAK,GAAKC,CACZ,CAEA,WAAWI,EAA4B,CApDzC,IAAAC,EAqDI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,KAAMD,EAAM,YACrD,CAEA,kBAAkBA,EAA4B,CAxDhD,IAAAC,EAyDI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,YAAa,KAAK,WAAWD,CAAK,CAC3E,CAEA,cAAcA,EAA4B,CA5D5C,IAAAC,EA6DI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,QAAS,KAAK,WAAWD,CAAK,CACvE,CAEA,mBAAmBA,EAA4B,CAhEjD,IAAAC,EAiEI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,aAAc,KAAK,WAAWD,CAAK,CAC5E,CAEA,uBAAuBA,EAAkC,CApE3D,IAAAC,EAqEI,OAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,cACzC,CAEA,iBAAiBD,EAAkC,CAxErD,IAAAC,EAyEI,OAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,QACzC,CAEA,YAAYD,EAAsB,CA5EpC,IAAAC,EA6EI,QAAOA,EAAA,KAAK,WAAW,IAAID,EAAM,GAAG,IAA7B,YAAAC,EAAgC,MAAO,CAChD,CACF,ECtEO,IAAMC,EAAN,cAA2BC,CAAU,CACjC,GAEA,IAET,YAAY,CAAE,GAAAC,EAAI,IAAAC,EAAK,GAAGC,CAAO,EAAkC,CACjE,MAAM,CAAE,qBAA8B,GAAGA,CAAO,CAAC,EAEjD,KAAK,GAAKF,EACV,KAAK,IAAMC,CACb,CACF","names":["src_exports","__export","Asset","AssetAmount","Chain","ChainType","Ecosystem","EvmParachain","Parachain","__toCommonJS","Asset","key","originSymbol","asset","import_xcm_utils","import_big","Big","AssetAmount","Asset","amount","decimals","symbol","other","asset","params","maxDecimal","roundType","ChainType","Ecosystem","Chain","ecosystem","isTestChain","key","name","type","Parachain","Chain","assetsData","genesisHash","parachainId","ss58Format","weight","ws","type","others","data","asset","_a","EvmParachain","Parachain","id","rpc","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 checkSovereignAccountBalances?: boolean;\n genesisHash: string;\n isRelay?: boolean;\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 checkSovereignAccountBalances: boolean;\n\n readonly genesisHash: string;\n\n readonly isRelay: boolean;\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 checkSovereignAccountBalances,\n genesisHash,\n isRelay,\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.checkSovereignAccountBalances = !!checkSovereignAccountBalances;\n this.genesisHash = genesisHash;\n this.isRelay = !!isRelay;\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 getRegisteredAssetIdOrAddress(asset: Asset): ChainAssetId {\n const metadataId = this.assetsData.get(asset.key)?.metadataId;\n return metadataId && metadataId !== 0 ? 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","checkSovereignAccountBalances","genesisHash","isRelay","parachainId","usesChainDecimals","ss58Format","weight","ws","type","others","data","asset","_a","metadataId","EvmParachain","Parachain","id","rpc","nativeCurrency","isEvmSigner","contracts","others"]}
@@ -0,0 +1,141 @@
1
+ import Big, { RoundingMode } from 'big.js';
2
+ import { Address } from 'viem';
3
+ import { Chain as Chain$1 } from 'viem/chains';
4
+
5
+ interface AssetConstructorParams {
6
+ key: string;
7
+ originSymbol: string;
8
+ }
9
+ declare class Asset {
10
+ readonly key: string;
11
+ readonly originSymbol: string;
12
+ constructor({ key, originSymbol }: AssetConstructorParams);
13
+ isEqual(asset: Asset): boolean;
14
+ }
15
+
16
+ interface AssetAmountParams {
17
+ amount: bigint;
18
+ decimals: number;
19
+ symbol?: string;
20
+ }
21
+ interface AssetAmountConstructorParams extends AssetConstructorParams, AssetAmountParams {
22
+ }
23
+ declare class AssetAmount extends Asset {
24
+ readonly amount: bigint;
25
+ readonly decimals: number;
26
+ readonly symbol: string;
27
+ constructor({ amount, decimals, symbol, ...other }: AssetAmountConstructorParams);
28
+ static fromAsset(asset: Asset, params: AssetAmountParams): AssetAmount;
29
+ isSame(asset: AssetAmount): boolean;
30
+ isEqual(asset: AssetAmount): boolean;
31
+ copyWith(params: Partial<AssetAmountConstructorParams>): AssetAmount;
32
+ toBig(): Big;
33
+ toBigDecimal(maxDecimal?: number, roundType?: RoundingMode): Big;
34
+ toDecimal(maxDecimal?: number, roundType?: RoundingMode): string;
35
+ }
36
+
37
+ type SetOptional<Base, Keys extends keyof Base> = Omit<Base, Keys> & Partial<Pick<Base, Keys>>;
38
+
39
+ type ChainAssetId = string | number | bigint | {
40
+ [key: string]: ChainAssetId;
41
+ };
42
+ interface ChainAssetsData {
43
+ asset: Asset;
44
+ address?: string;
45
+ balanceId?: ChainAssetId;
46
+ decimals?: number;
47
+ id?: ChainAssetId;
48
+ metadataId?: ChainAssetId;
49
+ minId?: ChainAssetId;
50
+ palletInstance?: number;
51
+ min?: number;
52
+ }
53
+
54
+ interface ParachainConstructorParams extends SetOptional<ChainConstructorParams, 'type'> {
55
+ assetsData?: Map<string, ChainAssetsData> | ChainAssetsData[];
56
+ checkSovereignAccountBalances?: boolean;
57
+ genesisHash: string;
58
+ isRelay?: boolean;
59
+ parachainId: number;
60
+ ss58Format: number;
61
+ usesChainDecimals?: boolean;
62
+ weight?: number;
63
+ ws: string[];
64
+ }
65
+ declare class Parachain extends Chain {
66
+ readonly assetsData: Map<string, ChainAssetsData>;
67
+ readonly checkSovereignAccountBalances: boolean;
68
+ readonly genesisHash: string;
69
+ readonly isRelay: boolean;
70
+ readonly parachainId: number;
71
+ readonly ss58Format: number;
72
+ readonly usesChainDecimals: boolean;
73
+ readonly weight: number | undefined;
74
+ readonly ws: string[];
75
+ constructor({ assetsData, checkSovereignAccountBalances, genesisHash, isRelay, parachainId, usesChainDecimals, ss58Format, weight, ws, type, ...others }: ParachainConstructorParams);
76
+ getAssetId(asset: Asset): ChainAssetId;
77
+ getBalanceAssetId(asset: Asset): ChainAssetId;
78
+ getMinAssetId(asset: Asset): ChainAssetId;
79
+ getMetadataAssetId(asset: Asset): ChainAssetId;
80
+ getRegisteredAssetIdOrAddress(asset: Asset): ChainAssetId;
81
+ getAssetPalletInstance(asset: Asset): number | undefined;
82
+ getAssetDecimals(asset: Asset): number | undefined;
83
+ getAssetMin(asset: Asset): number;
84
+ }
85
+
86
+ interface EvmParachainConstructorParams extends Omit<ParachainConstructorParams, 'type'> {
87
+ id: number;
88
+ rpc: string;
89
+ nativeCurrency: NativeCurrency;
90
+ isEvmSigner?: boolean;
91
+ contracts?: Contracts;
92
+ }
93
+ type NativeCurrency = {
94
+ decimals: number;
95
+ name: string;
96
+ symbol: string;
97
+ };
98
+ type Contracts = {
99
+ Xtokens?: Address;
100
+ };
101
+ declare class EvmParachain extends Parachain {
102
+ readonly id: number;
103
+ readonly rpc: string;
104
+ readonly nativeCurrency: NativeCurrency;
105
+ readonly isEvmSigner: boolean;
106
+ readonly contracts?: Contracts;
107
+ constructor({ id, rpc, nativeCurrency, isEvmSigner, contracts, ...others }: EvmParachainConstructorParams);
108
+ getViemChain(): Chain$1;
109
+ }
110
+
111
+ type AnyChain = Parachain | EvmParachain;
112
+ type AnyParachain = Parachain | EvmParachain;
113
+ declare enum ChainType {
114
+ 'Parachain' = "parachain",
115
+ 'EvmParachain' = "evm-parachain"
116
+ }
117
+ declare enum Ecosystem {
118
+ Polkadot = "polkadot",
119
+ Kusama = "kusama",
120
+ AlphanetRelay = "alphanet-relay"
121
+ }
122
+
123
+ interface ChainConstructorParams {
124
+ ecosystem?: Ecosystem;
125
+ isTestChain?: boolean;
126
+ key: string;
127
+ name: string;
128
+ type: ChainType;
129
+ }
130
+ declare abstract class Chain {
131
+ readonly ecosystem?: Ecosystem;
132
+ readonly isTestChain: boolean;
133
+ readonly key: string;
134
+ readonly name: string;
135
+ readonly type: ChainType;
136
+ constructor({ ecosystem, isTestChain, key, name, type, }: ChainConstructorParams);
137
+ isParachain(): this is Parachain;
138
+ isEvmParachain(): this is EvmParachain;
139
+ }
140
+
141
+ export { type AnyChain, type AnyParachain, Asset, AssetAmount, type AssetAmountConstructorParams, type AssetAmountParams, type AssetConstructorParams, Chain, type ChainAssetId, type ChainAssetsData, type ChainConstructorParams, ChainType, Ecosystem, EvmParachain, type EvmParachainConstructorParams, Parachain, type ParachainConstructorParams, type SetOptional };
package/build/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import Big, { RoundingMode } from 'big.js';
2
- import { SetOptional } from 'type-fest';
2
+ import { Address } from 'viem';
3
+ import { Chain as Chain$1 } from 'viem/chains';
3
4
 
4
5
  interface AssetConstructorParams {
5
6
  key: string;
@@ -39,6 +40,9 @@ declare class AssetAmount extends Asset {
39
40
  toDecimal(maxDecimal?: number, roundType?: RoundingMode): string;
40
41
  }
41
42
 
43
+ type SetOptional<Base, Keys extends keyof Base> = Omit<Base, Keys> &
44
+ Partial<Pick<Base, Keys>>;
45
+
42
46
  type ChainAssetId =
43
47
  | string
44
48
  | number
@@ -48,6 +52,7 @@ type ChainAssetId =
48
52
  };
49
53
  interface ChainAssetsData {
50
54
  asset: Asset;
55
+ address?: string;
51
56
  balanceId?: ChainAssetId;
52
57
  decimals?: number;
53
58
  id?: ChainAssetId;
@@ -60,23 +65,32 @@ interface ChainAssetsData {
60
65
  interface ParachainConstructorParams
61
66
  extends SetOptional<ChainConstructorParams, 'type'> {
62
67
  assetsData?: Map<string, ChainAssetsData> | ChainAssetsData[];
68
+ checkSovereignAccountBalances?: boolean;
63
69
  genesisHash: string;
70
+ isRelay?: boolean;
64
71
  parachainId: number;
65
72
  ss58Format: number;
73
+ usesChainDecimals?: boolean;
66
74
  weight?: number;
67
- ws: string;
75
+ ws: string[];
68
76
  }
69
77
  declare class Parachain extends Chain {
70
78
  readonly assetsData: Map<string, ChainAssetsData>;
79
+ readonly checkSovereignAccountBalances: boolean;
71
80
  readonly genesisHash: string;
81
+ readonly isRelay: boolean;
72
82
  readonly parachainId: number;
73
83
  readonly ss58Format: number;
74
- readonly weight: number;
75
- readonly ws: string;
84
+ readonly usesChainDecimals: boolean;
85
+ readonly weight: number | undefined;
86
+ readonly ws: string[];
76
87
  constructor({
77
88
  assetsData,
89
+ checkSovereignAccountBalances,
78
90
  genesisHash,
91
+ isRelay,
79
92
  parachainId,
93
+ usesChainDecimals,
80
94
  ss58Format,
81
95
  weight,
82
96
  ws,
@@ -87,6 +101,7 @@ declare class Parachain extends Chain {
87
101
  getBalanceAssetId(asset: Asset): ChainAssetId;
88
102
  getMinAssetId(asset: Asset): ChainAssetId;
89
103
  getMetadataAssetId(asset: Asset): ChainAssetId;
104
+ getRegisteredAssetIdOrAddress(asset: Asset): ChainAssetId;
90
105
  getAssetPalletInstance(asset: Asset): number | undefined;
91
106
  getAssetDecimals(asset: Asset): number | undefined;
92
107
  getAssetMin(asset: Asset): number;
@@ -96,11 +111,33 @@ interface EvmParachainConstructorParams
96
111
  extends Omit<ParachainConstructorParams, 'type'> {
97
112
  id: number;
98
113
  rpc: string;
114
+ nativeCurrency: NativeCurrency;
115
+ isEvmSigner?: boolean;
116
+ contracts?: Contracts;
99
117
  }
118
+ type NativeCurrency = {
119
+ decimals: number;
120
+ name: string;
121
+ symbol: string;
122
+ };
123
+ type Contracts = {
124
+ Xtokens?: Address;
125
+ };
100
126
  declare class EvmParachain extends Parachain {
101
127
  readonly id: number;
102
128
  readonly rpc: string;
103
- constructor({ id, rpc, ...others }: EvmParachainConstructorParams);
129
+ readonly nativeCurrency: NativeCurrency;
130
+ readonly isEvmSigner: boolean;
131
+ readonly contracts?: Contracts;
132
+ constructor({
133
+ id,
134
+ rpc,
135
+ nativeCurrency,
136
+ isEvmSigner,
137
+ contracts,
138
+ ...others
139
+ }: EvmParachainConstructorParams);
140
+ getViemChain(): Chain$1;
104
141
  }
105
142
 
106
143
  type AnyChain = Parachain | EvmParachain;
@@ -140,21 +177,22 @@ declare abstract class Chain {
140
177
  }
141
178
 
142
179
  export {
143
- AnyChain,
144
- AnyParachain,
180
+ type AnyChain,
181
+ type AnyParachain,
145
182
  Asset,
146
183
  AssetAmount,
147
- AssetAmountConstructorParams,
148
- AssetAmountParams,
149
- AssetConstructorParams,
184
+ type AssetAmountConstructorParams,
185
+ type AssetAmountParams,
186
+ type AssetConstructorParams,
150
187
  Chain,
151
- ChainAssetId,
152
- ChainAssetsData,
153
- ChainConstructorParams,
188
+ type ChainAssetId,
189
+ type ChainAssetsData,
190
+ type ChainConstructorParams,
154
191
  ChainType,
155
192
  Ecosystem,
156
193
  EvmParachain,
157
- EvmParachainConstructorParams,
194
+ type EvmParachainConstructorParams,
158
195
  Parachain,
159
- ParachainConstructorParams,
196
+ type ParachainConstructorParams,
197
+ type SetOptional,
160
198
  };
package/build/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- var n=class{key;originSymbol;constructor({key:t,originSymbol:a}){this.key=t,this.originSymbol=a}isEqual(t){return this.key===t.key&&this.originSymbol===t.originSymbol}};import{toDecimal as A}from"@moonbeam-network/xcm-utils";import u from"big.js";u.NE=-18;var e=class extends n{amount;decimals;symbol;constructor({amount:t,decimals:a,symbol:r,...s}){super(s),this.amount=BigInt(t),this.decimals=a,this.symbol=r||this.originSymbol}static fromAsset(t,a){return new e({...t,...a})}isSame(t){return super.isEqual(t)&&this.decimals===t.decimals}isEqual(t){return this.isSame(t)&&this.amount===t.amount}copyWith(t){return new e({...this,...t})}toBig(){return u(this.amount.toString())}toBigDecimal(t,a){return u(this.toDecimal(t,a))}toDecimal(t,a){return A(this.amount,this.decimals,t,a)}};var i=(a=>(a.Parachain="parachain",a.EvmParachain="evm-parachain",a))(i||{}),P=(r=>(r.Polkadot="polkadot",r.Kusama="kusama",r.AlphanetRelay="alphanet-relay",r))(P||{});var o=class{ecosystem;isTestChain;key;name;type;constructor({ecosystem:t,isTestChain:a=!1,key:r,name:s,type:c}){this.ecosystem=t,this.isTestChain=a,this.key=r,this.name=s,this.type=c}isParachain(){return this.type==="parachain"}isEvmParachain(){return this.type==="evm-parachain"}};var m=class extends o{assetsData;genesisHash;parachainId;ss58Format;weight;ws;constructor({assetsData:t,genesisHash:a,parachainId:r,ss58Format:s,weight:c,ws:y,type:d="parachain",...g}){super({type:d,...g}),this.assetsData=t instanceof Map?t:new Map(t==null?void 0:t.map(p=>[p.asset.key,p])),this.genesisHash=a,this.parachainId=r,this.ss58Format=s,this.weight=c??1e9,this.ws=y}getAssetId(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.id)??t.originSymbol}getBalanceAssetId(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.balanceId)??this.getAssetId(t)}getMinAssetId(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.minId)??this.getAssetId(t)}getMetadataAssetId(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.metadataId)??this.getAssetId(t)}getAssetPalletInstance(t){var a;return(a=this.assetsData.get(t.key))==null?void 0:a.palletInstance}getAssetDecimals(t){var a;return(a=this.assetsData.get(t.key))==null?void 0:a.decimals}getAssetMin(t){var a;return((a=this.assetsData.get(t.key))==null?void 0:a.min)??0}};var l=class extends m{id;rpc;constructor({id:t,rpc:a,...r}){super({type:"evm-parachain",...r}),this.id=t,this.rpc=a}};export{n as Asset,e as AssetAmount,o as Chain,i as ChainType,P as Ecosystem,l as EvmParachain,m as Parachain};
1
+ var i=class{key;originSymbol;constructor({key:t,originSymbol:e}){this.key=t,this.originSymbol=e}isEqual(t){return this.key===t.key&&this.originSymbol===t.originSymbol}};import{toDecimal as b}from"@moonbeam-network/xcm-utils";import u from"big.js";u.NE=-18;var d=class r extends i{amount;decimals;symbol;constructor({amount:t,decimals:e,symbol:a,...s}){super(s),this.amount=BigInt(t),this.decimals=e,this.symbol=a||this.originSymbol}static fromAsset(t,e){return new r({...t,...e})}isSame(t){return super.isEqual(t)&&this.decimals===t.decimals}isEqual(t){return this.isSame(t)&&this.amount===t.amount}copyWith(t){return new r({...this,...t})}toBig(){return u(this.amount.toString())}toBigDecimal(t,e){return u(this.toDecimal(t,e))}toDecimal(t,e){return b(this.amount,this.decimals,t,e)}};var o=(e=>(e.Parachain="parachain",e.EvmParachain="evm-parachain",e))(o||{}),f=(a=>(a.Polkadot="polkadot",a.Kusama="kusama",a.AlphanetRelay="alphanet-relay",a))(f||{});var m=class{ecosystem;isTestChain;key;name;type;constructor({ecosystem:t,isTestChain:e=!1,key:a,name:s,type:n}){this.ecosystem=t,this.isTestChain=e,this.key=a,this.name=s,this.type=n}isParachain(){return this.type==="parachain"}isEvmParachain(){return this.type==="evm-parachain"}};import{defineChain as x}from"viem";var c=class extends m{assetsData;checkSovereignAccountBalances;genesisHash;isRelay;parachainId;ss58Format;usesChainDecimals;weight;ws;constructor({assetsData:t,checkSovereignAccountBalances:e,genesisHash:a,isRelay:s,parachainId:n,usesChainDecimals:h,ss58Format:p,weight:g,ws:A,type:C="parachain",...P}){super({type:C,...P}),this.assetsData=t instanceof Map?t:new Map(t==null?void 0:t.map(l=>[l.asset.key,l])),this.checkSovereignAccountBalances=!!e,this.genesisHash=a,this.isRelay=!!s,this.parachainId=n,this.ss58Format=p,this.usesChainDecimals=!!h,this.weight=g,this.ws=A}getAssetId(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.id)??t.originSymbol}getBalanceAssetId(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.balanceId)??this.getAssetId(t)}getMinAssetId(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.minId)??this.getAssetId(t)}getMetadataAssetId(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.metadataId)??this.getAssetId(t)}getRegisteredAssetIdOrAddress(t){var a;let e=(a=this.assetsData.get(t.key))==null?void 0:a.metadataId;return e&&e!==0?e:this.getAssetId(t)}getAssetPalletInstance(t){var e;return(e=this.assetsData.get(t.key))==null?void 0:e.palletInstance}getAssetDecimals(t){var e;return(e=this.assetsData.get(t.key))==null?void 0:e.decimals}getAssetMin(t){var e;return((e=this.assetsData.get(t.key))==null?void 0:e.min)??0}};var y=class extends c{id;rpc;nativeCurrency;isEvmSigner;contracts;constructor({id:t,rpc:e,nativeCurrency:a,isEvmSigner:s=!1,contracts:n,...h}){super({type:"evm-parachain",...h}),this.contracts=n,this.id=t,this.rpc=e,this.nativeCurrency=a,this.isEvmSigner=s}getViemChain(){return x({id:this.id,name:this.name,nativeCurrency:this.nativeCurrency,rpcUrls:{default:{http:[this.rpc],webSocket:Array.isArray(this.ws)?this.ws:[this.ws]}}})}};export{i as Asset,d as AssetAmount,m as Chain,o as ChainType,f as Ecosystem,y as EvmParachain,c as Parachain};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -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/Parachain.ts","../src/chain/parachain/EvmParachain.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 { SetOptional } from 'type-fest';\nimport { Asset } from '../../asset';\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 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 weight: number;\n\n readonly ws: string;\n\n constructor({\n assetsData,\n genesisHash,\n parachainId,\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.weight = weight ?? 1_000_000_000;\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","import { 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}\n\nexport class EvmParachain extends Parachain {\n readonly id: number;\n\n readonly rpc: string;\n\n constructor({ id, rpc, ...others }: EvmParachainConstructorParams) {\n super({ type: ChainType.EvmParachain, ...others });\n\n this.id = id;\n this.rpc = rpc;\n }\n}\n"],"mappings":"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","names":["Asset","key","originSymbol","asset","toDecimal","Big","Big","AssetAmount","Asset","amount","decimals","symbol","other","asset","params","maxDecimal","roundType","toDecimal","ChainType","Ecosystem","Chain","ecosystem","isTestChain","key","name","type","Parachain","Chain","assetsData","genesisHash","parachainId","ss58Format","weight","ws","type","others","data","asset","_a","EvmParachain","Parachain","id","rpc","others"]}
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 checkSovereignAccountBalances?: boolean;\n genesisHash: string;\n isRelay?: boolean;\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 checkSovereignAccountBalances: boolean;\n\n readonly genesisHash: string;\n\n readonly isRelay: boolean;\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 checkSovereignAccountBalances,\n genesisHash,\n isRelay,\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.checkSovereignAccountBalances = !!checkSovereignAccountBalances;\n this.genesisHash = genesisHash;\n this.isRelay = !!isRelay;\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 getRegisteredAssetIdOrAddress(asset: Asset): ChainAssetId {\n const metadataId = this.assetsData.get(asset.key)?.metadataId;\n return metadataId && metadataId !== 0 ? 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","checkSovereignAccountBalances","genesisHash","isRelay","parachainId","usesChainDecimals","ss58Format","weight","ws","type","others","data","asset","_a","metadataId","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": "1.0.0-dev.14",
3
+ "version": "1.0.0-dev.140",
4
4
  "description": "Moonbeam XCM Types",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -8,28 +8,27 @@
8
8
  "link": "npm ln",
9
9
  "lint": "eslint ./src --ext .js,.ts",
10
10
  "lint:fix": "npm run lint -- --fix",
11
- "test": "jest /src",
12
- "test:watch": "npm test -- --watch",
13
- "test:update": "npm test -- -u",
14
- "test:ci": "npm test -- --ci",
11
+ "test": "vitest --run",
12
+ "test:watch": "vitest",
13
+ "test:update": "vitest -u",
15
14
  "prepack": "prettier --write build/index.d.ts"
16
15
  },
17
16
  "repository": {
18
17
  "directory": "packages/types",
19
18
  "type": "git",
20
- "url": "git+https://github.com/PureStake/xcm-sdk.git"
19
+ "url": "git+https://github.com/moonbeam-foundation/xcm-sdk.git"
21
20
  },
22
21
  "keywords": [
23
22
  "moonbeam",
24
23
  "moonriver",
25
24
  "xcm"
26
25
  ],
27
- "author": "PureStake",
26
+ "author": "moonbeam-foundation",
28
27
  "license": "MIT",
29
28
  "bugs": {
30
- "url": "https://github.com/PureStake/xcm-sdk/issues"
29
+ "url": "https://github.com/moonbeam-foundation/xcm-sdk/issues"
31
30
  },
32
- "homepage": "https://docs.moonbeam.network/builders/xcm/xcm-sdk/xcm-sdk/",
31
+ "homepage": "https://moonbeam-foundation.github.io/xcm-sdk/latest",
33
32
  "files": [
34
33
  "build"
35
34
  ],
@@ -49,8 +48,10 @@
49
48
  "types": "./build/index.d.ts",
50
49
  "main": "./build/index.cjs",
51
50
  "dependencies": {
52
- "@moonbeam-network/xcm-utils": "1.0.0-dev.14",
53
- "big.js": "^6.2.1",
54
- "type-fest": "^3.8.0"
51
+ "@moonbeam-network/xcm-utils": "1.0.0-dev.140",
52
+ "big.js": "^6.2.1"
53
+ },
54
+ "peerDependencies": {
55
+ "viem": "^2.21.29"
55
56
  }
56
57
  }