@ckb-ccc/core 1.4.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.
- package/CHANGELOG.md +24 -0
- package/dist/ckb/transaction.d.ts +57 -4
- package/dist/ckb/transaction.d.ts.map +1 -1
- package/dist/ckb/transaction.js +83 -26
- package/dist/client/cache/cache.d.ts +67 -11
- package/dist/client/cache/cache.d.ts.map +1 -1
- package/dist/client/cache/cache.js +94 -9
- package/dist/client/cache/memory.advanced.d.ts +2 -2
- package/dist/client/cache/memory.advanced.d.ts.map +1 -1
- package/dist/client/cache/memory.advanced.js +19 -7
- package/dist/client/cache/memory.d.ts +24 -7
- package/dist/client/cache/memory.d.ts.map +1 -1
- package/dist/client/cache/memory.js +76 -18
- package/dist/client/client.d.ts +27 -6
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +113 -22
- package/dist/client/clientPublicMainnet.d.ts.map +1 -1
- package/dist/client/clientPublicMainnet.js +13 -2
- package/dist/client/clientPublicTestnet.d.ts.map +1 -1
- package/dist/client/clientPublicTestnet.js +13 -2
- package/dist/client/clientTypes.advanced.d.ts +3 -0
- package/dist/client/clientTypes.advanced.d.ts.map +1 -1
- package/dist/client/clientTypes.advanced.js +3 -0
- package/dist/client/clientTypes.d.ts +110 -13
- package/dist/client/clientTypes.d.ts.map +1 -1
- package/dist/client/clientTypes.js +118 -4
- package/dist/client/jsonRpc/client.d.ts +4 -4
- package/dist/client/jsonRpc/client.d.ts.map +1 -1
- package/dist/client/jsonRpc/client.js +4 -4
- package/dist/client/jsonRpc/transformers.js +3 -3
- package/dist/jsonRpc/requestor.d.ts +1 -0
- package/dist/jsonRpc/requestor.d.ts.map +1 -1
- package/dist/jsonRpc/requestor.js +4 -2
- package/dist/jsonRpc/transports/advanced.d.ts +1 -0
- package/dist/jsonRpc/transports/advanced.d.ts.map +1 -1
- package/dist/jsonRpc/transports/advanced.js +1 -0
- package/dist/jsonRpc/transports/fallback.d.ts +8 -0
- package/dist/jsonRpc/transports/fallback.d.ts.map +1 -0
- package/dist/jsonRpc/transports/fallback.js +22 -0
- package/dist/jsonRpc/transports/webSocket.d.ts.map +1 -1
- package/dist/jsonRpc/transports/webSocket.js +7 -3
- package/dist/molecule/predefined.d.ts +10 -10
- package/dist/molecule/predefined.d.ts.map +1 -1
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +13 -1
- package/dist.commonjs/advanced.js +17 -7
- package/dist.commonjs/ckb/transaction.d.ts +57 -4
- package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
- package/dist.commonjs/ckb/transaction.js +83 -26
- package/dist.commonjs/client/cache/cache.d.ts +67 -11
- package/dist.commonjs/client/cache/cache.d.ts.map +1 -1
- package/dist.commonjs/client/cache/cache.js +94 -9
- package/dist.commonjs/client/cache/memory.advanced.d.ts +2 -2
- package/dist.commonjs/client/cache/memory.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/cache/memory.advanced.js +19 -7
- package/dist.commonjs/client/cache/memory.d.ts +24 -7
- package/dist.commonjs/client/cache/memory.d.ts.map +1 -1
- package/dist.commonjs/client/cache/memory.js +75 -17
- package/dist.commonjs/client/client.d.ts +27 -6
- package/dist.commonjs/client/client.d.ts.map +1 -1
- package/dist.commonjs/client/client.js +111 -20
- package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.js +13 -2
- package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicTestnet.js +13 -2
- package/dist.commonjs/client/clientTypes.advanced.d.ts +3 -0
- package/dist.commonjs/client/clientTypes.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientTypes.advanced.js +4 -0
- package/dist.commonjs/client/clientTypes.d.ts +110 -13
- package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
- package/dist.commonjs/client/clientTypes.js +123 -4
- package/dist.commonjs/client/jsonRpc/client.d.ts +4 -4
- package/dist.commonjs/client/jsonRpc/client.d.ts.map +1 -1
- package/dist.commonjs/client/jsonRpc/client.js +4 -4
- package/dist.commonjs/client/jsonRpc/transformers.js +2 -2
- package/dist.commonjs/index.js +17 -7
- package/dist.commonjs/jsonRpc/requestor.d.ts +1 -0
- package/dist.commonjs/jsonRpc/requestor.d.ts.map +1 -1
- package/dist.commonjs/jsonRpc/requestor.js +3 -1
- package/dist.commonjs/jsonRpc/transports/advanced.d.ts +1 -0
- package/dist.commonjs/jsonRpc/transports/advanced.d.ts.map +1 -1
- package/dist.commonjs/jsonRpc/transports/advanced.js +1 -0
- package/dist.commonjs/jsonRpc/transports/fallback.d.ts +8 -0
- package/dist.commonjs/jsonRpc/transports/fallback.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/transports/fallback.js +26 -0
- package/dist.commonjs/jsonRpc/transports/webSocket.d.ts.map +1 -1
- package/dist.commonjs/jsonRpc/transports/webSocket.js +7 -3
- package/dist.commonjs/molecule/index.js +17 -7
- package/dist.commonjs/utils/index.d.ts +4 -0
- package/dist.commonjs/utils/index.d.ts.map +1 -1
- package/dist.commonjs/utils/index.js +13 -0
- package/package.json +1 -1
- package/src/ckb/transaction.ts +112 -41
- package/src/client/cache/cache.ts +126 -13
- package/src/client/cache/memory.advanced.ts +24 -7
- package/src/client/cache/memory.ts +130 -30
- package/src/client/client.ts +170 -27
- package/src/client/clientPublicMainnet.ts +14 -2
- package/src/client/clientPublicTestnet.ts +14 -2
- package/src/client/clientTypes.advanced.ts +4 -0
- package/src/client/clientTypes.ts +224 -33
- package/src/client/jsonRpc/client.ts +11 -9
- package/src/client/jsonRpc/transformers.ts +2 -2
- package/src/jsonRpc/requestor.ts +10 -1
- package/src/jsonRpc/transports/advanced.ts +1 -0
- package/src/jsonRpc/transports/fallback.ts +27 -0
- package/src/jsonRpc/transports/webSocket.ts +17 -13
- package/src/utils/index.ts +14 -1
|
@@ -2,10 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ClientCache = void 0;
|
|
4
4
|
const index_js_1 = require("../../ckb/index.js");
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
* The ClientCache class is mainly designed for chained transactions.
|
|
8
|
+
* Consumed & Created cells are "marked" so they can be correctly handled when composing transactions.
|
|
9
|
+
* It also act as cache for rpc requests to reduce cost, but this is optional.
|
|
10
|
+
*/
|
|
5
11
|
class ClientCache {
|
|
12
|
+
async markUsable(...cellLikes) {
|
|
13
|
+
await this.recordCells(...cellLikes);
|
|
14
|
+
return this.markUsableNoCache(...cellLikes);
|
|
15
|
+
}
|
|
6
16
|
async markTransactions(...transactionLike) {
|
|
7
17
|
await Promise.all([
|
|
8
|
-
this.
|
|
18
|
+
this.recordTransactionResponses(transactionLike.flat().map((transaction) => ({
|
|
19
|
+
transaction: transaction,
|
|
20
|
+
status: "sent",
|
|
21
|
+
}))),
|
|
9
22
|
...transactionLike.flat().map((transactionLike) => {
|
|
10
23
|
const tx = index_js_1.Transaction.from(transactionLike);
|
|
11
24
|
const txHash = tx.hash();
|
|
@@ -23,25 +36,97 @@ class ClientCache {
|
|
|
23
36
|
}),
|
|
24
37
|
]);
|
|
25
38
|
}
|
|
39
|
+
// ======
|
|
40
|
+
// Following methods are for requests caching and optional.
|
|
41
|
+
// ======
|
|
26
42
|
/**
|
|
27
|
-
* Record known
|
|
43
|
+
* Record known cells
|
|
44
|
+
* Implement this method to enable cells query caching
|
|
45
|
+
* @param _cells
|
|
46
|
+
*/
|
|
47
|
+
async recordCells(..._cells) { }
|
|
48
|
+
/**
|
|
49
|
+
* Get a known cell by out point
|
|
50
|
+
* Implement this method to enable cells query caching
|
|
51
|
+
* @param _outPoint
|
|
52
|
+
*/
|
|
53
|
+
async getCell(_outPoint) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Record known transaction responses.
|
|
28
58
|
* Implement this method to enable transactions query caching
|
|
29
59
|
* @param _transactions
|
|
30
60
|
*/
|
|
31
|
-
async
|
|
61
|
+
async recordTransactionResponses(..._transactions) { }
|
|
32
62
|
/**
|
|
33
|
-
* Get a known transaction by hash
|
|
63
|
+
* Get a known transaction response by hash
|
|
34
64
|
* Implement this method to enable transactions query caching
|
|
35
65
|
* @param _txHash
|
|
36
66
|
*/
|
|
37
|
-
async
|
|
67
|
+
async getTransactionResponse(_txHash) {
|
|
38
68
|
return;
|
|
39
69
|
}
|
|
40
70
|
/**
|
|
41
|
-
* Record known
|
|
42
|
-
*
|
|
43
|
-
* @param _cells
|
|
71
|
+
* Record known transactions.
|
|
72
|
+
* @param transactions
|
|
44
73
|
*/
|
|
45
|
-
async
|
|
74
|
+
async recordTransactions(...transactions) {
|
|
75
|
+
return this.recordTransactionResponses(transactions.flat().map((transaction) => ({
|
|
76
|
+
transaction,
|
|
77
|
+
status: "unknown",
|
|
78
|
+
})));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get a known transaction by hash
|
|
82
|
+
* @param txHash
|
|
83
|
+
*/
|
|
84
|
+
async getTransaction(txHash) {
|
|
85
|
+
return (await this.getTransactionResponse(txHash))?.transaction;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Record known block headers.
|
|
89
|
+
* Implement this method to enable block headers query caching
|
|
90
|
+
* @param _headers
|
|
91
|
+
*/
|
|
92
|
+
async recordHeaders(..._headers) { }
|
|
93
|
+
/**
|
|
94
|
+
* Get a known block header by hash
|
|
95
|
+
* Implement this method to enable block headers query caching
|
|
96
|
+
* @param _hash
|
|
97
|
+
*/
|
|
98
|
+
async getHeaderByHash(_hash) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get a known block header by number
|
|
103
|
+
* Implement this method to enable block headers query caching
|
|
104
|
+
* @param _number
|
|
105
|
+
*/
|
|
106
|
+
async getHeaderByNumber(_number) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Record known blocks.
|
|
111
|
+
* Implement this method to enable blocks query caching
|
|
112
|
+
* @param _blocks
|
|
113
|
+
*/
|
|
114
|
+
async recordBlocks(..._blocks) { }
|
|
115
|
+
/**
|
|
116
|
+
* Get a known block header by hash
|
|
117
|
+
* Implement this method to enable block headers query caching
|
|
118
|
+
* @param _hash
|
|
119
|
+
*/
|
|
120
|
+
async getBlockByHash(_hash) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get a known block header by number
|
|
125
|
+
* Implement this method to enable block headers query caching
|
|
126
|
+
* @param _number
|
|
127
|
+
*/
|
|
128
|
+
async getBlockByNumber(_number) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
46
131
|
}
|
|
47
132
|
exports.ClientCache = ClientCache;
|
|
@@ -15,8 +15,8 @@ export declare class MapLru<K, V> extends Map<K, V> {
|
|
|
15
15
|
private readonly capacity;
|
|
16
16
|
private readonly lru;
|
|
17
17
|
constructor(capacity: number);
|
|
18
|
-
|
|
19
|
-
get(key: K): V | undefined;
|
|
18
|
+
get(key: K): (V & ({} | null)) | undefined;
|
|
20
19
|
set(key: K, value: V): this;
|
|
20
|
+
delete(key: K): boolean;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=memory.advanced.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.advanced.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.advanced.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAU,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,8BAA8B,EAE/B,MAAM,4BAA4B,CAAC;AAIpC,MAAM,MAAM,UAAU,GAClB;IACE,KAAK;IACL,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;CAC1E,GACD,CAAC,IAAI,EAAE,IAAI,CAAC,GACZ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEtB,wBAAgB,UAAU,CACxB,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GACzC,OAAO,CAgBT;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GACzC,OAAO,CAkBT;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,OAAO,EACnB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,GACpC,OAAO,CAQT;AAED,wBAAgB,sBAAsB,CACpC,SAAS,CAAC,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAClC,OAAO,CAYT;AAED,wBAAgB,UAAU,CACxB,aAAa,EAAE,8BAA8B,EAC7C,QAAQ,EAAE,QAAQ,GACjB,OAAO,CA4CT;AAED,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAG7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;gBAEF,QAAQ,EAAE,MAAM;IAI7C,
|
|
1
|
+
{"version":3,"file":"memory.advanced.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.advanced.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAU,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,8BAA8B,EAE/B,MAAM,4BAA4B,CAAC;AAIpC,MAAM,MAAM,UAAU,GAClB;IACE,KAAK;IACL,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;CAC1E,GACD,CAAC,IAAI,EAAE,IAAI,CAAC,GACZ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEtB,wBAAgB,UAAU,CACxB,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GACzC,OAAO,CAgBT;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GACzC,OAAO,CAkBT;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,OAAO,EACnB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,GACpC,OAAO,CAQT;AAED,wBAAgB,sBAAsB,CACpC,SAAS,CAAC,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAClC,OAAO,CAYT;AAED,wBAAgB,UAAU,CACxB,aAAa,EAAE,8BAA8B,EAC7C,QAAQ,EAAE,QAAQ,GACjB,OAAO,CA4CT;AAED,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAG7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;gBAEF,QAAQ,EAAE,MAAM;IAI7C,GAAG,CAAC,GAAG,EAAE,CAAC;IAmBV,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAOpB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;CAYxB"}
|
|
@@ -92,7 +92,11 @@ class MapLru extends Map {
|
|
|
92
92
|
this.capacity = capacity;
|
|
93
93
|
this.lru = [];
|
|
94
94
|
}
|
|
95
|
-
|
|
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.
|
|
112
|
-
|
|
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
|
|
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
|
-
|
|
17
|
-
|
|
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,
|
|
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
|
|
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.
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
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.
|
|
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
|
|
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
|
|
26
|
-
abstract
|
|
27
|
-
abstract
|
|
28
|
-
abstract
|
|
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
|
|
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":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EAEP,YAAY,EACZ,UAAU,EAEV,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|