@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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrorClientWaitTransactionTimeout = exports.ErrorClientRBFRejected = exports.ErrorClientDuplicatedTransaction = exports.ErrorClientVerification = exports.ErrorClientResolveUnknown = exports.ErrorClientBase = exports.ClientIndexerSearchKeyTransaction = exports.ClientIndexerSearchKey = exports.ClientIndexerSearchKeyFilter = exports.ScriptInfo = exports.CellDepInfo = exports.KnownScript = void 0;
3
+ exports.ErrorClientMaxFeeRateExceeded = exports.ErrorClientWaitTransactionTimeout = exports.ErrorClientRBFRejected = exports.ErrorClientDuplicatedTransaction = exports.ErrorClientVerification = exports.ErrorClientResolveUnknown = exports.ErrorClientBase = exports.ClientBlock = exports.ClientBlockUncle = exports.ClientBlockHeader = exports.ClientIndexerSearchKeyTransaction = exports.ClientIndexerSearchKey = exports.ClientIndexerSearchKeyFilter = exports.ClientTransactionResponse = exports.ScriptInfo = exports.CellDepInfo = exports.KnownScript = void 0;
4
4
  const index_js_1 = require("../ckb/index.js");
5
5
  const index_js_2 = require("../hex/index.js");
6
6
  const index_js_3 = require("../num/index.js");
@@ -42,6 +42,9 @@ class CellDepInfo {
42
42
  this.type = type;
43
43
  }
44
44
  static from(cellDepInfoLike) {
45
+ if (cellDepInfoLike instanceof CellDepInfo) {
46
+ return cellDepInfoLike;
47
+ }
45
48
  return new CellDepInfo(index_js_1.CellDep.from(cellDepInfoLike.cellDep), (0, index_js_4.apply)(index_js_1.Script.from, cellDepInfoLike.type));
46
49
  }
47
50
  }
@@ -56,10 +59,37 @@ class ScriptInfo {
56
59
  this.cellDeps = cellDeps;
57
60
  }
58
61
  static from(scriptInfoLike) {
62
+ if (scriptInfoLike instanceof ScriptInfo) {
63
+ return scriptInfoLike;
64
+ }
59
65
  return new ScriptInfo((0, index_js_2.hexFrom)(scriptInfoLike.codeHash), (0, index_js_1.hashTypeFrom)(scriptInfoLike.hashType), scriptInfoLike.cellDeps.map((c) => CellDepInfo.from(c)));
60
66
  }
61
67
  }
62
68
  exports.ScriptInfo = ScriptInfo;
69
+ /**
70
+ * @public
71
+ */
72
+ class ClientTransactionResponse {
73
+ constructor(transaction, status, cycles, blockHash, blockNumber, txIndex, reason) {
74
+ this.transaction = transaction;
75
+ this.status = status;
76
+ this.cycles = cycles;
77
+ this.blockHash = blockHash;
78
+ this.blockNumber = blockNumber;
79
+ this.txIndex = txIndex;
80
+ this.reason = reason;
81
+ }
82
+ static from(responseLike) {
83
+ if (responseLike instanceof ClientTransactionResponse) {
84
+ return responseLike;
85
+ }
86
+ return new ClientTransactionResponse(index_js_1.Transaction.from(responseLike.transaction), responseLike.status, (0, index_js_4.apply)(index_js_3.numFrom, responseLike.cycles), (0, index_js_4.apply)(index_js_2.hexFrom, responseLike.blockHash), (0, index_js_4.apply)(index_js_3.numFrom, responseLike.blockNumber), (0, index_js_4.apply)(index_js_3.numFrom, responseLike.txIndex), responseLike.reason);
87
+ }
88
+ clone() {
89
+ return new ClientTransactionResponse(this.transaction.clone(), this.status, this.cycles, this.blockHash, this.blockNumber, this.txIndex, this.reason);
90
+ }
91
+ }
92
+ exports.ClientTransactionResponse = ClientTransactionResponse;
63
93
  /**
64
94
  * @public
65
95
  */
@@ -74,6 +104,9 @@ class ClientIndexerSearchKeyFilter {
74
104
  this.blockRange = blockRange;
75
105
  }
