@ckb-ccc/core 1.4.0 → 1.6.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 (109) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/ckb/transaction.d.ts +57 -4
  3. package/dist/ckb/transaction.d.ts.map +1 -1
  4. package/dist/ckb/transaction.js +83 -26
  5. package/dist/client/cache/cache.d.ts +67 -11
  6. package/dist/client/cache/cache.d.ts.map +1 -1
  7. package/dist/client/cache/cache.js +94 -9
  8. package/dist/client/cache/memory.advanced.d.ts +2 -2
  9. package/dist/client/cache/memory.advanced.d.ts.map +1 -1
  10. package/dist/client/cache/memory.advanced.js +19 -7
  11. package/dist/client/cache/memory.d.ts +24 -7
  12. package/dist/client/cache/memory.d.ts.map +1 -1
  13. package/dist/client/cache/memory.js +76 -18
  14. package/dist/client/client.d.ts +27 -6
  15. package/dist/client/client.d.ts.map +1 -1
  16. package/dist/client/client.js +113 -22
  17. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  18. package/dist/client/clientPublicMainnet.js +13 -2
  19. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  20. package/dist/client/clientPublicTestnet.js +13 -2
  21. package/dist/client/clientTypes.advanced.d.ts +3 -0
  22. package/dist/client/clientTypes.advanced.d.ts.map +1 -1
  23. package/dist/client/clientTypes.advanced.js +3 -0
  24. package/dist/client/clientTypes.d.ts +110 -13
  25. package/dist/client/clientTypes.d.ts.map +1 -1
  26. package/dist/client/clientTypes.js +118 -4
  27. package/dist/client/jsonRpc/client.d.ts +4 -4
  28. package/dist/client/jsonRpc/client.d.ts.map +1 -1
  29. package/dist/client/jsonRpc/client.js +4 -4
  30. package/dist/client/jsonRpc/transformers.js +3 -3
  31. package/dist/jsonRpc/requestor.d.ts +1 -0
  32. package/dist/jsonRpc/requestor.d.ts.map +1 -1
  33. package/dist/jsonRpc/requestor.js +4 -2
  34. package/dist/jsonRpc/transports/advanced.d.ts +1 -0
  35. package/dist/jsonRpc/transports/advanced.d.ts.map +1 -1
  36. package/dist/jsonRpc/transports/advanced.js +1 -0
  37. package/dist/jsonRpc/transports/fallback.d.ts +8 -0
  38. package/dist/jsonRpc/transports/fallback.d.ts.map +1 -0
  39. package/dist/jsonRpc/transports/fallback.js +22 -0
  40. package/dist/jsonRpc/transports/webSocket.d.ts.map +1 -1
  41. package/dist/jsonRpc/transports/webSocket.js +7 -3
  42. package/dist/molecule/predefined.d.ts +10 -10
  43. package/dist/molecule/predefined.d.ts.map +1 -1
  44. package/dist/utils/index.d.ts +4 -0
  45. package/dist/utils/index.d.ts.map +1 -1
  46. package/dist/utils/index.js +13 -1
  47. package/dist.commonjs/advanced.js +17 -7
  48. package/dist.commonjs/ckb/transaction.d.ts +57 -4
  49. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  50. package/dist.commonjs/ckb/transaction.js +83 -26
  51. package/dist.commonjs/client/cache/cache.d.ts +67 -11
  52. package/dist.commonjs/client/cache/cache.d.ts.map +1 -1
  53. package/dist.commonjs/client/cache/cache.js +94 -9
  54. package/dist.commonjs/client/cache/memory.advanced.d.ts +2 -2
  55. package/dist.commonjs/client/cache/memory.advanced.d.ts.map +1 -1
  56. package/dist.commonjs/client/cache/memory.advanced.js +19 -7
  57. package/dist.commonjs/client/cache/memory.d.ts +24 -7
  58. package/dist.commonjs/client/cache/memory.d.ts.map +1 -1
  59. package/dist.commonjs/client/cache/memory.js +75 -17
  60. package/dist.commonjs/client/client.d.ts +27 -6
  61. package/dist.commonjs/client/client.d.ts.map +1 -1
  62. package/dist.commonjs/client/client.js +111 -20
  63. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  64. package/dist.commonjs/client/clientPublicMainnet.js +13 -2
  65. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
  66. package/dist.commonjs/client/clientPublicTestnet.js +13 -2
  67. package/dist.commonjs/client/clientTypes.advanced.d.ts +3 -0
  68. package/dist.commonjs/client/clientTypes.advanced.d.ts.map +1 -1
  69. package/dist.commonjs/client/clientTypes.advanced.js +4 -0
  70. package/dist.commonjs/client/clientTypes.d.ts +110 -13
  71. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  72. package/dist.commonjs/client/clientTypes.js +123 -4
  73. package/dist.commonjs/client/jsonRpc/client.d.ts +4 -4
  74. package/dist.commonjs/client/jsonRpc/client.d.ts.map +1 -1
  75. package/dist.commonjs/client/jsonRpc/client.js +4 -4
  76. package/dist.commonjs/client/jsonRpc/transformers.js +2 -2
  77. package/dist.commonjs/index.js +17 -7
  78. package/dist.commonjs/jsonRpc/requestor.d.ts +1 -0
  79. package/dist.commonjs/jsonRpc/requestor.d.ts.map +1 -1
  80. package/dist.commonjs/jsonRpc/requestor.js +3 -1
  81. package/dist.commonjs/jsonRpc/transports/advanced.d.ts +1 -0
  82. package/dist.commonjs/jsonRpc/transports/advanced.d.ts.map +1 -1
  83. package/dist.commonjs/jsonRpc/transports/advanced.js +1 -0
  84. package/dist.commonjs/jsonRpc/transports/fallback.d.ts +8 -0
  85. package/dist.commonjs/jsonRpc/transports/fallback.d.ts.map +1 -0
  86. package/dist.commonjs/jsonRpc/transports/fallback.js +26 -0
  87. package/dist.commonjs/jsonRpc/transports/webSocket.d.ts.map +1 -1
  88. package/dist.commonjs/jsonRpc/transports/webSocket.js +7 -3
  89. package/dist.commonjs/molecule/index.js +17 -7
  90. package/dist.commonjs/utils/index.d.ts +4 -0
  91. package/dist.commonjs/utils/index.d.ts.map +1 -1
  92. package/dist.commonjs/utils/index.js +13 -0
  93. package/package.json +1 -1
  94. package/src/ckb/transaction.ts +112 -41
  95. package/src/client/cache/cache.ts +126 -13
  96. package/src/client/cache/memory.advanced.ts +24 -7
  97. package/src/client/cache/memory.ts +130 -30
  98. package/src/client/client.ts +170 -27
  99. package/src/client/clientPublicMainnet.ts +14 -2
  100. package/src/client/clientPublicTestnet.ts +14 -2
  101. package/src/client/clientTypes.advanced.ts +4 -0
  102. package/src/client/clientTypes.ts +224 -33
  103. package/src/client/jsonRpc/client.ts +11 -9
  104. package/src/client/jsonRpc/transformers.ts +2 -2
  105. package/src/jsonRpc/requestor.ts +10 -1
  106. package/src/jsonRpc/transports/advanced.ts +1 -0
  107. package/src/jsonRpc/transports/fallback.ts +27 -0
  108. package/src/jsonRpc/transports/webSocket.ts +17 -13
  109. package/src/utils/index.ts +14 -1
