@moonbeam-network/xcm-utils 0.0.1-dev.17 → 0.0.1-dev.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/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 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","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","hasDecimalOverflow","fl","parts"]}
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 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","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","hasDecimalOverflow","fl","parts"]}
package/build/index.d.ts CHANGED
@@ -8,9 +8,9 @@ declare function getPolkadotApi(
8
8
  onDisconnect?: VoidFunction,
9
9
  ): Promise<ApiPromise>;
10
10
 
11
- declare type Hash = string;
12
- declare type ExtrinsicEventsCallback = (event: ExtrinsicEvent) => void;
13
- declare type ExtrinsicEvent =
11
+ type Hash = string;
12
+ type ExtrinsicEventsCallback = (event: ExtrinsicEvent) => void;
13
+ type ExtrinsicEvent =
14
14
  | ExtrinsicFailedEvent
15
15
  | ExtrinsicSentEvent
16
16
  | ExtrinsicSuccessEvent;
@@ -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 hasDecimalOverflow(fl: number | string, maxDecimal: number) {\n const parts = fl.toString().split('.');\n return parts.length > 1 && parts[1].length > maxDecimal;\n}\n"],"mappings":"AAAA,OAAS,cAAAA,EAAY,cAAAC,MAAkB,gBACvC,OAAOC,MAAS,YAEhB,IAAMC,EAAQ,IAAID,EAAiC,CACjD,IAAK,GACL,QAAS,MAAOE,GAAiC,CAC/C,IAAMC,EAAM,MAAMD,EAEdC,EAAI,aACNA,EAAI,WAAW,CAEnB,CACF,CAAC,EAED,eAAsBC,EACpBC,EACAC,EACqB,CACrB,IAAMJ,EACJD,EAAM,IAAII,CAAE,GACZP,EAAW,OAAO,CAChB,SAAU,IAAIC,EAAWM,CAAE,CAC7B,CAAC,EAEHJ,EAAM,IAAII,EAAIH,CAAO,EAErB,IAAMC,EAAM,MAAMD,EAElB,aAAMC,EAAI,QAENG,GACFH,EAAI,KAAK,eAAgBG,CAAY,EAGhCH,CACT,CCRO,IAAKI,OACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,QAAU,UAHAA,OAAA,ICrBL,SAASC,EACdC,EACAC,EACAC,EACA,CACA,MAAO,CAAC,CAAE,OAAAC,EAAS,CAAC,EAAG,OAAAC,EAAQ,OAAAC,CAAO,IAA0B,CAC9D,IAAMC,EAAOD,EAAO,MAAM,EAM1B,GAJID,EAAO,SACTF,EAAG,CAAE,cAA8B,OAAQI,CAAK,CAAC,EAG/CF,EAAO,UAAW,CACpB,IAAMG,EAAQH,EAAO,UAAU,SAAS,EAExCD,EAAO,QAAQ,CAAC,CAAE,MAAO,CAAE,KAAAK,EAAM,OAAAC,EAAQ,QAAAC,CAAQ,CAAE,IAAM,CArB/D,IAAAC,EAsBQ,GAAID,IAAYV,GAAUS,IAAWR,EAAc,CACjD,GAAIQ,IAAW,YAAa,CAC1B,IAAMG,EAAYJ,EAAK,GAAG,CAAC,EAE3B,GAAII,EAAU,aAAc,CAC1BV,EAAG,CACD,gBACA,UAAWK,EACX,OAAQD,EACR,SAASK,EAAAC,EAAU,eAAV,YAAAD,EAAwB,UAAU,KAAK,KAClD,CAAC,EAED,MACF,CACF,CAEAT,EAAG,CACD,iBACA,UAAWK,EACX,OAAQD,CACV,CAAC,CACH,CAEII,IAAY,UAAYD,IAAW,mBACrCP,EAAG,CACD,gBACA,UAAWK,EACX,OAAQD,EACR,QAASE,EAAK,KAAK,IAAI,CACzB,CAAC,CAEL,CAAC,CACH,CACF,CACF,CCjDA,eAAsBK,EACpBC,EACAC,EACAC,EACAC,EAAgB,GAChB,CACA,GAAI,CAACH,EAAa,SAChB,MAAM,IAAI,MAAM,uCAAuC,EAGpDG,GACHD,EAAG,CAAE,cAA8B,OAAAD,CAAO,CAAC,EAG7C,IAAMG,EAAK,MAAMJ,EAAa,SAAS,sBAAsBC,CAAM,EAEnE,GAAI,CAACG,EAAI,CACP,WACE,IAAML,EAAqBC,EAAcC,EAAQC,EAAI,EAAI,EACzD,GACF,EACA,MACF,CAEIE,EAAG,SAAW,EAChBF,EAAG,CACD,iBACA,UAAWE,EAAG,UACd,OAAAH,CACF,CAAC,EAEDC,EAAG,CACD,gBACA,UAAWE,EAAG,UACd,OAAAH,CACF,CAAC,CAEL,CC5CA,OAAOI,MAA2B,SAE3B,SAASC,EACdC,EACAC,EACAC,EAAa,EACbC,EACK,CACL,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,CAGlE,CAEO,SAASG,EAASC,EAAyBN,EAA0B,CAC1E,IAAMO,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,EAAmBC,EAAqBT,EAAoB,CAC1E,IAAMU,EAAQD,EAAG,SAAS,EAAE,MAAM,GAAG,EACrC,OAAOC,EAAM,OAAS,GAAKA,EAAM,GAAG,OAASV,CAC/C","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","hasDecimalOverflow","fl","parts"]}
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 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","hasDecimalOverflow","fl","parts"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moonbeam-network/xcm-utils",
3
- "version": "0.0.1-dev.17",
3
+ "version": "0.0.1-dev.19",
4
4
  "description": "Moonbeam XCM utilities",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -57,6 +57,6 @@
57
57
  "@types/big.js": "^6.1.6"
58
58
  },
59
59
  "peerDependencies": {
60
- "@polkadot/api": "9.x"
60
+ "@polkadot/api": "10.x"
61
61
  }
62
62
  }