76
106
  static from(filterLike) {
107
+ if (filterLike instanceof ClientIndexerSearchKeyFilter) {
108
+ return filterLike;
109
+ }
77
110
  return new ClientIndexerSearchKeyFilter((0, index_js_4.apply)(index_js_1.Script.from, filterLike.script), (0, index_js_4.apply)(clientTypes_advanced_js_1.clientSearchKeyRangeFrom, filterLike.scriptLenRange), (0, index_js_4.apply)(index_js_2.hexFrom, filterLike.outputData), filterLike.outputDataSearchMode ?? undefined, (0, index_js_4.apply)(clientTypes_advanced_js_1.clientSearchKeyRangeFrom, filterLike.outputDataLenRange), (0, index_js_4.apply)(clientTypes_advanced_js_1.clientSearchKeyRangeFrom, filterLike.outputCapacityRange), (0, index_js_4.apply)(clientTypes_advanced_js_1.clientSearchKeyRangeFrom, filterLike.blockRange));
78
111
  }
79
112
  }
@@ -90,6 +123,9 @@ class ClientIndexerSearchKey {
90
123
  this.withData = withData;
91
124
  }
92
125
  static from(keyLike) {
126
+ if (keyLike instanceof ClientIndexerSearchKey) {
127
+ return keyLike;
128
+ }
93
129
  return new ClientIndexerSearchKey(index_js_1.Script.from(keyLike.script), keyLike.scriptType, keyLike.scriptSearchMode, (0, index_js_4.apply)(ClientIndexerSearchKeyFilter.from, keyLike.filter), keyLike.withData ?? undefined);
94
130
  }
95
131
  }
@@ -106,10 +142,78 @@ class ClientIndexerSearchKeyTransaction {
106
142
  this.groupByTransaction = groupByTransaction;
107
143
  }
108
144
  static from(keyLike) {
145
+ if (keyLike instanceof ClientIndexerSearchKeyTransaction) {
146
+ return keyLike;
147
+ }
109
148
  return new ClientIndexerSearchKeyTransaction(index_js_1.Script.from(keyLike.script), keyLike.scriptType, keyLike.scriptSearchMode, (0, index_js_4.apply)(ClientIndexerSearchKeyFilter.from, keyLike.filter), keyLike.groupByTransaction ?? undefined);
110
149
  }
111
150
  }
112
151
  exports.ClientIndexerSearchKeyTransaction = ClientIndexerSearchKeyTransaction;