@@ -1,4 +1,4 @@
1
- import { Cell, CellDep, CellDepLike, Epoch, HashType, HashTypeLike, OutPoint, OutPointLike, Script, ScriptLike, Transaction } from "../ckb/index.js";
1
+ import { Cell, CellDep, CellDepLike, Epoch, EpochLike, HashType, HashTypeLike, OutPoint, OutPointLike, Script, ScriptLike, Transaction, TransactionLike } from "../ckb/index.js";
2
2
  import { Hex, HexLike } from "../hex/index.js";
3
3
  import { Num, NumLike } from "../num/index.js";
4
4
  import { ClientCollectableSearchKeyFilterLike, ClientCollectableSearchKeyLike } from "./clientTypes.advanced.js";
@@ -72,15 +72,30 @@ export type TransactionStatus = "sent" | "pending" | "proposed" | "committed" |
72
72
  /**
73
73
  * @public
74
74
  */
75
- export type ClientTransactionResponse = {
76
- transaction: Transaction;
75
+ export type ClientTransactionResponseLike = {
76
+ transaction: TransactionLike;
77
77
  status: TransactionStatus;
78
- cycles?: Num;
79
- blockHash?: Hex;
80
- blockNumber?: Num;
81
- txIndex?: Num;
78
+ cycles?: NumLike;
79
+ blockHash?: HexLike;
80
+ blockNumber?: NumLike;
81
+ txIndex?: NumLike;
82
82
  reason?: string;
83
83
  };
84
+ /**
85
+ * @public
86
+ */
87
+ export declare class ClientTransactionResponse {
88
+ transaction: Transaction;
89
+ status: TransactionStatus;
90
+ cycles?: Num | undefined;
91
+ blockHash?: Hex | undefined;
92
+ blockNumber?: Num | undefined;
93
+ txIndex?: Num | undefined;
94
+ reason?: string | undefined;
95
+ constructor(transaction: Transaction, status: TransactionStatus, cycles?: Num | undefined, blockHash?: Hex | undefined, blockNumber?: Num | undefined, txIndex?: Num | undefined, reason?: string | undefined);
96
+ static from(responseLike: ClientTransactionResponseLike): ClientTransactionResponse;
97
+ clone(): ClientTransactionResponse;
98
+ }
84
99
  /**
85
100
  * @public
86
101
  */
@@ -176,7 +191,44 @@ export type ClientFindTransactionsGroupedResponse = {
176
191
  /**
177
192
  * @public
178
193
  */
179
- export type ClientBlockHeader = {
194
+ export type ClientBlockHeaderLike = {
195
+ compactTarget: NumLike;
196
+ dao: {
197
+ /**
198
+ * C_i: the total issuance up to and including block i.
199
+ */
200
+ c: NumLike;
201
+ /**
202
+ * AR_i: the current accumulated rate at block i.
203
+ * AR_j / AR_i reflects the CKByte amount if one deposit 1 CKB to Nervos DAO at block i, and withdraw at block j.
204
+ */
205
+ ar: NumLike;
206
+ /**
207
+ * S_i: the total unissued secondary issuance up to and including block i,
208
+ * including unclaimed Nervos DAO compensation and treasury funds.
209
+ */
210
+ s: NumLike;
211
+ /**
212
+ * U_i: the total occupied capacities currently in the blockchain up to and including block i.
213
+ * Occupied capacity is the sum of capacities used to store all cells.
214
+ */
215
+ u: NumLike;
216
+ };
217
+ epoch: EpochLike;
218
+ extraHash: HexLike;
219
+ hash: HexLike;
220
+ nonce: NumLike;
221
+ number: NumLike;
222
+ parentHash: HexLike;
223
+ proposalsHash: HexLike;
224
+ timestamp: NumLike;
225
+ transactionsRoot: HexLike;
226
+ version: NumLike;
227
+ };
228
+ /**
229
+ * @public
230
+ */
231
+ export declare class ClientBlockHeader {
180
232
  compactTarget: Num;
181
233
  dao: {
182
234
  /**
@@ -209,23 +261,65 @@ export type ClientBlockHeader = {
209
261
  timestamp: Num;
210
262
  transactionsRoot: Hex;
211
263
  version: Num;
264
+ constructor(compactTarget: Num, dao: {
265
+ /**
266
+ * C_i: the total issuance up to and including block i.
267
+ */
268
+ c: Num;
269
+ /**
270
+ * AR_i: the current accumulated rate at block i.
271
+ * AR_j / AR_i reflects the CKByte amount if one deposit 1 CKB to Nervos DAO at block i, and withdraw at block j.
272
+ */
273
+ ar: Num;
274
+ /**
275
+ * S_i: the total unissued secondary issuance up to and including block i,
276
+ * including unclaimed Nervos DAO compensation and treasury funds.
277
+ */
278
+ s: Num;
279
+ /**
280
+ * U_i: the total occupied capacities currently in the blockchain up to and including block i.
281
+ * Occupied capacity is the sum of capacities used to store all cells.
282
+ */
283
+ u: Num;
284
+ }, epoch: Epoch, extraHash: Hex, hash: Hex, nonce: Num, number: Num, parentHash: Hex, proposalsHash: Hex, timestamp: Num, transactionsRoot: Hex, version: Num);
285
+ static from(headerLike: ClientBlockHeaderLike): ClientBlockHeader;
286
+ }
287
+ /**
288
+ * @public
289
+ */
290
+ export type ClientBlockUncleLike = {
291
+ header: ClientBlockHeaderLike;
292
+ proposals: HexLike[];
212
293
  };
213
294
  /**
214
295
  * @public
215
296
  */
216
- export type ClientBlockUncle = {
297
+ export declare class ClientBlockUncle {
217
298
  header: ClientBlockHeader;
218
299
  proposals: Hex[];
300
+ constructor(header: ClientBlockHeader, proposals: Hex[]);
301
+ static from(uncleLike: ClientBlockUncleLike): ClientBlockUncle;
302
+ }
303
+ /**
304
+ * @public
305
+ */
306
+ export type ClientBlockLike = {
307
+ header: ClientBlockHeaderLike;
308
+ proposals: HexLike[];
309
+ transactions: TransactionLike[];
310
+ uncles: ClientBlockUncleLike[];
219
311
  };
220
312
  /**
221
313
  * @public
222
314
  */
223
- export type ClientBlock = {
315
+ export declare class ClientBlock {
224
316
  header: ClientBlockHeader;
225
317
  proposals: Hex[];
226
318
  transactions: Transaction[];
227
319
  uncles: ClientBlockUncle[];
228
- };
320
+ constructor(header: ClientBlockHeader, proposals: Hex[], transactions: Transaction[], uncles: ClientBlockUncle[]);
321
+ static from(blockLike: ClientBlockLike): ClientBlock;
322
+ }
229
323
  export interface ErrorClientBaseLike {
230
324
  message?: string;
231
325
  code?: number;
@@ -257,7 +351,10 @@ export declare class ErrorClientRBFRejected extends ErrorClientBase {
257
351
  readonly leastFee: Num;
258
352
  constructor(origin: ErrorClientBaseLike, currentFee: NumLike, leastFee: NumLike);
259
353
  }
260
- export declare class ErrorClientWaitTransactionTimeout extends Error {
261
- constructor();
354
+ export declare class ErrorClientWaitTransactionTimeout extends ErrorClientBase {
355
+ constructor(timeoutLike: NumLike);
356
+ }
357
+ export declare class ErrorClientMaxFeeRateExceeded extends ErrorClientBase {
358
+ constructor(limitLike: NumLike, actualLike: NumLike);
262
359
  }
263
360
  //# sourceMappingURL=clientTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientTypes.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientTypes.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CellDep, OutPoint, Script, hashTypeFrom, } from "../ckb/index.js";
1
+ import { CellDep, OutPoint, Script, Transaction, epochFrom, hashTypeFrom, } from "../ckb/index.js";
2
2
  import { hexFrom } from "../hex/index.js";
3
3
  import { numFrom } from "../num/index.js";
4
4
  import { apply } from "../utils/index.js";
@@ -39,6 +39,9 @@ export class CellDepInfo {
39
39
  this.type = type;
40
40
  }
41
41
  static from(cellDepInfoLike) {
42
+ if (cellDepInfoLike instanceof CellDepInfo) {
43
+ return cellDepInfoLike;
44
+ }
42
45
  return new CellDepInfo(CellDep.from(cellDepInfoLike.cellDep), apply(Script.from, cellDepInfoLike.type));
43
46
  }
44
47
  }
@@ -52,9 +55,35 @@ export class ScriptInfo {
52
55
  this.cellDeps = cellDeps;
53
56
  }
54
57
  static from(scriptInfoLike) {
58
+ if (scriptInfoLike instanceof ScriptInfo) {
59
+ return scriptInfoLike;
60
+ }
55
61
  return new ScriptInfo(hexFrom(scriptInfoLike.codeHash), hashTypeFrom(scriptInfoLike.hashType), scriptInfoLike.cellDeps.map((c) => CellDepInfo.from(c)));
56
62
  }
57
63
  }
64
+ /**
65
+ * @public
66
+ */
67
+ export class ClientTransactionResponse {
68
+ constructor(transaction, status, cycles, blockHash, blockNumber, txIndex, reason) {
69
+ this.transaction = transaction;
70
+ this.status = status;
71
+ this.cycles = cycles;
72
+ this.blockHash = blockHash;
73
+ this.blockNumber = blockNumber;
74
+ this.txIndex = txIndex;
75
+ this.reason = reason;
76
+ }
77
+ static from(responseLike) {
78
+ if (responseLike instanceof ClientTransactionResponse) {
79
+ return responseLike;
80
+ }
81
+ return new ClientTransactionResponse(Transaction.from(responseLike.transaction), responseLike.status, apply(numFrom, responseLike.cycles), apply(hexFrom, responseLike.blockHash), apply(numFrom, responseLike.blockNumber), apply(numFrom, responseLike.txIndex), responseLike.reason);
82
+ }
83
+ clone() {
84
+ return new ClientTransactionResponse(this.transaction.clone(), this.status, this.cycles, this.blockHash, this.blockNumber, this.txIndex, this.reason);
85
+ }
86
+ }
58
87
  /**
59
88
  * @public
60
89
  */
@@ -69,6 +98,9 @@ export class ClientIndexerSearchKeyFilter {
69
98
  this.blockRange = blockRange;
70
99
  }
71
100
  static from(filterLike) {
101
+ if (filterLike instanceof ClientIndexerSearchKeyFilter) {
102
+ return filterLike;
103
+ }
72
104
  return new ClientIndexerSearchKeyFilter(apply(Script.from, filterLike.script), apply(clientSearchKeyRangeFrom, filterLike.scriptLenRange), apply(hexFrom, filterLike.outputData), filterLike.outputDataSearchMode ?? undefined, apply(clientSearchKeyRangeFrom, filterLike.outputDataLenRange), apply(clientSearchKeyRangeFrom, filterLike.outputCapacityRange), apply(clientSearchKeyRangeFrom, filterLike.blockRange));
73
105
  }
74
106
  }
@@ -84,6 +116,9 @@ export class ClientIndexerSearchKey {
84
116
  this.withData = withData;
85
117
  }
86
118
  static from(keyLike) {
119
+ if (keyLike instanceof ClientIndexerSearchKey) {
120
+ return keyLike;
121
+ }
87
122
  return new ClientIndexerSearchKey(Script.from(keyLike.script), keyLike.scriptType, keyLike.scriptSearchMode, apply(ClientIndexerSearchKeyFilter.from, keyLike.filter), keyLike.withData ?? undefined);
88
123
  }
89
124
  }
@@ -99,9 +134,74 @@ export class ClientIndexerSearchKeyTransaction {
99
134
  this.groupByTransaction = groupByTransaction;
100
135
  }
101
136
  static from(keyLike) {
137
+ if (keyLike instanceof ClientIndexerSearchKeyTransaction) {
138
+ return keyLike;
139
+ }
102
140
  return new ClientIndexerSearchKeyTransaction(Script.from(keyLike.script), keyLike.scriptType, keyLike.scriptSearchMode, apply(ClientIndexerSearchKeyFilter.from, keyLike.filter), keyLike.groupByTransaction ?? undefined);
103
141
  }
104
142
  }
