@pezkuwi/rpc-provider 16.5.8 → 16.5.10

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 (213) hide show
  1. package/cjs/packageInfo.js +1 -1
  2. package/mock/index.js +2 -2
  3. package/package.json +11 -11
  4. package/packageInfo.js +1 -1
  5. package/build/LICENSE +0 -201
  6. package/build/README.md +0 -68
  7. package/build/bizinikiwi-connect/Health.d.ts +0 -7
  8. package/build/bizinikiwi-connect/Health.js +0 -259
  9. package/build/bizinikiwi-connect/index.d.ts +0 -22
  10. package/build/bizinikiwi-connect/index.js +0 -319
  11. package/build/bizinikiwi-connect/types.d.ts +0 -12
  12. package/build/bizinikiwi-connect/types.js +0 -1
  13. package/build/bundle.d.ts +0 -5
  14. package/build/bundle.js +0 -5
  15. package/build/cjs/bizinikiwi-connect/Health.d.ts +0 -7
  16. package/build/cjs/bizinikiwi-connect/Health.js +0 -264
  17. package/build/cjs/bizinikiwi-connect/index.d.ts +0 -22
  18. package/build/cjs/bizinikiwi-connect/index.js +0 -323
  19. package/build/cjs/bizinikiwi-connect/types.d.ts +0 -12
  20. package/build/cjs/bizinikiwi-connect/types.js +0 -2
  21. package/build/cjs/bundle.d.ts +0 -5
  22. package/build/cjs/bundle.js +0 -14
  23. package/build/cjs/coder/error.d.ts +0 -29
  24. package/build/cjs/coder/error.js +0 -53
  25. package/build/cjs/coder/index.d.ts +0 -8
  26. package/build/cjs/coder/index.js +0 -63
  27. package/build/cjs/defaults.d.ts +0 -5
  28. package/build/cjs/defaults.js +0 -8
  29. package/build/cjs/http/index.d.ts +0 -81
  30. package/build/cjs/http/index.js +0 -196
  31. package/build/cjs/http/types.d.ts +0 -7
  32. package/build/cjs/http/types.js +0 -2
  33. package/build/cjs/index.d.ts +0 -2
  34. package/build/cjs/index.js +0 -5
  35. package/build/cjs/lru.d.ts +0 -15
  36. package/build/cjs/lru.js +0 -150
  37. package/build/cjs/mock/index.d.ts +0 -35
  38. package/build/cjs/mock/index.js +0 -196
  39. package/build/cjs/mock/mockHttp.d.ts +0 -9
  40. package/build/cjs/mock/mockHttp.js +0 -17
  41. package/build/cjs/mock/mockWs.d.ts +0 -26
  42. package/build/cjs/mock/mockWs.js +0 -47
  43. package/build/cjs/mock/types.d.ts +0 -23
  44. package/build/cjs/mock/types.js +0 -2
  45. package/build/cjs/package.json +0 -3
  46. package/build/cjs/packageDetect.d.ts +0 -1
  47. package/build/cjs/packageDetect.js +0 -6
  48. package/build/cjs/packageInfo.d.ts +0 -6
  49. package/build/cjs/packageInfo.js +0 -4
  50. package/build/cjs/types.d.ts +0 -85
  51. package/build/cjs/types.js +0 -2
  52. package/build/cjs/ws/errors.d.ts +0 -1
  53. package/build/cjs/ws/errors.js +0 -41
  54. package/build/cjs/ws/index.d.ts +0 -121
  55. package/build/cjs/ws/index.js +0 -529
  56. package/build/coder/error.d.ts +0 -29
  57. package/build/coder/error.js +0 -50
  58. package/build/coder/index.d.ts +0 -8
  59. package/build/coder/index.js +0 -58
  60. package/build/defaults.d.ts +0 -5
  61. package/build/defaults.js +0 -6
  62. package/build/http/index.d.ts +0 -81
  63. package/build/http/index.js +0 -191
  64. package/build/http/types.d.ts +0 -7
  65. package/build/http/types.js +0 -1
  66. package/build/index.d.ts +0 -2
  67. package/build/index.js +0 -2
  68. package/build/lru.d.ts +0 -15
  69. package/build/lru.js +0 -146
  70. package/build/mock/index.d.ts +0 -35
  71. package/build/mock/index.js +0 -191
  72. package/build/mock/mockHttp.d.ts +0 -9
  73. package/build/mock/mockHttp.js +0 -12
  74. package/build/mock/mockWs.d.ts +0 -26
  75. package/build/mock/mockWs.js +0 -43
  76. package/build/mock/types.d.ts +0 -23
  77. package/build/mock/types.js +0 -1
  78. package/build/package.json +0 -344
  79. package/build/packageDetect.d.ts +0 -1
  80. package/build/packageDetect.js +0 -4
  81. package/build/packageInfo.d.ts +0 -6
  82. package/build/packageInfo.js +0 -1
  83. package/build/types.d.ts +0 -85
  84. package/build/types.js +0 -1
  85. package/build/ws/errors.d.ts +0 -1
  86. package/build/ws/errors.js +0 -38
  87. package/build/ws/index.d.ts +0 -121
  88. package/build/ws/index.js +0 -524
  89. package/build-deno/README.md +0 -66
  90. package/build-deno/bizinikiwi-connect/Health.ts +0 -323
  91. package/build-deno/bizinikiwi-connect/index.ts +0 -417
  92. package/build-deno/bizinikiwi-connect/types.ts +0 -14
  93. package/build-deno/bundle.ts +0 -6
  94. package/build-deno/coder/error.ts +0 -64
  95. package/build-deno/coder/index.ts +0 -86
  96. package/build-deno/defaults.ts +0 -8
  97. package/build-deno/http/index.ts +0 -236
  98. package/build-deno/http/types.ts +0 -9
  99. package/build-deno/index.ts +0 -4
  100. package/build-deno/lru.ts +0 -189
  101. package/build-deno/mock/index.ts +0 -257
  102. package/build-deno/mock/mockHttp.ts +0 -33
  103. package/build-deno/mock/mockWs.ts +0 -87
  104. package/build-deno/mock/types.ts +0 -34
  105. package/build-deno/mod.ts +0 -2
  106. package/build-deno/packageDetect.ts +0 -8
  107. package/build-deno/packageInfo.ts +0 -3
  108. package/build-deno/types.ts +0 -99
  109. package/build-deno/ws/errors.ts +0 -38
  110. package/build-deno/ws/index.ts +0 -650
  111. package/build-tsc/bizinikiwi-connect/Health.d.ts +0 -7
  112. package/build-tsc/bizinikiwi-connect/index.d.ts +0 -22
  113. package/build-tsc/bizinikiwi-connect/types.d.ts +0 -12
  114. package/build-tsc/bundle.d.ts +0 -5
  115. package/build-tsc/coder/error.d.ts +0 -29
  116. package/build-tsc/coder/index.d.ts +0 -8
  117. package/build-tsc/defaults.d.ts +0 -5
  118. package/build-tsc/http/index.d.ts +0 -81
  119. package/build-tsc/http/types.d.ts +0 -7
  120. package/build-tsc/index.d.ts +0 -2
  121. package/build-tsc/lru.d.ts +0 -15
  122. package/build-tsc/mock/index.d.ts +0 -35
  123. package/build-tsc/mock/mockHttp.d.ts +0 -9
  124. package/build-tsc/mock/mockWs.d.ts +0 -26
  125. package/build-tsc/mock/types.d.ts +0 -23
  126. package/build-tsc/packageDetect.d.ts +0 -1
  127. package/build-tsc/packageInfo.d.ts +0 -6
  128. package/build-tsc/types.d.ts +0 -85
  129. package/build-tsc/ws/errors.d.ts +0 -1
  130. package/build-tsc/ws/index.d.ts +0 -121
  131. package/build-tsc-cjs/bizinikiwi-connect/Health.js +0 -264
  132. package/build-tsc-cjs/bizinikiwi-connect/index.js +0 -323
  133. package/build-tsc-cjs/bizinikiwi-connect/types.js +0 -2
  134. package/build-tsc-cjs/bundle.js +0 -14
  135. package/build-tsc-cjs/coder/error.js +0 -53
  136. package/build-tsc-cjs/coder/index.js +0 -63
  137. package/build-tsc-cjs/defaults.js +0 -8
  138. package/build-tsc-cjs/http/index.js +0 -196
  139. package/build-tsc-cjs/http/types.js +0 -2
  140. package/build-tsc-cjs/index.js +0 -5
  141. package/build-tsc-cjs/lru.js +0 -150
  142. package/build-tsc-cjs/mock/index.js +0 -196
  143. package/build-tsc-cjs/mock/mockHttp.js +0 -17
  144. package/build-tsc-cjs/mock/mockWs.js +0 -47
  145. package/build-tsc-cjs/mock/types.js +0 -2
  146. package/build-tsc-cjs/packageDetect.js +0 -6
  147. package/build-tsc-cjs/packageInfo.js +0 -4
  148. package/build-tsc-cjs/types.js +0 -2
  149. package/build-tsc-cjs/ws/errors.js +0 -41
  150. package/build-tsc-cjs/ws/index.js +0 -529
  151. package/build-tsc-esm/bizinikiwi-connect/Health.js +0 -259
  152. package/build-tsc-esm/bizinikiwi-connect/index.js +0 -319
  153. package/build-tsc-esm/bizinikiwi-connect/types.js +0 -1
  154. package/build-tsc-esm/bundle.js +0 -5
  155. package/build-tsc-esm/coder/error.js +0 -50
  156. package/build-tsc-esm/coder/index.js +0 -58
  157. package/build-tsc-esm/defaults.js +0 -6
  158. package/build-tsc-esm/http/index.js +0 -191
  159. package/build-tsc-esm/http/types.js +0 -1
  160. package/build-tsc-esm/index.js +0 -2
  161. package/build-tsc-esm/lru.js +0 -146
  162. package/build-tsc-esm/mock/index.js +0 -191
  163. package/build-tsc-esm/mock/mockHttp.js +0 -12
  164. package/build-tsc-esm/mock/mockWs.js +0 -43
  165. package/build-tsc-esm/mock/types.js +0 -1
  166. package/build-tsc-esm/packageDetect.js +0 -4
  167. package/build-tsc-esm/packageInfo.js +0 -1
  168. package/build-tsc-esm/types.js +0 -1
  169. package/build-tsc-esm/ws/errors.js +0 -38
  170. package/build-tsc-esm/ws/index.js +0 -524
  171. package/src/bizinikiwi-connect/Health.ts +0 -325
  172. package/src/bizinikiwi-connect/index.spec.ts +0 -671
  173. package/src/bizinikiwi-connect/index.ts +0 -427
  174. package/src/bizinikiwi-connect/types.ts +0 -16
  175. package/src/bundle.ts +0 -8
  176. package/src/coder/decodeResponse.spec.ts +0 -70
  177. package/src/coder/encodeJson.spec.ts +0 -20
  178. package/src/coder/encodeObject.spec.ts +0 -25
  179. package/src/coder/error.spec.ts +0 -111
  180. package/src/coder/error.ts +0 -66
  181. package/src/coder/index.ts +0 -88
  182. package/src/defaults.ts +0 -10
  183. package/src/http/index.spec.ts +0 -72
  184. package/src/http/index.ts +0 -238
  185. package/src/http/send.spec.ts +0 -61
  186. package/src/http/types.ts +0 -11
  187. package/src/index.ts +0 -6
  188. package/src/lru.spec.ts +0 -74
  189. package/src/lru.ts +0 -197
  190. package/src/mock/index.ts +0 -259
  191. package/src/mock/mockHttp.ts +0 -35
  192. package/src/mock/mockWs.ts +0 -92
  193. package/src/mock/on.spec.ts +0 -43
  194. package/src/mock/send.spec.ts +0 -38
  195. package/src/mock/subscribe.spec.ts +0 -81
  196. package/src/mock/types.ts +0 -36
  197. package/src/mock/unsubscribe.spec.ts +0 -57
  198. package/src/mod.ts +0 -4
  199. package/src/packageDetect.ts +0 -12
  200. package/src/packageInfo.ts +0 -6
  201. package/src/types.ts +0 -101
  202. package/src/ws/connect.spec.ts +0 -167
  203. package/src/ws/errors.ts +0 -41
  204. package/src/ws/index.spec.ts +0 -97
  205. package/src/ws/index.ts +0 -652
  206. package/src/ws/send.spec.ts +0 -126
  207. package/src/ws/state.spec.ts +0 -20
  208. package/src/ws/subscribe.spec.ts +0 -68
  209. package/src/ws/unsubscribe.spec.ts +0 -100
  210. package/tsconfig.build.json +0 -17
  211. package/tsconfig.build.tsbuildinfo +0 -1
  212. package/tsconfig.spec.json +0 -18
  213. package/tsconfig.spec.tsbuildinfo +0 -1
