@ckb-ccc/core 0.0.13-alpha.7 → 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 (33) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/client/cache/cache.d.ts +29 -9
  3. package/dist/client/cache/cache.d.ts.map +1 -1
  4. package/dist/client/cache/cache.js +43 -1
  5. package/dist/client/cache/memory.d.ts +10 -6
  6. package/dist/client/cache/memory.d.ts.map +1 -1
  7. package/dist/client/cache/memory.js +49 -39
  8. package/dist/client/clientTypes.d.ts +25 -2
  9. package/dist/client/clientTypes.d.ts.map +1 -1
  10. package/dist/client/clientTypes.js +26 -1
  11. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  12. package/dist/client/jsonRpc/index.js +24 -1
  13. package/dist/fixedPoint/index.d.ts +3 -3
  14. package/dist/fixedPoint/index.js +3 -3
  15. package/dist.commonjs/client/cache/cache.d.ts +29 -9
  16. package/dist.commonjs/client/cache/cache.d.ts.map +1 -1
  17. package/dist.commonjs/client/cache/cache.js +45 -0
  18. package/dist.commonjs/client/cache/memory.d.ts +10 -6
  19. package/dist.commonjs/client/cache/memory.d.ts.map +1 -1
  20. package/dist.commonjs/client/cache/memory.js +49 -39
  21. package/dist.commonjs/client/clientTypes.d.ts +25 -2
  22. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  23. package/dist.commonjs/client/clientTypes.js +33 -5
  24. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  25. package/dist.commonjs/client/jsonRpc/index.js +40 -17
  26. package/dist.commonjs/fixedPoint/index.d.ts +3 -3
  27. package/dist.commonjs/fixedPoint/index.js +3 -3
  28. package/package.json +1 -1
  29. package/src/client/cache/cache.ts +58 -13
  30. package/src/client/cache/memory.ts +60 -52
  31. package/src/client/clientTypes.ts +54 -3
  32. package/src/client/jsonRpc/index.ts +44 -2
  33. package/src/fixedPoint/index.ts +3 -3
@@ -3,75 +3,85 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClientCacheMemory = void 0;
4
4
  const index_js_1 = require("../../ckb/index.js");
5
5
  const index_js_2 = require("../../hex/index.js");
6
+ const cache_js_1 = require("./cache.js");
6
7
  const memory_advanced_js_1 = require("./memory.advanced.js");
