@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
@@ -84,7 +84,11 @@ export class MapLru extends Map {
84
84
  this.capacity = capacity;
85
85
  this.lru = [];
86
86
  }
87
- access(key) {
87
+ get(key) {
88
+ const val = super.get(key);
89
+ if (val === undefined) {
90
+ return;
91
+ }
88
92
  const index = this.lru.indexOf(key);
89
93
  if (index !== -1) {
90
94
  this.lru.splice(index, 1);
@@ -94,13 +98,21 @@ export class MapLru extends Map {
94
98
  this.delete(this.lru[0]);
95
99
  this.lru.shift();
96
100
  }
97
- }
98
- get(key) {
99
- this.access(key);
100
- return super.get(key);
101
+ return val;
101
102
  }
102
103
  set(key, value) {
103
- this.access(key);
104
- return super.set(key, value);
104
+ this.get(key);
105
+ super.set(key, value);
106
+ return this;
107
+ }
108
+ delete(key) {
109
+ if (!super.delete(key)) {
110
+ return false;
111
+ }
112
+ const index = this.lru.indexOf(key);
113
+ if (index !== -1) {
114
+ this.lru.splice(index, 1);
115
+ }
116
+ return true;
105
117
  }
106
118
  }
@@ -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"}
@@ -1,16 +1,21 @@
1
- import { Cell, OutPoint, Transaction, } from "../../ckb/index.js";
1
+ import { Cell, OutPoint } from "../../ckb/index.js";
2
2
  import { hexFrom } from "../../hex/index.js";
3
+ import { numFrom } from "../../num/index.js";
4
+ import { ClientBlock, ClientBlockHeader, ClientTransactionResponse, } from "../clientTypes.js";
3
5
  import { ClientCache } from "./cache.js";
4
6
  import { filterCell, MapLru } from "./memory.advanced.js";
5
7
  export class ClientCacheMemory extends ClientCache {
6
- constructor(maxCells = 512, maxTxs = 256) {
8
+ constructor(maxCells = 512, maxTxs = 256, maxBlocks = 128) {
7
9
  super();
8
10
  this.maxCells = maxCells;
9
11
  this.maxTxs = maxTxs;
12
+ this.maxBlocks = maxBlocks;
10
13
  this.cells = new MapLru(this.maxCells);
11
14
  this.knownTransactions = new MapLru(this.maxTxs);
15
+ this.knownBlockHashes = new MapLru(this.maxBlocks);
16
+ this.knownBlocks = new MapLru(this.maxBlocks);
12
17
  }
13
- async markUsable(...cellLikes) {
18
+ async markUsableNoCache(...cellLikes) {
14
19
  cellLikes.flat().forEach((cellLike) => {
15
20
  const cell = Cell.from(cellLike).clone();
16
21
  const outPointStr = hexFrom(cell.outPoint.toBytes());
@@ -41,10 +46,24 @@ export class ClientCacheMemory extends ClientCache {
41
46
  if (!filterCell(keyLike, cell)) {
42
47
  continue;
43
48
  }
44
- this.cells.access(key);
49
+ this.cells.get(key);
45
50
  yield cell.clone();
46
51
  }
47
52
  }
53
+ async isUnusable(outPointLike) {
54
+ const outPoint = OutPoint.from(outPointLike);
55
+ return !(this.cells.get(hexFrom(outPoint.toBytes()))?.[0] ?? true);
56
+ }
57
+ async recordCells(...cells) {
58
+ cells.flat().map((cellLike) => {
59
+ const cell = Cell.from(cellLike);
60
+ const outPointStr = hexFrom(cell.outPoint.toBytes());
61
+ if (this.cells.get(outPointStr)) {
62
+ return;
63
+ }
64
+ this.cells.set(outPointStr, [undefined, cell]);
65
+ });
66
+ }
48
67
  async getCell(outPointLike) {
49
68
  const outPoint = OutPoint.from(outPointLike);
50
69
  const cell = this.cells.get(hexFrom(outPoint.toBytes()))?.[1];
@@ -52,28 +71,67 @@ export class ClientCacheMemory extends ClientCache {
52
71
  return Cell.from(cell.clone());
53
72
  }
54
73
  }
55
- async isUnusable(outPointLike) {
56
- const outPoint = OutPoint.from(outPointLike);
57
- return !(this.cells.get(hexFrom(outPoint.toBytes()))?.[0] ?? true);
58
- }
59
- async recordTransactions(...transactions) {
74
+ async recordTransactionResponses(...transactions) {
60
75
  transactions.flat().map((txLike) => {
61
- const tx = Transaction.from(txLike);
62
- this.knownTransactions.set(tx.hash(), tx);
76
+ const tx = ClientTransactionResponse.from(txLike);
77
+ this.knownTransactions.set(tx.transaction.hash(), tx);
63
78
  });
64
79
  }
65
- async getTransaction(txHashLike) {
80
+ async getTransactionResponse(txHashLike) {
66
81
  const txHash = hexFrom(txHashLike);
67
82
  return this.knownTransactions.get(txHash)?.clone();
68
83
  }
69
- async recordCells(...cells) {
70
- cells.flat().map((cellLike) => {
71
- const cell = Cell.from(cellLike);
72
- const outPointStr = hexFrom(cell.outPoint.toBytes());
73
- if (this.cells.get(outPointStr)) {
84
+ async recordHeaders(...headers) {
85
+ headers.flat().map((headerLike) => {
86
+ const header = ClientBlockHeader.from(headerLike);
87
+ this.knownBlockHashes.set(header.number, header.hash);
88
+ const existed = this.knownBlocks.get(header.hash);
89
+ if (existed) {
74
90
  return;
75
91
  }
76
- this.cells.set(outPointStr, [undefined, cell]);
92
+ this.knownBlocks.set(header.hash, { header });
93
+ });
94
+ }
95
+ async getHeaderByHash(hashLike) {
96
+ const hash = hexFrom(hashLike);
97
+ const block = this.knownBlocks.get(hash);
98
+ if (block) {
99
+ this.knownBlockHashes.get(block.header.number); // For LRU
100
+ }
101
+ return block?.header;
102
+ }
103
+ async getHeaderByNumber(numberLike) {
104
+ const number = numFrom(numberLike);
105
+ const hash = this.knownBlockHashes.get(number);
106
+ if (!hash) {
107
+ return;
108
+ }
109
+ return this.getHeaderByHash(hash);
110
+ }
111
+ async recordBlocks(...blocks) {
112
+ blocks.flat().map((blockLike) => {
113
+ const block = ClientBlock.from(blockLike);
114
+ this.knownBlockHashes.set(block.header.number, block.header.hash);
115
+ this.knownBlocks.set(block.header.hash, block);
77
116
  });
78
117
  }
118
+ async getBlockByHash(hashLike) {
119
+ const hash = hexFrom(hashLike);
120
+ const block = this.knownBlocks.get(hash);
121
+ if (block) {
122
+ this.knownBlockHashes.get(block.header.number); // For LRU
123
+ if ("transactions" in block) {
124
+ return block;
125
+ }
126
+ }
127
+ return;
128
+ }
129
+ async getBlockByNumber(numberLike) {
130
+ const number = numFrom(numberLike);
131
+ const hash = this.knownBlockHashes.get(number);
132
+ if (!hash) {
133
+ return;
134
+ }
135
+ return this.getBlockByHash(hash);
136
+ }
79
137
  }
@@ -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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"}
@@ -1,10 +1,14 @@
1
1
  import { Cell, CellDep, OutPoint, Transaction, } from "../ckb/index.js";
2
2
  import { Zero } from "../fixedPoint/index.js";
3
3
  import { hexFrom } from "../hex/index.js";
4
- import { numFrom, numMax } from "../num/index.js";
4
+ import { numFrom, numMax, numMin } from "../num/index.js";
5
5
  import { reduceAsync, sleep } from "../utils/index.js";
6
6
  import { ClientCacheMemory } from "./cache/memory.js";
7
- import { CellDepInfo, ClientIndexerSearchKey, ErrorClientWaitTransactionTimeout, } from "./clientTypes.js";
7
+ import { CONFIRMED_BLOCK_TIME, DEFAULT_MAX_FEE_RATE, DEFAULT_MIN_FEE_RATE, } from "./clientTypes.advanced.js";
8
+ import { CellDepInfo, ClientIndexerSearchKey, ErrorClientMaxFeeRateExceeded, ErrorClientWaitTransactionTimeout, } from "./clientTypes.js";
9
+ function hasHeaderConfirmed(header) {
10
+ return numFrom(Date.now()) - header.timestamp >= CONFIRMED_BLOCK_TIME;
11
+ }
8
12
  /**
9
13
  * @public
10
14
  */
@@ -12,8 +16,57 @@ export class Client {
12
16
  constructor(config) {
13
17
  this.cache = config?.cache ?? new ClientCacheMemory();
14
18
  }
15
- async getFeeRate(blockRange) {
16
- return numMax((await this.getFeeRateStatistics(blockRange)).median, 1000);
19
+ async getFeeRate(blockRange, options) {
20
+ const feeRate = numMax((await this.getFeeRateStatistics(blockRange)).median, DEFAULT_MIN_FEE_RATE);
21
+ const maxFeeRate = numFrom(options?.maxFeeRate ?? DEFAULT_MAX_FEE_RATE);
22
+ if (maxFeeRate === Zero) {
23
+ return feeRate;
24
+ }
25
+ return numMin(feeRate, maxFeeRate);
26
+ }
27
+ async getBlockByNumber(blockNumber, verbosity, withCycles) {
28
+ const block = await this.cache.getBlockByNumber(blockNumber);
29
+ if (block) {
30
+ return block;
31
+ }
32
+ const res = await this.getBlockByNumberNoCache(blockNumber, verbosity, withCycles);
33
+ if (res && hasHeaderConfirmed(res.header)) {
34
+ await this.cache.recordBlocks(res);
35
+ }
36
+ return res;
37
+ }
38
+ async getBlockByHash(blockHash, verbosity, withCycles) {
39
+ const block = await this.cache.getBlockByHash(blockHash);
40
+ if (block) {
41
+ return block;
42
+ }
43
+ const res = await this.getBlockByHashNoCache(blockHash, verbosity, withCycles);
44
+ if (res && hasHeaderConfirmed(res.header)) {
45
+ await this.cache.recordBlocks(res);
46
+ }
47
+ return res;
48
+ }
49
+ async getHeaderByNumber(blockNumber, verbosity) {
50
+ const header = await this.cache.getHeaderByNumber(blockNumber);
51
+ if (header) {
52
+ return header;
53
+ }
54
+ const res = await this.getHeaderByNumberNoCache(blockNumber, verbosity);
55
+ if (res && hasHeaderConfirmed(res)) {
56
+ await this.cache.recordHeaders(res);
57
+ }
58
+ return res;
59
+ }
60
+ async getHeaderByHash(blockHash, verbosity) {
61
+ const header = await this.cache.getHeaderByHash(blockHash);
62
+ if (header) {
63
+ return header;
64
+ }
65
+ const res = await this.getHeaderByHashNoCache(blockHash, verbosity);
66
+ if (res && hasHeaderConfirmed(res)) {
67
+ await this.cache.recordHeaders(res);
68
+ }
69
+ return res;
17
70
  }
18
71
  async getCell(outPointLike) {
19
72
  const outPoint = OutPoint.from(outPointLike);
@@ -21,22 +74,39 @@ export class Client {
21
74
  if (cached) {
22
75
  return cached;
23
76
  }
24
- const transaction = await this.getTransactionNoCache(outPoint.txHash);
77
+ const transaction = await this.getTransaction(outPoint.txHash);
25
78
  if (!transaction) {
26
79
  return;
27
80
  }
28
- const index = Number(numFrom(outPoint.index));
29
- if (index >= transaction.transaction.outputs.length) {
81
+ const output = transaction.transaction.getOutput(outPoint.index);
82
+ if (!output) {
30
83
  return;
31
84
  }
32
85
  const cell = Cell.from({
33
86
  outPoint,
34
- cellOutput: transaction.transaction.outputs[index],
35
- outputData: transaction.transaction.outputsData[index] ?? "0x",
87
+ ...output,
36
88
  });
37
89
  await this.cache.recordCells(cell);
38
90
  return cell;
39
91
  }
92
+ async getCellWithHeader(outPointLike) {
93
+ const outPoint = OutPoint.from(outPointLike);
94
+ const res = await this.getTransactionWithHeader(outPoint.txHash);
95
+ if (!res) {
96
+ return;
97
+ }
98
+ const { transaction, header } = res;
99
+ const output = transaction.transaction.getOutput(outPoint.index);
100
+ if (!output) {
101
+ return;
102
+ }
103
+ const cell = Cell.from({
104
+ outPoint,
105
+ ...output,
106
+ });
107
+ await this.cache.recordCells(cell);
108
+ return { cell, header };
109
+ }
40
110
  async getCellLive(outPointLike, withData, includeTxPool) {
41
111
  const cell = await this.getCellLiveNoCache(outPointLike, withData, includeTxPool);
42
112
  if (withData && cell) {
@@ -169,32 +239,53 @@ export class Client {
169
239
  async getBalance(locks) {
170
240
  return reduceAsync(locks, async (acc, lock) => acc + (await this.getBalanceSingle(lock)), Zero);
171
241
  }
172
- async sendTransaction(transaction, validator) {
242
+ async sendTransaction(transaction, validator, options) {
173
243
  const tx = Transaction.from(transaction);
244
+ const maxFeeRate = numFrom(options?.maxFeeRate ?? DEFAULT_MAX_FEE_RATE);
245
+ const fee = await tx.feeRate(this);
246
+ if (maxFeeRate > Zero && fee > maxFeeRate) {
247
+ throw new ErrorClientMaxFeeRateExceeded(maxFeeRate, fee);
248
+ }
174
249
  const txHash = await this.sendTransactionNoCache(tx, validator);
175
- await this.cache.recordTransactions(tx);
176
250
  await this.cache.markTransactions(tx);
177
251
  return txHash;
178
252
  }
179
253
  async getTransaction(txHashLike) {
180
254
  const txHash = hexFrom(txHashLike);
181
255
  const res = await this.getTransactionNoCache(txHash);
182
- if (res?.transaction) {
256
+ if (res) {
257
+ await this.cache.recordTransactionResponses(res);
183
258
  return res;
184
259
  }
185
- const tx = await this.cache.getTransaction(txHash);
186
- if (!tx) {
187
- return;
260
+ return this.cache.getTransactionResponse(txHash);
261
+ }
262
+ /**
263
+ * This method gets specified transaction with its block header (if existed).
264
+ * This is mainly for caching because we need the header to test if we can safely trust the cached tx status.
265
+ * @param txHashLike
266
+ */
267
+ async getTransactionWithHeader(txHashLike) {
268
+ const txHash = hexFrom(txHashLike);
269
+ const tx = await this.cache.getTransactionResponse(txHash);
270
+ if (tx?.blockHash) {
271
+ const header = await this.getHeaderByHash(tx.blockHash);
272
+ if (header && hasHeaderConfirmed(header)) {
273
+ return {
274
+ transaction: tx,
275
+ header,
276
+ };
277
+ }
188
278
  }
279
+ const res = await this.getTransactionNoCache(txHash);
189
280
  if (!res) {
190
- return {
191
- transaction: tx,
192
- status: "sent",
193
- };
281
+ return;
194
282
  }
283
+ await this.cache.recordTransactionResponses(res);
195
284
  return {
196
- ...res,
197
- transaction: tx,
285
+ transaction: res,
286
+ header: res.blockHash
287
+ ? await this.getHeaderByHash(res.blockHash)
288
+ : undefined,
198
289
  };
199
290
  }
200
291
  async waitTransaction(txHash, confirmations = 0, timeout = 60000, interval = 2000) {
@@ -224,7 +315,7 @@ export class Client {
224
315
  return tx;
225
316
  }
226
317
  if (Date.now() - startTime + interval >= timeout) {
227
- throw new ErrorClientWaitTransactionTimeout();
318
+ throw new ErrorClientWaitTransactionTimeout(timeout);
228
319
  }
229
320
  await sleep(interval);
230
321
  }
@@ -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"}
@@ -19,13 +19,8 @@ export class ClientPublicMainnet extends ClientJsonRpc {
19
19
  "wss://mainnet.ckb.dev/ws",
20
20
  "https://mainnet.ckb.dev/",
21
21
  "https://mainnet.ckbapp.dev/",
22
- "https://rpc.ankr.com/nervos_ckb",
23
22
  ]
24
- : [
25
- "https://mainnet.ckb.dev/",
26
- "https://mainnet.ckbapp.dev/",
27
- "https://rpc.ankr.com/nervos_ckb",
28
- ]),
23
+ : ["https://mainnet.ckb.dev/", "https://mainnet.ckbapp.dev/"]),
29
24
  });
30
25
  this.config = config;
31
26
  }
@@ -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,4 +1,7 @@
1
1
  import { numFrom } from "../num/index.js";
2
+ export const CONFIRMED_BLOCK_TIME = numFrom(1000 * 10 * 50); // 50 blocks * 10s
3
+ export const DEFAULT_MAX_FEE_RATE = numFrom(10000000);
4
+ export const DEFAULT_MIN_FEE_RATE = numFrom(1000);
2
5
  export function clientSearchKeyRangeFrom([a, b]) {
3
6
  return [numFrom(a), numFrom(b)];
4
7
  }