@ckb-ccc/core 0.0.13-alpha.6 → 0.0.13-alpha.8

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 (71) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/ckb/transaction.d.ts +91 -1
  3. package/dist/ckb/transaction.d.ts.map +1 -1
  4. package/dist/ckb/transaction.js +118 -24
  5. package/dist/client/cache/cache.d.ts +29 -9
  6. package/dist/client/cache/cache.d.ts.map +1 -1
  7. package/dist/client/cache/cache.js +43 -1
  8. package/dist/client/cache/memory.d.ts +10 -6
  9. package/dist/client/cache/memory.d.ts.map +1 -1
  10. package/dist/client/cache/memory.js +49 -39
  11. package/dist/client/client.d.ts +10 -4
  12. package/dist/client/client.d.ts.map +1 -1
  13. package/dist/client/client.js +6 -5
  14. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  15. package/dist/client/clientPublicMainnet.advanced.js +15 -0
  16. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  17. package/dist/client/clientPublicTestnet.advanced.js +15 -0
  18. package/dist/client/clientTypes.d.ts +47 -4
  19. package/dist/client/clientTypes.d.ts.map +1 -1
  20. package/dist/client/clientTypes.js +26 -1
  21. package/dist/client/jsonRpc/index.d.ts +39 -1
  22. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  23. package/dist/client/jsonRpc/index.js +63 -2
  24. package/dist/client/jsonRpc/transformers.d.ts.map +1 -1
  25. package/dist/client/jsonRpc/transformers.js +11 -4
  26. package/dist/fixedPoint/index.d.ts +3 -3
  27. package/dist/fixedPoint/index.js +3 -3
  28. package/dist/signer/signer/index.d.ts +3 -1
  29. package/dist/signer/signer/index.d.ts.map +1 -1
  30. package/dist/signer/signer/index.js +14 -0
  31. package/dist.commonjs/ckb/transaction.d.ts +91 -1
  32. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  33. package/dist.commonjs/ckb/transaction.js +121 -23
  34. package/dist.commonjs/client/cache/cache.d.ts +29 -9
  35. package/dist.commonjs/client/cache/cache.d.ts.map +1 -1
  36. package/dist.commonjs/client/cache/cache.js +45 -0
  37. package/dist.commonjs/client/cache/memory.d.ts +10 -6
  38. package/dist.commonjs/client/cache/memory.d.ts.map +1 -1
  39. package/dist.commonjs/client/cache/memory.js +49 -39
  40. package/dist.commonjs/client/client.d.ts +10 -4
  41. package/dist.commonjs/client/client.d.ts.map +1 -1
  42. package/dist.commonjs/client/client.js +6 -5
  43. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  44. package/dist.commonjs/client/clientPublicMainnet.advanced.js +15 -0
  45. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  46. package/dist.commonjs/client/clientPublicTestnet.advanced.js +15 -0
  47. package/dist.commonjs/client/clientTypes.d.ts +47 -4
  48. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  49. package/dist.commonjs/client/clientTypes.js +33 -5
  50. package/dist.commonjs/client/jsonRpc/index.d.ts +39 -1
  51. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  52. package/dist.commonjs/client/jsonRpc/index.js +74 -13
  53. package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +1 -1
  54. package/dist.commonjs/client/jsonRpc/transformers.js +55 -48
  55. package/dist.commonjs/fixedPoint/index.d.ts +3 -3
  56. package/dist.commonjs/fixedPoint/index.js +3 -3
  57. package/dist.commonjs/signer/signer/index.d.ts +3 -1
  58. package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
  59. package/dist.commonjs/signer/signer/index.js +14 -0
  60. package/package.json +1 -1
  61. package/src/ckb/transaction.ts +170 -30
  62. package/src/client/cache/cache.ts +58 -13
  63. package/src/client/cache/memory.ts +60 -52
  64. package/src/client/client.ts +22 -5
  65. package/src/client/clientPublicMainnet.advanced.ts +17 -0
  66. package/src/client/clientPublicTestnet.advanced.ts +17 -0
  67. package/src/client/clientTypes.ts +76 -5
  68. package/src/client/jsonRpc/index.ts +105 -3
  69. package/src/client/jsonRpc/transformers.ts +11 -3
  70. package/src/fixedPoint/index.ts +3 -3
  71. package/src/signer/signer/index.ts +20 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @ckb-ccc/core
