@ckb-ccc/core 1.5.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 (83) hide show
  1. package/CHANGELOG.md +18 -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 +1 -6
  19. package/dist/client/clientTypes.advanced.d.ts +3 -0
  20. package/dist/client/clientTypes.advanced.d.ts.map +1 -1
  21. package/dist/client/clientTypes.advanced.js +3 -0
  22. package/dist/client/clientTypes.d.ts +110 -13
  23. package/dist/client/clientTypes.d.ts.map +1 -1
  24. package/dist/client/clientTypes.js +118 -4
  25. package/dist/client/jsonRpc/client.d.ts +4 -4
  26. package/dist/client/jsonRpc/client.d.ts.map +1 -1
  27. package/dist/client/jsonRpc/client.js +4 -4
  28. package/dist/client/jsonRpc/transformers.js +3 -3
  29. package/dist/jsonRpc/transports/webSocket.d.ts.map +1 -1
  30. package/dist/jsonRpc/transports/webSocket.js +7 -3
  31. package/dist/molecule/predefined.d.ts +10 -10
  32. package/dist/molecule/predefined.d.ts.map +1 -1
  33. package/dist/utils/index.d.ts +4 -0
  34. package/dist/utils/index.d.ts.map +1 -1
  35. package/dist/utils/index.js +13 -1
  36. package/dist.commonjs/advanced.js +17 -7
  37. package/dist.commonjs/ckb/transaction.d.ts +57 -4
  38. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  39. package/dist.commonjs/ckb/transaction.js +83 -26
  40. package/dist.commonjs/client/cache/cache.d.ts +67 -11
  41. package/dist.commonjs/client/cache/cache.d.ts.map +1 -1
  42. package/dist.commonjs/client/cache/cache.js +94 -9
  43. package/dist.commonjs/client/cache/memory.advanced.d.ts +2 -2
  44. package/dist.commonjs/client/cache/memory.advanced.d.ts.map +1 -1
  45. package/dist.commonjs/client/cache/memory.advanced.js +19 -7
  46. package/dist.commonjs/client/cache/memory.d.ts +24 -7
  47. package/dist.commonjs/client/cache/memory.d.ts.map +1 -1
  48. package/dist.commonjs/client/cache/memory.js +75 -17
  49. package/dist.commonjs/client/client.d.ts +27 -6
  50. package/dist.commonjs/client/client.d.ts.map +1 -1
  51. package/dist.commonjs/client/client.js +111 -20
  52. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  53. package/dist.commonjs/client/clientPublicMainnet.js +1 -6
  54. package/dist.commonjs/client/clientTypes.advanced.d.ts +3 -0
  55. package/dist.commonjs/client/clientTypes.advanced.d.ts.map +1 -1
  56. package/dist.commonjs/client/clientTypes.advanced.js +4 -0
  57. package/dist.commonjs/client/clientTypes.d.ts +110 -13
  58. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  59. package/dist.commonjs/client/clientTypes.js +123 -4
  60. package/dist.commonjs/client/jsonRpc/client.d.ts +4 -4
  61. package/dist.commonjs/client/jsonRpc/client.d.ts.map +1 -1
  62. package/dist.commonjs/client/jsonRpc/client.js +4 -4
  63. package/dist.commonjs/client/jsonRpc/transformers.js +2 -2
  64. package/dist.commonjs/index.js +17 -7
  65. package/dist.commonjs/jsonRpc/transports/webSocket.d.ts.map +1 -1
  66. package/dist.commonjs/jsonRpc/transports/webSocket.js +7 -3
  67. package/dist.commonjs/molecule/index.js +17 -7
  68. package/dist.commonjs/utils/index.d.ts +4 -0
  69. package/dist.commonjs/utils/index.d.ts.map +1 -1
  70. package/dist.commonjs/utils/index.js +13 -0
  71. package/package.json +1 -1
  72. package/src/ckb/transaction.ts +112 -41
  73. package/src/client/cache/cache.ts +126 -13
  74. package/src/client/cache/memory.advanced.ts +24 -7
  75. package/src/client/cache/memory.ts +130 -30
  76. package/src/client/client.ts +170 -27
  77. package/src/client/clientPublicMainnet.ts +1 -6
  78. package/src/client/clientTypes.advanced.ts +4 -0
  79. package/src/client/clientTypes.ts +224 -33
  80. package/src/client/jsonRpc/client.ts +11 -9
  81. package/src/client/jsonRpc/transformers.ts +2 -2
  82. package/src/jsonRpc/transports/webSocket.ts +17 -13
  83. package/src/utils/index.ts +14 -1
