@moonbeam-network/xcm-types 1.0.0-dev.11 → 1.0.0-dev.110

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 I=Object.create;var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var E=(r,t)=>{for(var s in t)p(r,s,{get:t[s],enumerable:!0})},P=(r,t,s,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of k(t))!w.call(r,n)&&n!==s&&p(r,n,{get:()=>t[n],enumerable:!(e=v(t,n))||e.enumerable});return r};var D=(r,t,s)=>(s=r!=null?I(S(r)):{},P(t||!r||!r.__esModule?p(s,"default",{value:r,enumerable:!0}):s,r)),M=r=>P(p({},"__esModule",{value:!0}),r);var B={};E(B,{Asset:()=>m,AssetAmount:()=>C,Chain:()=>u,ChainAsset:()=>h,ChainType:()=>c,Ecosystem:()=>f,EvmParachain:()=>g,Parachain:()=>d});module.exports=M(B);var m=class r{key;originSymbol;constructor({key:t,originSymbol:s}){this.key=t,this.originSymbol=s}copyWith(t){return new r({...this,...t})}isEqual(t){return this.key===t.key&&this.originSymbol===t.originSymbol}};var b=require("@moonbeam-network/xcm-utils");var h=class r extends m{address;decimals;ids;min;symbol;constructor({address:t,decimals:s,ids:e,min:n,symbol:a,...o}){super(o),this.address=t,this.decimals=s,this.ids=e,this.min=n?(0,b.toBigInt)(n,s):void 0,this.symbol=a}static fromAsset(t,s){return new r({...t,...s})}copyWith(t){return new r({...this,...t})}getSymbol(){return this.symbol||this.originSymbol}getAssetId(){var t;return((t=this.ids)==null?void 0:t.id)??this.originSymbol}getBalanceAssetId(){var t;return((t=this.ids)==null?void 0:t.balanceId)??this.getAssetId()}getMinAssetId(){var t;return((t=this.ids)==null?void 0:t.minId)??this.getAssetId()}getAssetPalletInstance(){var t;return(t=this.ids)==null?void 0:t.palletInstance}getAssetMin(){return this.min??0n}};var i=require("@moonbeam-network/xcm-utils"),y=D(require("big.js"),1);y.default.NE=-18;var C=class r extends h{amount;constructor({amount:t,...s}){super(s),this.amount=(0,i.toBigInt)(t,s.decimals)}static fromChainAsset(t,s){return new r({...t,...s})}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})}convertDecimals(t){return this.decimals===t?this.copyWith({}):this.copyWith({amount:(0,i.convertDecimals)(this.amount,this.decimals,t),decimals:t})}toBig(){return(0,y.default)(this.amount.toString())}toBigDecimal(t,s){return(0,y.default)(this.toDecimal(t,s))}toDecimal(t,s){return(0,i.toDecimal)(this.amount,this.decimals,t,s)}};var c=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s))(c||{}),f=(e=>(e.Polkadot="polkadot",e.Kusama="kusama",e.AlphanetRelay="alphanet-relay",e))(f||{});var u=class{assets;ecosystem;isTestChain;key;name;#t;type;constructor({assets:t,ecosystem:s,isTestChain:e=!1,key:n,name:a,nativeAsset:o,type:A}){this.assets=t instanceof Map?t:new Map(t==null?void 0:t.map(l=>[l.key,l])),this.ecosystem=s,this.isTestChain=e,this.key=n,this.name=a,this.#t=o,this.type=A}get nativeAsset(){return this.getChainAsset(this.#t)}getChainAsset(t){let s=typeof t=="string"?t:t.key,e=this.assets.get(s);if(!e)throw new Error(`No ChainAsset found by the key ${s} for chain ${this.name} (${this.key})`);return e}isParachain(){return this.type==="parachain"}isEvmParachain(){return this.type==="evm-parachain"}};var x=require("viem");var d=class extends u{genesisHash;parachainId;ss58Format;usesChainDecimals;weight;ws;constructor({genesisHash:t,parachainId:s,usesChainDecimals:e,ss58Format:n,weight:a,ws:o,type:A="parachain",...l}){super({type:A,...l}),this.genesisHash=t,this.parachainId=s,this.ss58Format=n,this.usesChainDecimals=!!e,this.weight=a,this.ws=o}};var g=class extends d{id;rpc;isEvmSigner;contracts;constructor({id:t,rpc:s,isEvmSigner:e=!1,contracts:n,...a}){super({type:"evm-parachain",...a}),this.contracts=n,this.id=t,this.rpc=s,this.isEvmSigner=e}getViemChain(){return(0,x.defineChain)({id:this.id,name:this.name,nativeCurrency:{decimals:this.nativeAsset.decimals,name:this.nativeAsset.originSymbol,symbol:this.nativeAsset.originSymbol},rpcUrls:{default:{http:[this.rpc],webSocket:Array.isArray(this.ws)?this.ws:[this.ws]}}})}};0&&(module.exports={Asset,AssetAmount,Chain,ChainAsset,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":"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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","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/ChainAsset.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 copyWith(params: Partial<AssetConstructorParams>): Asset {\n return new Asset({\n ...this,\n ...params,\n });\n }\n\n isEqual(asset: Asset): boolean {\n return this.key === asset.key && this.originSymbol === asset.originSymbol;\n }\n}\n","import { toBigInt } from '@moonbeam-network/xcm-utils';\nimport { Asset, AssetConstructorParams } from './Asset';\n\nexport interface ChainAssetConstructorParams extends AssetConstructorParams {\n address?: string;\n decimals: number;\n ids?: ChainAssetIds;\n min?: number | bigint;\n symbol?: string;\n}\n\nexport interface ChainAssetIds {\n balanceId?: ChainAssetId;\n id?: ChainAssetId;\n minId?: ChainAssetId;\n palletInstance?: number;\n}\n\nexport type ChainAssetId =\n | string\n | number\n | bigint\n | { [key: string]: ChainAssetId };\n\nexport class ChainAsset extends Asset {\n readonly address?: string;\n\n readonly decimals: number;\n\n readonly ids?: ChainAssetIds;\n\n readonly min?: bigint;\n\n readonly symbol?: string;\n\n constructor({\n address,\n decimals,\n ids,\n min,\n symbol,\n ...other\n }: ChainAssetConstructorParams) {\n super(other);\n\n this.address = address;\n this.decimals = decimals;\n this.ids = ids;\n this.min = min ? toBigInt(min, decimals) : undefined;\n this.symbol = symbol;\n }\n\n static fromAsset(\n asset: Asset,\n params: Omit<ChainAssetConstructorParams, keyof AssetConstructorParams>,\n ): ChainAsset {\n return new ChainAsset({\n ...asset,\n ...params,\n });\n }\n\n copyWith(params: Partial<ChainAssetConstructorParams>): ChainAsset {\n return new ChainAsset({\n ...this,\n ...params,\n });\n }\n\n getSymbol(): string {\n return this.symbol || this.originSymbol;\n }\n\n getAssetId(): ChainAssetId {\n return this.ids?.id ?? this.originSymbol;\n }\n\n getBalanceAssetId(): ChainAssetId {\n return this.ids?.balanceId ?? this.getAssetId();\n }\n\n getMinAssetId(): ChainAssetId {\n return this.ids?.minId ?? this.getAssetId();\n }\n\n getAssetPalletInstance(): number | undefined {\n return this.ids?.palletInstance;\n }\n\n getAssetMin(): bigint {\n return this.min ?? 0n;\n }\n}\n","import {\n convertDecimals,\n toBigInt,\n toDecimal,\n} from '@moonbeam-network/xcm-utils';\nimport Big, { RoundingMode } from 'big.js';\nimport { ChainAsset, ChainAssetConstructorParams } from './ChainAsset';\n\nBig.NE = -18;\n\nexport interface AssetAmountConstructorParams\n extends ChainAssetConstructorParams {\n amount: number | bigint;\n decimals: number;\n symbol?: string;\n}\n\nexport class AssetAmount extends ChainAsset {\n readonly amount: bigint;\n\n constructor({ amount, ...other }: AssetAmountConstructorParams) {\n super(other);\n\n this.amount = toBigInt(amount, other.decimals);\n }\n\n static fromChainAsset(\n asset: ChainAsset,\n params: Omit<\n AssetAmountConstructorParams,\n keyof ChainAssetConstructorParams\n >,\n ): AssetAmount {\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>): AssetAmount {\n return new AssetAmount({\n ...this,\n ...params,\n });\n }\n\n convertDecimals(decimals: number): AssetAmount {\n if (this.decimals === decimals) {\n return this.copyWith({});\n }\n\n return this.copyWith({\n amount: convertDecimals(this.amount, this.decimals, decimals),\n decimals,\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 { Asset, AssetAmount, ChainAsset } from '../asset';\nimport { ChainType, Ecosystem } from './Chain.interfaces';\nimport type { EvmParachain, Parachain } from './parachain';\n\nexport interface ChainConstructorParams {\n assets: Map<string, ChainAsset> | ChainAsset[];\n ecosystem?: Ecosystem;\n isTestChain?: boolean;\n key: string;\n name: string;\n nativeAsset: Asset;\n type: ChainType;\n}\n\nexport abstract class Chain {\n readonly assets: Map<string, ChainAsset>;\n\n readonly ecosystem?: Ecosystem;\n\n readonly isTestChain: boolean;\n\n readonly key: string;\n\n readonly name: string;\n\n readonly #nativeAsset: Asset;\n\n readonly type: ChainType;\n\n constructor({\n assets,\n ecosystem,\n isTestChain = false,\n key,\n name,\n nativeAsset,\n type,\n }: ChainConstructorParams) {\n this.assets =\n assets instanceof Map\n ? assets\n : new Map(assets?.map((data) => [data.key, data]));\n this.ecosystem = ecosystem;\n this.isTestChain = isTestChain;\n this.key = key;\n this.name = name;\n this.#nativeAsset = nativeAsset;\n this.type = type;\n }\n\n get nativeAsset(): ChainAsset {\n return this.getChainAsset(this.#nativeAsset);\n }\n\n getChainAsset(keyOrAsset: string | Asset | AssetAmount): ChainAsset {\n const key = typeof keyOrAsset === 'string' ? keyOrAsset : keyOrAsset.key;\n const chainAsset = this.assets.get(key);\n\n if (!chainAsset) {\n throw new Error(\n `No ChainAsset found by the key ${key} for chain ${this.name} (${this.key})`,\n );\n }\n\n return chainAsset;\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 isEvmSigner?: boolean;\n contracts?: Contracts;\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 isEvmSigner: boolean;\n\n readonly contracts?: Contracts;\n\n constructor({\n id,\n rpc,\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.isEvmSigner = isEvmSigner;\n }\n\n getViemChain(): Chain {\n return defineChain({\n id: this.id,\n name: this.name,\n nativeCurrency: {\n decimals: this.nativeAsset.decimals,\n name: this.nativeAsset.originSymbol,\n symbol: this.nativeAsset.originSymbol,\n },\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 { SetOptional } from '../../common.interfaces';\nimport { Chain, ChainConstructorParams } from '../Chain';\nimport { ChainType } from '../Chain.interfaces';\n\nexport interface ParachainConstructorParams\n extends SetOptional<ChainConstructorParams, 'type'> {\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 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 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.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"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,gBAAAC,EAAA,UAAAC,EAAA,eAAAC,EAAA,cAAAC,EAAA,cAAAC,EAAA,iBAAAC,EAAA,cAAAC,IAAA,eAAAC,EAAAV,GCKO,IAAMW,EAAN,MAAMC,CAAM,CACR,IAEA,aAET,YAAY,CAAE,IAAAC,EAAK,aAAAC,CAAa,EAA2B,CACzD,KAAK,IAAMD,EACX,KAAK,aAAeC,CACtB,CAEA,SAASC,EAAgD,CACvD,OAAO,IAAIH,EAAM,CACf,GAAG,KACH,GAAGG,CACL,CAAC,CACH,CAEA,QAAQC,EAAuB,CAC7B,OAAO,KAAK,MAAQA,EAAM,KAAO,KAAK,eAAiBA,EAAM,YAC/D,CACF,ECzBA,IAAAC,EAAyB,uCAwBlB,IAAMC,EAAN,MAAMC,UAAmBC,CAAM,CAC3B,QAEA,SAEA,IAEA,IAEA,OAET,YAAY,CACV,QAAAC,EACA,SAAAC,EACA,IAAAC,EACA,IAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EAAgC,CAC9B,MAAMA,CAAK,EAEX,KAAK,QAAUL,EACf,KAAK,SAAWC,EAChB,KAAK,IAAMC,EACX,KAAK,IAAMC,KAAM,YAASA,EAAKF,CAAQ,EAAI,OAC3C,KAAK,OAASG,CAChB,CAEA,OAAO,UACLE,EACAC,EACY,CACZ,OAAO,IAAIT,EAAW,CACpB,GAAGQ,EACH,GAAGC,CACL,CAAC,CACH,CAEA,SAASA,EAA0D,CACjE,OAAO,IAAIT,EAAW,CACpB,GAAG,KACH,GAAGS,CACL,CAAC,CACH,CAEA,WAAoB,CAClB,OAAO,KAAK,QAAU,KAAK,YAC7B,CAEA,YAA2B,CAzE7B,IAAAC,EA0EI,QAAOA,EAAA,KAAK,MAAL,YAAAA,EAAU,KAAM,KAAK,YAC9B,CAEA,mBAAkC,CA7EpC,IAAAA,EA8EI,QAAOA,EAAA,KAAK,MAAL,YAAAA,EAAU,YAAa,KAAK,WAAW,CAChD,CAEA,eAA8B,CAjFhC,IAAAA,EAkFI,QAAOA,EAAA,KAAK,MAAL,YAAAA,EAAU,QAAS,KAAK,WAAW,CAC5C,CAEA,wBAA6C,CArF/C,IAAAA,EAsFI,OAAOA,EAAA,KAAK,MAAL,YAAAA,EAAU,cACnB,CAEA,aAAsB,CACpB,OAAO,KAAK,KAAO,EACrB,CACF,EC5FA,IAAAC,EAIO,uCACPC,EAAkC,uBAGlC,EAAAC,QAAI,GAAK,IASF,IAAMC,EAAN,MAAMC,UAAoBC,CAAW,CACjC,OAET,YAAY,CAAE,OAAAC,EAAQ,GAAGC,CAAM,EAAiC,CAC9D,MAAMA,CAAK,EAEX,KAAK,UAAS,YAASD,EAAQC,EAAM,QAAQ,CAC/C,CAEA,OAAO,eACLC,EACAC,EAIa,CACb,OAAO,IAAIL,EAAY,CACrB,GAAGI,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,EAA4D,CACnE,OAAO,IAAIL,EAAY,CACrB,GAAG,KACH,GAAGK,CACL,CAAC,CACH,CAEA,gBAAgBC,EAA+B,CAC7C,OAAI,KAAK,WAAaA,EACb,KAAK,SAAS,CAAC,CAAC,EAGlB,KAAK,SAAS,CACnB,UAAQ,mBAAgB,KAAK,OAAQ,KAAK,SAAUA,CAAQ,EAC5D,SAAAA,CACF,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,ECvEO,IAAKC,OACVA,EAAA,UAAc,YACdA,EAAA,aAAiB,gBAFPA,OAAA,IAKAC,OACVA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,cAAgB,iBAHNA,OAAA,ICIL,IAAeC,EAAf,KAAqB,CACjB,OAEA,UAEA,YAEA,IAEA,KAEAC,GAEA,KAET,YAAY,CACV,OAAAC,EACA,UAAAC,EACA,YAAAC,EAAc,GACd,IAAAC,EACA,KAAAC,EACA,YAAAC,EACA,KAAAC,CACF,EAA2B,CACzB,KAAK,OACHN,aAAkB,IACdA,EACA,IAAI,IAAIA,GAAA,YAAAA,EAAQ,IAAKO,GAAS,CAACA,EAAK,IAAKA,CAAI,EAAE,EACrD,KAAK,UAAYN,EACjB,KAAK,YAAcC,EACnB,KAAK,IAAMC,EACX,KAAK,KAAOC,EACZ,KAAKL,GAAeM,EACpB,KAAK,KAAOC,CACd,CAEA,IAAI,aAA0B,CAC5B,OAAO,KAAK,cAAc,KAAKP,EAAY,CAC7C,CAEA,cAAcS,EAAsD,CAClE,IAAML,EAAM,OAAOK,GAAe,SAAWA,EAAaA,EAAW,IAC/DC,EAAa,KAAK,OAAO,IAAIN,CAAG,EAEtC,GAAI,CAACM,EACH,MAAM,IAAI,MACR,kCAAkCN,CAAG,cAAc,KAAK,IAAI,KAAK,KAAK,GAAG,GAC3E,EAGF,OAAOM,CACT,CAEA,aAAiC,CAC/B,OAAO,KAAK,OAAS,WACvB,CAEA,gBAAuC,CACrC,OAAO,KAAK,OAAS,eACvB,CACF,EC1EA,IAAAC,EAAqC,gBCc9B,IAAMC,EAAN,cAAwBC,CAAM,CAC1B,YAEA,YAEA,WAEA,kBAEA,OAEA,GAET,YAAY,CACV,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,YAAcP,EACnB,KAAK,YAAcC,EACnB,KAAK,WAAaE,EAClB,KAAK,kBAAoB,CAAC,CAACD,EAC3B,KAAK,OAASE,EACd,KAAK,GAAKC,CACZ,CACF,ED7BO,IAAMG,EAAN,cAA2BC,CAAU,CACjC,GAEA,IAEA,YAEA,UAET,YAAY,CACV,GAAAC,EACA,IAAAC,EACA,YAAAC,EAAc,GACd,UAAAC,EACA,GAAGC,CACL,EAAkC,CAChC,MAAM,CAAE,qBAA8B,GAAGA,CAAO,CAAC,EAEjD,KAAK,UAAYD,EACjB,KAAK,GAAKH,EACV,KAAK,IAAMC,EACX,KAAK,YAAcC,CACrB,CAEA,cAAsB,CACpB,SAAO,eAAY,CACjB,GAAI,KAAK,GACT,KAAM,KAAK,KACX,eAAgB,CACd,SAAU,KAAK,YAAY,SAC3B,KAAM,KAAK,YAAY,aACvB,OAAQ,KAAK,YAAY,YAC3B,EACA,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","ChainAsset","ChainType","Ecosystem","EvmParachain","Parachain","__toCommonJS","Asset","_Asset","key","originSymbol","params","asset","import_xcm_utils","ChainAsset","_ChainAsset","Asset","address","decimals","ids","min","symbol","other","asset","params","_a","import_xcm_utils","import_big","Big","AssetAmount","_AssetAmount","ChainAsset","amount","other","asset","params","decimals","maxDecimal","roundType","ChainType","Ecosystem","Chain","#nativeAsset","assets","ecosystem","isTestChain","key","name","nativeAsset","type","data","keyOrAsset","chainAsset","import_viem","Parachain","Chain","genesisHash","parachainId","usesChainDecimals","ss58Format","weight","ws","type","others","EvmParachain","Parachain","id","rpc","isEvmSigner","contracts","others"]}
@@ -0,0 +1,142 @@
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
+ copyWith(params: Partial<AssetConstructorParams>): Asset;
14
+ isEqual(asset: Asset): boolean;
15
+ }
16
+
17
+ interface ChainAssetConstructorParams extends AssetConstructorParams {
18
+ address?: string;
19
+ decimals: number;
20
+ ids?: ChainAssetIds;
21
+ min?: number | bigint;
22
+ symbol?: string;
23
+ }
24
+ interface ChainAssetIds {
25
+ balanceId?: ChainAssetId;
26
+ id?: ChainAssetId;
27
+ minId?: ChainAssetId;
28
+ palletInstance?: number;
29
+ }
30
+ type ChainAssetId = string | number | bigint | {
31
+ [key: string]: ChainAssetId;
32
+ };
33
+ declare class ChainAsset extends Asset {
34
+ readonly address?: string;
35
+ readonly decimals: number;
36
+ readonly ids?: ChainAssetIds;
37
+ readonly min?: bigint;
38
+ readonly symbol?: string;
39
+ constructor({ address, decimals, ids, min, symbol, ...other }: ChainAssetConstructorParams);
40
+ static fromAsset(asset: Asset, params: Omit<ChainAssetConstructorParams, keyof AssetConstructorParams>): ChainAsset;
41
+ copyWith(params: Partial<ChainAssetConstructorParams>): ChainAsset;
42
+ getSymbol(): string;
43
+ getAssetId(): ChainAssetId;
44
+ getBalanceAssetId(): ChainAssetId;
45
+ getMinAssetId(): ChainAssetId;
46
+ getAssetPalletInstance(): number | undefined;
47
+ getAssetMin(): bigint;
48
+ }
49
+
50
+ interface AssetAmountConstructorParams extends ChainAssetConstructorParams {
51
+ amount: number | bigint;
52
+ decimals: number;
53
+ symbol?: string;
54
+ }
55
+ declare class AssetAmount extends ChainAsset {
56
+ readonly amount: bigint;
57
+ constructor({ amount, ...other }: AssetAmountConstructorParams);
58
+ static fromChainAsset(asset: ChainAsset, params: Omit<AssetAmountConstructorParams, keyof ChainAssetConstructorParams>): AssetAmount;
59
+ isSame(asset: AssetAmount): boolean;
60
+ isEqual(asset: AssetAmount): boolean;
61
+ copyWith(params: Partial<AssetAmountConstructorParams>): AssetAmount;
62
+ convertDecimals(decimals: number): AssetAmount;
63
+ toBig(): Big;
64
+ toBigDecimal(maxDecimal?: number, roundType?: RoundingMode): Big;
65
+ toDecimal(maxDecimal?: number, roundType?: RoundingMode): string;
66
+ }
67
+
68
+ type SetOptional<Base, Keys extends keyof Base> = Omit<Base, Keys> & Partial<Pick<Base, Keys>>;
69
+
70
+ interface ParachainConstructorParams extends SetOptional<ChainConstructorParams, 'type'> {
71
+ genesisHash: string;
72
+ parachainId: number;
73
+ ss58Format: number;
74
+ usesChainDecimals?: boolean;
75
+ weight?: number;
76
+ ws: string | string[];
77
+ }
78
+ declare class Parachain extends Chain {
79
+ readonly genesisHash: string;
80
+ readonly parachainId: number;
81
+ readonly ss58Format: number;
82
+ readonly usesChainDecimals: boolean;
83
+ readonly weight: number | undefined;
84
+ readonly ws: string | string[];
85
+ constructor({ genesisHash, parachainId, usesChainDecimals, ss58Format, weight, ws, type, ...others }: ParachainConstructorParams);
86
+ }
87
+
88
+ interface EvmParachainConstructorParams extends Omit<ParachainConstructorParams, 'type'> {
89
+ id: number;
90
+ rpc: string;
91
+ isEvmSigner?: boolean;
92
+ contracts?: Contracts;
93
+ }
94
+ type Contracts = {
95
+ Xtokens?: Address;
96
+ };
97
+ declare class EvmParachain extends Parachain {
98
+ readonly id: number;
99
+ readonly rpc: string;
100
+ readonly isEvmSigner: boolean;
101
+ readonly contracts?: Contracts;
102
+ constructor({ id, rpc, isEvmSigner, contracts, ...others }: EvmParachainConstructorParams);
103
+ getViemChain(): Chain$1;
104
+ }
105
+
106
+ type AnyChain = Parachain | EvmParachain;
107
+ type AnyParachain = Parachain | EvmParachain;
108
+ declare enum ChainType {
109
+ 'Parachain' = "parachain",
110
+ 'EvmParachain' = "evm-parachain"
111
+ }
112
+ declare enum Ecosystem {
113
+ Polkadot = "polkadot",
114
+ Kusama = "kusama",
115
+ AlphanetRelay = "alphanet-relay"
116
+ }
117
+
118
+ interface ChainConstructorParams {
119
+ assets: Map<string, ChainAsset> | ChainAsset[];
120
+ ecosystem?: Ecosystem;
121
+ isTestChain?: boolean;
122
+ key: string;
123
+ name: string;
124
+ nativeAsset: Asset;
125
+ type: ChainType;
126
+ }
127
+ declare abstract class Chain {
128
+ #private;
129
+ readonly assets: Map<string, ChainAsset>;
130
+ readonly ecosystem?: Ecosystem;
131
+ readonly isTestChain: boolean;
132
+ readonly key: string;
133
+ readonly name: string;
134
+ readonly type: ChainType;
135
+ constructor({ assets, ecosystem, isTestChain, key, name, nativeAsset, type, }: ChainConstructorParams);
136
+ get nativeAsset(): ChainAsset;
137
+ getChainAsset(keyOrAsset: string | Asset | AssetAmount): ChainAsset;
138
+ isParachain(): this is Parachain;
139
+ isEvmParachain(): this is EvmParachain;
140
+ }
141
+
142
+ export { type AnyChain, type AnyParachain, Asset, AssetAmount, type AssetAmountConstructorParams, type AssetConstructorParams, Chain, ChainAsset, type ChainAssetConstructorParams, type ChainAssetId, type ChainAssetIds, 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;
@@ -9,98 +10,135 @@ declare class Asset {
9
10
  readonly key: string;
10
11
  readonly originSymbol: string;
11
12
  constructor({ key, originSymbol }: AssetConstructorParams);
13
+ copyWith(params: Partial<AssetConstructorParams>): Asset;
12
14
  isEqual(asset: Asset): boolean;
13
15
  }
14
16
 
15
- interface AssetAmountParams {
16
- amount: bigint;
17
+ interface ChainAssetConstructorParams extends AssetConstructorParams {
18
+ address?: string;
17
19
  decimals: number;
20
+ ids?: ChainAssetIds;
21
+ min?: number | bigint;
18
22
  symbol?: string;
19
23
  }
20
- interface AssetAmountConstructorParams
21
- extends AssetConstructorParams,
22
- AssetAmountParams {}
23
- declare class AssetAmount extends Asset {
24
- readonly amount: bigint;
24
+ interface ChainAssetIds {
25
+ balanceId?: ChainAssetId;
26
+ id?: ChainAssetId;
27
+ minId?: ChainAssetId;
28
+ palletInstance?: number;
29
+ }
30
+ type ChainAssetId =
31
+ | string
32
+ | number
33
+ | bigint
34
+ | {
35
+ [key: string]: ChainAssetId;
36
+ };
37
+ declare class ChainAsset extends Asset {
38
+ readonly address?: string;
25
39
  readonly decimals: number;
26
- readonly symbol: string;
40
+ readonly ids?: ChainAssetIds;
41
+ readonly min?: bigint;
42
+ readonly symbol?: string;
27
43
  constructor({
28
- amount,
44
+ address,
29
45
  decimals,
46
+ ids,
47
+ min,
30
48
  symbol,
31
49
  ...other
32
- }: AssetAmountConstructorParams);
33
- static fromAsset(asset: Asset, params: AssetAmountParams): AssetAmount;
50
+ }: ChainAssetConstructorParams);
51
+ static fromAsset(
52
+ asset: Asset,
53
+ params: Omit<ChainAssetConstructorParams, keyof AssetConstructorParams>,
54
+ ): ChainAsset;
55
+ copyWith(params: Partial<ChainAssetConstructorParams>): ChainAsset;
56
+ getSymbol(): string;
57
+ getAssetId(): ChainAssetId;
58
+ getBalanceAssetId(): ChainAssetId;
59
+ getMinAssetId(): ChainAssetId;
60
+ getAssetPalletInstance(): number | undefined;
61
+ getAssetMin(): bigint;
62
+ }
63
+
64
+ interface AssetAmountConstructorParams extends ChainAssetConstructorParams {
65
+ amount: number | bigint;
66
+ decimals: number;
67
+ symbol?: string;
68
+ }
69
+ declare class AssetAmount extends ChainAsset {
70
+ readonly amount: bigint;
71
+ constructor({ amount, ...other }: AssetAmountConstructorParams);
72
+ static fromChainAsset(
73
+ asset: ChainAsset,
74
+ params: Omit<
75
+ AssetAmountConstructorParams,
76
+ keyof ChainAssetConstructorParams
77
+ >,
78
+ ): AssetAmount;
34
79
  isSame(asset: AssetAmount): boolean;
35
80
  isEqual(asset: AssetAmount): boolean;
36
81
  copyWith(params: Partial<AssetAmountConstructorParams>): AssetAmount;
82
+ convertDecimals(decimals: number): AssetAmount;
37
83
  toBig(): Big;
38
84
  toBigDecimal(maxDecimal?: number, roundType?: RoundingMode): Big;
39
85
  toDecimal(maxDecimal?: number, roundType?: RoundingMode): string;
40
86
  }
41
87
 
42
- type ChainAssetId =
43
- | string
44
- | number
45
- | bigint
46
- | {
47
- [key: string]: ChainAssetId;
48
- };
49
- interface ChainAssetsData {
50
- asset: Asset;
51
- balanceId?: ChainAssetId;
52
- decimals?: number;
53
- id?: ChainAssetId;
54
- metadataId?: ChainAssetId;
55
- minId?: ChainAssetId;
56
- palletInstance?: number;
57
- min?: number;
58
- }
88
+ type SetOptional<Base, Keys extends keyof Base> = Omit<Base, Keys> &
89
+ Partial<Pick<Base, Keys>>;
59
90
 
60
91
  interface ParachainConstructorParams
61
92
  extends SetOptional<ChainConstructorParams, 'type'> {
62
- assetsData?: Map<string, ChainAssetsData> | ChainAssetsData[];
63
93
  genesisHash: string;
64
94
  parachainId: number;
65
95
  ss58Format: number;
96
+ usesChainDecimals?: boolean;
66
97
  weight?: number;
67
- ws: string;
98
+ ws: string | string[];
68
99
  }
69
100
  declare class Parachain extends Chain {
70
- readonly assetsData: Map<string, ChainAssetsData>;
71
101
  readonly genesisHash: string;
72
102
  readonly parachainId: number;
73
103
  readonly ss58Format: number;
74
- readonly weight: number;
75
- readonly ws: string;
104
+ readonly usesChainDecimals: boolean;
105
+ readonly weight: number | undefined;
106
+ readonly ws: string | string[];
76
107
  constructor({
77
- assetsData,
78
108
  genesisHash,
79
109
  parachainId,
110
+ usesChainDecimals,
80
111
  ss58Format,
81
112
  weight,
82
113
  ws,
83
114
  type,
84
115
  ...others
85
116
  }: ParachainConstructorParams);
86
- getAssetId(asset: Asset): ChainAssetId;
87
- getBalanceAssetId(asset: Asset): ChainAssetId;
88
- getMinAssetId(asset: Asset): ChainAssetId;
89
- getMetadataAssetId(asset: Asset): ChainAssetId;
90
- getAssetPalletInstance(asset: Asset): number | undefined;
91
- getAssetDecimals(asset: Asset): number | undefined;
92
- getAssetMin(asset: Asset): number;
93
117
  }
94
118
 
95
119
  interface EvmParachainConstructorParams
96
120
  extends Omit<ParachainConstructorParams, 'type'> {
97
121
  id: number;
98
122
  rpc: string;
123
+ isEvmSigner?: boolean;
124
+ contracts?: Contracts;
99
125
  }
126
+ type Contracts = {
127
+ Xtokens?: Address;
128
+ };
100
129
  declare class EvmParachain extends Parachain {
101
130
  readonly id: number;
102
131
  readonly rpc: string;
103
- constructor({ id, rpc, ...others }: EvmParachainConstructorParams);
132
+ readonly isEvmSigner: boolean;
133
+ readonly contracts?: Contracts;
134
+ constructor({
135
+ id,
136
+ rpc,
137
+ isEvmSigner,
138
+ contracts,
139
+ ...others
140
+ }: EvmParachainConstructorParams);
141
+ getViemChain(): Chain$1;
104
142
  }
105
143
 
106
144
  type AnyChain = Parachain | EvmParachain;
@@ -116,45 +154,55 @@ declare enum Ecosystem {
116
154
  }
117
155
 
118
156
  interface ChainConstructorParams {
157
+ assets: Map<string, ChainAsset> | ChainAsset[];
119
158
  ecosystem?: Ecosystem;
120
159
  isTestChain?: boolean;
121
160
  key: string;
122
161
  name: string;
162
+ nativeAsset: Asset;
123
163
  type: ChainType;
124
164
  }
125
165
  declare abstract class Chain {
166
+ #private;
167
+ readonly assets: Map<string, ChainAsset>;
126
168
  readonly ecosystem?: Ecosystem;
127
169
  readonly isTestChain: boolean;
128
170
  readonly key: string;
129
171
  readonly name: string;
130
172
  readonly type: ChainType;
131
173
  constructor({
174
+ assets,
132
175
  ecosystem,
133
176
  isTestChain,
134
177
  key,
135
178
  name,
179
+ nativeAsset,
136
180
  type,
137
181
  }: ChainConstructorParams);
182
+ get nativeAsset(): ChainAsset;
183
+ getChainAsset(keyOrAsset: string | Asset | AssetAmount): ChainAsset;
138
184
  isParachain(): this is Parachain;
139
185
  isEvmParachain(): this is EvmParachain;
140
186
  }
141
187
 
142
188
  export {
143
- AnyChain,
144
- AnyParachain,
189
+ type AnyChain,
190
+ type AnyParachain,
145
191
  Asset,
146
192
  AssetAmount,
147
- AssetAmountConstructorParams,
148
- AssetAmountParams,
149
- AssetConstructorParams,
193
+ type AssetAmountConstructorParams,
194
+ type AssetConstructorParams,
150
195
  Chain,
151
- ChainAssetId,
152
- ChainAssetsData,
153
- ChainConstructorParams,
196
+ ChainAsset,
197
+ type ChainAssetConstructorParams,
198
+ type ChainAssetId,
199
+ type ChainAssetIds,
200
+ type ChainConstructorParams,
154
201
  ChainType,
155
202
  Ecosystem,
156
203
  EvmParachain,
157
- EvmParachainConstructorParams,
204
+ type EvmParachainConstructorParams,
158
205
  Parachain,
159
- ParachainConstructorParams,
206
+ type ParachainConstructorParams,
207
+ type SetOptional,
160
208
  };
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 m=class e{key;originSymbol;constructor({key:t,originSymbol:s}){this.key=t,this.originSymbol=s}copyWith(t){return new e({...this,...t})}isEqual(t){return this.key===t.key&&this.originSymbol===t.originSymbol}};import{toBigInt as C}from"@moonbeam-network/xcm-utils";var h=class e extends m{address;decimals;ids;min;symbol;constructor({address:t,decimals:s,ids:r,min:n,symbol:a,...i}){super(i),this.address=t,this.decimals=s,this.ids=r,this.min=n?C(n,s):void 0,this.symbol=a}static fromAsset(t,s){return new e({...t,...s})}copyWith(t){return new e({...this,...t})}getSymbol(){return this.symbol||this.originSymbol}getAssetId(){var t;return((t=this.ids)==null?void 0:t.id)??this.originSymbol}getBalanceAssetId(){var t;return((t=this.ids)==null?void 0:t.balanceId)??this.getAssetId()}getMinAssetId(){var t;return((t=this.ids)==null?void 0:t.minId)??this.getAssetId()}getAssetPalletInstance(){var t;return(t=this.ids)==null?void 0:t.palletInstance}getAssetMin(){return this.min??0n}};import{convertDecimals as g,toBigInt as P,toDecimal as b}from"@moonbeam-network/xcm-utils";import p from"big.js";p.NE=-18;var y=class e extends h{amount;constructor({amount:t,...s}){super(s),this.amount=P(t,s.decimals)}static fromChainAsset(t,s){return new e({...t,...s})}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})}convertDecimals(t){return this.decimals===t?this.copyWith({}):this.copyWith({amount:g(this.amount,this.decimals,t),decimals:t})}toBig(){return p(this.amount.toString())}toBigDecimal(t,s){return p(this.toDecimal(t,s))}toDecimal(t,s){return b(this.amount,this.decimals,t,s)}};var c=(s=>(s.Parachain="parachain",s.EvmParachain="evm-parachain",s))(c||{}),f=(r=>(r.Polkadot="polkadot",r.Kusama="kusama",r.AlphanetRelay="alphanet-relay",r))(f||{});var u=class{assets;ecosystem;isTestChain;key;name;#t;type;constructor({assets:t,ecosystem:s,isTestChain:r=!1,key:n,name:a,nativeAsset:i,type:l}){this.assets=t instanceof Map?t:new Map(t==null?void 0:t.map(o=>[o.key,o])),this.ecosystem=s,this.isTestChain=r,this.key=n,this.name=a,this.#t=i,this.type=l}get nativeAsset(){return this.getChainAsset(this.#t)}getChainAsset(t){let s=typeof t=="string"?t:t.key,r=this.assets.get(s);if(!r)throw new Error(`No ChainAsset found by the key ${s} for chain ${this.name} (${this.key})`);return r}isParachain(){return this.type==="parachain"}isEvmParachain(){return this.type==="evm-parachain"}};import{defineChain as x}from"viem";var d=class extends u{genesisHash;parachainId;ss58Format;usesChainDecimals;weight;ws;constructor({genesisHash:t,parachainId:s,usesChainDecimals:r,ss58Format:n,weight:a,ws:i,type:l="parachain",...o}){super({type:l,...o}),this.genesisHash=t,this.parachainId=s,this.ss58Format=n,this.usesChainDecimals=!!r,this.weight=a,this.ws=i}};var A=class extends d{id;rpc;isEvmSigner;contracts;constructor({id:t,rpc:s,isEvmSigner:r=!1,contracts:n,...a}){super({type:"evm-parachain",...a}),this.contracts=n,this.id=t,this.rpc=s,this.isEvmSigner=r}getViemChain(){return x({id:this.id,name:this.name,nativeCurrency:{decimals:this.nativeAsset.decimals,name:this.nativeAsset.originSymbol,symbol:this.nativeAsset.originSymbol},rpcUrls:{default:{http:[this.rpc],webSocket:Array.isArray(this.ws)?this.ws:[this.ws]}}})}};export{m as Asset,y as AssetAmount,u as Chain,h as ChainAsset,c as ChainType,f as Ecosystem,A as EvmParachain,d 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/ChainAsset.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 copyWith(params: Partial<AssetConstructorParams>): Asset {\n return new Asset({\n ...this,\n ...params,\n });\n }\n\n isEqual(asset: Asset): boolean {\n return this.key === asset.key && this.originSymbol === asset.originSymbol;\n }\n}\n","import { toBigInt } from '@moonbeam-network/xcm-utils';\nimport { Asset, AssetConstructorParams } from './Asset';\n\nexport interface ChainAssetConstructorParams extends AssetConstructorParams {\n address?: string;\n decimals: number;\n ids?: ChainAssetIds;\n min?: number | bigint;\n symbol?: string;\n}\n\nexport interface ChainAssetIds {\n balanceId?: ChainAssetId;\n id?: ChainAssetId;\n minId?: ChainAssetId;\n palletInstance?: number;\n}\n\nexport type ChainAssetId =\n | string\n | number\n | bigint\n | { [key: string]: ChainAssetId };\n\nexport class ChainAsset extends Asset {\n readonly address?: string;\n\n readonly decimals: number;\n\n readonly ids?: ChainAssetIds;\n\n readonly min?: bigint;\n\n readonly symbol?: string;\n\n constructor({\n address,\n decimals,\n ids,\n min,\n symbol,\n ...other\n }: ChainAssetConstructorParams) {\n super(other);\n\n this.address = address;\n this.decimals = decimals;\n this.ids = ids;\n this.min = min ? toBigInt(min, decimals) : undefined;\n this.symbol = symbol;\n }\n\n static fromAsset(\n asset: Asset,\n params: Omit<ChainAssetConstructorParams, keyof AssetConstructorParams>,\n ): ChainAsset {\n return new ChainAsset({\n ...asset,\n ...params,\n });\n }\n\n copyWith(params: Partial<ChainAssetConstructorParams>): ChainAsset {\n return new ChainAsset({\n ...this,\n ...params,\n });\n }\n\n getSymbol(): string {\n return this.symbol || this.originSymbol;\n }\n\n getAssetId(): ChainAssetId {\n return this.ids?.id ?? this.originSymbol;\n }\n\n getBalanceAssetId(): ChainAssetId {\n return this.ids?.balanceId ?? this.getAssetId();\n }\n\n getMinAssetId(): ChainAssetId {\n return this.ids?.minId ?? this.getAssetId();\n }\n\n getAssetPalletInstance(): number | undefined {\n return this.ids?.palletInstance;\n }\n\n getAssetMin(): bigint {\n return this.min ?? 0n;\n }\n}\n","import {\n convertDecimals,\n toBigInt,\n toDecimal,\n} from '@moonbeam-network/xcm-utils';\nimport Big, { RoundingMode } from 'big.js';\nimport { ChainAsset, ChainAssetConstructorParams } from './ChainAsset';\n\nBig.NE = -18;\n\nexport interface AssetAmountConstructorParams\n extends ChainAssetConstructorParams {\n amount: number | bigint;\n decimals: number;\n symbol?: string;\n}\n\nexport class AssetAmount extends ChainAsset {\n readonly amount: bigint;\n\n constructor({ amount, ...other }: AssetAmountConstructorParams) {\n super(other);\n\n this.amount = toBigInt(amount, other.decimals);\n }\n\n static fromChainAsset(\n asset: ChainAsset,\n params: Omit<\n AssetAmountConstructorParams,\n keyof ChainAssetConstructorParams\n >,\n ): AssetAmount {\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>): AssetAmount {\n return new AssetAmount({\n ...this,\n ...params,\n });\n }\n\n convertDecimals(decimals: number): AssetAmount {\n if (this.decimals === decimals) {\n return this.copyWith({});\n }\n\n return this.copyWith({\n amount: convertDecimals(this.amount, this.decimals, decimals),\n decimals,\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 { Asset, AssetAmount, ChainAsset } from '../asset';\nimport { ChainType, Ecosystem } from './Chain.interfaces';\nimport type { EvmParachain, Parachain } from './parachain';\n\nexport interface ChainConstructorParams {\n assets: Map<string, ChainAsset> | ChainAsset[];\n ecosystem?: Ecosystem;\n isTestChain?: boolean;\n key: string;\n name: string;\n nativeAsset: Asset;\n type: ChainType;\n}\n\nexport abstract class Chain {\n readonly assets: Map<string, ChainAsset>;\n\n readonly ecosystem?: Ecosystem;\n\n readonly isTestChain: boolean;\n\n readonly key: string;\n\n readonly name: string;\n\n readonly #nativeAsset: Asset;\n\n readonly type: ChainType;\n\n constructor({\n assets,\n ecosystem,\n isTestChain = false,\n key,\n name,\n nativeAsset,\n type,\n }: ChainConstructorParams) {\n this.assets =\n assets instanceof Map\n ? assets\n : new Map(assets?.map((data) => [data.key, data]));\n this.ecosystem = ecosystem;\n this.isTestChain = isTestChain;\n this.key = key;\n this.name = name;\n this.#nativeAsset = nativeAsset;\n this.type = type;\n }\n\n get nativeAsset(): ChainAsset {\n return this.getChainAsset(this.#nativeAsset);\n }\n\n getChainAsset(keyOrAsset: string | Asset | AssetAmount): ChainAsset {\n const key = typeof keyOrAsset === 'string' ? keyOrAsset : keyOrAsset.key;\n const chainAsset = this.assets.get(key);\n\n if (!chainAsset) {\n throw new Error(\n `No ChainAsset found by the key ${key} for chain ${this.name} (${this.key})`,\n );\n }\n\n return chainAsset;\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 isEvmSigner?: boolean;\n contracts?: Contracts;\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 isEvmSigner: boolean;\n\n readonly contracts?: Contracts;\n\n constructor({\n id,\n rpc,\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.isEvmSigner = isEvmSigner;\n }\n\n getViemChain(): Chain {\n return defineChain({\n id: this.id,\n name: this.name,\n nativeCurrency: {\n decimals: this.nativeAsset.decimals,\n name: this.nativeAsset.originSymbol,\n symbol: this.nativeAsset.originSymbol,\n },\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 { SetOptional } from '../../common.interfaces';\nimport { Chain, ChainConstructorParams } from '../Chain';\nimport { ChainType } from '../Chain.interfaces';\n\nexport interface ParachainConstructorParams\n extends SetOptional<ChainConstructorParams, 'type'> {\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 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 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.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"],"mappings":"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","names":["Asset","_Asset","key","originSymbol","params","asset","toBigInt","ChainAsset","_ChainAsset","Asset","address","decimals","ids","min","symbol","other","toBigInt","asset","params","_a","convertDecimals","toBigInt","toDecimal","Big","Big","AssetAmount","_AssetAmount","ChainAsset","amount","other","toBigInt","asset","params","decimals","convertDecimals","maxDecimal","roundType","toDecimal","ChainType","Ecosystem","Chain","#nativeAsset","assets","ecosystem","isTestChain","key","name","nativeAsset","type","data","keyOrAsset","chainAsset","defineChain","Parachain","Chain","genesisHash","parachainId","usesChainDecimals","ss58Format","weight","ws","type","others","EvmParachain","Parachain","id","rpc","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.11",
3
+ "version": "1.0.0-dev.110",
4
4
  "description": "Moonbeam XCM Types",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -8,26 +8,25 @@
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
31
  "homepage": "https://docs.moonbeam.network/builders/xcm/xcm-sdk/xcm-sdk/",
33
32
  "files": [
@@ -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.11",
53
- "big.js": "^6.2.1",
54
- "type-fest": "^3.8.0"
51
+ "@moonbeam-network/xcm-utils": "1.0.0-dev.110",
52
+ "big.js": "^6.2.1"
53
+ },
54
+ "peerDependencies": {
55
+ "viem": "^2.13.7"
55
56
  }
56
57
  }