7
- class ClientCacheMemory {
8
+ class ClientCacheMemory extends cache_js_1.ClientCache {
8
9
  constructor() {
9
- this.unusableOutPoints = [];
10
- this.usableCells = [];
11
- this.knownTransactions = [];
12
- this.knownCells = [];
10
+ super(...arguments);
11
+ /**
12
+ * OutPoint => [isLive, Cell | OutPoint]
13
+ */
14
+ this.cells = new Map();
15
+ /**
16
+ * TX Hash => Transaction
17
+ */
18
+ this.knownTransactions = new Map();
13
19
  }
14
20
  async markUsable(...cellLikes) {
15
21
  cellLikes.flat().forEach((cellLike) => {
16
22
  const cell = index_js_1.Cell.from(cellLike).clone();
17
- this.usableCells.push(cell);
18
- this.knownCells.push(cell);
19
- const index = this.unusableOutPoints.findIndex((o) => cell.outPoint.eq(o));
20
- if (index !== -1) {
21
- this.unusableOutPoints.splice(index, 1);
22
- }
23
+ const outPointStr = (0, index_js_2.hexFrom)(cell.outPoint.toBytes());
24
+ this.cells.set(outPointStr, [true, cell]);
23
25
  });
24
26
  }
25
27
  async markUnusable(...outPointLikes) {
26
28
  outPointLikes.flat().forEach((outPointLike) => {
27
29
  const outPoint = index_js_1.OutPoint.from(outPointLike);
28
- this.unusableOutPoints.push(outPoint.clone());
29
- const index = this.usableCells.findIndex((c) => c.outPoint.eq(outPoint));
30
- if (index !== -1) {
31
- this.usableCells.splice(index, 1);
30
+ const outPointStr = (0, index_js_2.hexFrom)(outPoint.toBytes());
31
+ const existed = this.cells.get(outPointStr);
32
+ if (existed) {
33
+ existed[0] = false;
34
+ return;
32
35
  }
36
+ this.cells.set(outPointStr, [false, { outPoint }]);
33
37
  });
34
38
  }
35
- async markTransactions(...transactionLike) {
36
- await Promise.all(transactionLike.flat().map(async (transactionLike) => {
37
- const tx = index_js_1.Transaction.from(transactionLike);
38
- const txHash = tx.hash();
39
- await Promise.all(tx.inputs.map((i) => this.markUnusable(i.previousOutput)));
40
- await Promise.all(tx.outputs.map((o, i) => this.markUsable({
41
- cellOutput: o,
42
- outputData: tx.outputsData[i],
43
- outPoint: {
44
- txHash,
45
- index: i,
46
- },
47
- })));
48
- }));
39
+ async clear() {
40
+ for (const val of this.cells.values()) {
41
+ val[0] = undefined;
42
+ }
49
43
  }
50
44
  async *findCells(keyLike) {
51
- for (const cell of this.usableCells) {
45
+ for (const [isLive, cell] of this.cells.values()) {
46
+ if (!isLive) {
47
+ continue;
48
+ }
52
49
  if (!(0, memory_advanced_js_1.filterCell)(keyLike, cell)) {
53
50
  continue;
54
51
  }
55
- yield cell;
52
+ yield cell.clone();
53
+ }
54
+ }
55
+ async getCell(outPointLike) {
56
+ const outPoint = index_js_1.OutPoint.from(outPointLike);
57
+ const cell = this.cells.get((0, index_js_2.hexFrom)(outPoint.toBytes()))?.[1];
58
+ if (cell && cell.cellOutput && cell.outputData) {
59
+ return index_js_1.Cell.from(cell.clone());
56
60
  }
57
61
  }
58
62
  async isUnusable(outPointLike) {
59
63
  const outPoint = index_js_1.OutPoint.from(outPointLike);
60
- return this.unusableOutPoints.find((o) => o.eq(outPoint)) !== undefined;
64
+ return !(this.cells.get((0, index_js_2.hexFrom)(outPoint.toBytes()))?.[0] ?? true);
61
65
  }
62
66
  async recordTransactions(...transactions) {
63
- this.knownTransactions.push(...transactions.flat().map(index_js_1.Transaction.from));
67
+ transactions.flat().map((txLike) => {
68
+ const tx = index_js_1.Transaction.from(txLike);
69
+ this.knownTransactions.set(tx.hash(), tx);
70
+ });
64
71
  }
65
72
  async getTransaction(txHashLike) {
66
73
  const txHash = (0, index_js_2.hexFrom)(txHashLike);
67
- return this.knownTransactions.find((tx) => tx.hash() === txHash);
74
+ return this.knownTransactions.get(txHash)?.clone();
68
75
  }
69
76
  async recordCells(...cells) {
70
- this.knownCells.push(...cells.flat().map(index_js_1.Cell.from));
71
- }
72
- async getCell(outPointLike) {
73
- const outPoint = index_js_1.OutPoint.from(outPointLike);
74
- return this.knownCells.find((cell) => cell.outPoint.eq(outPoint));
77
+ cells.flat().map((cellLike) => {
78
+ const cell = index_js_1.Cell.from(cellLike);
79
+ const outPointStr = (0, index_js_2.hexFrom)(cell.outPoint.toBytes());
80
+ if (this.cells.get(outPointStr)) {
81
+ return;
82
+ }
83
+ this.cells.set(outPointStr, [undefined, cell]);
84
+ });
75
85
  }
76
86
  }
77
87
  exports.ClientCacheMemory = ClientCacheMemory;
@@ -1,5 +1,5 @@
1
- import { Cell, Epoch, Script, Transaction } from "../ckb/index.js";
2
- import { Hex } from "../hex/index.js";
1
+ import { Cell, Epoch, OutPoint, OutPointLike, Script, Transaction } from "../ckb/index.js";
2
+ import { Hex, HexLike } from "../hex/index.js";
3
3
  import { Num, NumLike } from "../num/index.js";
4
4
  import { ClientCollectableSearchKeyFilterLike, ClientCollectableSearchKeyLike } from "./clientTypes.advanced.js";
5
5
  /**
@@ -167,4 +167,27 @@ export type ClientBlock = {
167
167
  transactions: Transaction[];
168
168
  uncles: ClientBlockUncle[];
169
169
  };
170
+ export interface ErrorClientBaseLike {
171
+ message: string;
172
+ code: number;
173
+ data: string;
174
+ }
175
+ export declare class ErrorClientBase extends Error {
176
+ readonly message: string;
177
+ readonly code: number;
178
+ readonly data: string;
179
+ constructor(origin: ErrorClientBaseLike);
180
+ }
181
+ export declare class ErrorClientResolveUnknown extends ErrorClientBase {
182
+ readonly outPoint: OutPoint;
183
+ constructor(origin: ErrorClientBaseLike, outPointLike: OutPointLike);
184
+ }
185
+ export declare class ErrorClientVerification extends ErrorClientBase {
186
+ readonly source: "lock" | "inputType" | "outputType";
187
+ readonly errorCode: number;
188
+ readonly scriptHashType: "data" | "type";
189
+ readonly sourceIndex: Num;
190
+ readonly scriptCodeHash: Hex;
191
+ constructor(origin: ErrorClientBaseLike, source: "lock" | "inputType" | "outputType", sourceIndex: NumLike, errorCode: number, scriptHashType: "data" | "type", scriptCodeHash: HexLike);
192
+ }
170
193
  //# 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,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClientIndexerSearchKeyTransaction = exports.ClientIndexerSearchKey = exports.ClientIndexerSearchKeyFilter = void 0;
3
+ 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
- const index_js_3 = require("../utils/index.js");
6
+ const index_js_3 = require("../num/index.js");
7
+ const index_js_4 = require("../utils/index.js");
7
8
  const clientTypes_advanced_js_1 = require("./clientTypes.advanced.js");
8
9
  /**
9
10
  * @public
@@ -19,7 +20,7 @@ class ClientIndexerSearchKeyFilter {
19
20
  this.blockRange = blockRange;
20
21
  }
21
22
  static from(filterLike) {
22
- return new ClientIndexerSearchKeyFilter((0, index_js_3.apply)(index_js_1.Script.from, filterLike.script), (0, index_js_3.apply)(clientTypes_advanced_js_1.clientSearchKeyRangeFrom, filterLike.scriptLenRange), (0, index_js_3.apply)(index_js_2.hexFrom, filterLike.outputData), filterLike.outputDataSearchMode ?? undefined, (0, index_js_3.apply)(clientTypes_advanced_js_1.clientSearchKeyRangeFrom, filterLike.outputDataLenRange), (0, index_js_3.apply)(clientTypes_advanced_js_1.clientSearchKeyRangeFrom, filterLike.outputCapacityRange), (0, index_js_3.apply)(clientTypes_advanced_js_1.clientSearchKeyRangeFrom, filterLike.blockRange));
23
+ 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));
23
24
  }
24
25
  }
25
26
  exports.ClientIndexerSearchKeyFilter = ClientIndexerSearchKeyFilter;
@@ -35,7 +36,7 @@ class ClientIndexerSearchKey {
35
36
  this.withData = withData;
36
37
  }
37
38
  static from(keyLike) {
38
- return new ClientIndexerSearchKey(index_js_1.Script.from(keyLike.script), keyLike.scriptType, keyLike.scriptSearchMode, (0, index_js_3.apply)(ClientIndexerSearchKeyFilter.from, keyLike.filter), keyLike.withData ?? undefined);
39
+ 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);
39
40
  }
40
41
  }
41
42
  exports.ClientIndexerSearchKey = ClientIndexerSearchKey;
@@ -51,7 +52,34 @@ class ClientIndexerSearchKeyTransaction {
51
52
  this.groupByTransaction = groupByTransaction;
52
53
  }
53
54
  static from(keyLike) {
54
- return new ClientIndexerSearchKeyTransaction(index_js_1.Script.from(keyLike.script), keyLike.scriptType, keyLike.scriptSearchMode, (0, index_js_3.apply)(ClientIndexerSearchKeyFilter.from, keyLike.filter), keyLike.groupByTransaction ?? undefined);
55
+ 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);
55
56
  }
56
57
  }
57
58
  exports.ClientIndexerSearchKeyTransaction = ClientIndexerSearchKeyTransaction;
59
+ class ErrorClientBase extends Error {
60
+ constructor(origin) {
61
+ super(origin.message);
62
+ this.message = origin.message;
63
+ this.code = origin.code;
64
+ this.data = origin.data;
65
+ }
66
+ }
67
+ exports.ErrorClientBase = ErrorClientBase;
68
+ class ErrorClientResolveUnknown extends ErrorClientBase {
69
+ constructor(origin, outPointLike) {
70
+ super(origin);
71
+ this.outPoint = index_js_1.OutPoint.from(outPointLike);
72
+ }
73
+ }
74
+ exports.ErrorClientResolveUnknown = ErrorClientResolveUnknown;
75
+ class ErrorClientVerification extends ErrorClientBase {
76
+ constructor(origin, source, sourceIndex, errorCode, scriptHashType, scriptCodeHash) {
77
+ super(origin);
78
+ this.source = source;
79
+ this.errorCode = errorCode;
80
+ this.scriptHashType = scriptHashType;
81
+ this.sourceIndex = (0, index_js_3.numFrom)(sourceIndex);
82
+ this.scriptCodeHash = (0, index_js_2.hexFrom)(scriptCodeHash);
83
+ }
84
+ }
85
+ exports.ErrorClientVerification = ErrorClientVerification;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,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,EACzB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EAGf,MAAM,2BAA2B,CAAC;AA2BnC;;;GAGG;AAEH,8BAAsB,aAAc,SAAQ,MAAM;IAW9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,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;;;;;;;;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;IAmB1C;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAerD;;;;;;OAMG;IAEH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,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,EAKzB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EAGf,MAAM,2BAA2B,CAAC;AA2BnC;;;GAGG;AAEH,8BAAsB,aAAc,SAAQ,MAAM;IAW9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,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;;;;;;;;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;IAyD1C;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAerD;;;;;;OAMG;IAEH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQpE"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClientJsonRpc = void 0;
4
- const index_js_1 = require("../../hex/index.js");
5
- const index_js_2 = require("../../num/index.js");
6
- const index_js_3 = require("../../utils/index.js");
4
+ const index_js_1 = require("../../ckb/index.js");
5
+ const index_js_2 = require("../../hex/index.js");
6
+ const index_js_3 = require("../../num/index.js");
7
+ const index_js_4 = require("../../utils/index.js");
7
8
  const client_js_1 = require("../client.js");
9
+ const clientTypes_js_1 = require("../clientTypes.js");
8
10
  const advanced_js_1 = require("../transports/advanced.js");
9
11
  const advanced_js_2 = require("./advanced.js");
10
12
  /**
@@ -45,14 +47,14 @@ class ClientJsonRpc extends client_js_1.Client {
45
47
  *
46
48
  * @returns Tip block number
47
49
  */
48
- this.getTip = this.buildSender("get_tip_block_number", [], index_js_2.numFrom);
50
+ this.getTip = this.buildSender("get_tip_block_number", [], index_js_3.numFrom);
49
51
  /**
50
52
  * Get tip block header
51
53
  *
52
54
  * @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
53
55
  * @returns BlockHeader
54
56
  */
55
- this.getTipHeader = this.buildSender("get_tip_header", [], (b) => (0, index_js_3.apply)(advanced_js_2.JsonRpcTransformers.blockHeaderTo, b));
57
+ this.getTipHeader = this.buildSender("get_tip_header", [], (b) => (0, index_js_4.apply)(advanced_js_2.JsonRpcTransformers.blockHeaderTo, b));
56
58
  /**
57
59
  * Get block by block number
58
60
  *
@@ -61,7 +63,7 @@ class ClientJsonRpc extends client_js_1.Client {
61
63
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
62
64
  * @returns Block
63
65
  */
64
- this.getBlockByNumber = this.buildSender("get_block_by_number", [(v) => (0, index_js_2.numToHex)((0, index_js_2.numFrom)(v))], (b) => (0, index_js_3.apply)(advanced_js_2.JsonRpcTransformers.blockTo, b));
66
+ 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_2.JsonRpcTransformers.blockTo, b));
65
67
  /**
66
68
  * Get block by block hash
67
69
  *
@@ -70,7 +72,7 @@ class ClientJsonRpc extends client_js_1.Client {
70
72
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
71
73
  * @returns Block
72
74
  */
73
- this.getBlockByHash = this.buildSender("get_block", [index_js_1.hexFrom], (b) => (0, index_js_3.apply)(advanced_js_2.JsonRpcTransformers.blockTo, b));
75
+ this.getBlockByHash = this.buildSender("get_block", [index_js_2.hexFrom], (b) => (0, index_js_4.apply)(advanced_js_2.JsonRpcTransformers.blockTo, b));
74
76
  /**
75
77
  * Get header by block number
76
78
  *
@@ -78,7 +80,7 @@ class ClientJsonRpc extends client_js_1.Client {
78
80
  * @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
79
81
  * @returns BlockHeader
80
82
  */
81
- this.getHeaderByNumber = this.buildSender("get_header_by_number", [(v) => (0, index_js_2.numToHex)((0, index_js_2.numFrom)(v))], (b) => (0, index_js_3.apply)(advanced_js_2.JsonRpcTransformers.blockHeaderTo, b));
83
+ 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_2.JsonRpcTransformers.blockHeaderTo, b));
82
84
  /**
83
85
  * Get header by block hash
84
86
  *
@@ -86,14 +88,14 @@ class ClientJsonRpc extends client_js_1.Client {
86
88
  * @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
87
89
  * @returns BlockHeader
88
90
  */
