@polkadot-api/substrate-client 0.1.4 → 0.2.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.
Files changed (50) hide show
  1. package/dist/esm/chainhead/body.mjs +15 -0
  2. package/dist/esm/chainhead/body.mjs.map +1 -0
  3. package/dist/esm/chainhead/call.mjs +15 -0
  4. package/dist/esm/chainhead/call.mjs.map +1 -0
  5. package/dist/esm/chainhead/chainhead.mjs +145 -0
  6. package/dist/esm/chainhead/chainhead.mjs.map +1 -0
  7. package/dist/esm/chainhead/errors.mjs +33 -0
  8. package/dist/esm/chainhead/errors.mjs.map +1 -0
  9. package/dist/esm/chainhead/header.mjs +11 -0
  10. package/dist/esm/chainhead/header.mjs.map +1 -0
  11. package/dist/esm/chainhead/operation-promise.mjs +58 -0
  12. package/dist/esm/chainhead/operation-promise.mjs.map +1 -0
  13. package/dist/esm/chainhead/storage-subscription.mjs +72 -0
  14. package/dist/esm/chainhead/storage-subscription.mjs.map +1 -0
  15. package/dist/esm/chainhead/storage.mjs +42 -0
  16. package/dist/esm/chainhead/storage.mjs.map +1 -0
  17. package/dist/esm/chainhead/unpin.mjs +13 -0
  18. package/dist/esm/chainhead/unpin.mjs.map +1 -0
  19. package/dist/esm/chainspec.mjs +24 -0
  20. package/dist/esm/chainspec.mjs.map +1 -0
  21. package/dist/esm/client/DestroyedError.mjs +9 -0
  22. package/dist/esm/client/DestroyedError.mjs.map +1 -0
  23. package/dist/esm/client/RpcError.mjs +16 -0
  24. package/dist/esm/client/RpcError.mjs.map +1 -0
  25. package/dist/esm/client/createClient.mjs +78 -0
  26. package/dist/esm/client/createClient.mjs.map +1 -0
  27. package/dist/esm/index.mjs +26 -0
  28. package/dist/esm/index.mjs.map +1 -0
  29. package/dist/esm/internal-utils/abortablePromiseFn.mjs +20 -0
  30. package/dist/esm/internal-utils/abortablePromiseFn.mjs.map +1 -0
  31. package/dist/esm/internal-utils/deferred-promise.mjs +14 -0
  32. package/dist/esm/internal-utils/deferred-promise.mjs.map +1 -0
  33. package/dist/esm/internal-utils/noop.mjs +5 -0
  34. package/dist/esm/internal-utils/noop.mjs.map +1 -0
  35. package/dist/esm/internal-utils/subscriptions-manager.mjs +32 -0
  36. package/dist/esm/internal-utils/subscriptions-manager.mjs.map +1 -0
  37. package/dist/esm/methods.mjs +31 -0
  38. package/dist/esm/methods.mjs.map +1 -0
  39. package/dist/esm/transaction/transaction.mjs +23 -0
  40. package/dist/esm/transaction/transaction.mjs.map +1 -0
  41. package/dist/index.d.ts +0 -3
  42. package/dist/index.js +73 -184
  43. package/dist/index.js.map +1 -1
  44. package/package.json +10 -10
  45. package/dist/index.d.mts +0 -239
  46. package/dist/index.mjs +0 -686
  47. package/dist/index.mjs.map +0 -1
  48. package/dist/min/index.d.ts +0 -239
  49. package/dist/min/index.js +0 -2
  50. package/dist/min/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createClient.mjs","sources":["../../../src/client/createClient.ts"],"sourcesContent":["import type {\n JsonRpcConnection,\n JsonRpcProvider,\n} from \"@polkadot-api/json-rpc-provider\"\nimport { UnsubscribeFn } from \"../common-types\"\nimport { RpcError, IRpcError } from \"./RpcError\"\nimport { getSubscriptionsManager, Subscriber } from \"@/internal-utils\"\nimport { DestroyedError } from \"./DestroyedError\"\n\nexport type FollowSubscriptionCb<T> = (\n subscriptionId: string,\n cb: Subscriber<T>,\n) => UnsubscribeFn\n\nexport type ClientRequestCb<T, TT> = {\n onSuccess: (result: T, followSubscription: FollowSubscriptionCb<TT>) => void\n onError: (e: Error) => void\n}\n\nexport type ClientRequest<T, TT> = (\n method: string,\n params: Array<any>,\n cb?: ClientRequestCb<T, TT>,\n) => UnsubscribeFn\n\nexport interface Client {\n disconnect: () => void\n request: ClientRequest<any, any>\n}\n\nlet nextClientId = 1\nexport const createClient = (gProvider: JsonRpcProvider): Client => {\n let clientId = nextClientId++\n const responses = new Map<string, ClientRequestCb<any, any>>()\n const subscriptions = getSubscriptionsManager()\n\n let connection: JsonRpcConnection | null = null\n\n const send = (\n id: string,\n method: string,\n params: Array<boolean | string | number | null>,\n ) => {\n connection!.send(\n JSON.stringify({\n jsonrpc: \"2.0\",\n id,\n method,\n params,\n }),\n )\n }\n\n function onMessage(message: string): void {\n try {\n let id: string,\n result,\n error: IRpcError | undefined,\n params: { subscription: any; result: any; error?: IRpcError },\n subscription: string\n\n const parsed = JSON.parse(message)\n ;({ id, result, error, params } = parsed)\n\n if (id) {\n const cb = responses.get(id)\n if (!cb) return\n\n responses.delete(id)\n\n return error\n ? cb.onError(new RpcError(error))\n : cb.onSuccess(result, (opaqueId, subscriber) => {\n const subscriptionId = opaqueId\n subscriptions.subscribe(subscriptionId, subscriber)\n return () => {\n subscriptions.unsubscribe(subscriptionId)\n }\n })\n }\n\n // at this point, it means that it should be a notification\n ;({ subscription, result, error } = params)\n if (!subscription || (!error && !Object.hasOwn(params, \"result\"))) throw 0\n\n const subscriptionId = subscription\n\n if (error) {\n subscriptions.error(subscriptionId, new RpcError(error!))\n } else {\n subscriptions.next(subscriptionId, result)\n }\n } catch (e) {\n console.warn(\"Error parsing incomming message: \" + message)\n console.error(e)\n }\n }\n connection = gProvider(onMessage)\n\n const disconnect = () => {\n connection?.disconnect()\n connection = null\n subscriptions.errorAll(new DestroyedError())\n responses.forEach((r) => r.onError(new DestroyedError()))\n responses.clear()\n }\n\n let nextId = 1\n const request = <T, TT>(\n method: string,\n params: Array<any>,\n cb?: ClientRequestCb<T, TT>,\n ): UnsubscribeFn => {\n if (!connection) throw new Error(\"Not connected\")\n const id = `${clientId}-${nextId++}`\n\n if (cb) responses.set(id, cb)\n send(id, method, params)\n\n return (): void => {\n responses.delete(id)\n }\n }\n\n return {\n request,\n disconnect,\n }\n}\n"],"names":["subscriptionId"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { getTransaction } from './transaction/transaction.mjs';
2
+ export { DisjointError, OperationError, OperationInaccessibleError, OperationLimitError, StopError } from './chainhead/errors.mjs';
3
+ import { getChainHead } from './chainhead/chainhead.mjs';
4
+ export { RpcError } from './client/RpcError.mjs';
5
+ import { createClient as createClient$1 } from './client/createClient.mjs';
6
+ export { DestroyedError } from './client/DestroyedError.mjs';
7
+ import { abortablePromiseFn } from './internal-utils/abortablePromiseFn.mjs';
8
+ import { createGetChainSpec } from './chainspec.mjs';
9
+ export { AbortError } from '@polkadot-api/utils';
10
+
11
+ const createClient = (provider) => {
12
+ const { request, disconnect } = createClient$1(provider);
13
+ return {
14
+ chainHead: getChainHead(request),
15
+ transaction: getTransaction(request),
16
+ getChainSpecData: createGetChainSpec(request),
17
+ destroy: disconnect,
18
+ request: abortablePromiseFn(
19
+ (onSuccess, onError, method, params) => request(method, params, { onSuccess, onError })
20
+ ),
21
+ _request: request
22
+ };
23
+ };
24
+
25
+ export { createClient };
26
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import type { JsonRpcProvider } from \"@polkadot-api/json-rpc-provider\"\nimport { getTransaction } from \"./transaction/transaction\"\nimport { getChainHead } from \"./chainhead\"\nimport { ClientRequestCb, createClient as createRawClient } from \"./client\"\nimport type { ChainHead } from \"./chainhead\"\nimport type { Transaction } from \"./transaction\"\nimport { UnsubscribeFn } from \"./common-types\"\nimport { abortablePromiseFn } from \"./internal-utils\"\nimport { ChainSpecData, createGetChainSpec } from \"./chainspec\"\n\nexport { AbortError } from \"@polkadot-api/utils\"\nexport type * from \"@polkadot-api/json-rpc-provider\"\n\nexport type * from \"./common-types\"\nexport type * from \"./client\"\nexport type * from \"./transaction\"\nexport type * from \"./chainhead\"\nexport type * from \"./chainspec\"\n\nexport { RpcError, DestroyedError } from \"./client\"\nexport {\n StopError,\n DisjointError,\n OperationError,\n OperationInaccessibleError,\n OperationLimitError,\n} from \"./chainhead\"\n\nexport interface SubstrateClient {\n chainHead: ChainHead\n transaction: Transaction\n destroy: UnsubscribeFn\n getChainSpecData: () => Promise<ChainSpecData>\n request: <T>(\n method: string,\n params: any[],\n abortSignal?: AbortSignal,\n ) => Promise<T>\n _request: <Reply, Notification>(\n method: string,\n params: any[],\n cb?: ClientRequestCb<Reply, Notification>,\n ) => UnsubscribeFn\n}\n\nexport const createClient = (provider: JsonRpcProvider): SubstrateClient => {\n const { request, disconnect } = createRawClient(provider)\n return {\n chainHead: getChainHead(request),\n transaction: getTransaction(request),\n getChainSpecData: createGetChainSpec(request),\n destroy: disconnect,\n request: abortablePromiseFn(\n <T>(\n onSuccess: (value: T) => void,\n onError: (e: any) => void,\n method: string,\n params: any[],\n ) => request(method, params, { onSuccess, onError }),\n ),\n _request: request,\n }\n}\n"],"names":["createRawClient"],"mappings":";;;;;;;;;;AA6Ca,MAAA,YAAA,GAAe,CAAC,QAA+C,KAAA;AAC1E,EAAA,MAAM,EAAE,OAAA,EAAS,UAAW,EAAA,GAAIA,eAAgB,QAAQ,CAAA,CAAA;AACxD,EAAO,OAAA;AAAA,IACL,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,IAC/B,WAAA,EAAa,eAAe,OAAO,CAAA;AAAA,IACnC,gBAAA,EAAkB,mBAAmB,OAAO,CAAA;AAAA,IAC5C,OAAS,EAAA,UAAA;AAAA,IACT,OAAS,EAAA,kBAAA;AAAA,MACP,CACE,SACA,EAAA,OAAA,EACA,MACA,EAAA,MAAA,KACG,OAAQ,CAAA,MAAA,EAAQ,MAAQ,EAAA,EAAE,SAAW,EAAA,OAAA,EAAS,CAAA;AAAA,KACrD;AAAA,IACA,QAAU,EAAA,OAAA;AAAA,GACZ,CAAA;AACF;;;;"}
@@ -0,0 +1,20 @@
1
+ import { AbortError, noop } from '@polkadot-api/utils';
2
+
3
+ const abortablePromiseFn = (fn) => (...args) => new Promise((res, rej) => {
4
+ let cancel = noop;
5
+ const [actualArgs, abortSignal] = args[args.length - 1] instanceof AbortSignal ? [args.slice(0, args.length - 1), args[args.length - 1]] : [args];
6
+ const onAbort = () => {
7
+ cancel();
8
+ rej(new AbortError());
9
+ };
10
+ abortSignal?.addEventListener("abort", onAbort, { once: true });
11
+ const withCleanup = (fn2) => (x) => {
12
+ cancel = noop;
13
+ abortSignal?.removeEventListener("abort", onAbort);
14
+ fn2(x);
15
+ };
16
+ cancel = fn(...[withCleanup(res), withCleanup(rej), ...actualArgs]);
17
+ });
18
+
19
+ export { abortablePromiseFn };
20
+ //# sourceMappingURL=abortablePromiseFn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abortablePromiseFn.mjs","sources":["../../../src/internal-utils/abortablePromiseFn.ts"],"sourcesContent":["import { AbortError, noop } from \"@polkadot-api/utils\"\nimport { AbortablePromiseFn } from \"../common-types\"\n\nexport const abortablePromiseFn =\n <T, A extends Array<any>>(\n fn: (\n ...args: [...[res: (x: T) => void, rej: (e: any) => void], ...A]\n ) => () => void,\n ): AbortablePromiseFn<A, T> =>\n (...args): Promise<T> =>\n new Promise((res, rej) => {\n let cancel = noop\n\n const [actualArgs, abortSignal] =\n args[args.length - 1] instanceof AbortSignal\n ? ([args.slice(0, args.length - 1), args[args.length - 1]] as [\n A,\n AbortSignal,\n ])\n : ([args] as unknown as [A])\n\n const onAbort = () => {\n cancel()\n rej(new AbortError())\n }\n\n abortSignal?.addEventListener(\"abort\", onAbort, { once: true })\n\n const withCleanup =\n <T>(fn: (x: T) => void): ((x: T) => void) =>\n (x) => {\n cancel = noop\n abortSignal?.removeEventListener(\"abort\", onAbort)\n fn(x)\n }\n\n cancel = fn(...[withCleanup(res), withCleanup(rej), ...actualArgs])\n })\n"],"names":["fn"],"mappings":";;AAGa,MAAA,kBAAA,GACX,CACE,EAIF,KAAA,CAAA,GAAI,SACF,IAAI,OAAA,CAAQ,CAAC,GAAA,EAAK,GAAQ,KAAA;AACxB,EAAA,IAAI,MAAS,GAAA,IAAA,CAAA;AAEb,EAAM,MAAA,CAAC,UAAY,EAAA,WAAW,CAC5B,GAAA,IAAA,CAAK,KAAK,MAAS,GAAA,CAAC,CAAa,YAAA,WAAA,GAC5B,CAAC,IAAA,CAAK,MAAM,CAAG,EAAA,IAAA,CAAK,MAAS,GAAA,CAAC,CAAG,EAAA,IAAA,CAAK,IAAK,CAAA,MAAA,GAAS,CAAC,CAAC,CAItD,GAAA,CAAC,IAAI,CAAA,CAAA;AAEZ,EAAA,MAAM,UAAU,MAAM;AACpB,IAAO,MAAA,EAAA,CAAA;AACP,IAAI,GAAA,CAAA,IAAI,YAAY,CAAA,CAAA;AAAA,GACtB,CAAA;AAEA,EAAA,WAAA,EAAa,iBAAiB,OAAS,EAAA,OAAA,EAAS,EAAE,IAAA,EAAM,MAAM,CAAA,CAAA;AAE9D,EAAA,MAAM,WACJ,GAAA,CAAIA,GACJ,KAAA,CAAC,CAAM,KAAA;AACL,IAAS,MAAA,GAAA,IAAA,CAAA;AACT,IAAa,WAAA,EAAA,mBAAA,CAAoB,SAAS,OAAO,CAAA,CAAA;AACjD,IAAAA,IAAG,CAAC,CAAA,CAAA;AAAA,GACN,CAAA;AAEF,EAAS,MAAA,GAAA,EAAA,CAAG,GAAG,CAAC,WAAY,CAAA,GAAG,CAAG,EAAA,WAAA,CAAY,GAAG,CAAA,EAAG,GAAG,UAAU,CAAC,CAAA,CAAA;AACpE,CAAC;;;;"}
@@ -0,0 +1,14 @@
1
+ function deferred() {
2
+ let res = () => {
3
+ };
4
+ let rej = () => {
5
+ };
6
+ const promise = new Promise((_res, _rej) => {
7
+ res = _res;
8
+ rej = _rej;
9
+ });
10
+ return { promise, res, rej };
11
+ }
12
+
13
+ export { deferred };
14
+ //# sourceMappingURL=deferred-promise.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferred-promise.mjs","sources":["../../../src/internal-utils/deferred-promise.ts"],"sourcesContent":["export interface DeferredPromise<T> {\n promise: Promise<T>\n res: (value: T) => void\n rej: (err: Error) => void\n}\n\nexport function deferred<T>(): DeferredPromise<T> {\n let res: (value: T) => void = () => {}\n let rej: (err: Error) => void = () => {}\n\n const promise = new Promise<T>((_res, _rej) => {\n res = _res\n rej = _rej\n })\n\n return { promise, res, rej }\n}\n"],"names":[],"mappings":"AAMO,SAAS,QAAkC,GAAA;AAChD,EAAA,IAAI,MAA0B,MAAM;AAAA,GAAC,CAAA;AACrC,EAAA,IAAI,MAA4B,MAAM;AAAA,GAAC,CAAA;AAEvC,EAAA,MAAM,OAAU,GAAA,IAAI,OAAW,CAAA,CAAC,MAAM,IAAS,KAAA;AAC7C,IAAM,GAAA,GAAA,IAAA,CAAA;AACN,IAAM,GAAA,GAAA,IAAA,CAAA;AAAA,GACP,CAAA,CAAA;AAED,EAAO,OAAA,EAAE,OAAS,EAAA,GAAA,EAAK,GAAI,EAAA,CAAA;AAC7B;;;;"}
@@ -0,0 +1,5 @@
1
+ const noop = () => {
2
+ };
3
+
4
+ export { noop };
5
+ //# sourceMappingURL=noop.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop.mjs","sources":["../../../src/internal-utils/noop.ts"],"sourcesContent":["export const noop = (): void => {}\n"],"names":[],"mappings":"AAAO,MAAM,OAAO,MAAY;AAAC;;;;"}
@@ -0,0 +1,32 @@
1
+ const getSubscriptionsManager = () => {
2
+ const subscriptions = /* @__PURE__ */ new Map();
3
+ return {
4
+ has: subscriptions.has.bind(subscriptions),
5
+ subscribe(id, subscriber) {
6
+ subscriptions.set(id, subscriber);
7
+ },
8
+ unsubscribe(id) {
9
+ subscriptions.delete(id);
10
+ },
11
+ next(id, data) {
12
+ subscriptions.get(id)?.next(data);
13
+ },
14
+ error(id, e) {
15
+ const subscriber = subscriptions.get(id);
16
+ if (subscriber) {
17
+ subscriptions.delete(id);
18
+ subscriber.error(e);
19
+ }
20
+ },
21
+ errorAll(e) {
22
+ const subscribers = [...subscriptions.values()];
23
+ subscriptions.clear();
24
+ subscribers.forEach((s) => {
25
+ s.error(e);
26
+ });
27
+ }
28
+ };
29
+ };
30
+
31
+ export { getSubscriptionsManager };
32
+ //# sourceMappingURL=subscriptions-manager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions-manager.mjs","sources":["../../../src/internal-utils/subscriptions-manager.ts"],"sourcesContent":["export interface Subscriber<T> {\n next: (data: T) => void\n error: (e: Error) => void\n}\n\nexport const getSubscriptionsManager = <T>() => {\n const subscriptions = new Map<string, Subscriber<T>>()\n\n return {\n has: subscriptions.has.bind(subscriptions),\n subscribe(id: string, subscriber: Subscriber<T>) {\n subscriptions.set(id, subscriber)\n },\n unsubscribe(id: string) {\n subscriptions.delete(id)\n },\n next(id: string, data: T) {\n subscriptions.get(id)?.next(data)\n },\n error(id: string, e: Error) {\n const subscriber = subscriptions.get(id)\n if (subscriber) {\n subscriptions.delete(id)\n subscriber.error(e)\n }\n },\n errorAll(e: Error) {\n const subscribers = [...subscriptions.values()]\n subscriptions.clear()\n subscribers.forEach((s) => {\n s.error(e)\n })\n },\n }\n}\n\nexport type SubscriptionManager<T> = ReturnType<\n typeof getSubscriptionsManager<T>\n>\n"],"names":[],"mappings":"AAKO,MAAM,0BAA0B,MAAS;AAC9C,EAAM,MAAA,aAAA,uBAAoB,GAA2B,EAAA,CAAA;AAErD,EAAO,OAAA;AAAA,IACL,GAAK,EAAA,aAAA,CAAc,GAAI,CAAA,IAAA,CAAK,aAAa,CAAA;AAAA,IACzC,SAAA,CAAU,IAAY,UAA2B,EAAA;AAC/C,MAAc,aAAA,CAAA,GAAA,CAAI,IAAI,UAAU,CAAA,CAAA;AAAA,KAClC;AAAA,IACA,YAAY,EAAY,EAAA;AACtB,MAAA,aAAA,CAAc,OAAO,EAAE,CAAA,CAAA;AAAA,KACzB;AAAA,IACA,IAAA,CAAK,IAAY,IAAS,EAAA;AACxB,MAAA,aAAA,CAAc,GAAI,CAAA,EAAE,CAAG,EAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAAA,KAClC;AAAA,IACA,KAAA,CAAM,IAAY,CAAU,EAAA;AAC1B,MAAM,MAAA,UAAA,GAAa,aAAc,CAAA,GAAA,CAAI,EAAE,CAAA,CAAA;AACvC,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,aAAA,CAAc,OAAO,EAAE,CAAA,CAAA;AACvB,QAAA,UAAA,CAAW,MAAM,CAAC,CAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,IACA,SAAS,CAAU,EAAA;AACjB,MAAA,MAAM,WAAc,GAAA,CAAC,GAAG,aAAA,CAAc,QAAQ,CAAA,CAAA;AAC9C,MAAA,aAAA,CAAc,KAAM,EAAA,CAAA;AACpB,MAAY,WAAA,CAAA,OAAA,CAAQ,CAAC,CAAM,KAAA;AACzB,QAAA,CAAA,CAAE,MAAM,CAAC,CAAA,CAAA;AAAA,OACV,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AACF;;;;"}
@@ -0,0 +1,31 @@
1
+ const chainHead = {
2
+ body: "",
3
+ call: "",
4
+ continue: "",
5
+ follow: "",
6
+ header: "",
7
+ stopOperation: "",
8
+ storage: "",
9
+ unfollow: "",
10
+ unpin: "",
11
+ followEvent: ""
12
+ };
13
+ const chainSpec = {
14
+ chainName: "",
15
+ genesisHash: "",
16
+ properties: ""
17
+ };
18
+ const transaction = {
19
+ broadcast: "",
20
+ stop: ""
21
+ };
22
+ Object.entries({ chainHead, chainSpec, transaction }).forEach(
23
+ ([fnGroupName, methods]) => {
24
+ Object.keys(methods).forEach((methodName) => {
25
+ methods[methodName] = `${fnGroupName}_v1_${methodName}`;
26
+ });
27
+ }
28
+ );
29
+
30
+ export { chainHead, chainSpec, transaction };
31
+ //# sourceMappingURL=methods.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.mjs","sources":["../../src/methods.ts"],"sourcesContent":["const chainHead = {\n body: \"\",\n call: \"\",\n continue: \"\",\n follow: \"\",\n header: \"\",\n stopOperation: \"\",\n storage: \"\",\n unfollow: \"\",\n unpin: \"\",\n followEvent: \"\",\n}\n\nconst chainSpec = {\n chainName: \"\",\n genesisHash: \"\",\n properties: \"\",\n}\n\nconst transaction = {\n broadcast: \"\",\n stop: \"\",\n}\n\nObject.entries({ chainHead, chainSpec, transaction }).forEach(\n ([fnGroupName, methods]) => {\n Object.keys(methods).forEach((methodName) => {\n ;(methods as any)[methodName] = `${fnGroupName}_v1_${methodName}`\n })\n },\n)\n\nexport { chainHead, transaction, chainSpec }\n"],"names":[],"mappings":"AAAA,MAAM,SAAY,GAAA;AAAA,EAChB,IAAM,EAAA,EAAA;AAAA,EACN,IAAM,EAAA,EAAA;AAAA,EACN,QAAU,EAAA,EAAA;AAAA,EACV,MAAQ,EAAA,EAAA;AAAA,EACR,MAAQ,EAAA,EAAA;AAAA,EACR,aAAe,EAAA,EAAA;AAAA,EACf,OAAS,EAAA,EAAA;AAAA,EACT,QAAU,EAAA,EAAA;AAAA,EACV,KAAO,EAAA,EAAA;AAAA,EACP,WAAa,EAAA,EAAA;AACf,EAAA;AAEA,MAAM,SAAY,GAAA;AAAA,EAChB,SAAW,EAAA,EAAA;AAAA,EACX,WAAa,EAAA,EAAA;AAAA,EACb,UAAY,EAAA,EAAA;AACd,EAAA;AAEA,MAAM,WAAc,GAAA;AAAA,EAClB,SAAW,EAAA,EAAA;AAAA,EACX,IAAM,EAAA,EAAA;AACR,EAAA;AAEA,MAAA,CAAO,QAAQ,EAAE,SAAA,EAAW,SAAW,EAAA,WAAA,EAAa,CAAE,CAAA,OAAA;AAAA,EACpD,CAAC,CAAC,WAAa,EAAA,OAAO,CAAM,KAAA;AAC1B,IAAA,MAAA,CAAO,IAAK,CAAA,OAAO,CAAE,CAAA,OAAA,CAAQ,CAAC,UAAe,KAAA;AAC1C,MAAC,QAAgB,UAAU,CAAA,GAAI,CAAG,EAAA,WAAW,OAAO,UAAU,CAAA,CAAA,CAAA;AAAA,KAChE,CAAA,CAAA;AAAA,GACH;AACF,CAAA;;;;"}
@@ -0,0 +1,23 @@
1
+ import '@polkadot-api/utils';
2
+ import { noop } from '../internal-utils/noop.mjs';
3
+ import { transaction } from '../methods.mjs';
4
+
5
+ const getTransaction = (request) => (tx, error) => {
6
+ let cancel = request(transaction.broadcast, [tx], {
7
+ onSuccess: (subscriptionId) => {
8
+ cancel = subscriptionId === null ? noop : () => {
9
+ request(transaction.stop, [subscriptionId]);
10
+ };
11
+ if (subscriptionId === null) {
12
+ error(new Error("Max # of broadcasted transactions has been reached"));
13
+ }
14
+ },
15
+ onError: error
16
+ });
17
+ return () => {
18
+ cancel();
19
+ };
20
+ };
21
+
22
+ export { getTransaction };
23
+ //# sourceMappingURL=transaction.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.mjs","sources":["../../../src/transaction/transaction.ts"],"sourcesContent":["import { noop } from \"@/internal-utils\"\nimport { type ClientRequest } from \"../client\"\nimport { transaction } from \"@/methods\"\n\nexport const getTransaction =\n (request: ClientRequest<string, any>) =>\n (tx: string, error: (e: Error) => void) => {\n let cancel = request(transaction.broadcast, [tx], {\n onSuccess: (subscriptionId) => {\n cancel =\n subscriptionId === null\n ? noop\n : () => {\n request(transaction.stop, [subscriptionId])\n }\n\n if (subscriptionId === null) {\n error(new Error(\"Max # of broadcasted transactions has been reached\"))\n }\n },\n onError: error,\n })\n\n return () => {\n cancel()\n }\n }\n"],"names":[],"mappings":";;;;AAIO,MAAM,cACX,GAAA,CAAC,OACD,KAAA,CAAC,IAAY,KAA8B,KAAA;AACzC,EAAA,IAAI,SAAS,OAAQ,CAAA,WAAA,CAAY,SAAW,EAAA,CAAC,EAAE,CAAG,EAAA;AAAA,IAChD,SAAA,EAAW,CAAC,cAAmB,KAAA;AAC7B,MACE,MAAA,GAAA,cAAA,KAAmB,IACf,GAAA,IAAA,GACA,MAAM;AACJ,QAAA,OAAA,CAAQ,WAAY,CAAA,IAAA,EAAM,CAAC,cAAc,CAAC,CAAA,CAAA;AAAA,OAC5C,CAAA;AAEN,MAAA,IAAI,mBAAmB,IAAM,EAAA;AAC3B,QAAM,KAAA,CAAA,IAAI,KAAM,CAAA,oDAAoD,CAAC,CAAA,CAAA;AAAA,OACvE;AAAA,KACF;AAAA,IACA,OAAS,EAAA,KAAA;AAAA,GACV,CAAA,CAAA;AAED,EAAA,OAAO,MAAM;AACX,IAAO,MAAA,EAAA,CAAA;AAAA,GACT,CAAA;AACF;;;;"}
package/dist/index.d.ts CHANGED
@@ -143,9 +143,6 @@ interface RuntimeRpc {
143
143
  apis: Record<string, number>;
144
144
  }
145
145
  type InitializedRpc = {
146
- event: "initialized";
147
- finalizedBlockHash: string;
148
- } | {
149
146
  event: "initialized";
150
147
  finalizedBlockHashes: string[];
151
148
  };