143
+ /**
144
+ * @public
145
+ */
146
+ export class ClientBlockHeader {
147
+ constructor(compactTarget, dao, epoch, extraHash, hash, nonce, number, parentHash, proposalsHash, timestamp, transactionsRoot, version) {
148
+ this.compactTarget = compactTarget;
149
+ this.dao = dao;
150
+ this.epoch = epoch;
151
+ this.extraHash = extraHash;
152
+ this.hash = hash;
153
+ this.nonce = nonce;
154
+ this.number = number;
155
+ this.parentHash = parentHash;
156
+ this.proposalsHash = proposalsHash;
157
+ this.timestamp = timestamp;
158
+ this.transactionsRoot = transactionsRoot;
159
+ this.version = version;
160
+ }
161
+ static from(headerLike) {
162
+ if (headerLike instanceof ClientBlockHeader) {
163
+ return headerLike;
164
+ }
165
+ return new ClientBlockHeader(numFrom(headerLike.compactTarget), {
166
+ c: numFrom(headerLike.dao.c),
167
+ ar: numFrom(headerLike.dao.ar),
168
+ s: numFrom(headerLike.dao.s),
169
+ u: numFrom(headerLike.dao.u),
170
+ }, epochFrom(headerLike.epoch), hexFrom(headerLike.extraHash), hexFrom(headerLike.hash), numFrom(headerLike.nonce), numFrom(headerLike.number), hexFrom(headerLike.parentHash), hexFrom(headerLike.proposalsHash), numFrom(headerLike.timestamp), hexFrom(headerLike.transactionsRoot), numFrom(headerLike.version));
171
+ }
172
+ }
173
+ /**
174
+ * @public
175
+ */
176
+ export class ClientBlockUncle {
177
+ constructor(header, proposals) {
178
+ this.header = header;
179
+ this.proposals = proposals;
180
+ }
181
+ static from(uncleLike) {
182
+ if (uncleLike instanceof ClientBlockUncle) {
183
+ return uncleLike;
184
+ }
185
+ return new ClientBlockUncle(ClientBlockHeader.from(uncleLike.header), uncleLike.proposals.map(hexFrom));
186
+ }
187
+ }
188
+ /**
189
+ * @public
190
+ */
191
+ export class ClientBlock {
192
+ constructor(header, proposals, transactions, uncles) {
193
+ this.header = header;
194
+ this.proposals = proposals;
195
+ this.transactions = transactions;
196
+ this.uncles = uncles;
197
+ }
198
+ static from(blockLike) {
199
+ if (blockLike instanceof ClientBlock) {
200
+ return blockLike;
201
+ }
202
+ return new ClientBlock(ClientBlockHeader.from(blockLike.header), blockLike.proposals.map(hexFrom), blockLike.transactions.map(Transaction.from), blockLike.uncles.map(ClientBlockUncle.from));
203
+ }
204
+ }
105
205
  export class ErrorClientBase extends Error {
106
206
  constructor(origin) {
107
207
  super(`Client request error ${origin.message}`);
@@ -138,8 +238,22 @@ export class ErrorClientRBFRejected extends ErrorClientBase {
138
238
  this.leastFee = numFrom(leastFee);
139
239
  }
140
240
  }
141
- export class ErrorClientWaitTransactionTimeout extends Error {
142
- constructor() {
143
- super("Wait transaction timeout");
241
+ export class ErrorClientWaitTransactionTimeout extends ErrorClientBase {
242
+ constructor(timeoutLike) {
243
+ const timeout = numFrom(timeoutLike).toString();
244
+ super({
245
+ message: `Wait transaction timeout ${timeout}ms`,
246
+ data: JSON.stringify({ timeout }),
247
+ });
248
+ }
249
+ }
250
+ export class ErrorClientMaxFeeRateExceeded extends ErrorClientBase {
251
+ constructor(limitLike, actualLike) {
252
+ const limit = numFrom(limitLike).toString();
253
+ const actual = numFrom(actualLike).toString();
254
+ super({
255
+ message: `Max fee rate exceeded limit ${limit}, actual ${actual}. Developer might forgot to complete transaction fee before sending. See https://docs.ckbccc.com/classes/_ckb_ccc_core.index.ccc.Transaction.html#completeFeeBy.`,
256
+ data: JSON.stringify({ limit, actual }),
257
+ });
144
258
  }
145
259
  }
@@ -55,7 +55,7 @@ export declare abstract class ClientJsonRpc extends Client {
55
55
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
56
56
  * @returns Block
57
57
  */
58
- getBlockByNumber: Client["getBlockByNumber"];
58
+ getBlockByNumberNoCache: Client["getBlockByNumberNoCache"];
59
59
  /**
60
60
  * Get block by block hash
61
61
  *
@@ -64,7 +64,7 @@ export declare abstract class ClientJsonRpc extends Client {
64
64
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
65
65
  * @returns Block
66
66
  */
67
- getBlockByHash: Client["getBlockByHash"];
67
+ getBlockByHashNoCache: Client["getBlockByHashNoCache"];
68
68
  /**
69
69
  * Get header by block number
70
70
  *
@@ -72,7 +72,7 @@ export declare abstract class ClientJsonRpc extends Client {
72
72
  * @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
73
73
  * @returns BlockHeader
74
74
  */
75
- getHeaderByNumber: Client["getHeaderByNumber"];
75
+ getHeaderByNumberNoCache: Client["getHeaderByNumberNoCache"];
76
76
  /**
77
77
  * Get header by block hash
78
78
  *
@@ -80,7 +80,7 @@ export declare abstract class ClientJsonRpc extends Client {
80
80
  * @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
81
81
  * @returns BlockHeader
82
82
  */
83
- getHeaderByHash: Client["getHeaderByHash"];
83
+ getHeaderByHashNoCache: Client["getHeaderByHashNoCache"];
84
84
  /**
85
85
  * Estimate cycles of a transaction.
86
86
  *
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/client.ts"],"names":[],"mappings":"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"}
@@ -71,7 +71,7 @@ export class ClientJsonRpc extends Client {
71
71
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
72
72
  * @returns Block
73
73
  */
74
- this.getBlockByNumber = this.buildSender("get_block_by_number", [(v) => numToHex(numFrom(v))], (b) => apply(JsonRpcTransformers.blockTo, b));
74
+ this.getBlockByNumberNoCache = this.buildSender("get_block_by_number", [(v) => numToHex(numFrom(v))], (b) => apply(JsonRpcTransformers.blockTo, b));
75
75
  /**
76
76
  * Get block by block hash
77
77
  *
@@ -80,7 +80,7 @@ export class ClientJsonRpc extends Client {
80
80
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
81
81
  * @returns Block
82
82
  */
83
- this.getBlockByHash = this.buildSender("get_block", [hexFrom], (b) => apply(JsonRpcTransformers.blockTo, b));
83
+ this.getBlockByHashNoCache = this.buildSender("get_block", [hexFrom], (b) => apply(JsonRpcTransformers.blockTo, b));
84
84
  /**
85
85
  * Get header by block number
86
86
  *
@@ -88,7 +88,7 @@ export class ClientJsonRpc extends Client {
88
88
  * @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
89
89
  * @returns BlockHeader
90
90
  */
91
- this.getHeaderByNumber = this.buildSender("get_header_by_number", [(v) => numToHex(numFrom(v))], (b) => apply(JsonRpcTransformers.blockHeaderTo, b));
91
+ this.getHeaderByNumberNoCache = this.buildSender("get_header_by_number", [(v) => numToHex(numFrom(v))], (b) => apply(JsonRpcTransformers.blockHeaderTo, b));
92
92
  /**
93
93
  * Get header by block hash
94
94
  *
@@ -96,7 +96,7 @@ export class ClientJsonRpc extends Client {
96
96
  * @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
97
97
  * @returns BlockHeader
98
98
  */
99
- this.getHeaderByHash = this.buildSender("get_header", [hexFrom], (b) => apply(JsonRpcTransformers.blockHeaderTo, b));
99
+ this.getHeaderByHashNoCache = this.buildSender("get_header", [hexFrom], (b) => apply(JsonRpcTransformers.blockHeaderTo, b));
100
100
  /**
101
101
  * Estimate cycles of a transaction.
102
102
  *
@@ -3,7 +3,7 @@ import { Cell, CellDep, CellInput, CellOutput, OutPoint, Script, Transaction, de
3
3
  import { hexFrom } from "../../hex/index.js";
4
4
  import { numFrom, numLeFromBytes, numToHex } from "../../num/index.js";
5
5
  import { apply } from "../../utils/index.js";
6
- import { ClientIndexerSearchKey, ClientIndexerSearchKeyTransaction, } from "../clientTypes.js";
6
+ import { ClientIndexerSearchKey, ClientIndexerSearchKeyTransaction, ClientTransactionResponse, } from "../clientTypes.js";
7
7
  export class JsonRpcTransformers {
8
8
  static hashTypeFrom(hashType) {
9
9
  return hashTypeFrom(hashType);
@@ -121,7 +121,7 @@ export class JsonRpcTransformers {
121
121
  if (transaction == null) {
122
122
  return;
123
123
  }
124
- return {
124
+ return ClientTransactionResponse.from({
125
125
  transaction: JsonRpcTransformers.transactionTo(transaction),
126
126
  status,
127
127
  cycles: apply(numFrom, cycles),
@@ -129,7 +129,7 @@ export class JsonRpcTransformers {
129
129
  blockNumber: apply(numFrom, block_number),
130
130
  txIndex: apply(numFrom, tx_index),
131
131
  reason,
132
- };
132
+ });
133
133
  }
134
134
  static blockHeaderTo(header) {
135
135
  const dao = bytesFrom(header.dao);
@@ -1,5 +1,6 @@
1
1
  import { JsonRpcPayload, Transport } from "./transports/advanced.js";
2
2
  export type RequestorJsonRpcConfig = {
3
+ fallbacks?: string[];
3
4
  timeout?: number;
4
5
  maxConcurrent?: number;
5
6
  transport?: Transport;
@@ -1 +1 @@
1
- {"version":3,"file":"requestor.d.ts","sourceRoot":"","sources":["../../src/jsonRpc/requestor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EAEV,MAAM,0BAA0B,CAAC;AAsBlC,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,qBAAa,gBAAgB;IAgBzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAjB3B,SAAgB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,SAAgB,SAAS,EAAE,SAAS,CAAC;IAErC,OAAO,CAAC,EAAE,CAAK;IAEf;;;;;OAKG;gBAEgB,IAAI,EAAE,MAAM,EAC7B,MAAM,CAAC,EAAE,sBAAsB,EACd,OAAO,CAAC,GAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,aAAA;IAMnE;;;;OAIG;IAEH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;;;;;OAQG;IACG,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EAEjB,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,EAEtD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,GACnC,OAAO,CAAC,OAAO,CAAC;IA6Bb,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B/D;;;;;;OAMG;IAEH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQ7D"}
1
+ {"version":3,"file":"requestor.d.ts","sourceRoot":"","sources":["../../src/jsonRpc/requestor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EAGV,MAAM,0BAA0B,CAAC;AAsBlC,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,qBAAa,gBAAgB;IAgBzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAjB3B,SAAgB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,SAAgB,SAAS,EAAE,SAAS,CAAC;IAErC,OAAO,CAAC,EAAE,CAAK;IAEf;;;;;OAKG;gBAEgB,IAAI,EAAE,MAAM,EAC7B,MAAM,CAAC,EAAE,sBAAsB,EACd,OAAO,CAAC,GAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,aAAA;IAanE;;;;OAIG;IAEH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;;;;;OAQG;IACG,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EAEjB,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,EAEtD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,GACnC,OAAO,CAAC,OAAO,CAAC;IA6Bb,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B/D;;;;;;OAMG;IAEH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQ7D"}
@@ -1,4 +1,4 @@
1
- import { transportFromUri, } from "./transports/advanced.js";
1
+ import { TransportFallback, transportFromUri, } from "./transports/advanced.js";
2
2
  /**
3
3
  * Applies a transformation function to a value if the transformer is provided.
4
4
  *
@@ -32,7 +32,9 @@ export class RequestorJsonRpc {
32
32
  this.pending = [];
33
33
  this.id = 0;
34
34
  this.maxConcurrent = config?.maxConcurrent;
35
- this.transport = config?.transport ?? transportFromUri(url_, config);
35
+ this.transport =
36
+ config?.transport ??
37
+ new TransportFallback(Array.from(new Set([url_, ...(config?.fallbacks ?? [])]).values(), (url) => transportFromUri(url, config)));
36
38
  }
37
39
  /**
38
40
  * Returns the URL of the JSON-RPC server.
@@ -1,4 +1,5 @@
1
1
  export * from "./factory.js";
2
+ export * from "./fallback.js";
2
3
  export * from "./http.js";
3
4
  export * from "./transport.js";
4
5
  export * from "./webSocket.js";
@@ -1 +1 @@
1
- {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./factory.js";
2
+ export * from "./fallback.js";
2
3
  export * from "./http.js";
3
4
  export * from "./transport.js";
4
5
  export * from "./webSocket.js";
@@ -0,0 +1,8 @@
1
+ import { JsonRpcPayload, Transport } from "./transport.js";
2
+ export declare class TransportFallback implements Transport {
3
+ private readonly transports;
4
+ private i;
5
+ constructor(transports: Transport[]);
6
+ request(data: JsonRpcPayload): Promise<unknown>;
7
+ }
8
+ //# sourceMappingURL=fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/fallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,iBAAkB,YAAW,SAAS;IAIrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,CAAC,CAAK;gBAEe,UAAU,EAAE,SAAS,EAAE;IAE9C,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;CAkBtD"}
@@ -0,0 +1,22 @@
1
+ export class TransportFallback {
2
+ constructor(transports) {
3
+ this.transports = transports;
4
+ // Current transport index
5
+ this.i = 0;
6
+ }
7
+ async request(data) {
8
+ let triedCount = 0;
9
+ while (true) {
10
+ try {
11
+ return await this.transports[this.i % this.transports.length].request(data);
12
+ }
13
+ catch (err) {
14
+ triedCount += 1;
15
+ this.i += 1;
16
+ if (triedCount >= this.transports.length) {
17
+ throw err;
18
+ }
19
+ }
20
+ }
21
+ }
22
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,kBAAmB,YAAW,SAAS;IAahD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb1B,OAAO,CAAC,OAAO,CAOD;IACd,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAqB;gBAGrB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAGlC,OAAO,CAAC,IAAI,EAAE,cAAc;CAyF7B"}
1
+ {"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,kBAAmB,YAAW,SAAS;IAahD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb1B,OAAO,CAAC,OAAO,CAOD;IACd,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAqB;gBAGrB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAGlC,OAAO,CAAC,IAAI,EAAE,cAAc;CA6F7B"}
@@ -62,12 +62,15 @@ export class TransportWebSocket {
62
62
  reject,
63
63
  setTimeout(() => {
64
64
  this.ongoing.delete(data.id);
65
- void socket.then((socket) => socket.close());
65
+ void socket
66
+ .then((socket) => socket.close())
67
+ .catch((err) => reject(err));
66
68
  reject(new Error("Request timeout"));
67
69
  }, this.timeout),
68
70
  ];
69
71
  this.ongoing.set(data.id, req);
70
- void socket.then((socket) => {
72
+ void socket
73
+ .then((socket) => {
71
74
  if (socket.readyState === socket.CLOSED ||
72
75
  socket.readyState === socket.CLOSING) {
73
76
  clearTimeout(req[2]);
@@ -77,7 +80,8 @@ export class TransportWebSocket {
77
80
  else {
78
81
  socket.send(JSON.stringify(data));
79
82
  }
80
- });
83
+ })
84
+ .catch((err) => reject(err));
81
85
  });
82
86
  }
83
87
  }