2
2
 
3
+ ## 0.0.13-alpha.8
4
+
5
+ ### Patch Changes
6
+
7
+ - [`8629449`](https://github.com/ckb-ecofund/ccc/commit/86294490e76fc2a1cee20f827883e02fceca6e8b) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat(core): ClientCache.clear
8
+
9
+ replaced ClientCache.revertTransactions
10
+
11
+ - [`52156f9`](https://github.com/ckb-ecofund/ccc/commit/52156f9df9cae9e0b71b77b49cda0e4d73e76142) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat(core): ClientCache.revertTransaction
12
+
13
+ - [`63606db`](https://github.com/ckb-ecofund/ccc/commit/63606db908f95bfc857430083932144d1ef4deef) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat(coree): typed errors
14
+
15
+ ## 0.0.13-alpha.7
16
+
17
+ ### Patch Changes
18
+
19
+ - [`1043c2b`](https://github.com/ckb-ecofund/ccc/commit/1043c2bc211ec283b88dba3b81feef98e4185c0e) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat(core): nervos dao script
20
+
21
+ - [`079e20e`](https://github.com/ckb-ecofund/ccc/commit/079e20ef14cf9a7c06bbaddf3e92cbfbb005da11) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat(core): more APIs. Since parsing.
22
+
23
+ - [`ed154d1`](https://github.com/ckb-ecofund/ccc/commit/ed154d189e239907ad686ec51ac8133b6d5eb895) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat(core): Signer.findCells
24
+
3
25
  ## 0.0.13-alpha.6
4
26
 
5
27
  ### Patch Changes
@@ -268,12 +268,102 @@ export declare class Cell {
268
268
  */
269
269
  clone(): Cell;
270
270
  }
271
+ /**
272
+ * @public
273
+ */
274
+ export type EpochLike = [NumLike, NumLike, NumLike];
275
+ /**
276
+ * @public
277
+ */
278
+ export type Epoch = [Num, Num, Num];
279
+ /**
280
+ * @public
281
+ */
282
+ export declare function epochFrom(epochLike: EpochLike): Epoch;
283
+ /**
284
+ * @public
285
+ */
286
+ export declare function epochFromHex(hex: HexLike): Epoch;
287
+ /**
288
+ * @public
289
+ */
290
+ export declare function epochToHex(epochLike: EpochLike): Hex;
291
+ /**
292
+ * @public
293
+ */
294
+ export type SinceLike = {
295
+ relative: "absolute" | "relative";
296
+ metric: "blockNumber" | "epoch" | "timestamp";
297
+ value: NumLike;
298
+ } | NumLike;
299
+ /**
300
+ * @public
301
+ */
302
+ export declare class Since {
303
+ relative: "absolute" | "relative";
304
+ metric: "blockNumber" | "epoch" | "timestamp";
305
+ value: Num;
306
+ /**
307
+ * Creates an instance of Since.
308
+ *
309
+ * @param relative - Absolute or relative
310
+ * @param metric - The metric of since
311
+ * @param value - The value of since
312
+ */
313
+ constructor(relative: "absolute" | "relative", metric: "blockNumber" | "epoch" | "timestamp", value: Num);
314
+ /**
315
+ * Clone a Since.
316
+ *
317
+ * @returns A cloned Since instance.
318
+ *
319
+ * @example
320
+ * ```typescript
321
+ * const since1 = since0.clone();
322
+ * ```
323
+ */
324
+ clone(): Since;
325
+ /**
326
+ * Creates a Since instance from a SinceLike object.
327
+ *
328
+ * @param since - A SinceLike object or an instance of Since.
329
+ * @returns A Since instance.
330
+ *
331
+ * @example
332
+ * ```typescript
333
+ * const since = Since.from("0x1234567812345678");
334
+ * ```
335
+ */
336
+ static from(since: SinceLike): Since;
337
+ /**
338
+ * Converts the Since instance to num.
339
+ *
340
+ * @returns A num
341
+ *
342
+ * @example
343
+ * ```typescript
344
+ * const num = since.toNum();
345
+ * ```
346
+ */
347
+ toNum(): Num;
348
+ /**
349
+ * Creates a Since instance from a num-like value.
350
+ *
351
+ * @param numLike - The num-like value to convert.
352
+ * @returns A Since instance.
353
+ *
354
+ * @example
355
+ * ```typescript
356
+ * const since = Since.fromNum("0x0");
357
+ * ```
358
+ */
359
+ static fromNum(numLike: NumLike): Since;
360
+ }
271
361
  /**
272
362
  * @public
273
363
  */
274
364
  export type CellInputLike = {
275
365
  previousOutput: OutPointLike;
276
- since?: NumLike | null;
366
+ since?: SinceLike | NumLike | null;
277
367
  cellOutput?: CellOutputLike | null;
278
368
  outputData?: HexLike | null;
279
369
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { bytesFrom } from "../bytes/index.js";
1
+ import { bytesConcat, bytesFrom } from "../bytes/index.js";
2
2
  import { Zero, fixedPointFrom, fixedPointToString, } from "../fixedPoint/index.js";
3
3
  import { HasherCkb, hashCkb } from "../hasher/index.js";
4
4
  import { hexFrom } from "../hex/index.js";
5
- import { numFrom, numFromBytes, numToBytes, numToHex, } from "../num/index.js";
5
+ import { numBeToBytes, numFrom, numFromBytes, numLeFromBytes, numLeToBytes, numToBytes, numToHex, } from "../num/index.js";
6
6
  import { apply, reduceAsync } from "../utils/index.js";
7
7
  import * as mol from "./molecule.advanced/index.js";
8
8
  import { Script } from "./script.js";
@@ -308,6 +308,113 @@ export class Cell {
308
308
  return new Cell(this.outPoint.clone(), this.cellOutput.clone(), this.outputData);
309
309
  }
310
310
  }
311
+ /**
312
+ * @public
313
+ */
314
+ export function epochFrom(epochLike) {
315
+ return [numFrom(epochLike[0]), numFrom(epochLike[1]), numFrom(epochLike[2])];
316
+ }
317
+ /**
318
+ * @public
319
+ */
320
+ export function epochFromHex(hex) {
321
+ const bytes = bytesFrom(hexFrom(hex));
322
+ return [
323
+ numFrom(bytes.slice(4, 7)),
324
+ numFrom(bytes.slice(2, 4)),
325
+ numFrom(bytes.slice(0, 2)),
326
+ ];
327
+ }
328
+ /**
329
+ * @public
330
+ */
331
+ export function epochToHex(epochLike) {
332
+ const epoch = epochFrom(epochLike);
333
+ return hexFrom(bytesConcat(numBeToBytes(epoch[2], 2), numBeToBytes(epoch[1], 2), numBeToBytes(epoch[0], 3)));
334
+ }
335
+ /**
336
+ * @public
337
+ */
338
+ export class Since {
339
+ /**
340
+ * Creates an instance of Since.
341
+ *
342
+ * @param relative - Absolute or relative
343
+ * @param metric - The metric of since
344
+ * @param value - The value of since
345
+ */
346
+ constructor(relative, metric, value) {
347
+ this.relative = relative;
348
+ this.metric = metric;
349
+ this.value = value;
350
+ }
351
+ /**
352
+ * Clone a Since.
353
+ *
354
+ * @returns A cloned Since instance.
355
+ *
356
+ * @example
357
+ * ```typescript
358
+ * const since1 = since0.clone();
359
+ * ```
360
+ */
361
+ clone() {
362
+ return new Since(this.relative, this.metric, this.value);
363
+ }
364
+ /**
365
+ * Creates a Since instance from a SinceLike object.
366
+ *
367
+ * @param since - A SinceLike object or an instance of Since.
368
+ * @returns A Since instance.
369
+ *
370
+ * @example
371
+ * ```typescript
372
+ * const since = Since.from("0x1234567812345678");
373
+ * ```
374
+ */
375
+ static from(since) {
376
+ if (since instanceof Since) {
377
+ return since;
378
+ }
379
+ if (typeof since === "object" && "relative" in since) {
380
+ return new Since(since.relative, since.metric, numFrom(since.value));
381
+ }
382
+ return Since.fromNum(since);
383
+ }
384
+ /**
385
+ * Converts the Since instance to num.
386
+ *
387
+ * @returns A num
388
+ *
389
+ * @example
390
+ * ```typescript
391
+ * const num = since.toNum();
392
+ * ```
393
+ */
394
+ toNum() {
395
+ const flag = ((this.relative === "absolute" ? 0 : 1) << 7) |
396
+ ({ blockNumber: 0, epoch: 1, timestamp: 2 }[this.metric] << 5);
397
+ return numFrom(bytesConcat([flag], numLeToBytes(this.value, 7)));
398
+ }
399
+ /**
400
+ * Creates a Since instance from a num-like value.
401
+ *
402
+ * @param numLike - The num-like value to convert.
403
+ * @returns A Since instance.
404
+ *
405
+ * @example
406
+ * ```typescript
407
+ * const since = Since.fromNum("0x0");
408
+ * ```
409
+ */
410
+ static fromNum(numLike) {
411
+ const bytes = numBeToBytes(numLike, 8);
412
+ const relative = bytes[0] >> 7 === 0 ? "absolute" : "relative";
413
+ const metric = ["blockNumber", "epoch", "timestamp"][(bytes[0] >> 5) & 3];
414
+ const value = numLeFromBytes(bytes.slice(1, 8));
415
+ return new Since(relative, metric, value);
416
+ }
417
+ }
311
418
  /**
312
419
  * @public
313
420
  */
@@ -357,7 +464,7 @@ export class CellInput {
357
464
  if (cellInput instanceof CellInput) {
358
465
  return cellInput;
359
466
  }
360
- return new CellInput(OutPoint.from(cellInput.previousOutput), numFrom(cellInput.since ?? 0), apply(CellOutput.from, cellInput.cellOutput), apply(hexFrom, cellInput.outputData));
467
+ return new CellInput(OutPoint.from(cellInput.previousOutput), Since.from(cellInput.since ?? 0).toNum(), apply(CellOutput.from, cellInput.cellOutput), apply(hexFrom, cellInput.outputData));
361
468
  }
362
469
  /**
363
470
  * Complete extra infos in the input. Like the output of the out point.
@@ -1156,36 +1263,23 @@ export class Transaction {
1156
1263
  }, numFrom(0));
1157
1264
  }
1158
1265
  async completeInputs(from, filter, accumulator, init) {
1159
- const scripts = (await from.getAddressObjs()).map(({ script }) => script);
1160
1266
  const collectedCells = [];
1161
1267
  let acc = init;
1162
1268
  let fulfilled = false;
1163
- for (const script of scripts) {
1164
- for await (const cell of from.client.findCellsByCollectableSearchKey({
1165
- script,
1166
- scriptType: "lock",
1167
- filter,
1168
- scriptSearchMode: "exact",
1169
- withData: true,
1170
- })) {
1171
- if (this.inputs.some(({ previousOutput }) => previousOutput.eq(cell.outPoint))) {
1172
- continue;
1173
- }
1174
- const i = collectedCells.push(cell);
1175
- const next = await Promise.resolve(accumulator(acc, cell, i - 1, collectedCells));
1176
- if (next === undefined) {
1177
- fulfilled = true;
1178
- break;
1179
- }
1180
- acc = next;
1269
+ for await (const cell of from.findCells(filter, true)) {
1270
+ if (this.inputs.some(({ previousOutput }) => previousOutput.eq(cell.outPoint))) {
1271
+ continue;
1181
1272
  }
1182
- if (fulfilled) {
1273
+ const i = collectedCells.push(cell);
1274
+ const next = await Promise.resolve(accumulator(acc, cell, i - 1, collectedCells));
1275
+ if (next === undefined) {
1276
+ fulfilled = true;
1183
1277
  break;
1184
1278
  }
1279
+ acc = next;
1185
1280
  }
1186
1281
  this.inputs.push(...collectedCells.map(({ outPoint, outputData, cellOutput }) => CellInput.from({
1187
1282
  previousOutput: outPoint,
1188
- since: 0,
1189
1283
  outputData,
1190
1284
  cellOutput,
1191
1285
  })));
@@ -1,15 +1,35 @@
1
1
  import { Cell, CellLike, OutPointLike, Transaction, TransactionLike } from "../../ckb/index.js";
2
2
  import { HexLike } from "../../hex/index.js";
3
3
  import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
4
- export interface ClientCache {
5
- markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
6
- markUnusable(...outPointLike: (OutPointLike | OutPointLike[])[]): Promise<void>;
4
+ export declare abstract class ClientCache {
5
+ abstract markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
6
+ abstract markUnusable(...outPointLike: (OutPointLike | OutPointLike[])[]): Promise<void>;
7
7
  markTransactions(...transactionLike: (TransactionLike | TransactionLike[])[]): Promise<void>;
8
- isUnusable(outPointLike: OutPointLike): Promise<boolean>;
9
- recordTransactions(...transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
10
- getTransaction(txHash: HexLike): Promise<Transaction | undefined>;
11
- recordCells(...cells: (CellLike | CellLike[])[]): Promise<void>;
12
- getCell(outPoint: OutPointLike): Promise<Cell | undefined>;
13
- findCells(filter: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
8
+ abstract clear(): Promise<void>;
9
+ abstract findCells(filter: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
10
+ /**
11
+ * Get a known cell by out point
12
+ * @param _outPoint
13
+ */
14
+ abstract getCell(_outPoint: OutPointLike): Promise<Cell | undefined>;
15
+ abstract isUnusable(outPointLike: OutPointLike): Promise<boolean>;
16
+ /**
17
+ * Record known transactions
18
+ * Implement this method to enable transactions query caching
19
+ * @param _transactions
20
+ */
21
+ recordTransactions(..._transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
22
+ /**
23
+ * Get a known transaction by hash
24
+ * Implement this method to enable transactions query caching
25
+ * @param _txHash
26
+ */
27
+ getTransaction(_txHash: HexLike): Promise<Transaction | undefined>;
28
+ /**
29
+ * Record known cells
30
+ * Implement this method to enable cells query caching
31
+ * @param _cells
32
+ */
33
+ recordCells(..._cells: (CellLike | CellLike[])[]): Promise<void>;
14
34
  }
15
35
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/client/cache/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAE5E,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,YAAY,CACV,GAAG,YAAY,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GACjD,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,gBAAgB,CACd,GAAG,eAAe,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzD,kBAAkB,CAChB,GAAG,YAAY,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACvD,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAElE,WAAW,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IAC3D,SAAS,CAAC,MAAM,EAAE,8BAA8B,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;CACzE"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/client/cache/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAE5E,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3E,QAAQ,CAAC,YAAY,CACnB,GAAG,YAAY,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GACjD,OAAO,CAAC,IAAI,CAAC;IACV,gBAAgB,CACpB,GAAG,eAAe,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;IAuBhB,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAChB,MAAM,EAAE,8BAA8B,GACrC,cAAc,CAAC,IAAI,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAEjE;;;;OAIG;IACG,kBAAkB,CACtB,GAAG,aAAa,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACxD,OAAO,CAAC,IAAI,CAAC;IAChB;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIxE;;;;OAIG;IACG,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CACvE"}
@@ -1 +1,43 @@
1
- export {};
1
+ import { Transaction, } from "../../ckb/index.js";
2
+ export class ClientCache {
3
+ async markTransactions(...transactionLike) {
4
+ await Promise.all([
5
+ this.recordTransactions(...transactionLike),
6
+ ...transactionLike.flat().map((transactionLike) => {
7
+ const tx = Transaction.from(transactionLike);
8
+ const txHash = tx.hash();
9
+ return Promise.all([
10
+ ...tx.inputs.map((i) => this.markUnusable(i.previousOutput)),
11
+ ...tx.outputs.map((o, i) => this.markUsable({
12
+ cellOutput: o,
13
+ outputData: tx.outputsData[i],
14
+ outPoint: {
15
+ txHash,
16
+ index: i,
17
+ },
18
+ })),
19
+ ]);
20
+ }),
21
+ ]);
22
+ }
23
+ /**
24
+ * Record known transactions
25
+ * Implement this method to enable transactions query caching
26
+ * @param _transactions
27
+ */
28
+ async recordTransactions(..._transactions) { }
29
+ /**
30
+ * Get a known transaction by hash
31
+ * Implement this method to enable transactions query caching
32
+ * @param _txHash
33
+ */
34
+ async getTransaction(_txHash) {
35
+ return;
36
+ }
37
+ /**
38
+ * Record known cells
39
+ * Implement this method to enable cells query caching
40
+ * @param _cells
41
+ */
42
+ async recordCells(..._cells) { }
43
+ }
@@ -2,19 +2,23 @@ import { Cell, CellLike, OutPointLike, Transaction, TransactionLike } from "../.
2
2
  import { HexLike } from "../../hex/index.js";
3
3
  import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
4
4
  import { ClientCache } from "./cache.js";
5
- export declare class ClientCacheMemory implements ClientCache {
6
- private readonly unusableOutPoints;
7
- private readonly usableCells;
5
+ export declare class ClientCacheMemory extends ClientCache {
6
+ /**
7
+ * OutPoint => [isLive, Cell | OutPoint]
8
+ */
9
+ private readonly cells;
10
+ /**
11
+ * TX Hash => Transaction
12
+ */
8
13
  private readonly knownTransactions;
9
- private readonly knownCells;
10
14
  markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
11
15
  markUnusable(...outPointLikes: (OutPointLike | OutPointLike[])[]): Promise<void>;
12
- markTransactions(...transactionLike: (TransactionLike | TransactionLike[])[]): Promise<void>;
16
+ clear(): Promise<void>;
13
17
  findCells(keyLike: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
18
+ getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
14
19
  isUnusable(outPointLike: OutPointLike): Promise<boolean>;
15
20
  recordTransactions(...transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
16
21
  getTransaction(txHashLike: HexLike): Promise<Transaction | undefined>;
17
22
  recordCells(...cells: (CellLike | CellLike[])[]): Promise<void>;
18
- getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
19
23
  }
20
24
  //# sourceMappingURL=memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEnC,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,YAAY,CAChB,GAAG,aAAa,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAYV,gBAAgB,CACpB,GAAG,eAAe,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;IAyBT,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;IAUjB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD,kBAAkB,CACtB,GAAG,YAAY,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACvD,OAAO,CAAC,IAAI,CAAC;IAGV,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKrE,WAAW,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG/D,OAAO,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;CAIrE"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,SAAQ,WAAW;IAChD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CASR;IAEd;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IAEnE,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE,YAAY,CAChB,GAAG,aAAa,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAcV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;IAYjB,OAAO,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAS9D,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxD,kBAAkB,CACtB,GAAG,YAAY,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACvD,OAAO,CAAC,IAAI,CAAC;IAMV,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKrE,WAAW,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAWtE"}
@@ -1,73 +1,83 @@
1
1
  import { Cell, OutPoint, Transaction, } from "../../ckb/index.js";
2
2
  import { hexFrom } from "../../hex/index.js";
3
+ import { ClientCache } from "./cache.js";
3
4
  import { filterCell } from "./memory.advanced.js";
4
- export class ClientCacheMemory {
5
+ export class ClientCacheMemory extends ClientCache {
5
6
  constructor() {
6
- this.unusableOutPoints = [];
7
- this.usableCells = [];
8
- this.knownTransactions = [];
9
- this.knownCells = [];
7
+ super(...arguments);
8
+ /**
9
+ * OutPoint => [isLive, Cell | OutPoint]
10
+ */
11
+ this.cells = new Map();
12
+ /**
13
+ * TX Hash => Transaction
14
+ */
15
+ this.knownTransactions = new Map();
10
16
  }
11
17
  async markUsable(...cellLikes) {
12
18
  cellLikes.flat().forEach((cellLike) => {
13
19
  const cell = Cell.from(cellLike).clone();
14
- this.usableCells.push(cell);
15
- this.knownCells.push(cell);
16
- const index = this.unusableOutPoints.findIndex((o) => cell.outPoint.eq(o));
17
- if (index !== -1) {
18
- this.unusableOutPoints.splice(index, 1);
19
- }
20
+ const outPointStr = hexFrom(cell.outPoint.toBytes());
21
+ this.cells.set(outPointStr, [true, cell]);
20
22
  });
21
23
  }
22
24
  async markUnusable(...outPointLikes) {
23
25
  outPointLikes.flat().forEach((outPointLike) => {
24
26
  const outPoint = OutPoint.from(outPointLike);
25
- this.unusableOutPoints.push(outPoint.clone());
26
- const index = this.usableCells.findIndex((c) => c.outPoint.eq(outPoint));
27
- if (index !== -1) {
28
- this.usableCells.splice(index, 1);
27
+ const outPointStr = hexFrom(outPoint.toBytes());
28
+ const existed = this.cells.get(outPointStr);
29
+ if (existed) {
30
+ existed[0] = false;
31
+ return;
29
32
  }
33
+ this.cells.set(outPointStr, [false, { outPoint }]);
30
34
  });
31
35
  }
32
- async markTransactions(...transactionLike) {
33
- await Promise.all(transactionLike.flat().map(async (transactionLike) => {
34
- const tx = Transaction.from(transactionLike);
35
- const txHash = tx.hash();
36
- await Promise.all(tx.inputs.map((i) => this.markUnusable(i.previousOutput)));
37
- await Promise.all(tx.outputs.map((o, i) => this.markUsable({
38
- cellOutput: o,
39
- outputData: tx.outputsData[i],
40
- outPoint: {
41
- txHash,
42
- index: i,
43
- },
44
- })));
45
- }));
36
+ async clear() {
37
+ for (const val of this.cells.values()) {
38
+ val[0] = undefined;
39
+ }
46
40
  }
47
41
  async *findCells(keyLike) {
48
- for (const cell of this.usableCells) {
42
+ for (const [isLive, cell] of this.cells.values()) {
43
+ if (!isLive) {
44
+ continue;
45
+ }
49
46
  if (!filterCell(keyLike, cell)) {
50
47
  continue;
51
48
  }
52
- yield cell;
49
+ yield cell.clone();
50
+ }
51
+ }
52
+ async getCell(outPointLike) {
53
+ const outPoint = OutPoint.from(outPointLike);
54
+ const cell = this.cells.get(hexFrom(outPoint.toBytes()))?.[1];
55
+ if (cell && cell.cellOutput && cell.outputData) {
56
+ return Cell.from(cell.clone());
53
57
  }
54
58
  }
55
59
  async isUnusable(outPointLike) {
56
60
  const outPoint = OutPoint.from(outPointLike);
57
- return this.unusableOutPoints.find((o) => o.eq(outPoint)) !== undefined;
61
+ return !(this.cells.get(hexFrom(outPoint.toBytes()))?.[0] ?? true);
58
62
  }
59
63
  async recordTransactions(...transactions) {
60
- this.knownTransactions.push(...transactions.flat().map(Transaction.from));
64
+ transactions.flat().map((txLike) => {
65
+ const tx = Transaction.from(txLike);
66
+ this.knownTransactions.set(tx.hash(), tx);
67
+ });
61
68
  }
62
69
  async getTransaction(txHashLike) {
63
70
  const txHash = hexFrom(txHashLike);
64
- return this.knownTransactions.find((tx) => tx.hash() === txHash);
71
+ return this.knownTransactions.get(txHash)?.clone();
65
72
  }
66
73
  async recordCells(...cells) {
67
- this.knownCells.push(...cells.flat().map(Cell.from));
68
- }
69
- async getCell(outPointLike) {
70
- const outPoint = OutPoint.from(outPointLike);
71
- return this.knownCells.find((cell) => cell.outPoint.eq(outPoint));
74
+ cells.flat().map((cellLike) => {
75
+ const cell = Cell.from(cellLike);
76
+ const outPointStr = hexFrom(cell.outPoint.toBytes());
77
+ if (this.cells.get(outPointStr)) {
78
+ return;
79
+ }
80
+ this.cells.set(outPointStr, [undefined, cell]);
81
+ });
72
82
  }
73
83
  }