@moonbeam-network/xcm-utils 0.0.7 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,9 @@
1
- # xcm-utils
1
+ ![Moonbeam](https://docs.moonbeam.network/images/builders/interoperability/xcm/sdk/xcm-sdk-banner.png)
2
2
 
3
- ## :warning: This package is not production ready and is in heavy development!
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)
package/build/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var y=Object.create;var a=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var R=(t,e)=>{for(var i in e)a(t,i,{get:e[i],enumerable:!0})},g=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of w(e))!I.call(t,n)&&n!==i&&a(t,n,{get:()=>e[n],enumerable:!(s=F(e,n))||s.enumerable});return t};var h=(t,e,i)=>(i=t!=null?y(P(t)):{},g(e||!t||!t.__esModule?a(i,"default",{value:t,enumerable:!0}):i,t)),A=t=>g(a({},"__esModule",{value:!0}),t);var j={};R(j,{ExtrinsicStatus:()=>p,convertDecimals:()=>D,createExtrinsicEventHandler:()=>C,createTxEventHandler:()=>H,getPolkadotApi:()=>B,hasDecimalOverflow:()=>T,toBigInt:()=>k,toDecimal:()=>S});module.exports=A(j);var c=require("@polkadot/api"),b=h(require("lru-cache"),1),v=new b.default({max:20,dispose:async t=>{let e=await t;e.isConnected&&e.disconnect()}});async function B(t,e){let i=v.get(t)||c.ApiPromise.create({provider:new c.WsProvider(t)});v.set(t,i);let s=await i;return await s.isReady,e&&s.once("disconnected",e),s}var p=(s=>(s.Failed="Failed",s.Sent="Sent",s.Success="Success",s))(p||{});function C(t,e,i){return({events:s=[],status:n,txHash:u})=>{let o=u.toHex();if(n.isReady&&i({status:"Sent",txHash:o}),n.isInBlock){let l=n.asInBlock.toString();s.forEach(({event:{data:x,method:m,section:f}})=>{var d;if(f===t&&m===e){if(m==="Attempted"){let E=x.at(0);if(E.isIncomplete){i({status:"Failed",blockHash:l,txHash:o,message:(d=E.asIncomplete)==null?void 0:d.toHuman().join("; ")});return}}i({status:"Success",blockHash:l,txHash:o})}f==="system"&&m==="ExtrinsicFailed"&&i({status:"Failed",blockHash:l,txHash:o,message:x.join("; ")})})}}}async function H(t,e,i,s=!1){if(!t.provider)throw new Error("options.ethersSigner has not provider");s||i({status:"Sent",txHash:e});let n=await t.provider.getTransactionReceipt(e);if(!n){setTimeout(()=>H(t,e,i,!0),2e3);return}n.status===1?i({status:"Success",blockHash:n.blockHash,txHash:e}):i({status:"Failed",blockHash:n.blockHash,txHash:e})}var r=h(require("big.js"),1);function S(t,e,i=6,s){let n=(0,r.default)(t.toString().replace(/[^0-9]/g,"")),u=(0,r.default)(10).pow(e);return n.div(u).round(i,s)}function k(t,e){let i=(0,r.default)(10).pow(e),s=(0,r.default)(t).mul(i);return BigInt(s.toFixed(0,r.default.roundDown))}function D(t,e,i){let s=S(t,e,e);return k(s.toString(),i)}function T(t,e){let i=t.toString().split(".");return i.length>1&&i[1].length>e}0&&(module.exports={ExtrinsicStatus,convertDecimals,createExtrinsicEventHandler,createTxEventHandler,getPolkadotApi,hasDecimalOverflow,toBigInt,toDecimal});
1
+ "use strict";var l=Object.create;var s=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var h=(t,r)=>{for(var i in r)s(t,i,{get:r[i],enumerable:!0})},p=(t,r,i,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of w(r))!v.call(t,o)&&o!==i&&s(t,o,{get:()=>r[o],enumerable:!(n=x(r,o))||n.enumerable});return t};var g=(t,r,i)=>(i=t!=null?l(P(t)):{},p(r||!t||!t.__esModule?s(i,"default",{value:t,enumerable:!0}):i,t)),A=t=>p(s({},"__esModule",{value:!0}),t);var D={};h(D,{convertDecimals:()=>y,formatAssetIdToERC20:()=>S,getPolkadotApi:()=>R,hasDecimalOverflow:()=>B,toBigInt:()=>f,toDecimal:()=>u});module.exports=A(D);function S(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}var e=g(require("big.js"),1);e.default.NE=-18;function u(t,r,i=6,n){let o=(0,e.default)(t.toString().replace(/[^0-9]/g,"")),b=(0,e.default)(10).pow(r);return o.div(b).round(i,n).toString()}function f(t,r){if(typeof t=="bigint")return t;let i=(0,e.default)(10).pow(r),n=(0,e.default)(t).mul(i);return BigInt(n.toFixed(0,e.default.roundDown))}function y(t,r,i){let n=u(t,r,r);return f(n.toString(),i)}function B(t,r){let i=t.toString().split(".");return i.length>1&&i[1].length>r}var m=require("@polkadot/api"),a=require("@polkadot/apps-config"),d=g(require("lru-cache"),1),c=new d.default({max:20,dispose:async t=>{let r=await t;r.isConnected&&r.disconnect()}});async function R(t){let r=c.get(t)||m.ApiPromise.create({provider:new m.WsProvider(t),typesBundle:a.typesBundle});c.set(t,r);let i=await r;return await i.isReady,i}0&&(module.exports={convertDecimals,formatAssetIdToERC20,getPolkadotApi,hasDecimalOverflow,toBigInt,toDecimal});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/api/polkadot.api.ts","../src/handlers/handlers.interfaces.ts","../src/handlers/createExtrinsicEventHandler.ts","../src/handlers/createTxEventHandler.ts","../src/numbers/decimals.ts"],"sourcesContent":["export * from './api';\nexport * from './handlers';\nexport * from './numbers';\n","import { ApiPromise, WsProvider } from '@polkadot/api';\nimport LRU from 'lru-cache';\n\nconst cache = new LRU<string, Promise<ApiPromise>>({\n max: 20,\n dispose: async (promise: Promise<ApiPromise>) => {\n const api = await promise;\n\n if (api.isConnected) {\n api.disconnect();\n }\n },\n});\n\nexport async function getPolkadotApi(\n ws: string,\n onDisconnect?: VoidFunction,\n): Promise<ApiPromise> {\n const promise =\n cache.get(ws) ||\n ApiPromise.create({\n provider: new WsProvider(ws),\n });\n\n cache.set(ws, promise);\n\n const api = await promise;\n\n await api.isReady;\n\n if (onDisconnect) {\n api.once('disconnected', onDisconnect);\n }\n\n return api;\n}\n","export type Hash = string;\n\nexport type ExtrinsicEventsCallback = (event: ExtrinsicEvent) => void;\n\nexport type ExtrinsicEvent =\n | ExtrinsicFailedEvent\n | ExtrinsicSentEvent\n | ExtrinsicSuccessEvent;\n\nexport interface ExtrinsicFailedEvent {\n blockHash: Hash;\n message?: string;\n status: ExtrinsicStatus.Failed;\n txHash: Hash;\n}\n\nexport interface ExtrinsicSentEvent {\n status: ExtrinsicStatus.Sent;\n txHash: Hash;\n}\n\nexport interface ExtrinsicSuccessEvent {\n blockHash: Hash;\n status: ExtrinsicStatus.Success;\n txHash: Hash;\n}\n\nexport enum ExtrinsicStatus {\n Failed = 'Failed',\n Sent = 'Sent',\n Success = 'Success',\n}\n","import type { ISubmittableResult } from '@polkadot/types/types';\nimport {\n ExtrinsicEventsCallback,\n ExtrinsicStatus,\n} from './handlers.interfaces';\n\nexport function createExtrinsicEventHandler(\n pallet: string,\n successEvent: string,\n cb: ExtrinsicEventsCallback,\n) {\n return ({ events = [], status, txHash }: ISubmittableResult) => {\n const hash = txHash.toHex();\n\n if (status.isReady) {\n cb({ status: ExtrinsicStatus.Sent, txHash: hash });\n }\n\n if (status.isInBlock) {\n const block = status.asInBlock.toString();\n\n events.forEach(({ event: { data, method, section } }) => {\n if (section === pallet && method === successEvent) {\n if (method === 'Attempted') {\n const eventData = data.at(0) as any;\n\n if (eventData.isIncomplete) {\n cb({\n status: ExtrinsicStatus.Failed,\n blockHash: block,\n txHash: hash,\n message: eventData.asIncomplete?.toHuman().join('; '),\n });\n\n return;\n }\n }\n\n cb({\n status: ExtrinsicStatus.Success,\n blockHash: block,\n txHash: hash,\n });\n }\n\n if (section === 'system' && method === 'ExtrinsicFailed') {\n cb({\n status: ExtrinsicStatus.Failed,\n blockHash: block,\n txHash: hash,\n message: data.join('; '),\n });\n }\n });\n }\n };\n}\n","import type { Signer as EthersSigner } from 'ethers';\nimport {\n ExtrinsicEventsCallback,\n ExtrinsicStatus,\n Hash,\n} from './handlers.interfaces';\n\nexport async function createTxEventHandler(\n ethersSigner: EthersSigner,\n txHash: Hash,\n cb: ExtrinsicEventsCallback,\n skipSentEvent = false,\n) {\n if (!ethersSigner.provider) {\n throw new Error('options.ethersSigner has not provider');\n }\n\n if (!skipSentEvent) {\n cb({ status: ExtrinsicStatus.Sent, txHash });\n }\n\n const tx = await ethersSigner.provider.getTransactionReceipt(txHash);\n\n if (!tx) {\n setTimeout(\n () => createTxEventHandler(ethersSigner, txHash, cb, true),\n 2000,\n );\n return;\n }\n\n if (tx.status === 1) {\n cb({\n status: ExtrinsicStatus.Success,\n blockHash: tx.blockHash,\n txHash,\n });\n } else {\n cb({\n status: ExtrinsicStatus.Failed,\n blockHash: tx.blockHash,\n txHash,\n });\n }\n}\n","import Big, { RoundingMode } from 'big.js';\n\nexport function toDecimal(\n number: bigint | number | string,\n decimals: number,\n maxDecimal = 6,\n roundType?: RoundingMode,\n): Big {\n const dividend = Big(number.toString().replace(/[^0-9]/g, ''));\n const divisor = Big(10).pow(decimals);\n const result = dividend.div(divisor).round(maxDecimal, roundType);\n\n return result;\n}\n\nexport function toBigInt(amount: string | number, decimals: number): bigint {\n const multiplier = Big(10).pow(decimals);\n const result = Big(amount).mul(multiplier);\n\n return BigInt(result.toFixed(0, Big.roundDown));\n}\n\nexport function convertDecimals(\n number: string | bigint,\n decimals: number,\n targetDecimals: number,\n): bigint {\n const decimalNumber = toDecimal(number, decimals, decimals);\n\n return toBigInt(decimalNumber.toString(), targetDecimals);\n}\n\nexport function hasDecimalOverflow(fl: number | string, maxDecimal: number) {\n const parts = fl.toString().split('.');\n return parts.length > 1 && parts[1].length > maxDecimal;\n}\n"],"mappings":"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","names":["src_exports","__export","ExtrinsicStatus","convertDecimals","createExtrinsicEventHandler","createTxEventHandler","getPolkadotApi","hasDecimalOverflow","toBigInt","toDecimal","__toCommonJS","import_api","import_lru_cache","cache","LRU","promise","api","getPolkadotApi","ws","onDisconnect","ExtrinsicStatus","createExtrinsicEventHandler","pallet","successEvent","cb","events","status","txHash","hash","block","data","method","section","_a","eventData","createTxEventHandler","ethersSigner","txHash","cb","skipSentEvent","tx","import_big","toDecimal","number","decimals","maxDecimal","roundType","dividend","Big","divisor","toBigInt","amount","multiplier","result","convertDecimals","targetDecimals","decimalNumber","hasDecimalOverflow","fl","parts"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/format/asset.ts","../src/numbers/decimals.ts","../src/polkadot/polkadot.api.ts"],"sourcesContent":["export * from './format';\nexport * from './numbers';\nexport * from './polkadot';\n","export function formatAssetIdToERC20(id: string) {\n if (id.startsWith('0x')) {\n return id;\n }\n\n if (!/^\\d{38,39}$/.test(id)) {\n throw new Error(`Asset id: ${id} must be a string and have 38-39 digits`);\n }\n\n return `0xffffffff${BigInt(id).toString(16).padStart(32, '0')}`;\n}\n","import Big, { RoundingMode } from 'big.js';\n\nBig.NE = -18;\n\nexport function toDecimal(\n number: bigint | number | string,\n decimals: number,\n maxDecimal = 6,\n roundType?: RoundingMode,\n): string {\n const dividend = Big(number.toString().replace(/[^0-9]/g, ''));\n const divisor = Big(10).pow(decimals);\n const result = dividend.div(divisor).round(maxDecimal, roundType);\n\n return result.toString();\n}\n\nexport function toBigInt(\n amount: bigint | string | number,\n decimals: number,\n): bigint {\n if (typeof amount === 'bigint') {\n return amount;\n }\n\n const multiplier = Big(10).pow(decimals);\n const result = Big(amount).mul(multiplier);\n\n return BigInt(result.toFixed(0, Big.roundDown));\n}\n\nexport function convertDecimals(\n number: string | bigint,\n decimals: number,\n targetDecimals: number,\n): bigint {\n const decimalNumber = toDecimal(number, decimals, decimals);\n\n return toBigInt(decimalNumber.toString(), targetDecimals);\n}\n\nexport function hasDecimalOverflow(fl: number | string, maxDecimal: number) {\n const parts = fl.toString().split('.');\n return parts.length > 1 && parts[1].length > maxDecimal;\n}\n","import { ApiPromise, WsProvider } from '@polkadot/api';\nimport { typesBundle } from '@polkadot/apps-config';\nimport LRU from 'lru-cache';\n\nconst cache = new LRU<string, Promise<ApiPromise>>({\n max: 20,\n // eslint-disable-next-line sort-keys\n dispose: async (promise: Promise<ApiPromise>) => {\n const api = await promise;\n\n if (api.isConnected) {\n api.disconnect();\n }\n },\n});\n\nexport async function getPolkadotApi(ws: string): Promise<ApiPromise> {\n const promise =\n cache.get(ws) ||\n ApiPromise.create({\n provider: new WsProvider(ws),\n typesBundle,\n });\n\n cache.set(ws, promise);\n\n const api = await promise;\n\n await api.isReady;\n\n return api;\n}\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,yBAAAC,EAAA,mBAAAC,EAAA,uBAAAC,EAAA,aAAAC,EAAA,cAAAC,IAAA,eAAAC,EAAAR,GCAO,SAASS,EAAqBC,EAAY,CAC/C,GAAIA,EAAG,WAAW,IAAI,EACpB,OAAOA,EAGT,GAAI,CAAC,cAAc,KAAKA,CAAE,EACxB,MAAM,IAAI,MAAM,aAAaA,0CAA2C,EAG1E,MAAO,aAAa,OAAOA,CAAE,EAAE,SAAS,EAAE,EAAE,SAAS,GAAI,GAAG,GAC9D,CCVA,IAAAC,EAAkC,uBAElC,EAAAC,QAAI,GAAK,IAEF,SAASC,EACdC,EACAC,EACAC,EAAa,EACbC,EACQ,CACR,IAAMC,KAAW,EAAAN,SAAIE,EAAO,SAAS,EAAE,QAAQ,UAAW,EAAE,CAAC,EACvDK,KAAU,EAAAP,SAAI,EAAE,EAAE,IAAIG,CAAQ,EAGpC,OAFeG,EAAS,IAAIC,CAAO,EAAE,MAAMH,EAAYC,CAAS,EAElD,SAAS,CACzB,CAEO,SAASG,EACdC,EACAN,EACQ,CACR,GAAI,OAAOM,GAAW,SACpB,OAAOA,EAGT,IAAMC,KAAa,EAAAV,SAAI,EAAE,EAAE,IAAIG,CAAQ,EACjCQ,KAAS,EAAAX,SAAIS,CAAM,EAAE,IAAIC,CAAU,EAEzC,OAAO,OAAOC,EAAO,QAAQ,EAAG,EAAAX,QAAI,SAAS,CAAC,CAChD,CAEO,SAASY,EACdV,EACAC,EACAU,EACQ,CACR,IAAMC,EAAgBb,EAAUC,EAAQC,EAAUA,CAAQ,EAE1D,OAAOK,EAASM,EAAc,SAAS,EAAGD,CAAc,CAC1D,CAEO,SAASE,EAAmBC,EAAqBZ,EAAoB,CAC1E,IAAMa,EAAQD,EAAG,SAAS,EAAE,MAAM,GAAG,EACrC,OAAOC,EAAM,OAAS,GAAKA,EAAM,CAAC,EAAE,OAASb,CAC/C,CC5CA,IAAAc,EAAuC,yBACvCC,EAA4B,iCAC5BC,EAAgB,0BAEVC,EAAQ,IAAI,EAAAC,QAAiC,CACjD,IAAK,GAEL,QAAS,MAAOC,GAAiC,CAC/C,IAAMC,EAAM,MAAMD,EAEdC,EAAI,aACNA,EAAI,WAAW,CAEnB,CACF,CAAC,EAED,eAAsBC,EAAeC,EAAiC,CACpE,IAAMH,EACJF,EAAM,IAAIK,CAAE,GACZ,aAAW,OAAO,CAChB,SAAU,IAAI,aAAWA,CAAE,EAC3B,yBACF,CAAC,EAEHL,EAAM,IAAIK,EAAIH,CAAO,EAErB,IAAMC,EAAM,MAAMD,EAElB,aAAMC,EAAI,QAEHA,CACT","names":["src_exports","__export","convertDecimals","formatAssetIdToERC20","getPolkadotApi","hasDecimalOverflow","toBigInt","toDecimal","__toCommonJS","formatAssetIdToERC20","id","import_big","Big","toDecimal","number","decimals","maxDecimal","roundType","dividend","divisor","toBigInt","amount","multiplier","result","convertDecimals","targetDecimals","decimalNumber","hasDecimalOverflow","fl","parts","import_api","import_apps_config","import_lru_cache","cache","LRU","promise","api","getPolkadotApi","ws"]}
package/build/index.d.ts CHANGED
@@ -1,60 +1,18 @@
1
+ import { RoundingMode } from 'big.js';
1
2
  import { ApiPromise } from '@polkadot/api';