@@ -1,29 +0,0 @@
1
- import type { RpcErrorInterface } from '../types.js';
2
- /**
3
- * @name RpcError
4
- * @summary Extension to the basic JS Error.
5
- * @description
6
- * The built-in JavaScript Error class is extended by adding a code to allow for Error categorization. In addition to the normal `stack`, `message`, the numeric `code` and `data` (any types) parameters are available on the object.
7
- * @example
8
- * <BR>
9
- *
10
- * ```javascript
11
- * const { RpcError } from '@pezkuwi/util');
12
- *
13
- * throw new RpcError('some message', RpcError.CODES.METHOD_NOT_FOUND); // => error.code = -32601
14
- * ```
15
- */
16
- export default class RpcError<T = never> extends Error implements RpcErrorInterface<T> {
17
- code: number;
18
- data?: T;
19
- message: string;
20
- name: string;
21
- stack: string;
22
- constructor(message?: string, code?: number, data?: T);
23
- static CODES: {
24
- ASSERT: number;
25
- INVALID_JSONRPC: number;
26
- METHOD_NOT_FOUND: number;
27
- UNKNOWN: number;
28
- };
29
- }
@@ -1,8 +0,0 @@
1
- import type { JsonRpcRequest, JsonRpcResponse } from '../types.js';
2
- /** @internal */
3
- export declare class RpcCoder {
4
- #private;
5
- decodeResponse<T>(response?: JsonRpcResponse<T>): T;
6
- encodeJson(method: string, params: unknown[]): [number, string];
7
- encodeObject(method: string, params: unknown[]): [number, JsonRpcRequest];
8
- }
@@ -1,5 +0,0 @@
1
- declare const _default: {
2
- HTTP_URL: string;
3
- WS_URL: string;
4
- };
5
- export default _default;
@@ -1,81 +0,0 @@
1
- import type { ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted, ProviderStats } from '../types.js';
2
- /**
3
- * # @pezkuwi/rpc-provider
4
- *
5
- * @name HttpProvider
6
- *
7
- * @description The HTTP Provider allows sending requests using HTTP to a HTTP RPC server TCP port. It does not support subscriptions so you won't be able to listen to events such as new blocks or balance changes. It is usually preferable using the [[WsProvider]].
8
- *
9
- * @example
10
- * <BR>
11
- *
12
- * ```javascript
13
- * import Api from '@pezkuwi/api/promise';
14
- * import { HttpProvider } from '@pezkuwi/rpc-provider';
15
- *
16
- * const provider = new HttpProvider('http://127.0.0.1:9933');
17
- * const api = new Api(provider);
18
- * ```
19
- *
20
- * @see [[WsProvider]]
21
- */
22
- export declare class HttpProvider implements ProviderInterface {
23
- #private;
24
- /**
25
- * @param {string} endpoint The endpoint url starting with http://
26
- * @param {Record<string, string>} headers The headers provided to the underlying Http Endpoint
27
- * @param {number} [cacheCapacity] Custom size of the HttpProvider LRUCache. Defaults to `DEFAULT_CAPACITY` (1024)
28
- * @param {number} [cacheTtl] Custom TTL of the HttpProvider LRUCache. Determines how long an object can live in the cache. Defaults to `DEFAULT_TTL` (30000)
29
- */
30
- constructor(endpoint?: string, headers?: Record<string, string>, cacheCapacity?: number, cacheTtl?: number | null);
31
- /**
32
- * @summary `true` when this provider supports subscriptions
33
- */
34
- get hasSubscriptions(): boolean;
35
- /**
36
- * @description Returns a clone of the object
37
- */
38
- clone(): HttpProvider;
39
- /**
40
- * @description Manually connect from the connection
41
- */
42
- connect(): Promise<void>;
43
- /**
44
- * @description Manually disconnect from the connection
45
- */
46
- disconnect(): Promise<void>;
47
- /**
48
- * @description Returns the connection stats
49
- */
50
- get stats(): ProviderStats;
51
- /**
52
- * @description Returns the connection stats
53
- */
54
- get ttl(): number | null | undefined;
55
- /**
56
- * @summary `true` when this provider supports clone()
57
- */
58
- get isClonable(): boolean;
59
- /**
60
- * @summary Whether the node is connected or not.
61
- * @return {boolean} true if connected
62
- */
63
- get isConnected(): boolean;
64
- /**
65
- * @summary Events are not supported with the HttpProvider, see [[WsProvider]].
66
- * @description HTTP Provider does not have 'on' emitters. WebSockets should be used instead.
67
- */
68
- on(_type: ProviderInterfaceEmitted, _sub: ProviderInterfaceEmitCb): () => void;
69
- /**
70
- * @summary Send HTTP POST Request with Body to configured HTTP Endpoint.
71
- */
72
- send<T>(method: string, params: unknown[], isCacheable?: boolean): Promise<T>;
73
- /**
74
- * @summary Subscriptions are not supported with the HttpProvider, see [[WsProvider]].
75
- */
76
- subscribe(_types: string, _method: string, _params: unknown[], _cb: ProviderInterfaceCallback): Promise<number>;
77
- /**
78
- * @summary Subscriptions are not supported with the HttpProvider, see [[WsProvider]].
79
- */
80
- unsubscribe(_type: string, _method: string, _id: number): Promise<boolean>;
81
- }
@@ -1,7 +0,0 @@
1
- import type { Logger } from '@pezkuwi/util/types';
2
- import type { RpcCoder } from '../coder/index.js';
3
- export interface HttpState {
4
- coder: RpcCoder;
5
- endpoint: string;
6
- l: Logger;
7
- }
@@ -1,2 +0,0 @@
1
- import './packageDetect.js';
2
- export * from './bundle.js';
@@ -1,15 +0,0 @@
1
- export declare const DEFAULT_CAPACITY = 1024;
2
- export declare const DEFAULT_TTL = 30000;
3
- export declare class LRUCache {
4
- #private;
5
- readonly capacity: number;
6
- constructor(capacity?: number, ttl?: number | null);
7
- get ttl(): number | null;
8
- get length(): number;
9
- get lengthData(): number;
10
- get lengthRefs(): number;
11
- entries(): [string, unknown][];
12
- keys(): string[];
13
- get<T>(key: string): T | null;
14
- set<T>(key: string, value: T): void;
15
- }
@@ -1,35 +0,0 @@
1
- import type { Registry } from '@pezkuwi/types/types';
2
- import type { ProviderInterface, ProviderInterfaceEmitCb, ProviderInterfaceEmitted } from '../types.js';
3
- import type { MockStateSubscriptions } from './types.js';
4
- /**
5
- * A mock provider mainly used for testing.
6
- * @return {ProviderInterface} The mock provider
7
- * @internal
8
- */
9
- export declare class MockProvider implements ProviderInterface {
10
- private db;
11
- private emitter;
12
- private intervalId?;
13
- isUpdating: boolean;
14
- private registry;
15
- private prevNumber;
16
- private requests;
17
- subscriptions: MockStateSubscriptions;
18
- private subscriptionId;
19
- private subscriptionMap;
20
- constructor(registry: Registry);
21
- get hasSubscriptions(): boolean;
22
- clone(): MockProvider;
23
- connect(): Promise<void>;
24
- disconnect(): Promise<void>;
25
- get isClonable(): boolean;
26
- get isConnected(): boolean;
27
- on(type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): () => void;
28
- send<T = any>(method: string, params: unknown[]): Promise<T>;
29
- subscribe(_type: string, method: string, ...params: unknown[]): Promise<number>;
30
- unsubscribe(_type: string, _method: string, id: number): Promise<boolean>;
31
- private init;
32
- private makeBlockHeader;
33
- private setStateBn;
34
- private updateSubs;
35
- }
@@ -1,9 +0,0 @@
1
- import type { Mock } from './types.js';
2
- interface Request {
3
- code?: number;
4
- method: string;
5
- reply?: Record<string, unknown>;
6
- }
7
- export declare const TEST_HTTP_URL = "http://localhost:9944";
8
- export declare function mockHttp(requests: Request[]): Mock;
9
- export {};
@@ -1,26 +0,0 @@
1
- import { Server } from 'mock-socket';
2
- interface Scope {
3
- body: Record<string, Record<string, unknown>>;
4
- requests: number;
5
- server: Server;
6
- done: any;
7
- }
8
- interface ErrorDef {
9
- id: number;
10
- error: {
11
- code: number;
12
- message: string;
13
- };
14
- }
15
- interface ReplyDef {
16
- id: number;
17
- reply: {
18
- result: unknown;
19
- };
20
- }
21
- export type Request = {
22
- method: string;
23
- } & (ErrorDef | ReplyDef);
24
- export declare const TEST_WS_URL = "ws://localhost:9955";
25
- export declare function mockWs(requests: Request[], wsUrl?: string): Scope;
26
- export {};
@@ -1,23 +0,0 @@
1
- import type { Server } from 'mock-socket';
2
- export type Global = typeof globalThis & {
3
- WebSocket: typeof WebSocket;
4
- fetch: any;
5
- };
6
- export interface Mock {
7
- body: Record<string, Record<string, unknown>>;
8
- requests: number;
9
- server: Server;
10
- done: () => Promise<void>;
11
- }
12
- export type MockStateSubscriptionCallback = (error: Error | null, value: any) => void;
13
- export interface MockStateSubscription {
14
- callbacks: Record<number, MockStateSubscriptionCallback>;
15
- lastValue: any;
16
- }
17
- export interface MockStateSubscriptions {
18
- chain_subscribeNewHead: MockStateSubscription;
19
- state_subscribeStorage: MockStateSubscription;
20
- [key: string]: MockStateSubscription;
21
- }
22
- export type MockStateDb = Record<string, Uint8Array>;
23
- export type MockStateRequests = Record<string, (db: MockStateDb, params: any[]) => string>;
@@ -1 +0,0 @@
1
- export {};
@@ -1,6 +0,0 @@
1
- export declare const packageInfo: {
2
- name: string;
3
- path: string;
4
- type: string;
5
- version: string;
6
- };
@@ -1,85 +0,0 @@
1
- export interface JsonRpcObject {
2
- id: number;
3
- jsonrpc: '2.0';
4
- }
5
- export interface JsonRpcRequest extends JsonRpcObject {
6
- method: string;
7
- params: unknown[];
8
- }
9
- export interface JsonRpcResponseBaseError {
10
- code: number;
11
- data?: number | string;
12
- message: string;
13
- }
14
- export interface RpcErrorInterface<T> {
15
- code: number;
16
- data?: T;
17
- message: string;
18
- stack: string;
19
- }
20
- interface JsonRpcResponseSingle<T> {
21
- error?: JsonRpcResponseBaseError;
22
- result: T;
23
- }
24
- interface JsonRpcResponseSubscription<T> {
25
- method?: string;
26
- params: {
27
- error?: JsonRpcResponseBaseError;
28
- result: T;
29
- subscription: number | string;
30
- };
31
- }
32
- export type JsonRpcResponseBase<T> = JsonRpcResponseSingle<T> & JsonRpcResponseSubscription<T>;
33
- export type JsonRpcResponse<T> = JsonRpcObject & JsonRpcResponseBase<T>;
34
- export type ProviderInterfaceCallback = (error: Error | null, result: any) => void;
35
- export type ProviderInterfaceEmitted = 'connected' | 'disconnected' | 'error';
36
- export type ProviderInterfaceEmitCb = (value?: any) => any;
37
- export interface ProviderInterface {
38
- /** true if the provider supports subscriptions (not available for HTTP) */
39
- readonly hasSubscriptions: boolean;
40
- /** true if the clone() functionality is available on the provider */
41
- readonly isClonable: boolean;
42
- /** true if the provider is currently connected (ws/sc has connection logic) */
43
- readonly isConnected: boolean;
44
- /** (optional) stats for the provider with connections/bytes */
45
- readonly stats?: ProviderStats;
46
- /** (optional) stats for the provider with connections/bytes */
47
- readonly ttl?: number | null;
48
- clone(): ProviderInterface;
49
- connect(): Promise<void>;
50
- disconnect(): Promise<void>;
51
- on(type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): () => void;
52
- send<T = any>(method: string, params: unknown[], isCacheable?: boolean): Promise<T>;
53
- subscribe(type: string, method: string, params: unknown[], cb: ProviderInterfaceCallback): Promise<number | string>;
54
- unsubscribe(type: string, method: string, id: number | string): Promise<boolean>;
55
- }
56
- /** Stats for a specific endpoint */
57
- export interface EndpointStats {
58
- /** The total number of bytes sent */
59
- bytesRecv: number;
60
- /** The total number of bytes received */
61
- bytesSent: number;
62
- /** The number of cached/in-progress requests made */
63
- cached: number;
64
- /** The number of errors found */
65
- errors: number;
66
- /** The number of requests */
67
- requests: number;
68
- /** The number of subscriptions */
69
- subscriptions: number;
70
- /** The number of request timeouts */
71
- timeout: number;
72
- }
73
- /** Overall stats for the provider */
74
- export interface ProviderStats {
75
- /** Details for the active/open requests */
76
- active: {
77
- /** Number of active requests */
78
- requests: number;
79
- /** Number of active subscriptions */
80
- subscriptions: number;
81
- };
82
- /** The total requests that have been made */
83
- total: EndpointStats;
84
- }
85
- export {};
@@ -1 +0,0 @@
1
- export declare function getWSErrorString(code: number): string;
@@ -1,121 +0,0 @@
1
- import type { EndpointStats, ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted, ProviderStats } from '../types.js';
2
- interface SubscriptionHandler {
3
- callback: ProviderInterfaceCallback;
4
- type: string;
5
- }
6
- /**
7
- * # @pezkuwi/rpc-provider/ws
8
- *
9
- * @name WsProvider
10
- *
11
- * @description The WebSocket Provider allows sending requests using WebSocket to a WebSocket RPC server TCP port. Unlike the [[HttpProvider]], it does support subscriptions and allows listening to events such as new blocks or balance changes.
12
- *
13
- * @example
14
- * <BR>
15
- *
16
- * ```javascript
17
- * import Api from '@pezkuwi/api/promise';
18
- * import { WsProvider } from '@pezkuwi/rpc-provider/ws';
19
- *
20
- * const provider = new WsProvider('ws://127.0.0.1:9944');
21
- * const api = new Api(provider);
22
- * ```
23
- *
24
- * @see [[HttpProvider]]
25
- */
26
- export declare class WsProvider implements ProviderInterface {
27
- #private;
28
- /**
29
- * @param {string | string[]} endpoint The endpoint url. Usually `ws://ip:9944` or `wss://ip:9944`, may provide an array of endpoint strings.
30
- * @param {number | false} autoConnectMs Whether to connect automatically or not (default). Provided value is used as a delay between retries.
31
- * @param {Record<string, string>} headers The headers provided to the underlying WebSocket
32
- * @param {number} [timeout] Custom timeout value used per request . Defaults to `DEFAULT_TIMEOUT_MS`
33
- * @param {number} [cacheCapacity] Custom size of the WsProvider LRUCache. Defaults to `DEFAULT_CAPACITY` (1024)
34
- * @param {number} [cacheTtl] Custom TTL of the WsProvider LRUCache. Determines how long an object can live in the cache. Defaults to DEFAULT_TTL` (30000)
35
- */
36
- constructor(endpoint?: string | string[], autoConnectMs?: number | false, headers?: Record<string, string>, timeout?: number, cacheCapacity?: number, cacheTtl?: number | null);
37
- /**
38
- * @summary `true` when this provider supports subscriptions
39
- */
40
- get hasSubscriptions(): boolean;
41
- /**
42
- * @summary `true` when this provider supports clone()
43
- */
44
- get isClonable(): boolean;
45
- /**
46
- * @summary Whether the node is connected or not.
47
- * @return {boolean} true if connected
48
- */
49
- get isConnected(): boolean;
50
- /**
51
- * @description Promise that resolves the first time we are connected and loaded
52
- */
53
- get isReady(): Promise<WsProvider>;
54
- get endpoint(): string;
55
- /**
56
- * @description Returns a clone of the object
57
- */
58
- clone(): WsProvider;
59
- protected selectEndpointIndex(endpoints: string[]): number;
60
- /**
61
- * @summary Manually connect
62
- * @description The [[WsProvider]] connects automatically by default, however if you decided otherwise, you may
63
- * connect manually using this method.
64
- */
65
- connect(): Promise<void>;
66
- /**
67
- * @description Connect, never throwing an error, but rather forcing a retry
68
- */
69
- connectWithRetry(): Promise<void>;
70
- /**
71
- * @description Manually disconnect from the connection, clearing auto-connect logic
72
- */
73
- disconnect(): Promise<void>;
74
- /**
75
- * @description Returns the connection stats
76
- */
77
- get stats(): ProviderStats;
78
- /**
79
- * @description Returns the connection stats
80
- */
81
- get ttl(): number | null | undefined;
82
- get endpointStats(): EndpointStats;
83
- /**
84
- * @summary Listens on events after having subscribed using the [[subscribe]] function.
85
- * @param {ProviderInterfaceEmitted} type Event
86
- * @param {ProviderInterfaceEmitCb} sub Callback
87
- * @return unsubscribe function
88
- */
89
- on(type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): () => void;
90
- /**
91
- * @summary Send JSON data using WebSockets to configured HTTP Endpoint or queue.
92
- * @param method The RPC methods to execute
93
- * @param params Encoded parameters as applicable for the method
94
- * @param subscription Subscription details (internally used)
95
- */
96
- send<T = any>(method: string, params: unknown[], isCacheable?: boolean, subscription?: SubscriptionHandler): Promise<T>;
97
- /**
98
- * @name subscribe
99
- * @summary Allows subscribing to a specific event.
100
- *
101
- * @example
102
- * <BR>
103
- *
104
- * ```javascript
105
- * const provider = new WsProvider('ws://127.0.0.1:9944');
106
- * const rpc = new Rpc(provider);
107
- *
108
- * rpc.state.subscribeStorage([[storage.system.account, <Address>]], (_, values) => {
109
- * console.log(values)
110
- * }).then((subscriptionId) => {
111
- * console.log('balance changes subscription id: ', subscriptionId)
112
- * })
113
- * ```
114
- */
115
- subscribe(type: string, method: string, params: unknown[], callback: ProviderInterfaceCallback): Promise<number | string>;
116
- /**
117
- * @summary Allows unsubscribing to subscriptions made with [[subscribe]].
118
- */
119
- unsubscribe(type: string, method: string, id: number | string): Promise<boolean>;
120
- }
121
- export {};