@@ -92,7 +92,11 @@ class MapLru extends Map {
92
92
  this.capacity = capacity;
93
93
  this.lru = [];
94
94
  }
95
- access(key) {
95
+ get(key) {
96
+ const val = super.get(key);
97
+ if (val === undefined) {
98
+ return;
99
+ }
96
100
  const index = this.lru.indexOf(key);
97
101
  if (index !== -1) {
98
102
  this.lru.splice(index, 1);
@@ -102,14 +106,22 @@ class MapLru extends Map {
102
106
  this.delete(this.lru[0]);
103
107
  this.lru.shift();
104
108
  }
105
- }
106
- get(key) {
107
- this.access(key);
108
- return super.get(key);
109
+ return val;
109
110
  }
110
111
  set(key, value) {
111
- this.access(key);
112
- return super.set(key, value);
112
+ this.get(key);
113
+ super.set(key, value);
114
+ return this;
115
+ }
116
+ delete(key) {
117
+ if (!super.delete(key)) {
118
+ return false;
119
+ }
120
+ const index = this.lru.indexOf(key);
121
+ if (index !== -1) {
122
+ this.lru.splice(index, 1);
123
+ }
124
+ return true;
113
125
  }
114
126
  }
115
127
  exports.MapLru = MapLru;
@@ -1,27 +1,44 @@
1
- import { Cell, CellLike, OutPointLike, Transaction, TransactionLike } from "../../ckb/index.js";
1
+ import { Cell, CellLike, OutPointLike } from "../../ckb/index.js";
2
2
  import { HexLike } from "../../hex/index.js";
3
+ import { NumLike } from "../../num/index.js";
3
4
  import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
5
+ import { ClientBlock, ClientBlockHeader, ClientBlockHeaderLike, ClientBlockLike, ClientTransactionResponse, ClientTransactionResponseLike } from "../clientTypes.js";
4
6
  import { ClientCache } from "./cache.js";
5
7
  export declare class ClientCacheMemory extends ClientCache {
6
8
  private readonly maxCells;
7
9
  private readonly maxTxs;
10
+ private readonly maxBlocks;
8
11
  /**
9
12
  * OutPoint => [isLive, Cell | OutPoint]
10
13
  */
11
14
  private readonly cells;
12
15
  /**
13
- * TX Hash => Transaction
16
+ * TX Hash => Transaction Response
14
17
  */
15
18
  private readonly knownTransactions;
16
- constructor(maxCells?: number, maxTxs?: number);
17
- markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
19
+ /**
20
+ * Block Number => Block Hash
21
+ */
22
+ private readonly knownBlockHashes;
23
+ /**
24
+ * Block Hash => Block Header / Full Block
25
+ */
26
+ private readonly knownBlocks;
27
+ constructor(maxCells?: number, maxTxs?: number, maxBlocks?: number);
28
+ markUsableNoCache(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
18
29
  markUnusable(...outPointLikes: (OutPointLike | OutPointLike[])[]): Promise<void>;
19
30
  clear(): Promise<void>;
20
31
  findCells(keyLike: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
21
- getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
22
32
  isUnusable(outPointLike: OutPointLike): Promise<boolean>;
23
- recordTransactions(...transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
24
- getTransaction(txHashLike: HexLike): Promise<Transaction | undefined>;
25
33
  recordCells(...cells: (CellLike | CellLike[])[]): Promise<void>;
34
+ getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
35
+ recordTransactionResponses(...transactions: (ClientTransactionResponseLike | ClientTransactionResponseLike[])[]): Promise<void>;
36
+ getTransactionResponse(txHashLike: HexLike): Promise<ClientTransactionResponse | undefined>;
37
+ recordHeaders(...headers: (ClientBlockHeaderLike | ClientBlockHeaderLike[])[]): Promise<void>;
38
+ getHeaderByHash(hashLike: HexLike): Promise<ClientBlockHeader | undefined>;
39
+ getHeaderByNumber(numberLike: NumLike): Promise<ClientBlockHeader | undefined>;
40
+ recordBlocks(...blocks: (ClientBlockLike | ClientBlockLike[])[]): Promise<void>;
41
+ getBlockByHash(hashLike: HexLike): Promise<ClientBlock | undefined>;
42
+ getBlockByNumber(numberLike: NumLike): Promise<ClientBlock | undefined>;
26
43
  }
27
44
  //# 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,EAAW,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,SAAQ,WAAW;IAY9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;gBAG7C,QAAQ,SAAM,EACd,MAAM,SAAM;IAQzB,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;IAKrB,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;IAajB,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
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAY,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAW,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAgB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,SAAQ,WAAW;IAyB9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IA1B5B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4C;IAE9E;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IAEvD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAG1B;gBAGiB,QAAQ,SAAM,EACd,MAAM,SAAM,EACZ,SAAS,SAAM;IAe5B,iBAAiB,CACrB,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GACtC,OAAO,CAAC,IAAI,CAAC;IASV,YAAY,CAChB,GAAG,aAAa,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAcV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;IAcjB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxD,WAAW,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D,OAAO,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAS9D,0BAA0B,CAC9B,GAAG,YAAY,EAAE,CACb,6BAA6B,GAC7B,6BAA6B,EAAE,CAClC,EAAE,GACF,OAAO,CAAC,IAAI,CAAC;IAMV,sBAAsB,CAC1B,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAK3C,aAAa,CACjB,GAAG,OAAO,EAAE,CAAC,qBAAqB,GAAG,qBAAqB,EAAE,CAAC,EAAE,GAC9D,OAAO,CAAC,IAAI,CAAC;IAaV,eAAe,CACnB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAQnC,iBAAiB,CACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAUnC,YAAY,CAChB,GAAG,MAAM,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACjD,OAAO,CAAC,IAAI,CAAC;IAQV,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAWnE,gBAAgB,CACpB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CASpC"}
@@ -3,17 +3,22 @@ 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 index_js_3 = require("../../num/index.js");
7
+ const clientTypes_js_1 = require("../clientTypes.js");
6
8
  const cache_js_1 = require("./cache.js");
7
9
  const memory_advanced_js_1 = require("./memory.advanced.js");
8
10
  class ClientCacheMemory extends cache_js_1.ClientCache {
9
- constructor(maxCells = 512, maxTxs = 256) {
11
+ constructor(maxCells = 512, maxTxs = 256, maxBlocks = 128) {
10
12
  super();
11
13
  this.maxCells = maxCells;
12
14
  this.maxTxs = maxTxs;
15
+ this.maxBlocks = maxBlocks;
13
16
  this.cells = new memory_advanced_js_1.MapLru(this.maxCells);
14
17
  this.knownTransactions = new memory_advanced_js_1.MapLru(this.maxTxs);
18
+ this.knownBlockHashes = new memory_advanced_js_1.MapLru(this.maxBlocks);
19
+ this.knownBlocks = new memory_advanced_js_1.MapLru(this.maxBlocks);
15
20
  }
16
- async markUsable(...cellLikes) {
21
+ async markUsableNoCache(...cellLikes) {
17
22
  cellLikes.flat().forEach((cellLike) => {
18
23
  const cell = index_js_1.Cell.from(cellLike).clone();
19
24
  const outPointStr = (0, index_js_2.hexFrom)(cell.outPoint.toBytes());
@@ -44,10 +49,24 @@ class ClientCacheMemory extends cache_js_1.ClientCache {
44
49
  if (!(0, memory_advanced_js_1.filterCell)(keyLike, cell)) {
45
50
  continue;
46
51
  }
47
- this.cells.access(key);
52
+ this.cells.get(key);
48
53
  yield cell.clone();
49
54
  }
50
55
  }
56
+ async isUnusable(outPointLike) {
57
+ const outPoint = index_js_1.OutPoint.from(outPointLike);
58
+ return !(this.cells.get((0, index_js_2.hexFrom)(outPoint.toBytes()))?.[0] ?? true);
59
+ }
60
+ async recordCells(...cells) {
61
+ cells.flat().map((cellLike) => {
62
+ const cell = index_js_1.Cell.from(cellLike);
63
+ const outPointStr = (0, index_js_2.hexFrom)(cell.outPoint.toBytes());
64
+ if (this.cells.get(outPointStr)) {
65
+ return;
66
+ }
67
+ this.cells.set(outPointStr, [undefined, cell]);
68
+ });
69
+ }
51
70
  async getCell(outPointLike) {
52
71
  const outPoint = index_js_1.OutPoint.from(outPointLike);
53
72
  const cell = this.cells.get((0, index_js_2.hexFrom)(outPoint.toBytes()))?.[1];
@@ -55,29 +74,68 @@ class ClientCacheMemory extends cache_js_1.ClientCache {
55
74
  return index_js_1.Cell.from(cell.clone());
56
75
  }
57
76
  }
58
- async isUnusable(outPointLike) {
59
- const outPoint = index_js_1.OutPoint.from(outPointLike);
60
- return !(this.cells.get((0, index_js_2.hexFrom)(outPoint.toBytes()))?.[0] ?? true);
61
- }
62
- async recordTransactions(...transactions) {
77
+ async recordTransactionResponses(...transactions) {
63
78
  transactions.flat().map((txLike) => {
64
- const tx = index_js_1.Transaction.from(txLike);
65
- this.knownTransactions.set(tx.hash(), tx);
79
+ const tx = clientTypes_js_1.ClientTransactionResponse.from(txLike);
80
+ this.knownTransactions.set(tx.transaction.hash(), tx);
66
81
  });
67
82
  }
68
- async getTransaction(txHashLike) {
83
+ async getTransactionResponse(txHashLike) {
69
84
  const txHash = (0, index_js_2.hexFrom)(txHashLike);
70
85
  return this.knownTransactions.get(txHash)?.clone();
71
86
  }
72
- async recordCells(...cells) {
73
- cells.flat().map((cellLike) => {
74
- const cell = index_js_1.Cell.from(cellLike);
75
- const outPointStr = (0, index_js_2.hexFrom)(cell.outPoint.toBytes());
76
- if (this.cells.get(outPointStr)) {
87
+ async recordHeaders(...headers) {
88
+ headers.flat().map((headerLike) => {
89
+ const header = clientTypes_js_1.ClientBlockHeader.from(headerLike);
90
+ this.knownBlockHashes.set(header.number, header.hash);
91
+ const existed = this.knownBlocks.get(header.hash);
92
+ if (existed) {
77
93
  return;
78
94
  }
79
- this.cells.set(outPointStr, [undefined, cell]);
95
+ this.knownBlocks.set(header.hash, { header });
96
+ });
97
+ }
98
+ async getHeaderByHash(hashLike) {
99
+ const hash = (0, index_js_2.hexFrom)(hashLike);
100
+ const block = this.knownBlocks.get(hash);
101
+ if (block) {
102
+ this.knownBlockHashes.get(block.header.number); // For LRU
103
+ }
104
+ return block?.header;
105
+ }
106
+ async getHeaderByNumber(numberLike) {
107
+ const number = (0, index_js_3.numFrom)(numberLike);
108
+ const hash = this.knownBlockHashes.get(number);
109
+ if (!hash) {
110
+ return;
111
+ }
112
+ return this.getHeaderByHash(hash);
113
+ }
114
+ async recordBlocks(...blocks) {
115
+ blocks.flat().map((blockLike) => {
116
+ const block = clientTypes_js_1.ClientBlock.from(blockLike);
117
+ this.knownBlockHashes.set(block.header.number, block.header.hash);
118
+ this.knownBlocks.set(block.header.hash, block);
80
119
  });
81
120
  }
121
+ async getBlockByHash(hashLike) {
122
+ const hash = (0, index_js_2.hexFrom)(hashLike);
123
+ const block = this.knownBlocks.get(hash);
124
+ if (block) {
125
+ this.knownBlockHashes.get(block.header.number); // For LRU
126
+ if ("transactions" in block) {
127
+ return block;
128
+ }
129
+ }
130
+ return;
131
+ }
132
+ async getBlockByNumber(numberLike) {
133
+ const number = (0, index_js_3.numFrom)(numberLike);
134
+ const hash = this.knownBlockHashes.get(number);
135
+ if (!hash) {
136
+ return;
137
+ }
138
+ return this.getBlockByHash(hash);
139
+ }
82
140
  }
83
141
  exports.ClientCacheMemory = ClientCacheMemory;
@@ -19,18 +19,28 @@ export declare abstract class Client {
19
19
  mean: Num;
20
20
  median: Num;
21
21
  }>;
22
- getFeeRate(blockRange?: NumLike): Promise<Num>;
22
+ getFeeRate(blockRange?: NumLike, options?: {
23
+ maxFeeRate?: NumLike;
24
+ }): Promise<Num>;
23
25
  abstract getTip(): Promise<Num>;
24
26
  abstract getTipHeader(verbosity?: number | null): Promise<ClientBlockHeader>;
25
- abstract getBlockByNumber(blockNumber: NumLike, verbosity?: number | null, withCycles?: boolean | null): Promise<ClientBlock | undefined>;
26
- abstract getBlockByHash(blockHash: HexLike, verbosity?: number | null, withCycles?: boolean | null): Promise<ClientBlock | undefined>;
27
- abstract getHeaderByNumber(blockNumber: NumLike, verbosity?: number | null): Promise<ClientBlockHeader | undefined>;
28
- abstract getHeaderByHash(blockHash: HexLike, verbosity?: number | null): Promise<ClientBlockHeader | undefined>;
27
+ abstract getBlockByNumberNoCache(blockNumber: NumLike, verbosity?: number | null, withCycles?: boolean | null): Promise<ClientBlock | undefined>;
28
+ abstract getBlockByHashNoCache(blockHash: HexLike, verbosity?: number | null, withCycles?: boolean | null): Promise<ClientBlock | undefined>;
29
+ abstract getHeaderByNumberNoCache(blockNumber: NumLike, verbosity?: number | null): Promise<ClientBlockHeader | undefined>;
30
+ abstract getHeaderByHashNoCache(blockHash: HexLike, verbosity?: number | null): Promise<ClientBlockHeader | undefined>;
31
+ getBlockByNumber(blockNumber: NumLike, verbosity?: number | null, withCycles?: boolean | null): Promise<ClientBlock | undefined>;
32
+ getBlockByHash(blockHash: HexLike, verbosity?: number | null, withCycles?: boolean | null): Promise<ClientBlock | undefined>;
33
+ getHeaderByNumber(blockNumber: NumLike, verbosity?: number | null): Promise<ClientBlockHeader | undefined>;
34
+ getHeaderByHash(blockHash: HexLike, verbosity?: number | null): Promise<ClientBlockHeader | undefined>;
29
35
  abstract estimateCycles(transaction: TransactionLike): Promise<Num>;
30
36
  abstract sendTransactionDry(transaction: TransactionLike, validator?: OutputsValidator): Promise<Num>;
31
37
  abstract sendTransactionNoCache(transaction: TransactionLike, validator?: OutputsValidator): Promise<Hex>;
32
38
  abstract getTransactionNoCache(txHash: HexLike): Promise<ClientTransactionResponse | undefined>;
33
39
  getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
40
+ getCellWithHeader(outPointLike: OutPointLike): Promise<{
41
+ cell: Cell;
42
+ header?: ClientBlockHeader;
43
+ } | undefined>;
34
44
  abstract getCellLiveNoCache(outPointLike: OutPointLike, withData?: boolean | null, includeTxPool?: boolean | null): Promise<Cell | undefined>;
35
45
  getCellLive(outPointLike: OutPointLike, withData?: boolean | null, includeTxPool?: boolean | null): Promise<Cell | undefined>;
36
46
  abstract findCellsPagedNoCache(key: ClientIndexerSearchKeyLike, order?: "asc" | "desc", limit?: NumLike, after?: string): Promise<ClientFindCellsResponse>;
@@ -70,8 +80,19 @@ export declare abstract class Client {
70
80
  abstract getCellsCapacity(key: ClientIndexerSearchKeyLike): Promise<Num>;
71
81
  getBalanceSingle(lock: ScriptLike): Promise<Num>;
72
82
  getBalance(locks: ScriptLike[]): Promise<Num>;
73
- sendTransaction(transaction: TransactionLike, validator?: OutputsValidator): Promise<Hex>;
83
+ sendTransaction(transaction: TransactionLike, validator?: OutputsValidator, options?: {
84
+ maxFeeRate?: NumLike;
85
+ }): Promise<Hex>;
74
86
  getTransaction(txHashLike: HexLike): Promise<ClientTransactionResponse | undefined>;
87
+ /**
88
+ * This method gets specified transaction with its block header (if existed).
89
+ * This is mainly for caching because we need the header to test if we can safely trust the cached tx status.
90
+ * @param txHashLike
91
+ */
92
+ getTransactionWithHeader(txHashLike: HexLike): Promise<{
93
+ transaction: ClientTransactionResponse;
94
+ header?: ClientBlockHeader;
95
+ } | undefined>;
75
96
  waitTransaction(txHash: HexLike, confirmations?: number, timeout?: number, interval?: number): Promise<ClientTransactionResponse | undefined>;
76
97
  }
77
98
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,11 @@ const index_js_3 = require("../hex/index.js");
7
7
  const index_js_4 = require("../num/index.js");
8
8
  const index_js_5 = require("../utils/index.js");
9
9
  const memory_js_1 = require("./cache/memory.js");
10
+ const clientTypes_advanced_js_1 = require("./clientTypes.advanced.js");
10
11
  const clientTypes_js_1 = require("./clientTypes.js");
12
+ function hasHeaderConfirmed(header) {
13
+ return (0, index_js_4.numFrom)(Date.now()) - header.timestamp >= clientTypes_advanced_js_1.CONFIRMED_BLOCK_TIME;
14
+ }
11
15
  /**
12
16
  * @public
13
17
  */
@@ -15,8 +19,57 @@ class Client {
15
19
  constructor(config) {
16
20
  this.cache = config?.cache ?? new memory_js_1.ClientCacheMemory();
17
21
  }
18
- async getFeeRate(blockRange) {
19
- return (0, index_js_4.numMax)((await this.getFeeRateStatistics(blockRange)).median, 1000);
22
+ async getFeeRate(blockRange, options) {
23
+ const feeRate = (0, index_js_4.numMax)((await this.getFeeRateStatistics(blockRange)).median, clientTypes_advanced_js_1.DEFAULT_MIN_FEE_RATE);
24
+ const maxFeeRate = (0, index_js_4.numFrom)(options?.maxFeeRate ?? clientTypes_advanced_js_1.DEFAULT_MAX_FEE_RATE);
25
+ if (maxFeeRate === index_js_2.Zero) {
26
+ return feeRate;
27
+ }
28
+ return (0, index_js_4.numMin)(feeRate, maxFeeRate);
29
+ }
30
+ async getBlockByNumber(blockNumber, verbosity, withCycles) {
31
+ const block = await this.cache.getBlockByNumber(blockNumber);
32
+ if (block) {
33
+ return block;
34
+ }
35
+ const res = await this.getBlockByNumberNoCache(blockNumber, verbosity, withCycles);
36
+ if (res && hasHeaderConfirmed(res.header)) {
37
+ await this.cache.recordBlocks(res);
38
+ }
39
+ return res;
40
+ }
41
+ async getBlockByHash(blockHash, verbosity, withCycles) {
42
+ const block = await this.cache.getBlockByHash(blockHash);
43
+ if (block) {
44
+ return block;
45
+ }
46
+ const res = await this.getBlockByHashNoCache(blockHash, verbosity, withCycles);
47
+ if (res && hasHeaderConfirmed(res.header)) {
48
+ await this.cache.recordBlocks(res);
49
+ }
50
+ return res;
51
+ }
52
+ async getHeaderByNumber(blockNumber, verbosity) {
53
+ const header = await this.cache.getHeaderByNumber(blockNumber);
54
+ if (header) {
55
+ return header;
56
+ }
57
+ const res = await this.getHeaderByNumberNoCache(blockNumber, verbosity);
58
+ if (res && hasHeaderConfirmed(res)) {
59
+ await this.cache.recordHeaders(res);
60
+ }
61
+ return res;
62
+ }
63
+ async getHeaderByHash(blockHash, verbosity) {
64
+ const header = await this.cache.getHeaderByHash(blockHash);
65
+ if (header) {
66
+ return header;
67
+ }
68
+ const res = await this.getHeaderByHashNoCache(blockHash, verbosity);
69
+ if (res && hasHeaderConfirmed(res)) {
70
+ await this.cache.recordHeaders(res);
71
+ }
72
+ return res;
20
73
  }
21
74
  async getCell(outPointLike) {
22
75
  const outPoint = index_js_1.OutPoint.from(outPointLike);
@@ -24,22 +77,39 @@ class Client {
24
77
  if (cached) {
25
78
  return cached;
26
79
  }
27
- const transaction = await this.getTransactionNoCache(outPoint.txHash);
80
+ const transaction = await this.getTransaction(outPoint.txHash);
28
81
  if (!transaction) {
29
82
  return;
30
83
  }
31
- const index = Number((0, index_js_4.numFrom)(outPoint.index));
32
- if (index >= transaction.transaction.outputs.length) {
84
+ const output = transaction.transaction.getOutput(outPoint.index);
85
+ if (!output) {
33
86
  return;
34
87
  }
35
88
  const cell = index_js_1.Cell.from({
36
89
  outPoint,
37
- cellOutput: transaction.transaction.outputs[index],
38
- outputData: transaction.transaction.outputsData[index] ?? "0x",
90
+ ...output,
39
91
  });
40
92
  await this.cache.recordCells(cell);
41
93
  return cell;
42
94
  }
95
+ async getCellWithHeader(outPointLike) {
96
+ const outPoint = index_js_1.OutPoint.from(outPointLike);
97
+ const res = await this.getTransactionWithHeader(outPoint.txHash);
98
+ if (!res) {
99
+ return;
100
+ }
101
+ const { transaction, header } = res;
102
+ const output = transaction.transaction.getOutput(outPoint.index);
103
+ if (!output) {
104
+ return;
105
+ }
106
+ const cell = index_js_1.Cell.from({
107
+ outPoint,
108
+ ...output,
109
+ });
110
+ await this.cache.recordCells(cell);
111
+ return { cell, header };
112
+ }
43
113
  async getCellLive(outPointLike, withData, includeTxPool) {
44
114
  const cell = await this.getCellLiveNoCache(outPointLike, withData, includeTxPool);
45
115
  if (withData && cell) {
@@ -172,32 +242,53 @@ class Client {
172
242
  async getBalance(locks) {
173
243
  return (0, index_js_5.reduceAsync)(locks, async (acc, lock) => acc + (await this.getBalanceSingle(lock)), index_js_2.Zero);
174
244
  }
175
- async sendTransaction(transaction, validator) {
245
+ async sendTransaction(transaction, validator, options) {
176
246
  const tx = index_js_1.Transaction.from(transaction);
247
+ const maxFeeRate = (0, index_js_4.numFrom)(options?.maxFeeRate ?? clientTypes_advanced_js_1.DEFAULT_MAX_FEE_RATE);
248
+ const fee = await tx.feeRate(this);
249
+ if (maxFeeRate > index_js_2.Zero && fee > maxFeeRate) {
250
+ throw new clientTypes_js_1.ErrorClientMaxFeeRateExceeded(maxFeeRate, fee);
251
+ }
177
252
  const txHash = await this.sendTransactionNoCache(tx, validator);
178
- await this.cache.recordTransactions(tx);
179
253
  await this.cache.markTransactions(tx);
180
254
  return txHash;
181
255
  }
182
256
  async getTransaction(txHashLike) {
183
257
  const txHash = (0, index_js_3.hexFrom)(txHashLike);
184
258
  const res = await this.getTransactionNoCache(txHash);
185
- if (res?.transaction) {
259
+ if (res) {
260
+ await this.cache.recordTransactionResponses(res);
186
261
  return res;
187
262
  }
188
- const tx = await this.cache.getTransaction(txHash);
189
- if (!tx) {
190
- return;
263
+ return this.cache.getTransactionResponse(txHash);
264
+ }
265
+ /**
266
+ * This method gets specified transaction with its block header (if existed).
267
+ * This is mainly for caching because we need the header to test if we can safely trust the cached tx status.
268
+ * @param txHashLike
269
+ */
270
+ async getTransactionWithHeader(txHashLike) {
271
+ const txHash = (0, index_js_3.hexFrom)(txHashLike);
272
+ const tx = await this.cache.getTransactionResponse(txHash);
273
+ if (tx?.blockHash) {
274
+ const header = await this.getHeaderByHash(tx.blockHash);
275
+ if (header && hasHeaderConfirmed(header)) {
276
+ return {
277
+ transaction: tx,
278
+ header,
279
+ };
280
+ }
191
281
  }
282
+ const res = await this.getTransactionNoCache(txHash);
192
283
  if (!res) {
193
- return {
194
- transaction: tx,
195
- status: "sent",
196
- };
284
+ return;
197
285
  }
286
+ await this.cache.recordTransactionResponses(res);
198
287
  return {
199
- ...res,
200
- transaction: tx,
288
+ transaction: res,
289
+ header: res.blockHash
290
+ ? await this.getHeaderByHash(res.blockHash)
291
+ : undefined,
201
292
  };
202
293
  }
203
294
  async waitTransaction(txHash, confirmations = 0, timeout = 60000, interval = 2000) {
@@ -227,7 +318,7 @@ class Client {
227
318
  return tx;
228
319
  }
229
320
  if (Date.now() - startTime + interval >= timeout) {
230
- throw new clientTypes_js_1.ErrorClientWaitTransactionTimeout();
321
+ throw new clientTypes_js_1.ErrorClientWaitTransactionTimeout(timeout);
231
322
  }
232
323
  await (0, index_js_5.sleep)(interval);
233
324
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAExE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,GAAE,mBAAmB,GAAG;QAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;KAC3D,aAAA;IA4BH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
1
+ {"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAExE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,GAAE,mBAAmB,GAAG;QAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;KAC3D,aAAA;IAuBH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
@@ -25,13 +25,8 @@ class ClientPublicMainnet extends index_js_1.ClientJsonRpc {
25
25
  "wss://mainnet.ckb.dev/ws",
26
26
  "https://mainnet.ckb.dev/",
27
27
  "https://mainnet.ckbapp.dev/",
28
- "https://rpc.ankr.com/nervos_ckb",
29
28
  ]
30
- : [
31
- "https://mainnet.ckb.dev/",
32
- "https://mainnet.ckbapp.dev/",
33
- "https://rpc.ankr.com/nervos_ckb",
34
- ]),
29
+ : ["https://mainnet.ckb.dev/", "https://mainnet.ckbapp.dev/"]),
35
30
  });
36
31
  this.config = config;
37
32
  }
@@ -1,6 +1,9 @@
1
1
  import { ScriptLike } from "../ckb/index.js";
2
2
  import { HexLike } from "../hex/index.js";
3
3
  import { Num, NumLike } from "../num/index.js";
4
+ export declare const CONFIRMED_BLOCK_TIME: bigint;
5
+ export declare const DEFAULT_MAX_FEE_RATE: bigint;
6
+ export declare const DEFAULT_MIN_FEE_RATE: bigint;
4
7
  export declare function clientSearchKeyRangeFrom([a, b]: [NumLike, NumLike]): [
5
8
  Num,
6
9
  Num
@@ -1 +1 @@
1
- {"version":3,"file":"clientTypes.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAW,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAExD,wBAAgB,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG;IACpE,GAAG;IACH,GAAG;CACJ,CAEA;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,oBAAoB,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7D,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjD,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gBAAgB,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,EAAE,oCAAoC,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"clientTypes.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAW,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAO,MAAM,oBAAoB,QAA0B,CAAC;AAC5D,eAAO,MAAM,oBAAoB,QAAoB,CAAC;AACtD,eAAO,MAAM,oBAAoB,QAAgB,CAAC;AAElD,wBAAgB,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG;IACpE,GAAG;IACH,GAAG;CACJ,CAEA;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,oBAAoB,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7D,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjD,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gBAAgB,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,EAAE,oCAAoC,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_MIN_FEE_RATE = exports.DEFAULT_MAX_FEE_RATE = exports.CONFIRMED_BLOCK_TIME = void 0;
3
4
  exports.clientSearchKeyRangeFrom = clientSearchKeyRangeFrom;
4
5
  const index_js_1 = require("../num/index.js");
6
+ exports.CONFIRMED_BLOCK_TIME = (0, index_js_1.numFrom)(1000 * 10 * 50); // 50 blocks * 10s
7
+ exports.DEFAULT_MAX_FEE_RATE = (0, index_js_1.numFrom)(10000000);
8
+ exports.DEFAULT_MIN_FEE_RATE = (0, index_js_1.numFrom)(1000);
5
9
  function clientSearchKeyRangeFrom([a, b]) {
6
10
  return [(0, index_js_1.numFrom)(a), (0, index_js_1.numFrom)(b)];
7
11
  }