@ckb-ccc/core 0.0.15 → 0.0.16-alpha.1

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 (52) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/ckb/transaction.d.ts +4 -4
  3. package/dist/ckb/transaction.d.ts.map +1 -1
  4. package/dist/ckb/transaction.js +2 -1
  5. package/dist/client/client.d.ts +14 -2
  6. package/dist/client/client.d.ts.map +1 -1
  7. package/dist/client/client.js +47 -5
  8. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  9. package/dist/client/clientPublicMainnet.advanced.js +98 -8
  10. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  11. package/dist/client/clientPublicTestnet.advanced.js +98 -8
  12. package/dist/client/clientTypes.d.ts +3 -0
  13. package/dist/client/clientTypes.d.ts.map +1 -1
  14. package/dist/client/clientTypes.js +5 -0
  15. package/dist/client/jsonRpc/index.d.ts +9 -0
  16. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  17. package/dist/client/jsonRpc/index.js +11 -5
  18. package/dist/client/transports/webSocket.d.ts.map +1 -1
  19. package/dist/client/transports/webSocket.js +14 -11
  20. package/dist/utils/index.d.ts +2 -0
  21. package/dist/utils/index.d.ts.map +1 -1
  22. package/dist/utils/index.js +4 -0
  23. package/dist.commonjs/ckb/transaction.d.ts +4 -4
  24. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  25. package/dist.commonjs/ckb/transaction.js +2 -1
  26. package/dist.commonjs/client/client.d.ts +14 -2
  27. package/dist.commonjs/client/client.d.ts.map +1 -1
  28. package/dist.commonjs/client/client.js +44 -2
  29. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  30. package/dist.commonjs/client/clientPublicMainnet.advanced.js +98 -8
  31. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  32. package/dist.commonjs/client/clientPublicTestnet.advanced.js +98 -8
  33. package/dist.commonjs/client/clientTypes.d.ts +3 -0
  34. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  35. package/dist.commonjs/client/clientTypes.js +7 -1
  36. package/dist.commonjs/client/jsonRpc/index.d.ts +9 -0
  37. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  38. package/dist.commonjs/client/jsonRpc/index.js +11 -5
  39. package/dist.commonjs/client/transports/webSocket.d.ts.map +1 -1
  40. package/dist.commonjs/client/transports/webSocket.js +14 -11
  41. package/dist.commonjs/utils/index.d.ts +2 -0
  42. package/dist.commonjs/utils/index.d.ts.map +1 -1
  43. package/dist.commonjs/utils/index.js +6 -1
  44. package/package.json +1 -1
  45. package/src/ckb/transaction.ts +6 -4
  46. package/src/client/client.ts +64 -4
  47. package/src/client/clientPublicMainnet.advanced.ts +110 -8
  48. package/src/client/clientPublicTestnet.advanced.ts +110 -8
  49. package/src/client/clientTypes.ts +6 -0
  50. package/src/client/jsonRpc/index.ts +22 -15
  51. package/src/client/transports/webSocket.ts +44 -39
  52. package/src/utils/index.ts +6 -0
@@ -3,6 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TESTNET_SCRIPTS = void 0;
4
4
  const client_js_1 = require("./client.js");