2
- import { ISubmittableResult } from '@polkadot/types/types';
3
- import { Signer } from 'ethers';
4
- import Big, { RoundingMode } from 'big.js';
5
3
 
6
- declare function getPolkadotApi(
7
- ws: string,
8
- onDisconnect?: VoidFunction,
9
- ): Promise<ApiPromise>;
10
-
11
- type Hash = string;
12
- type ExtrinsicEventsCallback = (event: ExtrinsicEvent) => void;
13
- type ExtrinsicEvent =
14
- | ExtrinsicFailedEvent
15
- | ExtrinsicSentEvent
16
- | ExtrinsicSuccessEvent;
17
- interface ExtrinsicFailedEvent {
18
- blockHash: Hash;
19
- message?: string;
20
- status: ExtrinsicStatus.Failed;
21
- txHash: Hash;
22
- }
23
- interface ExtrinsicSentEvent {
24
- status: ExtrinsicStatus.Sent;
25
- txHash: Hash;
26
- }
27
- interface ExtrinsicSuccessEvent {
28
- blockHash: Hash;
29
- status: ExtrinsicStatus.Success;
30
- txHash: Hash;
31
- }
32
- declare enum ExtrinsicStatus {
33
- Failed = 'Failed',
34
- Sent = 'Sent',
35
- Success = 'Success',
36
- }
37
-
38
- declare function createExtrinsicEventHandler(
39
- pallet: string,
40
- successEvent: string,
41
- cb: ExtrinsicEventsCallback,
42
- ): ({ events, status, txHash }: ISubmittableResult) => void;
43
-
44
- declare function createTxEventHandler(
45
- ethersSigner: Signer,
46
- txHash: Hash,
47
- cb: ExtrinsicEventsCallback,
48
- skipSentEvent?: boolean,
49
- ): Promise<void>;
4
+ declare function formatAssetIdToERC20(id: string): string;
50
5
 