89
- this.getHeaderByHash = this.buildSender("get_header", [index_js_1.hexFrom], (b) => (0, index_js_3.apply)(advanced_js_2.JsonRpcTransformers.blockHeaderTo, b));
91
+ this.getHeaderByHash = this.buildSender("get_header", [index_js_2.hexFrom], (b) => (0, index_js_4.apply)(advanced_js_2.JsonRpcTransformers.blockHeaderTo, b));
90
92
  /**
91
93
  * Estimate cycles of a transaction.
92
94
  *
93
95
  * @param transaction - The transaction to estimate.
94
96
  * @returns Consumed cycles
95
97
  */
96
- this.estimateCycles = this.buildSender("estimate_cycles", [advanced_js_2.JsonRpcTransformers.transactionFrom], ({ cycles }) => (0, index_js_2.numFrom)(cycles));
98
+ this.estimateCycles = this.buildSender("estimate_cycles", [advanced_js_2.JsonRpcTransformers.transactionFrom], ({ cycles }) => (0, index_js_3.numFrom)(cycles));
97
99
  /**
98
100
  * Test a transaction.
99
101
  *
@@ -101,7 +103,7 @@ class ClientJsonRpc extends client_js_1.Client {
101
103
  * @param validator - "passthrough": Disable validation. "well_known_scripts_only": Only accept well known scripts in the transaction.
102
104
  * @returns Consumed cycles
103
105
  */
