@polkadot-api/substrate-client 0.1.3 → 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.
- package/dist/esm/chainhead/body.mjs +15 -0
- package/dist/esm/chainhead/body.mjs.map +1 -0
- package/dist/esm/chainhead/call.mjs +15 -0
- package/dist/esm/chainhead/call.mjs.map +1 -0
- package/dist/esm/chainhead/chainhead.mjs +145 -0
- package/dist/esm/chainhead/chainhead.mjs.map +1 -0
- package/dist/esm/chainhead/errors.mjs +33 -0
- package/dist/esm/chainhead/errors.mjs.map +1 -0
- package/dist/esm/chainhead/header.mjs +11 -0
- package/dist/esm/chainhead/header.mjs.map +1 -0
- package/dist/esm/chainhead/operation-promise.mjs +58 -0
- package/dist/esm/chainhead/operation-promise.mjs.map +1 -0
- package/dist/esm/chainhead/storage-subscription.mjs +72 -0
- package/dist/esm/chainhead/storage-subscription.mjs.map +1 -0
- package/dist/esm/chainhead/storage.mjs +42 -0
- package/dist/esm/chainhead/storage.mjs.map +1 -0
- package/dist/esm/chainhead/unpin.mjs +13 -0
- package/dist/esm/chainhead/unpin.mjs.map +1 -0
- package/dist/esm/chainspec.mjs +24 -0
- package/dist/esm/chainspec.mjs.map +1 -0
- package/dist/esm/client/DestroyedError.mjs +9 -0
- package/dist/esm/client/DestroyedError.mjs.map +1 -0
- package/dist/esm/client/RpcError.mjs +16 -0
- package/dist/esm/client/RpcError.mjs.map +1 -0
- package/dist/esm/client/createClient.mjs +78 -0
- package/dist/esm/client/createClient.mjs.map +1 -0
- package/dist/esm/index.mjs +26 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/internal-utils/abortablePromiseFn.mjs +20 -0
- package/dist/esm/internal-utils/abortablePromiseFn.mjs.map +1 -0
- package/dist/esm/internal-utils/deferred-promise.mjs +14 -0
- package/dist/esm/internal-utils/deferred-promise.mjs.map +1 -0
- package/dist/esm/internal-utils/noop.mjs +5 -0
- package/dist/esm/internal-utils/noop.mjs.map +1 -0
- package/dist/esm/internal-utils/subscriptions-manager.mjs +32 -0
- package/dist/esm/internal-utils/subscriptions-manager.mjs.map +1 -0
- package/dist/esm/methods.mjs +31 -0
- package/dist/esm/methods.mjs.map +1 -0
- package/dist/esm/transaction/transaction.mjs +23 -0
- package/dist/esm/transaction/transaction.mjs.map +1 -0
- package/dist/index.d.ts +2 -3
- package/dist/index.js +73 -182
- package/dist/index.js.map +1 -1
- package/package.json +10 -12
- package/dist/index.d.mts +0 -237
- package/dist/index.mjs +0 -684
- package/dist/index.mjs.map +0 -1
- package/dist/min/index.d.ts +0 -237
- package/dist/min/index.js +0 -2
- 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":";;;;;AA8BA,IAAI,YAAe,GAAA,CAAA,CAAA;AACN,MAAA,YAAA,GAAe,CAAC,SAAuC,KAAA;AAClE,EAAA,IAAI,QAAW,GAAA,YAAA,EAAA,CAAA;AACf,EAAM,MAAA,SAAA,uBAAgB,GAAuC,EAAA,CAAA;AAC7D,EAAA,MAAM,gBAAgB,uBAAwB,EAAA,CAAA;AAE9C,EAAA,IAAI,UAAuC,GAAA,IAAA,CAAA;AAE3C,EAAA,MAAM,IAAO,GAAA,CACX,EACA,EAAA,MAAA,EACA,MACG,KAAA;AACH,IAAY,UAAA,CAAA,IAAA;AAAA,MACV,KAAK,SAAU,CAAA;AAAA,QACb,OAAS,EAAA,KAAA;AAAA,QACT,EAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA;AAAA,OACD,CAAA;AAAA,KACH,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,SAAS,UAAU,OAAuB,EAAA;AACxC,IAAI,IAAA;AACF,MAAI,IAAA,EAAA,EACF,MACA,EAAA,KAAA,EACA,MACA,EAAA,YAAA,CAAA;AAEF,MAAM,MAAA,MAAA,GAAS,IAAK,CAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAChC,MAAA,CAAC,EAAE,EAAA,EAAI,MAAQ,EAAA,KAAA,EAAO,QAAW,GAAA,MAAA,EAAA;AAElC,MAAA,IAAI,EAAI,EAAA;AACN,QAAM,MAAA,EAAA,GAAK,SAAU,CAAA,GAAA,CAAI,EAAE,CAAA,CAAA;AAC3B,QAAA,IAAI,CAAC,EAAI,EAAA,OAAA;AAET,QAAA,SAAA,CAAU,OAAO,EAAE,CAAA,CAAA;AAEnB,QAAA,OAAO,KACH,GAAA,EAAA,CAAG,OAAQ,CAAA,IAAI,QAAS,CAAA,KAAK,CAAC,CAAA,GAC9B,EAAG,CAAA,SAAA,CAAU,MAAQ,EAAA,CAAC,UAAU,UAAe,KAAA;AAC7C,UAAA,MAAMA,eAAiB,GAAA,QAAA,CAAA;AACvB,UAAc,aAAA,CAAA,SAAA,CAAUA,iBAAgB,UAAU,CAAA,CAAA;AAClD,UAAA,OAAO,MAAM;AACX,YAAA,aAAA,CAAc,YAAYA,eAAc,CAAA,CAAA;AAAA,WAC1C,CAAA;AAAA,SACD,CAAA,CAAA;AAAA,OACP;AAGA,MAAA,CAAA;AAAC,MAAA,CAAC,EAAE,YAAA,EAAc,MAAQ,EAAA,KAAA,EAAU,GAAA,MAAA,EAAA;AACpC,MAAI,IAAA,CAAC,YAAiB,IAAA,CAAC,KAAS,IAAA,CAAC,OAAO,MAAO,CAAA,MAAA,EAAQ,QAAQ,CAAA,EAAU,MAAA,CAAA,CAAA;AAEzE,MAAA,MAAM,cAAiB,GAAA,YAAA,CAAA;AAEvB,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,aAAA,CAAc,KAAM,CAAA,cAAA,EAAgB,IAAI,QAAA,CAAS,KAAM,CAAC,CAAA,CAAA;AAAA,OACnD,MAAA;AACL,QAAc,aAAA,CAAA,IAAA,CAAK,gBAAgB,MAAM,CAAA,CAAA;AAAA,OAC3C;AAAA,aACO,CAAG,EAAA;AACV,MAAQ,OAAA,CAAA,IAAA,CAAK,sCAAsC,OAAO,CAAA,CAAA;AAC1D,MAAA,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AAAA,KACjB;AAAA,GACF;AACA,EAAA,UAAA,GAAa,UAAU,SAAS,CAAA,CAAA;AAEhC,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,UAAA,EAAY,UAAW,EAAA,CAAA;AACvB,IAAa,UAAA,GAAA,IAAA,CAAA;AACb,IAAc,aAAA,CAAA,QAAA,CAAS,IAAI,cAAA,EAAgB,CAAA,CAAA;AAC3C,IAAU,SAAA,CAAA,OAAA,CAAQ,CAAC,CAAM,KAAA,CAAA,CAAE,QAAQ,IAAI,cAAA,EAAgB,CAAC,CAAA,CAAA;AACxD,IAAA,SAAA,CAAU,KAAM,EAAA,CAAA;AAAA,GAClB,CAAA;AAEA,EAAA,IAAI,MAAS,GAAA,CAAA,CAAA;AACb,EAAA,MAAM,OAAU,GAAA,CACd,MACA,EAAA,MAAA,EACA,EACkB,KAAA;AAClB,IAAA,IAAI,CAAC,UAAA,EAAkB,MAAA,IAAI,MAAM,eAAe,CAAA,CAAA;AAChD,IAAA,MAAM,EAAK,GAAA,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,MAAQ,EAAA,CAAA,CAAA,CAAA;AAElC,IAAA,IAAI,EAAI,EAAA,SAAA,CAAU,GAAI,CAAA,EAAA,EAAI,EAAE,CAAA,CAAA;AAC5B,IAAK,IAAA,CAAA,EAAA,EAAI,QAAQ,MAAM,CAAA,CAAA;AAEvB,IAAA,OAAO,MAAY;AACjB,MAAA,SAAA,CAAU,OAAO,EAAE,CAAA,CAAA;AAAA,KACrB,CAAA;AAAA,GACF,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,UAAA;AAAA,GACF,CAAA;AACF;;;;"}
|
|
@@ -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 @@
|
|
|
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
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { JsonRpcProvider } from '@polkadot-api/json-rpc-provider';
|
|
2
|
+
export * from '@polkadot-api/json-rpc-provider';
|
|
3
|
+
export { AbortError } from '@polkadot-api/utils';
|
|
2
4
|
|
|
3
5
|
interface IRpcError {
|
|
4
6
|
code: number;
|
|
@@ -141,9 +143,6 @@ interface RuntimeRpc {
|
|
|
141
143
|
apis: Record<string, number>;
|
|
142
144
|
}
|
|
143
145
|
type InitializedRpc = {
|
|
144
|
-
event: "initialized";
|
|
145
|
-
finalizedBlockHash: string;
|
|
146
|
-
} | {
|
|
147
146
|
event: "initialized";
|
|
148
147
|
finalizedBlockHashes: string[];
|
|
149
148
|
};
|