@pezkuwi/api 16.5.5 → 16.5.6

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 (204) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +12 -12
  3. package/augment.js +1 -0
  4. package/base/Decorate.js +752 -0
  5. package/base/Events.js +78 -0
  6. package/base/Getters.js +207 -0
  7. package/base/Init.js +400 -0
  8. package/base/find.js +7 -0
  9. package/{build/base → base}/index.d.ts +1 -1
  10. package/base/index.js +57 -0
  11. package/bundle-pezkuwi-api.js +26238 -0
  12. package/{src/bundle.ts → bundle.js} +0 -9
  13. package/cjs/augment.d.ts +1 -0
  14. package/cjs/augment.js +3 -0
  15. package/cjs/base/Decorate.d.ts +143 -0
  16. package/cjs/base/Decorate.js +756 -0
  17. package/cjs/base/Events.d.ts +67 -0
  18. package/cjs/base/Events.js +82 -0
  19. package/cjs/base/Getters.d.ts +163 -0
  20. package/cjs/base/Getters.js +211 -0
  21. package/cjs/base/Init.d.ts +44 -0
  22. package/cjs/base/Init.js +404 -0
  23. package/cjs/base/find.d.ts +3 -0
  24. package/cjs/base/find.js +11 -0
  25. package/cjs/base/index.d.ts +47 -0
  26. package/cjs/base/index.js +61 -0
  27. package/{src/base/types.ts → cjs/base/types.d.ts} +8 -12
  28. package/cjs/base/types.js +2 -0
  29. package/cjs/bundle.d.ts +7 -0
  30. package/cjs/bundle.js +17 -0
  31. package/cjs/index.js +5 -0
  32. package/cjs/package.json +3 -0
  33. package/cjs/packageDetect.d.ts +1 -0
  34. package/cjs/packageDetect.js +10 -0
  35. package/cjs/packageInfo.js +4 -0
  36. package/{build → cjs}/promise/Api.d.ts +2 -2
  37. package/cjs/promise/Api.js +195 -0
  38. package/cjs/promise/Combinator.js +72 -0
  39. package/cjs/promise/decorateMethod.js +75 -0
  40. package/cjs/promise/index.js +7 -0
  41. package/cjs/promise/types.js +2 -0
  42. package/{build → cjs}/rx/Api.d.ts +2 -2
  43. package/cjs/rx/Api.js +173 -0
  44. package/cjs/rx/decorateMethod.js +6 -0
  45. package/cjs/rx/index.js +7 -0
  46. package/cjs/submittable/Result.js +84 -0
  47. package/cjs/submittable/createClass.js +277 -0
  48. package/cjs/submittable/createSubmittable.js +8 -0
  49. package/cjs/submittable/index.js +7 -0
  50. package/cjs/submittable/types.js +2 -0
  51. package/cjs/types/calls.js +4 -0
  52. package/cjs/types/consts.js +4 -0
  53. package/cjs/types/errors.js +4 -0
  54. package/cjs/types/events.js +4 -0
  55. package/cjs/types/index.js +13 -0
  56. package/cjs/types/storage.js +4 -0
  57. package/cjs/types/submittable.js +4 -0
  58. package/cjs/util/augmentObject.js +84 -0
  59. package/cjs/util/decorate.js +17 -0
  60. package/cjs/util/filterEvents.js +25 -0
  61. package/cjs/util/index.js +11 -0
  62. package/cjs/util/isKeyringPair.js +7 -0
  63. package/cjs/util/logging.js +5 -0
  64. package/cjs/util/validate.js +26 -0
  65. package/index.d.ts +2 -0
  66. package/index.js +2 -0
  67. package/package.json +588 -22
  68. package/packageDetect.d.ts +1 -0
  69. package/{src/packageDetect.ts → packageDetect.js} +0 -8
  70. package/packageInfo.d.ts +6 -0
  71. package/packageInfo.js +1 -0
  72. package/promise/Api.d.ts +158 -0
  73. package/promise/Api.js +191 -0
  74. package/promise/Combinator.d.ts +12 -0
  75. package/promise/Combinator.js +68 -0
  76. package/promise/decorateMethod.d.ts +14 -0
  77. package/promise/decorateMethod.js +71 -0
  78. package/promise/index.d.ts +2 -0
  79. package/promise/index.js +2 -0
  80. package/{src/promise/types.ts → promise/types.d.ts} +0 -4
  81. package/promise/types.js +1 -0
  82. package/rx/Api.d.ts +155 -0
  83. package/{src/rx/Api.ts → rx/Api.js} +67 -84
  84. package/rx/decorateMethod.d.ts +3 -0
  85. package/rx/decorateMethod.js +3 -0
  86. package/rx/index.d.ts +2 -0
  87. package/rx/index.js +2 -0
  88. package/submittable/Result.d.ts +31 -0
  89. package/submittable/Result.js +80 -0
  90. package/submittable/createClass.d.ts +12 -0
  91. package/submittable/createClass.js +274 -0
  92. package/submittable/createSubmittable.d.ts +8 -0
  93. package/submittable/createSubmittable.js +5 -0
  94. package/{src/submittable/index.ts → submittable/index.d.ts} +0 -3
  95. package/submittable/index.js +2 -0
  96. package/{src/submittable/types.ts → submittable/types.d.ts} +0 -3
  97. package/submittable/types.js +1 -0
  98. package/types/calls.d.ts +1 -0
  99. package/types/calls.js +1 -0
  100. package/types/consts.d.ts +1 -0
  101. package/types/consts.js +1 -0
  102. package/types/errors.d.ts +1 -0
  103. package/types/errors.js +1 -0
  104. package/types/events.d.ts +1 -0
  105. package/types/events.js +1 -0
  106. package/types/index.d.ts +114 -0
  107. package/types/index.js +8 -0
  108. package/types/storage.d.ts +1 -0
  109. package/types/storage.js +1 -0
  110. package/types/submittable.d.ts +1 -0
  111. package/types/submittable.js +1 -0
  112. package/util/augmentObject.d.ts +9 -0
  113. package/util/augmentObject.js +81 -0
  114. package/util/decorate.d.ts +16 -0
  115. package/util/decorate.js +14 -0
  116. package/util/filterEvents.d.ts +6 -0
  117. package/util/filterEvents.js +22 -0
  118. package/{src/util/index.ts → util/index.d.ts} +0 -6
  119. package/util/index.js +4 -0
  120. package/util/isKeyringPair.d.ts +3 -0
  121. package/util/isKeyringPair.js +4 -0
  122. package/util/logging.d.ts +1 -0
  123. package/util/logging.js +2 -0
  124. package/util/validate.d.ts +3 -0
  125. package/util/validate.js +23 -0
  126. package/src/augment.ts +0 -4
  127. package/src/base/Decorate.ts +0 -1103
  128. package/src/base/Events.ts +0 -91
  129. package/src/base/Getters.ts +0 -245
  130. package/src/base/Init.ts +0 -525
  131. package/src/base/find.ts +0 -14
  132. package/src/base/index.ts +0 -85
  133. package/src/checkTypes.manual.ts +0 -323
  134. package/src/index.ts +0 -6
  135. package/src/mod.ts +0 -4
  136. package/src/packageInfo.ts +0 -6
  137. package/src/promise/Api.ts +0 -214
  138. package/src/promise/Combinator.ts +0 -91
  139. package/src/promise/Combinators.spec.ts +0 -109
  140. package/src/promise/decorateMethod.ts +0 -118
  141. package/src/promise/index.spec.ts +0 -167
  142. package/src/promise/index.ts +0 -5
  143. package/src/rx/decorateMethod.ts +0 -9
  144. package/src/rx/index.ts +0 -5
  145. package/src/submittable/Result.ts +0 -111
  146. package/src/submittable/createClass.ts +0 -438
  147. package/src/submittable/createSubmittable.ts +0 -19
  148. package/src/test/SingleAccountSigner.ts +0 -53
  149. package/src/test/index.ts +0 -5
  150. package/src/test/logEvents.ts +0 -24
  151. package/src/types/calls.ts +0 -4
  152. package/src/types/consts.ts +0 -4
  153. package/src/types/errors.ts +0 -4
  154. package/src/types/events.ts +0 -4
  155. package/src/types/index.ts +0 -137
  156. package/src/types/storage.ts +0 -4
  157. package/src/types/submittable.ts +0 -4
  158. package/src/util/augmentObject.spec.ts +0 -54
  159. package/src/util/augmentObject.ts +0 -112
  160. package/src/util/decorate.ts +0 -43
  161. package/src/util/filterEvents.ts +0 -34
  162. package/src/util/isKeyringPair.ts +0 -11
  163. package/src/util/logging.ts +0 -6
  164. package/src/util/validate.spec.ts +0 -72
  165. package/src/util/validate.ts +0 -36
  166. package/tsconfig.build.json +0 -25
  167. package/tsconfig.build.tsbuildinfo +0 -1
  168. package/tsconfig.spec.json +0 -26
  169. /package/{build/augment.d.ts → augment.d.ts} +0 -0
  170. /package/{build/base → base}/Decorate.d.ts +0 -0
  171. /package/{build/base → base}/Events.d.ts +0 -0
  172. /package/{build/base → base}/Getters.d.ts +0 -0
  173. /package/{build/base → base}/Init.d.ts +0 -0
  174. /package/{build/base → base}/find.d.ts +0 -0
  175. /package/{build/base → base}/types.d.ts +0 -0
  176. /package/{build/packageDetect.d.ts → base/types.js} +0 -0
  177. /package/{build/bundle.d.ts → bundle.d.ts} +0 -0
  178. /package/{build → cjs}/index.d.ts +0 -0
  179. /package/{build → cjs}/packageInfo.d.ts +0 -0
  180. /package/{build → cjs}/promise/Combinator.d.ts +0 -0
  181. /package/{build → cjs}/promise/decorateMethod.d.ts +0 -0
  182. /package/{build → cjs}/promise/index.d.ts +0 -0
  183. /package/{build → cjs}/promise/types.d.ts +0 -0
  184. /package/{build → cjs}/rx/decorateMethod.d.ts +0 -0
  185. /package/{build → cjs}/rx/index.d.ts +0 -0
  186. /package/{build → cjs}/submittable/Result.d.ts +0 -0
  187. /package/{build → cjs}/submittable/createClass.d.ts +0 -0
  188. /package/{build → cjs}/submittable/createSubmittable.d.ts +0 -0
  189. /package/{build → cjs}/submittable/index.d.ts +0 -0
  190. /package/{build → cjs}/submittable/types.d.ts +0 -0
  191. /package/{build → cjs}/types/calls.d.ts +0 -0
  192. /package/{build → cjs}/types/consts.d.ts +0 -0
  193. /package/{build → cjs}/types/errors.d.ts +0 -0
  194. /package/{build → cjs}/types/events.d.ts +0 -0
  195. /package/{build → cjs}/types/index.d.ts +0 -0
  196. /package/{build → cjs}/types/storage.d.ts +0 -0
  197. /package/{build → cjs}/types/submittable.d.ts +0 -0
  198. /package/{build → cjs}/util/augmentObject.d.ts +0 -0
  199. /package/{build → cjs}/util/decorate.d.ts +0 -0
  200. /package/{build → cjs}/util/filterEvents.d.ts +0 -0
  201. /package/{build → cjs}/util/index.d.ts +0 -0
  202. /package/{build → cjs}/util/isKeyringPair.d.ts +0 -0
  203. /package/{build → cjs}/util/logging.d.ts +0 -0
  204. /package/{build → cjs}/util/validate.d.ts +0 -0