152
+ /**
153
+ * @public
154
+ */
155
+ class ClientBlockHeader {
156
+ constructor(compactTarget, dao, epoch, extraHash, hash, nonce, number, parentHash, proposalsHash, timestamp, transactionsRoot, version) {
157
+ this.compactTarget = compactTarget;
158
+ this.dao = dao;
159
+ this.epoch = epoch;
160
+ this.extraHash = extraHash;
161
+ this.hash = hash;
162
+ this.nonce = nonce;
163
+ this.number = number;
164
+ this.parentHash = parentHash;
165
+ this.proposalsHash = proposalsHash;
166
+ this.timestamp = timestamp;
167
+ this.transactionsRoot = transactionsRoot;
168
+ this.version = version;
169
+ }
170
+ static from(headerLike) {
171
+ if (headerLike instanceof ClientBlockHeader) {
172
+ return headerLike;
173
+ }
174
+ return new ClientBlockHeader((0, index_js_3.numFrom)(headerLike.compactTarget), {
175
+ c: (0, index_js_3.numFrom)(headerLike.dao.c),
176
+ ar: (0, index_js_3.numFrom)(headerLike.dao.ar),
177
+ s: (0, index_js_3.numFrom)(headerLike.dao.s),
178
+ u: (0, index_js_3.numFrom)(headerLike.dao.u),
179
+ }, (0, index_js_1.epochFrom)(headerLike.epoch), (0, index_js_2.hexFrom)(headerLike.extraHash), (0, index_js_2.hexFrom)(headerLike.hash), (0, index_js_3.numFrom)(headerLike.nonce), (0, index_js_3.numFrom)(headerLike.number), (0, index_js_2.hexFrom)(headerLike.parentHash), (0, index_js_2.hexFrom)(headerLike.proposalsHash), (0, index_js_3.numFrom)(headerLike.timestamp), (0, index_js_2.hexFrom)(headerLike.transactionsRoot), (0, index_js_3.numFrom)(headerLike.version));
180
+ }
181
+ }
182
+ exports.ClientBlockHeader = ClientBlockHeader;
183
+ /**
184
+ * @public
185
+ */
186
+ class ClientBlockUncle {
187
+ constructor(header, proposals) {
188
+ this.header = header;
189
+ this.proposals = proposals;
190
+ }
191
+ static from(uncleLike) {
192
+ if (uncleLike instanceof ClientBlockUncle) {
193
+ return uncleLike;
194
+ }
195
+ return new ClientBlockUncle(ClientBlockHeader.from(uncleLike.header), uncleLike.proposals.map(index_js_2.hexFrom));
196
+ }
197
+ }
198
+ exports.ClientBlockUncle = ClientBlockUncle;
199
+ /**
200
+ * @public
201
+ */
202
+ class ClientBlock {
203
+ constructor(header, proposals, transactions, uncles) {
204
+ this.header = header;
205
+ this.proposals = proposals;
206
+ this.transactions = transactions;
207
+ this.uncles = uncles;
208
+ }
209
+ static from(blockLike) {
210
+ if (blockLike instanceof ClientBlock) {
211
+ return blockLike;
212
+ }
213
+ return new ClientBlock(ClientBlockHeader.from(blockLike.header), blockLike.proposals.map(index_js_2.hexFrom), blockLike.transactions.map(index_js_1.Transaction.from), blockLike.uncles.map(ClientBlockUncle.from));
214
+ }
215
+ }
216
+ exports.ClientBlock = ClientBlock;
113
217
  class ErrorClientBase extends Error {
114
218
  constructor(origin) {
115
219
  super(`Client request error ${origin.message}`);
@@ -151,9 +255,24 @@ class ErrorClientRBFRejected extends ErrorClientBase {
151
255
  }
152
256
  }
153
257
  exports.ErrorClientRBFRejected = ErrorClientRBFRejected;
154
- class ErrorClientWaitTransactionTimeout extends Error {
155
- constructor() {
156
- super("Wait transaction timeout");
258
+ class ErrorClientWaitTransactionTimeout extends ErrorClientBase {
259
+ constructor(timeoutLike) {
260
+ const timeout = (0, index_js_3.numFrom)(timeoutLike).toString();
261
+ super({
262
+ message: `Wait transaction timeout ${timeout}ms`,
263
+ data: JSON.stringify({ timeout }),
264
+ });
157
265
  }
158
266
  }
159
267
  exports.ErrorClientWaitTransactionTimeout = ErrorClientWaitTransactionTimeout;
268
+ class ErrorClientMaxFeeRateExceeded extends ErrorClientBase {
269
+ constructor(limitLike, actualLike) {
270
+ const limit = (0, index_js_3.numFrom)(limitLike).toString();
271
+ const actual = (0, index_js_3.numFrom)(actualLike).toString();
272
+ super({
273
+ 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.`,
274
+ data: JSON.stringify({ limit, actual }),
275
+ });
276
+ }
277
+ }
278
+ exports.ErrorClientMaxFeeRateExceeded = ErrorClientMaxFeeRateExceeded;
@@ -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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"}
@@ -74,7 +74,7 @@ class ClientJsonRpc extends client_js_1.Client {
74
74
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
75
75
  * @returns Block
76
76
  */
77
- this.getBlockByNumber = this.buildSender("get_block_by_number", [(v) => (0, index_js_3.numToHex)((0, index_js_3.numFrom)(v))], (b) => (0, index_js_4.apply)(advanced_js_1.JsonRpcTransformers.blockTo, b));
77
+ this.getBlockByNumberNoCache = this.buildSender("get_block_by_number", [(v) => (0, index_js_3.numToHex)((0, index_js_3.numFrom)(v))], (b) => (0, index_js_4.apply)(advanced_js_1.JsonRpcTransformers.blockTo, b));
78
78
  /**
79
79
  * Get block by block hash
80
80
  *
@@ -83,7 +83,7 @@ class ClientJsonRpc extends client_js_1.Client {
83
83
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
84
84
  * @returns Block
85
85
  */
86
- this.getBlockByHash = this.buildSender("get_block", [index_js_2.hexFrom], (b) => (0, index_js_4.apply)(advanced_js_1.JsonRpcTransformers.blockTo, b));
86
+ this.getBlockByHashNoCache = this.buildSender("get_block", [index_js_2.hexFrom], (b) => (0, index_js_4.apply)(advanced_js_1.JsonRpcTransformers.blockTo, b));
87
87
  /**
88
88
  * Get header by block number
89
89
  *
@@ -91,7 +91,7 @@ class ClientJsonRpc extends client_js_1.Client {
91
91
  * @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
92
92
  * @returns BlockHeader
93
93
  */
94
- this.getHeaderByNumber = this.buildSender("get_header_by_number", [(v) => (0, index_js_3.numToHex)((0, index_js_3.numFrom)(v))], (b) => (0, index_js_4.apply)(advanced_js_1.JsonRpcTransformers.blockHeaderTo, b));
94
+ this.getHeaderByNumberNoCache = this.buildSender("get_header_by_number", [(v) => (0, index_js_3.numToHex)((0, index_js_3.numFrom)(v))], (b) => (0, index_js_4.apply)(advanced_js_1.JsonRpcTransformers.blockHeaderTo, b));
95
95
  /**
96
96
  * Get header by block hash
97
97
  *
@@ -99,7 +99,7 @@ class ClientJsonRpc extends client_js_1.Client {
99
99
  * @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
100
100
  * @returns BlockHeader
101
101
  */
102
- this.getHeaderByHash = this.buildSender("get_header", [index_js_2.hexFrom], (b) => (0, index_js_4.apply)(advanced_js_1.JsonRpcTransformers.blockHeaderTo, b));
102
+ this.getHeaderByHashNoCache = this.buildSender("get_header", [index_js_2.hexFrom], (b) => (0, index_js_4.apply)(advanced_js_1.JsonRpcTransformers.blockHeaderTo, b));
103
103
  /**
104
104
  * Estimate cycles of a transaction.
105
105
  *
@@ -124,7 +124,7 @@ class JsonRpcTransformers {
124
124
  if (transaction == null) {
125
125
  return;
126
126
  }
127
- return {
127
+ return clientTypes_js_1.ClientTransactionResponse.from({
128
128
  transaction: JsonRpcTransformers.transactionTo(transaction),
129
129
  status,
130
130
  cycles: (0, index_js_5.apply)(index_js_4.numFrom, cycles),
@@ -132,7 +132,7 @@ class JsonRpcTransformers {
132
132
  blockNumber: (0, index_js_5.apply)(index_js_4.numFrom, block_number),
133
133
  txIndex: (0, index_js_5.apply)(index_js_4.numFrom, tx_index),
134
134
  reason,
135
- };
135
+ });
136
136
  }
137
137
  static blockHeaderTo(header) {
138
138
  const dao = (0, index_js_1.bytesFrom)(header.dao);
@@ -18,13 +18,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
18
18
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
20
  };
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
39
  exports.ccc = void 0;
30
40
  __exportStar(require("./barrel.js"), exports);
@@ -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"}
@@ -35,7 +35,9 @@ class RequestorJsonRpc {
35
35
  this.pending = [];
36
36
  this.id = 0;
37
37
  this.maxConcurrent = config?.maxConcurrent;
38
- this.transport = config?.transport ?? (0, advanced_js_1.transportFromUri)(url_, config);
38
+ this.transport =
39
+ config?.transport ??
40
+ new advanced_js_1.TransportFallback(Array.from(new Set([url_, ...(config?.fallbacks ?? [])]).values(), (url) => (0, advanced_js_1.transportFromUri)(url, config)));
39
41
  }
40
42
  /**
41
43
  * 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"}
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./factory.js"), exports);
18
+ __exportStar(require("./fallback.js"), exports);
18
19
  __exportStar(require("./http.js"), exports);
19
20
  __exportStar(require("./transport.js"), exports);
20
21
  __exportStar(require("./webSocket.js"), exports);
@@ -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,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransportFallback = void 0;
4
+ class TransportFallback {
5
+ constructor(transports) {
6
+ this.transports = transports;
7
+ // Current transport index
8
+ this.i = 0;
9
+ }
10
+ async request(data) {
11
+ let triedCount = 0;
12
+ while (true) {
13
+ try {
14
+ return await this.transports[this.i % this.transports.length].request(data);
15
+ }
16
+ catch (err) {
17
+ triedCount += 1;
18
+ this.i += 1;
19
+ if (triedCount >= this.transports.length) {
20
+ throw err;
21
+ }
22
+ }
23
+ }
24
+ }
25
+ }
26
+ exports.TransportFallback = TransportFallback;
@@ -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"}
@@ -68,12 +68,15 @@ class TransportWebSocket {
68
68
  reject,
69
69
  setTimeout(() => {
70
70
  this.ongoing.delete(data.id);
71
- void socket.then((socket) => socket.close());
71
+ void socket
72
+ .then((socket) => socket.close())
73
+ .catch((err) => reject(err));
72
74
  reject(new Error("Request timeout"));
73
75
  }, this.timeout),
74
76
  ];
75
77
  this.ongoing.set(data.id, req);
76
- void socket.then((socket) => {
78
+ void socket
79
+ .then((socket) => {
77
80
  if (socket.readyState === socket.CLOSED ||
78
81
  socket.readyState === socket.CLOSING) {
79
82
  clearTimeout(req[2]);
@@ -83,7 +86,8 @@ class TransportWebSocket {
83
86
  else {
84
87
  socket.send(JSON.stringify(data));
85
88
  }
86
- });
89
+ })
90
+ .catch((err) => reject(err));
87
91
  });
88
92
  }
89
93
  }
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.mol = void 0;
27
37
  exports.mol = __importStar(require("./barrel.js"));
@@ -90,4 +90,8 @@ export type Constructor<T> = {
90
90
  * @public
91
91
  */
92
92
  export declare function isWebview(userAgent: string): boolean;
93
+ /**
94
+ * @public
95
+ */
96
+ export declare function stringify(val: unknown): string;
93
97
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GACf,SAAS,CAAC;AACb;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;AAChF;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACrE;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,GACd,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GAAG,IAAI,GACtB,SAAS,CAAC;AACb;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAC1B,CAAC,GAAG,SAAS,CAAC;AAoBjB;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,KACD,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GACtE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,CAAC,EAAE,KACR,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,EACvE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAAC;AAqCd,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,oBAEhC;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAE3B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAqB,MAAM,iBAAiB,CAAC;AAE7D;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GACf,SAAS,CAAC;AACb;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;AAChF;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACrE;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,GACd,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GAAG,IAAI,GACtB,SAAS,CAAC;AACb;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAC1B,CAAC,GAAG,SAAS,CAAC;AAoBjB;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,KACD,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GACtE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,CAAC,EAAE,KACR,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,EACvE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAAC;AAqCd,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,oBAEhC;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAE3B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,UAQrC"}
@@ -4,6 +4,7 @@ exports.apply = apply;
4
4
  exports.reduceAsync = reduceAsync;
5
5
  exports.sleep = sleep;
6
6
  exports.isWebview = isWebview;
7
+ exports.stringify = stringify;
7
8
  const index_js_1 = require("../num/index.js");
8
9
  /**
9
10
  * A type safe way to apply a transformer on a value if it's not empty.
@@ -47,3 +48,15 @@ function sleep(ms) {
47
48
  function isWebview(userAgent) {
48
49
  return /webview|wv|ip((?!.*Safari)|(?=.*like Safari))/i.test(userAgent);
49
50
  }
51
+ /**
52
+ * @public
53
+ */
54
+ function stringify(val) {
55
+ return JSON.stringify(val, (_, value) => {
56
+ if (typeof value === "bigint") {
57
+ return (0, index_js_1.numToHex)(value);
58
+ }
59
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
60
+ return value;
61
+ });
62
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckb-ccc/core",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "Core of CCC - CKBer's Codebase",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",