51
6
  declare function toDecimal(
52
7
  number: bigint | number | string,
53
8
  decimals: number,
54
9
  maxDecimal?: number,
55
10
  roundType?: RoundingMode,
56
- ): Big;
57
- declare function toBigInt(amount: string | number, decimals: number): bigint;
11
+ ): string;
12
+ declare function toBigInt(
13
+ amount: bigint | string | number,
14
+ decimals: number,
15
+ ): bigint;
58
16
  declare function convertDecimals(
59
17
  number: string | bigint,
60
18
  decimals: number,
@@ -65,17 +23,11 @@ declare function hasDecimalOverflow(
65
23
  maxDecimal: number,
66
24
  ): boolean;
67
25
 
26
+ declare function getPolkadotApi(ws: string): Promise<ApiPromise>;
27
+
68
28
  export {
69
- ExtrinsicEvent,
70
- ExtrinsicEventsCallback,
71
- ExtrinsicFailedEvent,
72
- ExtrinsicSentEvent,
73
- ExtrinsicStatus,
74
- ExtrinsicSuccessEvent,
75
- Hash,
76
29
  convertDecimals,
77
- createExtrinsicEventHandler,
78
- createTxEventHandler,
30
+ formatAssetIdToERC20,
79
31
  getPolkadotApi,
80
32
  hasDecimalOverflow,
81
33
  toBigInt,
package/build/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{ApiPromise as E,WsProvider as g}from"@polkadot/api";import h from"lru-cache";var d=new h({max:20,dispose:async i=>{let t=await i;t.isConnected&&t.disconnect()}});async function y(i,t){let e=d.get(i)||E.create({provider:new g(i)});d.set(i,e);let s=await e;return await s.isReady,t&&s.once("disconnected",t),s}var u=(s=>(s.Failed="Failed",s.Sent="Sent",s.Success="Success",s))(u||{});function B(i,t,e){return({events:s=[],status:n,txHash:a})=>{let r=a.toHex();if(n.isReady&&e({status:"Sent",txHash:r}),n.isInBlock){let c=n.asInBlock.toString();s.forEach(({event:{data:l,method:p,section:m}})=>{var x;if(m===i&&p===t){if(p==="Attempted"){let f=l.at(0);if(f.isIncomplete){e({status:"Failed",blockHash:c,txHash:r,message:(x=f.asIncomplete)==null?void 0:x.toHuman().join("; ")});return}}e({status:"Success",blockHash:c,txHash:r})}m==="system"&&p==="ExtrinsicFailed"&&e({status:"Failed",blockHash:c,txHash:r,message:l.join("; ")})})}}}async function v(i,t,e,s=!1){if(!i.provider)throw new Error("options.ethersSigner has not provider");s||e({status:"Sent",txHash:t});let n=await i.provider.getTransactionReceipt(t);if(!n){setTimeout(()=>v(i,t,e,!0),2e3);return}n.status===1?e({status:"Success",blockHash:n.blockHash,txHash:t}):e({status:"Failed",blockHash:n.blockHash,txHash:t})}import o from"big.js";function b(i,t,e=6,s){let n=o(i.toString().replace(/[^0-9]/g,"")),a=o(10).pow(t);return n.div(a).round(e,s)}function H(i,t){let e=o(10).pow(t),s=o(i).mul(e);return BigInt(s.toFixed(0,o.roundDown))}function q(i,t,e){let s=b(i,t,t);return H(s.toString(),e)}function z(i,t){let e=i.toString().split(".");return e.length>1&&e[1].length>t}export{u as ExtrinsicStatus,q as convertDecimals,B as createExtrinsicEventHandler,v as createTxEventHandler,y as getPolkadotApi,z as hasDecimalOverflow,H as toBigInt,b as toDecimal};
1
+ function b(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}import n from"big.js";n.NE=-18;function p(t,r,i=6,o){let s=n(t.toString().replace(/[^0-9]/g,"")),m=n(10).pow(r);return s.div(m).round(i,o).toString()}function g(t,r){if(typeof t=="bigint")return t;let i=n(10).pow(r),o=n(t).mul(i);return BigInt(o.toFixed(0,n.roundDown))}function h(t,r,i){let o=p(t,r,r);return g(o.toString(),i)}function A(t,r){let i=t.toString().split(".");return i.length>1&&i[1].length>r}import{ApiPromise as u,WsProvider as f}from"@polkadot/api";import{typesBundle as c}from"@polkadot/apps-config";import a from"lru-cache";var e=new a({max:20,dispose:async t=>{let r=await t;r.isConnected&&r.disconnect()}});async function E(t){let r=e.get(t)||u.create({provider:new f(t),typesBundle:c});e.set(t,r);let i=await r;return await i.isReady,i}export{h as convertDecimals,b as formatAssetIdToERC20,E as getPolkadotApi,A as hasDecimalOverflow,g as toBigInt,p as toDecimal};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/polkadot.api.ts","../src/handlers/handlers.interfaces.ts","../src/handlers/createExtrinsicEventHandler.ts","../src/handlers/createTxEventHandler.ts","../src/numbers/decimals.ts"],"sourcesContent":["import { ApiPromise, WsProvider } from '@polkadot/api';\nimport LRU from 'lru-cache';\n\nconst cache = new LRU<string, Promise<ApiPromise>>({\n max: 20,\n dispose: async (promise: Promise<ApiPromise>) => {\n const api = await promise;\n\n if (api.isConnected) {\n api.disconnect();\n }\n },\n});\n\nexport async function getPolkadotApi(\n ws: string,\n onDisconnect?: VoidFunction,\n): Promise<ApiPromise> {\n const promise =\n cache.get(ws) ||\n ApiPromise.create({\n provider: new WsProvider(ws),\n });\n\n cache.set(ws, promise);\n\n const api = await promise;\n\n await api.isReady;\n\n if (onDisconnect) {\n api.once('disconnected', onDisconnect);\n }\n\n return api;\n}\n","export type Hash = string;\n\nexport type ExtrinsicEventsCallback = (event: ExtrinsicEvent) => void;\n\nexport type ExtrinsicEvent =\n | ExtrinsicFailedEvent\n | ExtrinsicSentEvent\n | ExtrinsicSuccessEvent;\n\nexport interface ExtrinsicFailedEvent {\n blockHash: Hash;\n message?: string;\n status: ExtrinsicStatus.Failed;\n txHash: Hash;\n}\n\nexport interface ExtrinsicSentEvent {\n status: ExtrinsicStatus.Sent;\n txHash: Hash;\n}\n\nexport interface ExtrinsicSuccessEvent {\n blockHash: Hash;\n status: ExtrinsicStatus.Success;\n txHash: Hash;\n}\n\nexport enum ExtrinsicStatus {\n Failed = 'Failed',\n Sent = 'Sent',\n Success = 'Success',\n}\n","import type { ISubmittableResult } from '@polkadot/types/types';\nimport {\n ExtrinsicEventsCallback,\n ExtrinsicStatus,\n} from './handlers.interfaces';\n\nexport function createExtrinsicEventHandler(\n pallet: string,\n successEvent: string,\n cb: ExtrinsicEventsCallback,\n) {\n return ({ events = [], status, txHash }: ISubmittableResult) => {\n const hash = txHash.toHex();\n\n if (status.isReady) {\n cb({ status: ExtrinsicStatus.Sent, txHash: hash });\n }\n\n if (status.isInBlock) {\n const block = status.asInBlock.toString();\n\n events.forEach(({ event: { data, method, section } }) => {\n if (section === pallet && method === successEvent) {\n if (method === 'Attempted') {\n const eventData = data.at(0) as any;\n\n if (eventData.isIncomplete) {\n cb({\n status: ExtrinsicStatus.Failed,\n blockHash: block,\n txHash: hash,\n message: eventData.asIncomplete?.toHuman().join('; '),\n });\n\n return;\n }\n }\n\n cb({\n status: ExtrinsicStatus.Success,\n blockHash: block,\n txHash: hash,\n });\n }\n\n if (section === 'system' && method === 'ExtrinsicFailed') {\n cb({\n status: ExtrinsicStatus.Failed,\n blockHash: block,\n txHash: hash,\n message: data.join('; '),\n });\n }\n });\n }\n };\n}\n","import type { Signer as EthersSigner } from 'ethers';\nimport {\n ExtrinsicEventsCallback,\n ExtrinsicStatus,\n Hash,\n} from './handlers.interfaces';\n\nexport async function createTxEventHandler(\n ethersSigner: EthersSigner,\n txHash: Hash,\n cb: ExtrinsicEventsCallback,\n skipSentEvent = false,\n) {\n if (!ethersSigner.provider) {\n throw new Error('options.ethersSigner has not provider');\n }\n\n if (!skipSentEvent) {\n cb({ status: ExtrinsicStatus.Sent, txHash });\n }\n\n const tx = await ethersSigner.provider.getTransactionReceipt(txHash);\n\n if (!tx) {\n setTimeout(\n () => createTxEventHandler(ethersSigner, txHash, cb, true),\n 2000,\n );\n return;\n }\n\n if (tx.status === 1) {\n cb({\n status: ExtrinsicStatus.Success,\n blockHash: tx.blockHash,\n txHash,\n });\n } else {\n cb({\n status: ExtrinsicStatus.Failed,\n blockHash: tx.blockHash,\n txHash,\n });\n }\n}\n","import Big, { RoundingMode } from 'big.js';\n\nexport function toDecimal(\n number: bigint | number | string,\n decimals: number,\n maxDecimal = 6,\n roundType?: RoundingMode,\n): Big {\n const dividend = Big(number.toString().replace(/[^0-9]/g, ''));\n const divisor = Big(10).pow(decimals);\n const result = dividend.div(divisor).round(maxDecimal, roundType);\n\n return result;\n}\n\nexport function toBigInt(amount: string | number, decimals: number): bigint {\n const multiplier = Big(10).pow(decimals);\n const result = Big(amount).mul(multiplier);\n\n return BigInt(result.toFixed(0, Big.roundDown));\n}\n\nexport function convertDecimals(\n number: string | bigint,\n decimals: number,\n targetDecimals: number,\n): bigint {\n const decimalNumber = toDecimal(number, decimals, decimals);\n\n return toBigInt(decimalNumber.toString(), targetDecimals);\n}\n\nexport function hasDecimalOverflow(fl: number | string, maxDecimal: number) {\n const parts = fl.toString().split('.');\n return parts.length > 1 && parts[1].length > maxDecimal;\n}\n"],"mappings":"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","names":["ApiPromise","WsProvider","LRU","cache","promise","api","getPolkadotApi","ws","onDisconnect","ExtrinsicStatus","createExtrinsicEventHandler","pallet","successEvent","cb","events","status","txHash","hash","block","data","method","section","_a","eventData","createTxEventHandler","ethersSigner","txHash","cb","skipSentEvent","tx","Big","toDecimal","number","decimals","maxDecimal","roundType","dividend","divisor","toBigInt","amount","multiplier","result","convertDecimals","targetDecimals","decimalNumber","hasDecimalOverflow","fl","parts"]}
1
+ {"version":3,"sources":["../src/format/asset.ts","../src/numbers/decimals.ts","../src/polkadot/polkadot.api.ts"],"sourcesContent":["export function formatAssetIdToERC20(id: string) {\n if (id.startsWith('0x')) {\n return id;\n }\n\n if (!/^\\d{38,39}$/.test(id)) {\n throw new Error(`Asset id: ${id} must be a string and have 38-39 digits`);\n }\n\n return `0xffffffff${BigInt(id).toString(16).padStart(32, '0')}`;\n}\n","import Big, { RoundingMode } from 'big.js';\n\nBig.NE = -18;\n\nexport function toDecimal(\n number: bigint | number | string,\n decimals: number,\n maxDecimal = 6,\n roundType?: RoundingMode,\n): string {\n const dividend = Big(number.toString().replace(/[^0-9]/g, ''));\n const divisor = Big(10).pow(decimals);\n const result = dividend.div(divisor).round(maxDecimal, roundType);\n\n return result.toString();\n}\n\nexport function toBigInt(\n amount: bigint | string | number,\n decimals: number,\n): bigint {\n if (typeof amount === 'bigint') {\n return amount;\n }\n\n const multiplier = Big(10).pow(decimals);\n const result = Big(amount).mul(multiplier);\n\n return BigInt(result.toFixed(0, Big.roundDown));\n}\n\nexport function convertDecimals(\n number: string | bigint,\n decimals: number,\n targetDecimals: number,\n): bigint {\n const decimalNumber = toDecimal(number, decimals, decimals);\n\n return toBigInt(decimalNumber.toString(), targetDecimals);\n}\n\nexport function hasDecimalOverflow(fl: number | string, maxDecimal: number) {\n const parts = fl.toString().split('.');\n return parts.length > 1 && parts[1].length > maxDecimal;\n}\n","import { ApiPromise, WsProvider } from '@polkadot/api';\nimport { typesBundle } from '@polkadot/apps-config';\nimport LRU from 'lru-cache';\n\nconst cache = new LRU<string, Promise<ApiPromise>>({\n max: 20,\n // eslint-disable-next-line sort-keys\n dispose: async (promise: Promise<ApiPromise>) => {\n const api = await promise;\n\n if (api.isConnected) {\n api.disconnect();\n }\n },\n});\n\nexport async function getPolkadotApi(ws: string): Promise<ApiPromise> {\n const promise =\n cache.get(ws) ||\n ApiPromise.create({\n provider: new WsProvider(ws),\n typesBundle,\n });\n\n cache.set(ws, promise);\n\n const api = await promise;\n\n await api.isReady;\n\n return api;\n}\n"],"mappings":"AAAO,SAASA,EAAqBC,EAAY,CAC/C,GAAIA,EAAG,WAAW,IAAI,EACpB,OAAOA,EAGT,GAAI,CAAC,cAAc,KAAKA,CAAE,EACxB,MAAM,IAAI,MAAM,aAAaA,0CAA2C,EAG1E,MAAO,aAAa,OAAOA,CAAE,EAAE,SAAS,EAAE,EAAE,SAAS,GAAI,GAAG,GAC9D,CCVA,OAAOC,MAA2B,SAElCA,EAAI,GAAK,IAEF,SAASC,EACdC,EACAC,EACAC,EAAa,EACbC,EACQ,CACR,IAAMC,EAAWN,EAAIE,EAAO,SAAS,EAAE,QAAQ,UAAW,EAAE,CAAC,EACvDK,EAAUP,EAAI,EAAE,EAAE,IAAIG,CAAQ,EAGpC,OAFeG,EAAS,IAAIC,CAAO,EAAE,MAAMH,EAAYC,CAAS,EAElD,SAAS,CACzB,CAEO,SAASG,EACdC,EACAN,EACQ,CACR,GAAI,OAAOM,GAAW,SACpB,OAAOA,EAGT,IAAMC,EAAaV,EAAI,EAAE,EAAE,IAAIG,CAAQ,EACjCQ,EAASX,EAAIS,CAAM,EAAE,IAAIC,CAAU,EAEzC,OAAO,OAAOC,EAAO,QAAQ,EAAGX,EAAI,SAAS,CAAC,CAChD,CAEO,SAASY,EACdV,EACAC,EACAU,EACQ,CACR,IAAMC,EAAgBb,EAAUC,EAAQC,EAAUA,CAAQ,EAE1D,OAAOK,EAASM,EAAc,SAAS,EAAGD,CAAc,CAC1D,CAEO,SAASE,EAAmBC,EAAqBZ,EAAoB,CAC1E,IAAMa,EAAQD,EAAG,SAAS,EAAE,MAAM,GAAG,EACrC,OAAOC,EAAM,OAAS,GAAKA,EAAM,CAAC,EAAE,OAASb,CAC/C,CC5CA,OAAS,cAAAc,EAAY,cAAAC,MAAkB,gBACvC,OAAS,eAAAC,MAAmB,wBAC5B,OAAOC,MAAS,YAEhB,IAAMC,EAAQ,IAAID,EAAiC,CACjD,IAAK,GAEL,QAAS,MAAOE,GAAiC,CAC/C,IAAMC,EAAM,MAAMD,EAEdC,EAAI,aACNA,EAAI,WAAW,CAEnB,CACF,CAAC,EAED,eAAsBC,EAAeC,EAAiC,CACpE,IAAMH,EACJD,EAAM,IAAII,CAAE,GACZR,EAAW,OAAO,CAChB,SAAU,IAAIC,EAAWO,CAAE,EAC3B,YAAAN,CACF,CAAC,EAEHE,EAAM,IAAII,EAAIH,CAAO,EAErB,IAAMC,EAAM,MAAMD,EAElB,aAAMC,EAAI,QAEHA,CACT","names":["formatAssetIdToERC20","id","Big","toDecimal","number","decimals","maxDecimal","roundType","dividend","divisor","toBigInt","amount","multiplier","result","convertDecimals","targetDecimals","decimalNumber","hasDecimalOverflow","fl","parts","ApiPromise","WsProvider","typesBundle","LRU","cache","promise","api","getPolkadotApi","ws"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moonbeam-network/xcm-utils",
3
- "version": "0.0.7",
3
+ "version": "1.0.1",
4
4
  "description": "Moonbeam XCM utilities",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -57,6 +57,7 @@
57
57
  "@types/big.js": "^6.1.6"
58
58
  },
59
59
  "peerDependencies": {
60
- "@polkadot/api": "10.x"
60
+ "@polkadot/apps-config": "^0.132.1",
61
+ "@polkadot/api": "^10.8.1"
61
62
  }
62
63
  }