104
- this.sendTransactionDry = this.buildSender("test_tx_pool_accept", [advanced_js_2.JsonRpcTransformers.transactionFrom], ({ cycles }) => (0, index_js_2.numFrom)(cycles));
106
+ this.sendTransactionDry = this.buildSender("test_tx_pool_accept", [advanced_js_2.JsonRpcTransformers.transactionFrom], ({ cycles }) => (0, index_js_3.numFrom)(cycles));
105
107
  /**
106
108
  * Send a transaction to node.
107
109
  *
@@ -109,14 +111,14 @@ class ClientJsonRpc extends client_js_1.Client {
109
111
  * @param validator - "passthrough": Disable validation. "well_known_scripts_only": Only accept well known scripts in the transaction.
110
112
  * @returns Transaction hash.
111
113
  */
112
- this.sendTransactionNoCache = this.buildSender("send_transaction", [advanced_js_2.JsonRpcTransformers.transactionFrom], index_js_1.hexFrom);
114
+ this.sendTransactionNoCache = this.buildSender("send_transaction", [advanced_js_2.JsonRpcTransformers.transactionFrom], index_js_2.hexFrom);
113
115
  /**
114
116
  * Get a transaction from node.
115
117
  *
116
118
  * @param txHash - The hash of the transaction.
117
119
  * @returns The transaction with status.
118
120
  */
