@moonbeam-network/xcm-types 0.0.1-dev.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,14 @@
1
- ![Moonbeam](https://moonbeam.network/wp-content/uploads/2020/03/Moonbeam-Logo-Final-500px.png)
1
+ ![Moonbeam](https://docs.moonbeam.network/images/builders/interoperability/xcm/sdk/xcm-sdk-banner.png)
2
2
 
3
- # XCM-Types
3
+ The Moonbeam XCM SDK enables developers to easily deposit and withdraw assets to Moonbeam/Moonriver from the relay chain and other parachains in the Polkadot/Kusama ecosystem. With the SDK, you don't need to worry about determining the multilocation of the origin or destination assets or which extrinsics are used on which networks to send XCM transfers. To deposit or withdraw assets, you simply define the asset and origin chain you want to deposit from or withdraw back to, along with the sending account's signer, and the amount to send.
4
+
5
+ # Documentation
6
+
7
+ ## v1 (current)
8
+
9
+ - TODO: (coming soon)
10
+
11
+ ## v0 (previous)
12
+
13
+ - [usage](https://docs.moonbeam.network/builders/xcm/xcm-sdk/xcm-sdk/)
14
+ - [references](https://docs.moonbeam.network/builders/xcm/xcm-sdk/reference/)
package/build/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var b=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})},y=(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?b(k(r)):{},y(t||!r||!r.__esModule?c(a,"default",{value:r,enumerable:!0}):a,r)),v=r=>y(c({},"__esModule",{value:!0}),r);var w={};D(w,{Asset:()=>i,AssetAmount:()=>n,Chain:()=>m,ChainType:()=>o,Ecosystem:()=>P,EvmParachain:()=>l,Parachain:()=>h});module.exports=v(w);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||{}),P=(s=>(s.Polkadot="polkadot",s.Kusama="kusama",s.AlphanetRelay="alphanet-relay",s))(P||{});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:A,type:C="parachain",...f}){super({type:C,...f}),this.assetsData=t instanceof Map?t:new Map(t==null?void 0:t.map(d=>[d.asset.key,d])),this.genesisHash=a,this.parachainId=s,this.ss58Format=e,this.weight=p??1e9,this.ws=A}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}};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 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});
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","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/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"]}
package/build/index.d.ts CHANGED
@@ -54,6 +54,7 @@ interface ChainAssetsData {
54
54
  metadataId?: ChainAssetId;
55
55
  minId?: ChainAssetId;
56
56
  palletInstance?: number;
57
+ min?: number;
57
58
  }
58
59
 
59
60
  interface ParachainConstructorParams
@@ -88,6 +89,7 @@ declare class Parachain extends Chain {
88
89
  getMetadataAssetId(asset: Asset): ChainAssetId;
89
90
  getAssetPalletInstance(asset: Asset): number | undefined;
90
91
  getAssetDecimals(asset: Asset): number | undefined;
92
+ getAssetMin(asset: Asset): number;
91
93
  }
92
94
 
93
95
  interface EvmParachainConstructorParams
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 P}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 P(this.amount,this.decimals,t,a)}};var i=(a=>(a.Parachain="parachain",a.EvmParachain="evm-parachain",a))(i||{}),A=(r=>(r.Polkadot="polkadot",r.Kusama="kusama",r.AlphanetRelay="alphanet-relay",r))(A||{});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:d,type:y="parachain",...g}){super({type:y,...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=d}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}};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,A as Ecosystem,l as EvmParachain,m as Parachain};
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};
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","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/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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moonbeam-network/xcm-types",
3
- "version": "0.0.1-dev.1",
3
+ "version": "1.0.0",
4
4
  "description": "Moonbeam XCM Types",
5
5
  "scripts": {
6
6
  "build": "tsup",