5
5
  exports.TESTNET_SCRIPTS = Object.freeze({
6
+ [client_js_1.KnownScript.NervosDao]: {
7
+ codeHash: "0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e",
8
+ hashType: "type",
9
+ cellDeps: [
10
+ {
11
+ cellDep: {
12
+ outPoint: {
13
+ txHash: "0x8f8c79eb6671709633fe6a46de93c0fedc9c1b8a6527a18d3983879542635c9f",
14
+ index: 2,
15
+ },
16
+ depType: "code",
17
+ },
18
+ },
19
+ ],
20
+ },
6
21
  [client_js_1.KnownScript.Secp256k1Blake160]: {
7
22
  codeHash: "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8",
8
23
  hashType: "type",
@@ -201,15 +216,30 @@ exports.TESTNET_SCRIPTS = Object.freeze({
201
216
  },
202
217
  ],
203
218
  },
204
- [client_js_1.KnownScript.SingleUseLock]: {
205
- codeHash: "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf",
219
+ [client_js_1.KnownScript.AlwaysSuccess]: {
220
+ codeHash: "0x3b521cc4b552f109d092d8cc468a8048acb53c5952dbe769d2b2f9cf6e47f7f1",
206
221
  hashType: "data1",
207
222
  cellDeps: [
208
223
  {
209
224
  cellDep: {
210
225
  outPoint: {
211
226
  txHash: "0xb4f171c9c9caf7401f54a8e56225ae21d95032150a87a4678eac3f66a3137b93",
212
- index: 4,
227
+ index: 0,
228
+ },
229
+ depType: "code",
230
+ },
231
+ },
232
+ ],
233
+ },
234
+ [client_js_1.KnownScript.InputTypeProxyLock]: {
235
+ codeHash: "0x5123908965c711b0ffd8aec642f1ede329649bda1ebdca6bd24124d3796f768a",
236
+ hashType: "data1",
237
+ cellDeps: [
238
+ {
239
+ cellDep: {
240
+ outPoint: {
241
+ txHash: "0xb4f171c9c9caf7401f54a8e56225ae21d95032150a87a4678eac3f66a3137b93",
242
+ index: 1,
213
243
  },
214
244
  depType: "code",
215
245
  },
@@ -231,15 +261,75 @@ exports.TESTNET_SCRIPTS = Object.freeze({
231
261
  },
232
262
  ],
233
263
  },
234
- [client_js_1.KnownScript.NervosDao]: {
235
- codeHash: "0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e",
236
- hashType: "type",
264
+ [client_js_1.KnownScript.LockProxyLock]: {
265
+ codeHash: "0x5d41e32e224c15f152b7e6529100ebeac83b162f5f692a5365774dad2c1a1d02",
266
+ hashType: "data1",
237
267
  cellDeps: [
238
268
  {
239
269
  cellDep: {
240
270
  outPoint: {
241
- txHash: "0x8f8c79eb6671709633fe6a46de93c0fedc9c1b8a6527a18d3983879542635c9f",
242
- index: 2,
271
+ txHash: "0xb4f171c9c9caf7401f54a8e56225ae21d95032150a87a4678eac3f66a3137b93",
272
+ index: 3,
273
+ },
274
+ depType: "code",
275
+ },
276
+ },
277
+ ],
278
+ },
279
+ [client_js_1.KnownScript.SingleUseLock]: {
280
+ codeHash: "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf",
281
+ hashType: "data1",
282
+ cellDeps: [
283
+ {
284
+ cellDep: {
285
+ outPoint: {
286
+ txHash: "0xb4f171c9c9caf7401f54a8e56225ae21d95032150a87a4678eac3f66a3137b93",
287
+ index: 4,
288
+ },
289
+ depType: "code",
290
+ },
291
+ },
292
+ ],
293
+ },
294
+ [client_js_1.KnownScript.TypeBurnLock]: {
295
+ codeHash: "0xff78bae0abf17d7a404c0be0f9ad9c9185b3f88dcc60403453d5ba8e1f22f53a",
296
+ hashType: "data1",
297
+ cellDeps: [
298
+ {
299
+ cellDep: {
300
+ outPoint: {
301
+ txHash: "0xb4f171c9c9caf7401f54a8e56225ae21d95032150a87a4678eac3f66a3137b93",
302
+ index: 5,
303
+ },
304
+ depType: "code",
305
+ },
306
+ },
307
+ ],
308
+ },
309
+ [client_js_1.KnownScript.EasyToDiscoverType]: {
310
+ codeHash: "0xaba4430cc7110d699007095430a1faa72973edf2322ddbfd4d1d219cacf237af",
311
+ hashType: "data1",
312
+ cellDeps: [
313
+ {
314
+ cellDep: {
315
+ outPoint: {
316
+ txHash: "0x1b4ffcad55ecd36ffb2715b6816b83da73851f1a24fe594f263c4f34dad90792",
317
+ index: 0,
318
+ },
319
+ depType: "code",
320
+ },
321
+ },
322
+ ],
323
+ },
324
+ [client_js_1.KnownScript.TimeLock]: {
325
+ codeHash: "0x6fac4b2e89360a1e692efcddcb3a28656d8446549fb83da6d896db8b714f4451",
326
+ hashType: "data1",
327
+ cellDeps: [
328
+ {
329
+ cellDep: {
330
+ outPoint: {
331
+ txHash: "0x1b4ffcad55ecd36ffb2715b6816b83da73851f1a24fe594f263c4f34dad90792",
332
+ index: 1,
243
333
  },
244
334
  depType: "code",
245
335
  },
@@ -198,4 +198,7 @@ export declare class ErrorClientRBFRejected extends ErrorClientBase {
198
198
  readonly leastFee: Num;
199
199
  constructor(origin: ErrorClientBaseLike, currentFee: NumLike, leastFee: NumLike);
200
200
  }
201
+ export declare class ErrorClientWaitTransactionTimeout extends Error {
202
+ constructor();
203
+ }
201
204
  //# 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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrorClientRBFRejected = exports.ErrorClientDuplicatedTransaction = exports.ErrorClientVerification = exports.ErrorClientResolveUnknown = exports.ErrorClientBase = exports.ClientIndexerSearchKeyTransaction = exports.ClientIndexerSearchKey = exports.ClientIndexerSearchKeyFilter = void 0;
3
+ exports.ErrorClientWaitTransactionTimeout = exports.ErrorClientRBFRejected = exports.ErrorClientDuplicatedTransaction = exports.ErrorClientVerification = exports.ErrorClientResolveUnknown = exports.ErrorClientBase = exports.ClientIndexerSearchKeyTransaction = exports.ClientIndexerSearchKey = exports.ClientIndexerSearchKeyFilter = 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");
@@ -97,3 +97,9 @@ class ErrorClientRBFRejected extends ErrorClientBase {
97
97
  }
98
98
  }
99
99
  exports.ErrorClientRBFRejected = ErrorClientRBFRejected;
100
+ class ErrorClientWaitTransactionTimeout extends Error {
101
+ constructor() {
102
+ super("Wait transaction timeout");
103
+ }
104
+ }
105
+ exports.ErrorClientWaitTransactionTimeout = ErrorClientWaitTransactionTimeout;
@@ -29,6 +29,15 @@ export declare abstract class ClientJsonRpc extends Client {
29
29
  * @returns The URL of the JSON-RPC server.
30
30
  */
31
31
  get url(): string;
32
+ /**
33
+ * Get fee rate statistics
34
+ *
35
+ * @returns Fee rate statistics
36
+ */
37
+ getFeeRateStatistics: (blockRange?: NumLike | undefined) => Promise<{
38
+ mean: bigint;
39
+ median: bigint;
40
+ }>;
32
41
  /**
33
42
  * Get tip block number
34
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAEJ,YAAY,EACZ,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EAOzB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EAGf,MAAM,2BAA2B,CAAC;AA8DnC;;;GAGG;AAEH,8BAAsB,aAAc,SAAQ,MAAM;IAY9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXvB,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC;;;;;OAKG;gBAGgB,IAAI,EAAE,MAAM,EAC7B,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE;IAOpD;;;;OAIG;IAEH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;OAIG;IAEH,MAAM,QAIK,QAAQ,GAAG,CAAC,CAAC;IAExB;;;;;OAKG;IACH,YAAY,oGAEgB;IAE5B;;;;;;;OAOG;IACH,gBAAgB,yKAIgB;IAEhC;;;;;;;OAOG;IACH,cAAc,mMAEgB;IAE9B;;;;;;OAMG;IACH,iBAAiB,sIAIgB;IAEjC;;;;;;OAMG;IACH,eAAe,gKAEgB;IAE/B;;;;;OAKG;IACH,cAAc,oDAIgB;IAE9B;;;;;;OAMG;IAEH,kBAAkB,8FAIgB;IAElC;;;;;;OAMG;IAEH,sBAAsB,gBAKP,eAAe,cAChB,gBAAgB,GAAG,SAAS,KACrC,QAAQ,GAAG,CAAC,CAAC;IAElB;;;;;OAKG;IAEH,qBAAqB,WAIP,OAAO,KAAK,QAAQ,yBAAyB,GAAG,SAAS,CAAC,CAAC;IAEzE;;;;;;;OAOG;IACH,kBAAkB,CAChB,QAAQ,EAAE,YAAY,EACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,EACzB,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI;IA+BhC;;;;;;;;OAQG;IAEH,qBAAqB,QASd,0BAA0B,UACvB,KAAK,GAAG,MAAM,UACd,OAAO,UACP,MAAM,KACX,QAAQ,uBAAuB,CAAC,CAAC;IAEtC;;;;;;;;OAQG;IAEH,qBAAqB;;;;;;;;MAQgB;IAErC;;;;;OAKG;IAEH,gBAAgB,QAIL,0BAA0B,KAAK,QAAQ,GAAG,CAAC,CAAC;IAEvD;;;;;;;OAOG;IAEH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,EACrD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,GACnC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC;IAwC1C;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAerD;;;;;;OAMG;IAEH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQ7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAEJ,YAAY,EACZ,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EAOzB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EAGf,MAAM,2BAA2B,CAAC;AA2DnC;;;GAGG;AAEH,8BAAsB,aAAc,SAAQ,MAAM;IAY9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXvB,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC;;;;;OAKG;gBAGgB,IAAI,EAAE,MAAM,EAC7B,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE;IAOpD;;;;OAIG;IAEH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;OAIG;IAEH,oBAAoB;;;OAIgB;IAEpC;;;;OAIG;IAEH,MAAM,QAIK,QAAQ,GAAG,CAAC,CAAC;IAExB;;;;;OAKG;IACH,YAAY,oGAEgB;IAE5B;;;;;;;OAOG;IACH,gBAAgB,yKAIgB;IAEhC;;;;;;;OAOG;IACH,cAAc,mMAEgB;IAE9B;;;;;;OAMG;IACH,iBAAiB,sIAIgB;IAEjC;;;;;;OAMG;IACH,eAAe,gKAEgB;IAE/B;;;;;OAKG;IACH,cAAc,oDAIgB;IAE9B;;;;;;OAMG;IAEH,kBAAkB,8FAIgB;IAElC;;;;;;OAMG;IAEH,sBAAsB,gBAKP,eAAe,cAChB,gBAAgB,GAAG,SAAS,KACrC,QAAQ,GAAG,CAAC,CAAC;IAElB;;;;;OAKG;IAEH,qBAAqB,WAIP,OAAO,KAAK,QAAQ,yBAAyB,GAAG,SAAS,CAAC,CAAC;IAEzE;;;;;;;OAOG;IACH,kBAAkB,CAChB,QAAQ,EAAE,YAAY,EACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,EACzB,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI;IA+BhC;;;;;;;;OAQG;IAEH,qBAAqB,QASd,0BAA0B,UACvB,KAAK,GAAG,MAAM,UACd,OAAO,UACP,MAAM,KACX,QAAQ,uBAAuB,CAAC,CAAC;IAEtC;;;;;;;;OAQG;IAEH,qBAAqB;;;;;;;;MAQgB;IAErC;;;;;OAKG;IAEH,gBAAgB,QAIL,0BAA0B,KAAK,QAAQ,GAAG,CAAC,CAAC;IAEvD;;;;;;;OAOG;IAEH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,EACrD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,GACnC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC;IAsC1C;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAerD;;;;;;OAMG;IAEH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQ7D"}
@@ -18,11 +18,11 @@ const advanced_js_2 = require("./advanced.js");
18
18
  *
19
19
  * @example
20
20
  * ```typescript
21
- * const result = await transform(5, (x) => x * 2); // Outputs 10
22
- * const resultWithoutTransformer = await transform(5); // Outputs 5
21
+ * const result = transform(5, (x) => x * 2); // Outputs 10
22
+ * const resultWithoutTransformer = transform(5); // Outputs 5
23
23
  * ```
24
24
  */
25
- async function transform(value, transformer) {
25
+ function transform(value, transformer) {
26
26
  if (transformer) {
27
27
  return transformer(value);
28
28
  }
@@ -65,6 +65,12 @@ class ClientJsonRpc extends client_js_1.Client {
65
65
  super(config);
66
66
  this.url_ = url_;
67
67
  this.id = 0;
68
+ /**
69
+ * Get fee rate statistics
70
+ *
71
+ * @returns Fee rate statistics
72
+ */
73
+ this.getFeeRateStatistics = this.buildSender("get_fee_rate_statistics", [(n) => (0, index_js_4.apply)(index_js_3.numFrom, n)], ({ mean, median }) => ({ mean: (0, index_js_3.numFrom)(mean), median: (0, index_js_3.numFrom)(median) }));
68
74
  /**
69
75
  * Get tip block number
70
76
  *
@@ -212,9 +218,9 @@ class ClientJsonRpc extends client_js_1.Client {
212
218
  */
213
219
  buildSender(rpcMethod, inTransformers, outTransformer) {
214
220
  return async (...req) => {
215
- const payload = this.buildPayload(rpcMethod, await Promise.all(req
221
+ const payload = this.buildPayload(rpcMethod, req
216
222
  .concat(Array.from(new Array(Math.max(inTransformers.length - req.length, 0))))
217
- .map((v, i) => transform(v, inTransformers[i]))));
223
+ .map((v, i) => transform(v, inTransformers[i])));
218
224
  try {
219
225
  return transform(await this.send(payload), outTransformer);
220
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/client/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,kBAAmB,YAAW,SAAS;IAYhD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,OAAO,CAAC,OAAO,CAOD;IACd,OAAO,CAAC,MAAM,CAAC,CAAqB;gBAGjB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAG5B,OAAO,CAAC,IAAI,EAAE,cAAc;CA8DnC"}
1
+ {"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/client/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,kBAAmB,YAAW,SAAS;IAYhD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,OAAO,CAAC,OAAO,CAOD;IACd,OAAO,CAAC,MAAM,CAAC,CAAqB;gBAGjB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAGlC,OAAO,CAAC,IAAI,EAAE,cAAc;CAmE7B"}
@@ -11,10 +11,10 @@ class TransportWebSocket {
11
11
  this.timeout = timeout;
12
12
  this.ongoing = new Map();
13
13
  }
14
- async request(data) {
15
- const socket = (() => {
16
- if (this.socket) {
17
- return this.socket;
14
+ request(data) {
15
+ const socket = (this.socket ?? Promise.resolve(undefined)).then((existed) => {
16
+ if (existed && existed.readyState === existed.OPEN) {
17
+ return existed;
18
18
  }
19
19
  const socket = new isomorphic_ws_1.default(this.url);
20
20
  const onMessage = ({ data }) => {
@@ -30,29 +30,32 @@ class TransportWebSocket {
30
30
  this.ongoing.delete(res.id);
31
31
  req[0](res);
32
32
  };
33
- const onClose = (error) => {
33
+ const onClose = () => {
34
34
  this.socket = undefined;
35
- this.ongoing.forEach(([_, onError]) => onError(error ?? new Error("Connection closed")));
35
+ this.ongoing.forEach(([_, onError]) => onError(new Error("Connection closed")));
36
36
  this.ongoing.clear();
37
37
  };
38
38
  socket.onclose = onClose;
39
39
  socket.onerror = onClose;
40
40
  socket.onmessage = onMessage;
41
41
  this.socket = new Promise((resolve) => {
42
- if (socket.readyState === socket.CONNECTING) {
43
- socket.onopen = resolve;
42
+ if (socket.readyState === socket.OPEN) {
43
+ resolve(undefined);
44
44
  }
45
45
  else {
46
- resolve(undefined);
46
+ socket.onopen = resolve;
47
47
  }
48
48
  }).then(() => socket);
49
49
  return this.socket;
50
- })();
50
+ });
51
51
  return new Promise((resolve, reject) => {
52
52
  this.ongoing.set(data.id, [
53
53
  resolve,
54
54
  reject,
55
- setTimeout(() => reject(new Error("Request timeout")), this.timeout),
55
+ setTimeout(() => {
56
+ socket.then((socket) => socket.close());
57
+ reject(new Error("Request timeout"));
58
+ }, this.timeout),
56
59
  ]);
57
60
  socket.then((socket) => {
58
61
  if (socket.readyState === socket.CLOSED ||
@@ -1,3 +1,4 @@
1
+ import { NumLike } from "../num/index.js";
1
2
  /**
2
3
  * A type safe way to apply a transformer on a value if it's not empty.
3
4
  * @public
@@ -81,6 +82,7 @@ export declare function reduceAsync<T, V>(values: T[], accumulator: (a: T, b: T)
81
82
  * @returns The accumulated result.
82
83
  */
83
84
  export declare function reduceAsync<T, V>(values: V[], accumulator: (a: T, b: V, i: number, values: V[]) => Promise<T | undefined | null | void> | T | undefined | null | void, init: T | Promise<T>): Promise<T>;
85
+ export declare function sleep(ms: NumLike): Promise<unknown>;
84
86
  /**
85
87
  * @public
86
88
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;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,EAAE,CAAC,EACpC,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;;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,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,EAAE,CAAC,EACpC,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;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isWebview = exports.reduceAsync = exports.apply = void 0;
3
+ exports.isWebview = exports.sleep = exports.reduceAsync = exports.apply = void 0;
4
+ const index_js_1 = require("../num/index.js");
4
5
  /**
5
6
  * A type safe way to apply a transformer on a value if it's not empty.
6
7
  * @public
@@ -36,6 +37,10 @@ async function reduceAsync(values, accumulator, init) {
36
37
  return values.reduce((current, b, i, array) => current.then((v) => Promise.resolve(accumulator(v, b, i, array)).then((r) => r ?? v)), Promise.resolve(init));
37
38
  }
38
39
  exports.reduceAsync = reduceAsync;
40
+ function sleep(ms) {
41
+ return new Promise((resolve) => setTimeout(resolve, Number((0, index_js_1.numFrom)(ms))));
42
+ }
43
+ exports.sleep = sleep;
39
44
  /**
40
45
  * @public
41
46
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckb-ccc/core",
3
- "version": "0.0.15",
3
+ "version": "0.0.16-alpha.1",
4
4
  "description": "Core of CCC - CKBer's Codebase",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",
@@ -1824,9 +1824,11 @@ export class Transaction {
1824
1824
  async completeFee(
1825
1825
  from: Signer,
1826
1826
  change: (tx: Transaction, capacity: Num) => Promise<NumLike> | NumLike,
1827
- feeRate: NumLike,
1827
+ expectedFeeRate?: NumLike,
1828
1828
  filter?: ClientCollectableSearchKeyFilterLike,
1829
1829
  ): Promise<[number, boolean]> {
1830
+ const feeRate = expectedFeeRate ?? (await from.client.getFeeRate());
1831
+
1830
1832
  // Complete all inputs extra infos for cache
1831
1833
  await this.getInputsCapacity(from.client);
1832
1834
 
@@ -1902,7 +1904,7 @@ export class Transaction {
1902
1904
  completeFeeChangeToLock(
1903
1905
  from: Signer,
1904
1906
  change: ScriptLike,
1905
- feeRate: NumLike,
1907
+ feeRate?: NumLike,
1906
1908
  filter?: ClientCollectableSearchKeyFilterLike,
1907
1909
  ): Promise<[number, boolean]> {
1908
1910
  const script = Script.from(change);
@@ -1926,7 +1928,7 @@ export class Transaction {
1926
1928
 
1927
1929
  async completeFeeBy(
1928
1930
  from: Signer,
1929
- feeRate: NumLike,
1931
+ feeRate?: NumLike,
1930
1932
  filter?: ClientCollectableSearchKeyFilterLike,
1931
1933
  ): Promise<[number, boolean]> {
1932
1934
  const { script } = await from.getRecommendedAddressObj();
@@ -1937,7 +1939,7 @@ export class Transaction {
1937
1939
  completeFeeChangeToOutput(
1938
1940
  from: Signer,
1939
1941
  index: NumLike,
1940
- feeRate: NumLike,
1942
+ feeRate?: NumLike,
1941
1943
  filter?: ClientCollectableSearchKeyFilterLike,
1942
1944
  ): Promise<[number, boolean]> {
1943
1945
  const change = Number(numFrom(index));
@@ -11,8 +11,8 @@ import {
11
11
  } from "../ckb/index.js";
12
12
  import { Zero } from "../fixedPoint/index.js";
13
13
  import { Hex, HexLike, hexFrom } from "../hex/index.js";
14
- import { Num, NumLike, numFrom } from "../num/index.js";
15
- import { apply, reduceAsync } from "../utils/index.js";
14
+ import { Num, NumLike, numFrom, numMax } from "../num/index.js";
15
+ import { apply, reduceAsync, sleep } from "../utils/index.js";
16
16
  import { ClientCache } from "./cache/index.js";
17
17
  import { ClientCacheMemory } from "./cache/memory.js";
18
18
  import { ClientCollectableSearchKeyLike } from "./clientTypes.advanced.js";
@@ -26,6 +26,7 @@ import {
26
26
  ClientIndexerSearchKeyLike,
27
27
  ClientIndexerSearchKeyTransactionLike,
28
28
  ClientTransactionResponse,
29
+ ErrorClientWaitTransactionTimeout,
29
30
  OutputsValidator,
30
31
  } from "./clientTypes.js";
31
32
 
@@ -33,6 +34,7 @@ import {
33
34
  * @public
34
35
  */
35
36
  export enum KnownScript {
37
+ NervosDao = "NervosDao",
36
38
  Secp256k1Blake160 = "Secp256k1Blake160",
37
39
  Secp256k1Multisig = "Secp256k1Multisig",
38
40
  AnyoneCanPay = "AnyoneCanPay",
@@ -44,9 +46,16 @@ export enum KnownScript {
44
46
  OmniLock = "OmniLock",
45
47
  NostrLock = "NostrLock",
46
48
  UniqueType = "UniqueType",
47
- SingleUseLock = "SingleUseLock",
49
+
50
+ // ckb-proxy-locks https://github.com/ckb-ecofund/ckb-proxy-locks
51
+ AlwaysSuccess = "AlwaysSuccess",
52
+ InputTypeProxyLock = "InputTypeProxyLock",
48
53
  OutputTypeProxyLock = "OutputTypeProxyLock",
49
- NervosDao = "NervosDao",
54
+ LockProxyLock = "LockProxyLock",
55
+ SingleUseLock = "SingleUseLock",
56
+ TypeBurnLock = "TypeBurnLock",
57
+ EasyToDiscoverType = "EasyToDiscoverType",
58
+ TimeLock = "TimeLock",
50
59
  }
51
60
 
52
61
  /**
@@ -93,6 +102,13 @@ export abstract class Client {
93
102
  Pick<Script, "codeHash" | "hashType"> & { cellDeps: CellDepInfo[] }
94
103
  >;
95
104
 
105
+ abstract getFeeRateStatistics(
106
+ blockRange?: NumLike,
107
+ ): Promise<{ mean: Num; median: Num }>;
108
+ async getFeeRate(blockRange?: NumLike): Promise<Num> {
109
+ return numMax((await this.getFeeRateStatistics(blockRange)).median, 1000);
110
+ }
111
+
96
112
  abstract getTip(): Promise<Num>;
97
113
  abstract getTipHeader(verbosity?: number | null): Promise<ClientBlockHeader>;
98
114
  abstract getBlockByNumber(
@@ -552,4 +568,48 @@ export abstract class Client {
552
568
  transaction: tx,
553
569
  };
554
570
  }
571
+
572
+ async waitTransaction(
573
+ txHash: HexLike,
574
+ confirmations: number = 0,
575
+ timeout: number = 30000,
576
+ interval: number = 2000,
577
+ ): Promise<ClientTransactionResponse | undefined> {
578
+ const startTime = Date.now();
579
+ let tx: ClientTransactionResponse | undefined;
580
+
581
+ const getTx = async () => {
582
+ const res = await this.getTransaction(txHash);
583
+ if (
584
+ !res ||
585
+ res.blockNumber == null ||
586
+ ["sent", "pending", "proposed"].includes(res.status)
587
+ ) {
588
+ return undefined;
589
+ }
590
+
591
+ tx = res;
592
+ return res;
593
+ };
594
+
595
+ while (true) {
596
+ if (!tx) {
597
+ if (await getTx()) {
598
+ continue;
599
+ }
600
+ } else if (confirmations === 0) {
601
+ return tx;
602
+ } else if (
603
+ (await this.getTipHeader()).number - tx!.blockNumber! >=
604
+ confirmations
605
+ ) {
606
+ return tx;
607
+ }
608
+
609
+ if (Date.now() - startTime + interval >= timeout) {
610
+ throw new ErrorClientWaitTransactionTimeout();
611
+ }
612
+ await sleep(interval);
613
+ }
614
+ }
555
615
  }