@@ -0,0 +1,67 @@
1
+ import type { ApiInterfaceEvents } from '../types/index.js';
2
+ export declare class Events {
3
+ #private;
4
+ protected emit(type: ApiInterfaceEvents, ...args: unknown[]): boolean;
5
+ /**
6
+ * @description Attach an eventemitter handler to listen to a specific event
7
+ *
8
+ * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`
9
+ * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.
10
+ *
11
+ * @example
12
+ * <BR>
13
+ *
14
+ * ```javascript
15
+ * api.on('connected', (): void => {
16
+ * console.log('API has been connected to the endpoint');
17
+ * });
18
+ *
19
+ * api.on('disconnected', (): void => {
20
+ * console.log('API has been disconnected from the endpoint');
21
+ * });
22
+ * ```
23
+ */
24
+ on(type: ApiInterfaceEvents, handler: (...args: any[]) => any): this;
25
+ /**
26
+ * @description Remove the given eventemitter handler
27
+ *
28
+ * @param type The type of event the callback was attached to. Available events are `connected`, `disconnected`, `ready` and `error`
29
+ * @param handler The callback to unregister.
30
+ *
31
+ * @example
32
+ * <BR>
33
+ *
34
+ * ```javascript
35
+ * const handler = (): void => {
36
+ * console.log('Connected !);
37
+ * };
38
+ *
39
+ * // Start listening
40
+ * api.on('connected', handler);
41
+ *
42
+ * // Stop listening
43
+ * api.off('connected', handler);
44
+ * ```
45
+ */
46
+ off(type: ApiInterfaceEvents, handler: (...args: any[]) => any): this;
47
+ /**
48
+ * @description Attach an one-time eventemitter handler to listen to a specific event
49
+ *
50
+ * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`
51
+ * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.
52
+ *
53
+ * @example
54
+ * <BR>
55
+ *
56
+ * ```javascript
57
+ * api.once('connected', (): void => {
58
+ * console.log('API has been connected to the endpoint');
59
+ * });
60
+ *
61
+ * api.once('disconnected', (): void => {
62
+ * console.log('API has been disconnected from the endpoint');
63
+ * });
64
+ * ```
65
+ */
66
+ once(type: ApiInterfaceEvents, handler: (...args: any[]) => any): this;
67
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Events = void 0;
4
+ const eventemitter3_1 = require("eventemitter3");
5
+ class Events {
6
+ #eventemitter = new eventemitter3_1.EventEmitter();
7
+ emit(type, ...args) {
8
+ return this.#eventemitter.emit(type, ...args);
9
+ }
10
+ /**
11
+ * @description Attach an eventemitter handler to listen to a specific event
12
+ *
13
+ * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`
14
+ * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.
15
+ *
16
+ * @example
17
+ * <BR>
18
+ *
19
+ * ```javascript
20
+ * api.on('connected', (): void => {
21
+ * console.log('API has been connected to the endpoint');
22
+ * });
23
+ *
24
+ * api.on('disconnected', (): void => {
25
+ * console.log('API has been disconnected from the endpoint');
26
+ * });
27
+ * ```
28
+ */
29
+ on(type, handler) {
30
+ this.#eventemitter.on(type, handler);
31
+ return this;
32
+ }
33
+ /**
34
+ * @description Remove the given eventemitter handler
35
+ *
36
+ * @param type The type of event the callback was attached to. Available events are `connected`, `disconnected`, `ready` and `error`
37
+ * @param handler The callback to unregister.
38
+ *
39
+ * @example
40
+ * <BR>
41
+ *
42
+ * ```javascript
43
+ * const handler = (): void => {
44
+ * console.log('Connected !);
45
+ * };
46
+ *
47
+ * // Start listening
48
+ * api.on('connected', handler);
49
+ *
50
+ * // Stop listening
51
+ * api.off('connected', handler);
52
+ * ```
53
+ */
54
+ off(type, handler) {
55
+ this.#eventemitter.removeListener(type, handler);
56
+ return this;
57
+ }
58
+ /**
59
+ * @description Attach an one-time eventemitter handler to listen to a specific event
60
+ *
61
+ * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`
62
+ * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.
63
+ *
64
+ * @example
65
+ * <BR>
66
+ *
67
+ * ```javascript
68
+ * api.once('connected', (): void => {
69
+ * console.log('API has been connected to the endpoint');
70
+ * });
71
+ *
72
+ * api.once('disconnected', (): void => {
73
+ * console.log('API has been disconnected from the endpoint');
74
+ * });
75
+ * ```
76
+ */
77
+ once(type, handler) {
78
+ this.#eventemitter.once(type, handler);
79
+ return this;
80
+ }
81
+ }
82
+ exports.Events = Events;
@@ -0,0 +1,163 @@
1
+ import type { RpcCoreStats, RpcInterface } from '@pezkuwi/rpc-core/types';
2
+ import type { Text } from '@pezkuwi/types';
3
+ import type { Hash, RuntimeVersion } from '@pezkuwi/types/interfaces';
4
+ import type { Metadata } from '@pezkuwi/types/metadata';
5
+ import type { CallFunction, RegistryError } from '@pezkuwi/types/types';
6
+ import type { ApiDecoration, ApiInterfaceRx, ApiTypes, DecoratedErrors, DecoratedEvents, DecoratedRpc, QueryableCalls, QueryableConsts, QueryableStorage, QueryableStorageMulti, SubmittableExtrinsics } from '../types/index.js';
7
+ import { Init } from './Init.js';
8
+ export declare abstract class Getters<ApiType extends ApiTypes> extends Init<ApiType> implements ApiDecoration<ApiType> {
9
+ /**
10
+ * @description Runtime call interfaces (currently untyped, only decorated via API options)
11
+ */
12
+ get call(): QueryableCalls<ApiType>;
13
+ /**
14
+ * @description Contains the parameter types (constants) of all modules.
15
+ *
16
+ * The values are instances of the appropriate type and are accessible using `section`.`constantName`,
17
+ *
18
+ * @example
19
+ * <BR>
20
+ *
21
+ * ```javascript
22
+ * console.log(api.consts.democracy.enactmentPeriod.toString())
23
+ * ```
24
+ */
25
+ get consts(): QueryableConsts<ApiType>;
26
+ /**
27
+ * @description Derived results that are injected into the API, allowing for combinations of various query results.
28
+ *
29
+ * @example
30
+ * <BR>
31
+ *
32
+ * ```javascript
33
+ * api.derive.chain.bestNumber((number) => {
34
+ * console.log('best number', number);
35
+ * });
36
+ * ```
37
+ */
38
+ get derive(): ReturnType<Getters<ApiType>['_decorateDerive']>;
39
+ /**
40
+ * @description Errors from metadata
41
+ */
42
+ get errors(): DecoratedErrors<ApiType>;
43
+ /**
44
+ * @description Events from metadata
45
+ */
46
+ get events(): DecoratedEvents<ApiType>;
47
+ /**
48
+ * @description Returns the version of extrinsics in-use on this chain
49
+ */
50
+ get extrinsicVersion(): number;
51
+ /**
52
+ * @description Contains the genesis Hash of the attached chain. Apart from being useful to determine the actual chain, it can also be used to sign immortal transactions.
53
+ */
54
+ get genesisHash(): Hash;
55
+ /**
56
+ * @description true is the underlying provider is connected
57
+ */
58
+ get isConnected(): boolean;
59
+ /**
60
+ * @description The library information name & version (from package.json)
61
+ */
62
+ get libraryInfo(): string;
63
+ /**
64
+ * @description Contains all the chain state modules and their subsequent methods in the API. These are attached dynamically from the runtime metadata.
65
+ *
66
+ * All calls inside the namespace, is denoted by `section`.`method` and may take an optional query parameter. As an example, `api.query.timestamp.now()` (current block timestamp) does not take parameters, while `api.query.system.account(<accountId>)` (retrieving the associated nonce & balances for an account), takes the `AccountId` as a parameter.
67
+ *
68
+ * @example
69
+ * <BR>
70
+ *
71
+ * ```javascript
72
+ * api.query.system.account(<accountId>, ([nonce, balance]) => {
73
+ * console.log('new free balance', balance.free, 'new nonce', nonce);
74
+ * });
75
+ * ```
76
+ */
77
+ get query(): QueryableStorage<ApiType>;
78
+ /**
79
+ * @description Allows for the querying of multiple storage entries and the combination thereof into a single result. This is a very optimal way to make multiple queries since it only makes a single connection to the node and retrieves the data over one subscription.
80
+ *
81
+ * @example
82
+ * <BR>
83
+ *
84
+ * ```javascript
85
+ * const unsub = await api.queryMulti(
86
+ * [
87
+ * // you can include the storage without any parameters
88
+ * api.query.balances.totalIssuance,
89
+ * // or you can pass parameters to the storage query
90
+ * [api.query.system.account, '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY']
91
+ * ],
92
+ * ([existential, [, { free }]]) => {
93
+ * console.log(`You have ${free.sub(existential)} more than the existential deposit`);
94
+ *
95
+ * unsub();
96
+ * }
97
+ * );
98
+ * ```
99
+ */
100
+ get queryMulti(): QueryableStorageMulti<ApiType>;
101
+ /**
102
+ * @description Contains all the raw rpc sections and their subsequent methods in the API as defined by the jsonrpc interface definitions. Unlike the dynamic `api.query` and `api.tx` sections, these methods are fixed (although extensible with node upgrades) and not determined by the runtime.
103
+ *
104
+ * RPC endpoints available here allow for the query of chain, node and system information, in addition to providing interfaces for the raw queries of state (using known keys) and the submission of transactions.
105
+ *
106
+ * @example
107
+ * <BR>
108
+ *
109
+ * ```javascript
110
+ * api.rpc.chain.subscribeNewHeads((header) => {
111
+ * console.log('new header', header);
112
+ * });
113
+ * ```
114
+ */
115
+ get rpc(): DecoratedRpc<ApiType, RpcInterface>;
116
+ /**
117
+ * @description Contains the chain information for the current node.
118
+ */
119
+ get runtimeChain(): Text;
120
+ /**
121
+ * @description Yields the current attached runtime metadata. Generally this is only used to construct extrinsics & storage, but is useful for current runtime inspection.
122
+ */
123
+ get runtimeMetadata(): Metadata;
124
+ /**
125
+ * @description Contains the version information for the current runtime.
126
+ */
127
+ get runtimeVersion(): RuntimeVersion;
128
+ /**
129
+ * @description The underlying Rx API interface
130
+ */
131
+ get rx(): Pick<ApiInterfaceRx, 'tx' | 'rpc' | 'query' | 'call'>;
132
+ /**
133
+ * @description Returns the underlying provider stats
134
+ */
135
+ get stats(): RpcCoreStats | undefined;
136
+ /**
137
+ * @description The type of this API instance, either 'rxjs' or 'promise'
138
+ */
139
+ get type(): ApiTypes;
140
+ /**
141
+ * @description Contains all the extrinsic modules and their subsequent methods in the API. It allows for the construction of transactions and the submission thereof. These are attached dynamically from the runtime metadata.
142
+ *
143
+ * @example
144
+ * <BR>
145
+ *
146
+ * ```javascript
147
+ * api.tx.balances
148
+ * .transferAllowDeath(<recipientId>, <balance>)
149
+ * .signAndSend(<keyPair>, ({status}) => {
150
+ * console.log('tx status', status.asFinalized.toHex());
151
+ * });
152
+ * ```
153
+ */
154
+ get tx(): SubmittableExtrinsics<ApiType>;
155
+ /**
156
+ * @description Finds the definition for a specific [[CallFunction]] based on the index supplied
157
+ */
158
+ findCall(callIndex: Uint8Array | string): CallFunction;
159
+ /**
160
+ * @description Finds the definition for a specific [[RegistryError]] based on the index supplied
161
+ */
162
+ findError(errorIndex: Uint8Array | string): RegistryError;
163
+ }
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Getters = void 0;
4
+ const packageInfo_js_1 = require("../packageInfo.js");
5
+ const find_js_1 = require("./find.js");
6
+ const Init_js_1 = require("./Init.js");
7
+ function assertResult(value) {
8
+ if (value === undefined) {
9
+ throw new Error("Api interfaces needs to be initialized before using, wait for 'isReady'");
10
+ }
11
+ return value;
12
+ }
13
+ class Getters extends Init_js_1.Init {
14
+ /**
15
+ * @description Runtime call interfaces (currently untyped, only decorated via API options)
16
+ */
17
+ get call() {
18
+ return assertResult(this._call);
19
+ }
20
+ /**
21
+ * @description Contains the parameter types (constants) of all modules.
22
+ *
23
+ * The values are instances of the appropriate type and are accessible using `section`.`constantName`,
24
+ *
25
+ * @example
26
+ * <BR>
27
+ *
28
+ * ```javascript
29
+ * console.log(api.consts.democracy.enactmentPeriod.toString())
30
+ * ```
31
+ */
32
+ get consts() {
33
+ return assertResult(this._consts);
34
+ }
35
+ /**
36
+ * @description Derived results that are injected into the API, allowing for combinations of various query results.
37
+ *
38
+ * @example
39
+ * <BR>
40
+ *
41
+ * ```javascript
42
+ * api.derive.chain.bestNumber((number) => {
43
+ * console.log('best number', number);
44
+ * });
45
+ * ```
46
+ */
47
+ get derive() {
48
+ return assertResult(this._derive);
49
+ }
50
+ /**
51
+ * @description Errors from metadata
52
+ */
53
+ get errors() {
54
+ return assertResult(this._errors);
55
+ }
56
+ /**
57
+ * @description Events from metadata
58
+ */
59
+ get events() {
60
+ return assertResult(this._events);
61
+ }
62
+ /**
63
+ * @description Returns the version of extrinsics in-use on this chain
64
+ */
65
+ get extrinsicVersion() {
66
+ return this._extrinsicType;
67
+ }
68
+ /**
69
+ * @description Contains the genesis Hash of the attached chain. Apart from being useful to determine the actual chain, it can also be used to sign immortal transactions.
70
+ */
71
+ get genesisHash() {
72
+ return assertResult(this._genesisHash);
73
+ }
74
+ /**
75
+ * @description true is the underlying provider is connected
76
+ */
77
+ get isConnected() {
78
+ return this._isConnected.getValue();
79
+ }
80
+ /**
81
+ * @description The library information name & version (from package.json)
82
+ */
83
+ get libraryInfo() {
84
+ return `${packageInfo_js_1.packageInfo.name} v${packageInfo_js_1.packageInfo.version}`;
85
+ }
86
+ /**
87
+ * @description Contains all the chain state modules and their subsequent methods in the API. These are attached dynamically from the runtime metadata.
88
+ *
89
+ * All calls inside the namespace, is denoted by `section`.`method` and may take an optional query parameter. As an example, `api.query.timestamp.now()` (current block timestamp) does not take parameters, while `api.query.system.account(<accountId>)` (retrieving the associated nonce & balances for an account), takes the `AccountId` as a parameter.
90
+ *
91
+ * @example
92
+ * <BR>
93
+ *
94
+ * ```javascript
95
+ * api.query.system.account(<accountId>, ([nonce, balance]) => {
96
+ * console.log('new free balance', balance.free, 'new nonce', nonce);
97
+ * });
98
+ * ```
99
+ */
100
+ get query() {
101
+ return assertResult(this._query);
102
+ }
103
+ /**
104
+ * @description Allows for the querying of multiple storage entries and the combination thereof into a single result. This is a very optimal way to make multiple queries since it only makes a single connection to the node and retrieves the data over one subscription.
105
+ *
106
+ * @example
107
+ * <BR>
108
+ *
109
+ * ```javascript
110
+ * const unsub = await api.queryMulti(
111
+ * [
112
+ * // you can include the storage without any parameters
113
+ * api.query.balances.totalIssuance,
114
+ * // or you can pass parameters to the storage query
115
+ * [api.query.system.account, '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY']
116
+ * ],
117
+ * ([existential, [, { free }]]) => {
118
+ * console.log(`You have ${free.sub(existential)} more than the existential deposit`);
119
+ *
120
+ * unsub();
121
+ * }
122
+ * );
123
+ * ```
124
+ */
125
+ get queryMulti() {
126
+ return assertResult(this._queryMulti);
127
+ }
128
+ /**
129
+ * @description Contains all the raw rpc sections and their subsequent methods in the API as defined by the jsonrpc interface definitions. Unlike the dynamic `api.query` and `api.tx` sections, these methods are fixed (although extensible with node upgrades) and not determined by the runtime.
130
+ *
131
+ * RPC endpoints available here allow for the query of chain, node and system information, in addition to providing interfaces for the raw queries of state (using known keys) and the submission of transactions.
132
+ *
133
+ * @example
134
+ * <BR>
135
+ *
136
+ * ```javascript
137
+ * api.rpc.chain.subscribeNewHeads((header) => {
138
+ * console.log('new header', header);
139
+ * });
140
+ * ```
141
+ */
142
+ get rpc() {
143
+ return assertResult(this._rpc);
144
+ }
145
+ /**
146
+ * @description Contains the chain information for the current node.
147
+ */
148
+ get runtimeChain() {
149
+ return assertResult(this._runtimeChain);
150
+ }
151
+ /**
152
+ * @description Yields the current attached runtime metadata. Generally this is only used to construct extrinsics & storage, but is useful for current runtime inspection.
153
+ */
154
+ get runtimeMetadata() {
155
+ return assertResult(this._runtimeMetadata);
156
+ }
157
+ /**
158
+ * @description Contains the version information for the current runtime.
159
+ */
160
+ get runtimeVersion() {
161
+ return assertResult(this._runtimeVersion);
162
+ }
163
+ /**
164
+ * @description The underlying Rx API interface
165
+ */
166
+ get rx() {
167
+ return assertResult(this._rx);
168
+ }
169
+ /**
170
+ * @description Returns the underlying provider stats
171
+ */
172
+ get stats() {
173
+ return this._rpcCore.stats;
174
+ }
175
+ /**
176
+ * @description The type of this API instance, either 'rxjs' or 'promise'
177
+ */
178
+ get type() {
179
+ return this._type;
180
+ }
181
+ /**
182
+ * @description Contains all the extrinsic modules and their subsequent methods in the API. It allows for the construction of transactions and the submission thereof. These are attached dynamically from the runtime metadata.
183
+ *
184
+ * @example
185
+ * <BR>
186
+ *
187
+ * ```javascript
188
+ * api.tx.balances
189
+ * .transferAllowDeath(<recipientId>, <balance>)
190
+ * .signAndSend(<keyPair>, ({status}) => {
191
+ * console.log('tx status', status.asFinalized.toHex());
192
+ * });
193
+ * ```
194
+ */
195
+ get tx() {
196
+ return assertResult(this._extrinsics);
197
+ }
198
+ /**
199
+ * @description Finds the definition for a specific [[CallFunction]] based on the index supplied
200
+ */
201
+ findCall(callIndex) {
202
+ return (0, find_js_1.findCall)(this.registry, callIndex);
203
+ }
204
+ /**
205
+ * @description Finds the definition for a specific [[RegistryError]] based on the index supplied
206
+ */
207
+ findError(errorIndex) {
208
+ return (0, find_js_1.findError)(this.registry, errorIndex);
209
+ }
210
+ }
211
+ exports.Getters = Getters;
@@ -0,0 +1,44 @@
1
+ import type { RuntimeVersion } from '@pezkuwi/types/interfaces';
2
+ import type { ApiDecoration, ApiOptions, ApiTypes, DecorateMethod } from '../types/index.js';
3
+ import type { VersionedRegistry } from './types.js';
4
+ import { Decorate } from './Decorate.js';
5
+ export declare abstract class Init<ApiType extends ApiTypes> extends Decorate<ApiType> {
6
+ #private;
7
+ constructor(options: ApiOptions, type: ApiTypes, decorateMethod: DecorateMethod<ApiType>);
8
+ /**
9
+ * @description Decorates a registry based on the runtime version
10
+ */
11
+ private _initRegistry;
12
+ /**
13
+ * @description Returns the default versioned registry
14
+ */
15
+ private _getDefaultRegistry;
16
+ /**
17
+ * @description Returns a decorated API instance at a specific point in time
18
+ */
19
+ at(blockHash: Uint8Array | string, knownVersion?: RuntimeVersion): Promise<ApiDecoration<ApiType>>;
20
+ private _createBlockRegistry;
21
+ private _cacheBlockRegistryProgress;
22
+ private _getBlockRegistryViaVersion;
23
+ private _getBlockRegistryViaHash;
24
+ /**
25
+ * @description Sets up a registry based on the block hash defined
26
+ */
27
+ getBlockRegistry(blockHash: Uint8Array, knownVersion?: RuntimeVersion): Promise<VersionedRegistry<ApiType>>;
28
+ protected _loadMeta(): Promise<boolean>;
29
+ private _metaFromSource;
30
+ private _subscribeUpdates;
31
+ private _metaFromChain;
32
+ private _initFromMeta;
33
+ /**
34
+ * @internal
35
+ *
36
+ * Tries to use runtime api calls to retrieve metadata. This ensures the api initializes with the latest metadata.
37
+ * If the runtime call is not there it will use the rpc method.
38
+ */
39
+ private _retrieveMetadata;
40
+ private _subscribeHealth;
41
+ private _unsubscribeHealth;
42
+ private _unsubscribeUpdates;
43
+ protected _unsubscribe(): void;
44
+ }