119
- this.getTransactionNoCache = this.buildSender("get_transaction", [index_js_1.hexFrom], advanced_js_2.JsonRpcTransformers.transactionResponseTo);
121
+ this.getTransactionNoCache = this.buildSender("get_transaction", [index_js_2.hexFrom], advanced_js_2.JsonRpcTransformers.transactionResponseTo);
120
122
  /**
121
123
  * find cells from node.
122
124
  *
@@ -129,7 +131,7 @@ class ClientJsonRpc extends client_js_1.Client {
129
131
  this.findCellsPagedNoCache = this.buildSender("get_cells", [
130
132
  advanced_js_2.JsonRpcTransformers.indexerSearchKeyFrom,
131
133
  (order) => order ?? "asc",
132
- (limit) => (0, index_js_2.numToHex)(limit ?? 10),
134
+ (limit) => (0, index_js_3.numToHex)(limit ?? 10),
133
135
  ], advanced_js_2.JsonRpcTransformers.findCellsResponseTo);
134
136
  /**
135
137
  * find transactions from node.
@@ -143,7 +145,7 @@ class ClientJsonRpc extends client_js_1.Client {
143
145
  this.findTransactionsPaged = this.buildSender("get_transactions", [
144
146
  advanced_js_2.JsonRpcTransformers.indexerSearchKeyTransactionFrom,
145
147
  (order) => order ?? "asc",
146
- (limit) => (0, index_js_2.numToHex)(limit ?? 10),
148
+ (limit) => (0, index_js_3.numToHex)(limit ?? 10),
147
149
  ], advanced_js_2.JsonRpcTransformers.findTransactionsResponseTo);
148
150
  /**
149
151
  * get cells capacity from node.
@@ -151,7 +153,7 @@ class ClientJsonRpc extends client_js_1.Client {
151
153
  * @param key - The search key of cells.
152
154
  * @returns The sum of cells capacity.
153
155
  */
154
- this.getCellsCapacity = this.buildSender("get_cells_capacity", [advanced_js_2.JsonRpcTransformers.indexerSearchKeyFrom], ({ capacity }) => (0, index_js_2.numFrom)(capacity));
156
+ this.getCellsCapacity = this.buildSender("get_cells_capacity", [advanced_js_2.JsonRpcTransformers.indexerSearchKeyFrom], ({ capacity }) => (0, index_js_3.numFrom)(capacity));
155
157
  this.transport = (0, advanced_js_1.transportFromUri)(url_, config);
156
158
  }
157
159
  /**
@@ -175,7 +177,28 @@ class ClientJsonRpc extends client_js_1.Client {
175
177
  const payload = ClientJsonRpc.buildPayload(rpcMethod, await Promise.all(req
176
178
  .concat(Array.from(new Array(Math.max(inTransformers.length - req.length, 0))))
177
179
  .map((v, i) => transform(v, inTransformers[i]))));
178
- return transform(await this.send(payload), outTransformer);
180
+ try {
181
+ return transform(await this.send(payload), outTransformer);
182
+ }
183
+ catch (errAny) {
184
+ if (typeof errAny !== "object" || errAny === null) {
185
+ throw errAny;
186
+ }
187
+ const err = errAny;
188
+ const unknownOutPointMatch = err.data.match(new RegExp("Resolve\\(Unknown\\(OutPoint\\((0x.*)\\)\\)\\)"))?.[1];
189
+ if (unknownOutPointMatch) {
190
+ throw new clientTypes_js_1.ErrorClientResolveUnknown(err, index_js_1.OutPoint.fromBytes(unknownOutPointMatch));
191
+ }
192
+ const verificationFailedMatch = err.data.match(new RegExp("Verification\\(Error { kind: Script, inner: TransactionScriptError { source: (Inputs|Outputs)\\[([0-9]*)\\].(Lock|Type), cause: ValidationFailure: see error code (-?[0-9])* on page https://nervosnetwork\\.github\\.io/ckb-script-error-codes/by-(type|data)-hash/(.*)\\.html"));
193
+ if (verificationFailedMatch) {
194
+ throw new clientTypes_js_1.ErrorClientVerification(err, verificationFailedMatch[3] === "Lock"
195
+ ? "lock"
196
+ : verificationFailedMatch[1] === "Inputs"
197
+ ? "inputType"
198
+ : "outputType", verificationFailedMatch[2], Number(verificationFailedMatch[4]), verificationFailedMatch[5] === "data" ? "data" : "type", verificationFailedMatch[6]);
199
+ }
200
+ throw new clientTypes_js_1.ErrorClientBase(err);
201
+ }
179
202
  };
180
203
  }
181
204
  /**
@@ -20,8 +20,8 @@ export type FixedPointLike = bigint | string | number;
20
20
  * @example
21
21
  * ```typescript
22
22
  * const str = fixedPointToString(123456789n, 8); // Outputs "1.23456789"
23
- * const strFromString = fixedPointToString("123456789", 8); // Outputs "1.23456789"
24
- * const strFromNumber = fixedPointToString(123456789, 8); // Outputs "1.23456789"
23
+ * const strFromString = fixedPointToString("1.23456789", 8); // Outputs "1.23456789"
24
+ * const strFromNumber = fixedPointToString(1.23456789, 8); // Outputs "1.23456789"
25
25
  * ```
26
26
  */
27
27
  export declare function fixedPointToString(val: FixedPointLike, decimals?: number): string;
@@ -35,7 +35,7 @@ export declare function fixedPointToString(val: FixedPointLike, decimals?: numbe
35
35
  *
36
36
  * @example
37
37
  * ```typescript
38
- * const fixedPoint = fixedPointFrom(1.23456789, 8); // Outputs 123456789n
38
+ * const fixedPoint = fixedPointFrom(123456789n, 8); // Outputs 123456789n
39
39
  * const fixedPointFromString = fixedPointFrom("1.23456789", 8); // Outputs 123456789n
40
40
  * const fixedPointFromNumber = fixedPointFrom(1.23456789, 8); // Outputs 123456789n
41
41
  * ```
@@ -16,8 +16,8 @@ exports.One = exports.Zero = exports.fixedPointFrom = exports.fixedPointToString
16
16
  * @example
17
17
  * ```typescript
18
18
  * const str = fixedPointToString(123456789n, 8); // Outputs "1.23456789"
19
- * const strFromString = fixedPointToString("123456789", 8); // Outputs "1.23456789"
20
- * const strFromNumber = fixedPointToString(123456789, 8); // Outputs "1.23456789"
19
+ * const strFromString = fixedPointToString("1.23456789", 8); // Outputs "1.23456789"
20
+ * const strFromNumber = fixedPointToString(1.23456789, 8); // Outputs "1.23456789"
21
21
  * ```
22
22
  */
23
23
  function fixedPointToString(val, decimals = 8) {
@@ -43,7 +43,7 @@ exports.fixedPointToString = fixedPointToString;
43
43
  *
44
44
  * @example
45
45
  * ```typescript
46
- * const fixedPoint = fixedPointFrom(1.23456789, 8); // Outputs 123456789n
46
+ * const fixedPoint = fixedPointFrom(123456789n, 8); // Outputs 123456789n
47
47
  * const fixedPointFromString = fixedPointFrom("1.23456789", 8); // Outputs 123456789n
48
48
  * const fixedPointFromNumber = fixedPointFrom(1.23456789, 8); // Outputs 123456789n
49
49
  * ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckb-ccc/core",
3
- "version": "0.0.13-alpha.7",
3
+ "version": "0.0.13-alpha.8",
4
4
  "description": "Core of CCC - CKBer's Codebase",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",
@@ -8,23 +8,68 @@ import {
8
8
  import { HexLike } from "../../hex/index.js";
9
9
  import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
10
10
 
11
- export interface ClientCache {
12
- markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
13
- markUnusable(
11
+ export abstract class ClientCache {
12
+ abstract markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
13
+ abstract markUnusable(
14
14
  ...outPointLike: (OutPointLike | OutPointLike[])[]
15
15
  ): Promise<void>;
16
- markTransactions(
16
+ async markTransactions(
17
17
  ...transactionLike: (TransactionLike | TransactionLike[])[]
18
- ): Promise<void>;
18
+ ): Promise<void> {
19
+ await Promise.all([
20
+ this.recordTransactions(...transactionLike),
21
+ ...transactionLike.flat().map((transactionLike) => {
22
+ const tx = Transaction.from(transactionLike);
23
+ const txHash = tx.hash();
19
24
 
20
- isUnusable(outPointLike: OutPointLike): Promise<boolean>;
25
+ return Promise.all([
26
+ ...tx.inputs.map((i) => this.markUnusable(i.previousOutput)),
27
+ ...tx.outputs.map((o, i) =>
28
+ this.markUsable({
29
+ cellOutput: o,
30
+ outputData: tx.outputsData[i],
31
+ outPoint: {
32
+ txHash,
33
+ index: i,
34
+ },
35
+ }),
36
+ ),
37
+ ]);
38
+ }),
39
+ ]);
40
+ }
41
+ abstract clear(): Promise<void>;
42
+ abstract findCells(
43
+ filter: ClientCollectableSearchKeyLike,
44
+ ): AsyncGenerator<Cell>;
45
+ /**
46
+ * Get a known cell by out point
47
+ * @param _outPoint
48
+ */
49
+ abstract getCell(_outPoint: OutPointLike): Promise<Cell | undefined>;
50
+ abstract isUnusable(outPointLike: OutPointLike): Promise<boolean>;
21
51
 
22
- recordTransactions(
23
- ...transactions: (TransactionLike | TransactionLike[])[]
24
- ): Promise<void>;
25
- getTransaction(txHash: HexLike): Promise<Transaction | undefined>;
52
+ /**
53
+ * Record known transactions
54
+ * Implement this method to enable transactions query caching
55
+ * @param _transactions
56
+ */
57
+ async recordTransactions(
58
+ ..._transactions: (TransactionLike | TransactionLike[])[]
59
+ ): Promise<void> {}
60
+ /**
61
+ * Get a known transaction by hash
62
+ * Implement this method to enable transactions query caching
63
+ * @param _txHash
64
+ */
65
+ async getTransaction(_txHash: HexLike): Promise<Transaction | undefined> {
66
+ return;
67
+ }
26
68
 
27
- recordCells(...cells: (CellLike | CellLike[])[]): Promise<void>;
28
- getCell(outPoint: OutPointLike): Promise<Cell | undefined>;
29
- findCells(filter: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
69
+ /**
70
+ * Record known cells
71
+ * Implement this method to enable cells query caching
72
+ * @param _cells
73
+ */
74
+ async recordCells(..._cells: (CellLike | CellLike[])[]): Promise<void> {}
30
75
  }