@ckb-ccc/core 0.0.13-alpha.3 → 0.0.13-alpha.5
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 +14 -0
- package/dist/client/cache/memory.d.ts +2 -2
- package/dist/client/cache/memory.d.ts.map +1 -1
- package/dist/client/cache/memory.js +13 -13
- package/dist/client/client.d.ts +3 -1
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +2 -2
- package/dist/client/clientPublicMainnet.d.ts +12 -4
- package/dist/client/clientPublicMainnet.d.ts.map +1 -1
- package/dist/client/clientPublicMainnet.js +8 -4
- package/dist/client/clientPublicTestnet.d.ts +12 -4
- package/dist/client/clientPublicTestnet.d.ts.map +1 -1
- package/dist/client/clientPublicTestnet.js +8 -4
- package/dist/client/jsonRpc/index.d.ts +5 -2
- package/dist/client/jsonRpc/index.d.ts.map +1 -1
- package/dist/client/jsonRpc/index.js +4 -5
- package/dist/client/transports/webSocket.d.ts.map +1 -1
- package/dist/client/transports/webSocket.js +1 -0
- package/dist.commonjs/client/cache/memory.d.ts +2 -2
- package/dist.commonjs/client/cache/memory.d.ts.map +1 -1
- package/dist.commonjs/client/cache/memory.js +13 -13
- package/dist.commonjs/client/client.d.ts +3 -1
- package/dist.commonjs/client/client.d.ts.map +1 -1
- package/dist.commonjs/client/client.js +2 -2
- package/dist.commonjs/client/clientPublicMainnet.d.ts +12 -4
- package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.js +12 -5
- package/dist.commonjs/client/clientPublicTestnet.d.ts +12 -4
- package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicTestnet.js +12 -5
- package/dist.commonjs/client/jsonRpc/index.d.ts +5 -2
- package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
- package/dist.commonjs/client/jsonRpc/index.js +6 -7
- package/dist.commonjs/client/transports/webSocket.d.ts.map +1 -1
- package/dist.commonjs/client/transports/webSocket.js +5 -1
- package/package.json +4 -2
- package/src/client/cache/memory.ts +17 -17
- package/src/client/client.ts +5 -1
- package/src/client/clientPublicMainnet.ts +14 -5
- package/src/client/clientPublicTestnet.ts +14 -5
- package/src/client/jsonRpc/index.ts +5 -4
- package/src/client/transports/webSocket.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @ckb-ccc/core
|
|
2
2
|
|
|
3
|
+
## 0.0.13-alpha.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`6d62032`](https://github.com/ckb-ecofund/ccc/commit/6d620326f42f8c48eff9deb95578cf28d7bf5c97) Thanks [@Hanssen0](https://github.com/Hanssen0)! - fix(core): recordCells should not add usableCells
|
|
8
|
+
|
|
9
|
+
## 0.0.13-alpha.4
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`3658797`](https://github.com/ckb-ecofund/ccc/commit/3658797e67c42c56b20fa66481d0455ed019e69f) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat(core): node.js websocket
|
|
14
|
+
|
|
15
|
+
- [`642f731`](https://github.com/ckb-ecofund/ccc/commit/642f7317f4951ef801f1245aea96c40b4b6fb73e) Thanks [@Hanssen0](https://github.com/Hanssen0)! - feat(core): custom ClientCache
|
|
16
|
+
|
|
3
17
|
## 0.0.13-alpha.3
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -3,18 +3,18 @@ import { HexLike } from "../../hex/index.js";
|
|
|
3
3
|
import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
|
|
4
4
|
import { ClientCache } from "./cache.js";
|
|
5
5
|
export declare class ClientCacheMemory implements ClientCache {
|
|
6
|
-
private readonly cachedTransactions;
|
|
7
6
|
private readonly unusableOutPoints;
|
|
8
7
|
private readonly usableCells;
|
|
8
|
+
private readonly knownTransactions;
|
|
9
9
|
private readonly knownCells;
|
|
10
10
|
markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
|
|
11
11
|
markUnusable(...outPointLikes: (OutPointLike | OutPointLike[])[]): Promise<void>;
|
|
12
12
|
markTransactions(...transactionLike: (TransactionLike | TransactionLike[])[]): Promise<void>;
|
|
13
|
+
findCells(keyLike: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
|
|
13
14
|
isUnusable(outPointLike: OutPointLike): Promise<boolean>;
|
|
14
15
|
recordTransactions(...transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
|
|
15
16
|
getTransaction(txHashLike: HexLike): Promise<Transaction | undefined>;
|
|
16
17
|
recordCells(...cells: (CellLike | CellLike[])[]): Promise<void>;
|
|
17
18
|
getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
|
|
18
|
-
findCells(keyLike: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEnC,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,YAAY,CAChB,GAAG,aAAa,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAYV,gBAAgB,CACpB,GAAG,eAAe,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;IAyBT,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;IAUjB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD,kBAAkB,CACtB,GAAG,YAAY,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACvD,OAAO,CAAC,IAAI,CAAC;IAGV,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKrE,WAAW,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG/D,OAAO,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;CAIrE"}
|
|
@@ -3,9 +3,9 @@ import { hexFrom } from "../../hex/index.js";
|
|
|
3
3
|
import { filterCell } from "./memory.advanced.js";
|
|
4
4
|
export class ClientCacheMemory {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.cachedTransactions = [];
|
|
7
6
|
this.unusableOutPoints = [];
|
|
8
7
|
this.usableCells = [];
|
|
8
|
+
this.knownTransactions = [];
|
|
9
9
|
this.knownCells = [];
|
|
10
10
|
}
|
|
11
11
|
async markUsable(...cellLikes) {
|
|
@@ -44,30 +44,30 @@ export class ClientCacheMemory {
|
|
|
44
44
|
})));
|
|
45
45
|
}));
|
|
46
46
|
}
|
|
47
|
+
async *findCells(keyLike) {
|
|
48
|
+
for (const cell of this.usableCells) {
|
|
49
|
+
if (!filterCell(keyLike, cell)) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
yield cell;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
47
55
|
async isUnusable(outPointLike) {
|
|
48
56
|
const outPoint = OutPoint.from(outPointLike);
|
|
49
57
|
return this.unusableOutPoints.find((o) => o.eq(outPoint)) !== undefined;
|
|
50
58
|
}
|
|
51
59
|
async recordTransactions(...transactions) {
|
|
52
|
-
this.
|
|
60
|
+
this.knownTransactions.push(...transactions.flat().map(Transaction.from));
|
|
53
61
|
}
|
|
54
62
|
async getTransaction(txHashLike) {
|
|
55
63
|
const txHash = hexFrom(txHashLike);
|
|
56
|
-
return this.
|
|
64
|
+
return this.knownTransactions.find((tx) => tx.hash() === txHash);
|
|
57
65
|
}
|
|
58
66
|
async recordCells(...cells) {
|
|
59
|
-
this.
|
|
67
|
+
this.knownCells.push(...cells.flat().map(Cell.from));
|
|
60
68
|
}
|
|
61
69
|
async getCell(outPointLike) {
|
|
62
70
|
const outPoint = OutPoint.from(outPointLike);
|
|
63
|
-
return this.
|
|
64
|
-
}
|
|
65
|
-
async *findCells(keyLike) {
|
|
66
|
-
for (const cell of this.usableCells) {
|
|
67
|
-
if (!filterCell(keyLike, cell)) {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
yield cell;
|
|
71
|
-
}
|
|
71
|
+
return this.knownCells.find((cell) => cell.outPoint.eq(outPoint));
|
|
72
72
|
}
|
|
73
73
|
}
|
package/dist/client/client.d.ts
CHANGED
|
@@ -43,7 +43,9 @@ export declare class CellDepInfo {
|
|
|
43
43
|
*/
|
|
44
44
|
export declare abstract class Client {
|
|
45
45
|
cache: ClientCache;
|
|
46
|
-
constructor(
|
|
46
|
+
constructor(config?: {
|
|
47
|
+
cache?: ClientCache;
|
|
48
|
+
});
|
|
47
49
|
abstract get url(): string;
|
|
48
50
|
abstract get addressPrefix(): string;
|
|
49
51
|
abstract getKnownScript(script: KnownScript): Promise<Pick<Script, "codeHash" | "hashType"> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EAEX,YAAY,EACZ,MAAM,EACN,UAAU,EAEV,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,qCAAqC,EACrC,8BAA8B,EAE9B,0BAA0B,EAC1B,qCAAqC,EACrC,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,oBAAY,WAAW;IACrB,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW;IAEb,OAAO,EAAE,OAAO;IAChB,IAAI,CAAC;gBADL,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,oBAAQ;IAGtB,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,WAAW;CAM3D;AAED;;GAEG;AACH,8BAAsB,MAAM;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client/client.js
CHANGED
|
@@ -40,8 +40,8 @@ export class CellDepInfo {
|
|
|
40
40
|
* @public
|
|
41
41
|
*/
|
|
42
42
|
export class Client {
|
|
43
|
-
constructor(
|
|
44
|
-
this.cache = cache;
|
|
43
|
+
constructor(config) {
|
|
44
|
+
this.cache = config?.cache ?? new ClientCacheMemory();
|
|
45
45
|
}
|
|
46
46
|
async getCell(outPointLike) {
|
|
47
47
|
const outPoint = OutPoint.from(outPointLike);
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { Script } from "../ckb/index.js";
|
|
2
|
+
import { ClientCache } from "./cache/index.js";
|
|
2
3
|
import { CellDepInfo, KnownScript } from "./client.js";
|
|
4
|
+
import { MAINNET_SCRIPTS } from "./clientPublicMainnet.advanced.js";
|
|
3
5
|
import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
4
6
|
/**
|
|
5
7
|
* @public
|
|
6
8
|
*/
|
|
7
9
|
export declare class ClientPublicMainnet extends ClientJsonRpc {
|
|
8
|
-
private readonly
|
|
9
|
-
constructor(
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
private readonly config?;
|
|
11
|
+
constructor(config?: {
|
|
12
|
+
url?: string | undefined;
|
|
13
|
+
timeout?: number | undefined;
|
|
14
|
+
scripts?: Record<KnownScript, (Pick<Script, "codeHash" | "hashType"> & {
|
|
15
|
+
cellDeps: import("./client.js").CellDepInfoLike[];
|
|
16
|
+
}) | undefined> | undefined;
|
|
17
|
+
cache?: ClientCache | undefined;
|
|
18
|
+
} | undefined);
|
|
19
|
+
get scripts(): typeof MAINNET_SCRIPTS;
|
|
12
20
|
get addressPrefix(): string;
|
|
13
21
|
getKnownScript(script: KnownScript): Promise<Pick<Script, "codeHash" | "hashType"> & {
|
|
14
22
|
cellDeps: CellDepInfo[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC;;;;;;;iBAKvB;IAWH,IAAI,OAAO,IAAI,OAAO,eAAe,CAEpC;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAClB,MAAM,EAAE,WAAW,GAClB,OAAO,CACR,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;KAAE,CACpE;CAYF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import WebSocket from "isomorphic-ws";
|
|
1
2
|
import { CellDepInfo } from "./client.js";
|
|
2
3
|
import { MAINNET_SCRIPTS } from "./clientPublicMainnet.advanced.js";
|
|
3
4
|
import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
@@ -5,12 +6,15 @@ import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
|
5
6
|
* @public
|
|
6
7
|
*/
|
|
7
8
|
export class ClientPublicMainnet extends ClientJsonRpc {
|
|
8
|
-
constructor(
|
|
9
|
-
super(url ??
|
|
9
|
+
constructor(config) {
|
|
10
|
+
super(config?.url ??
|
|
10
11
|
(typeof WebSocket !== "undefined"
|
|
11
12
|
? "wss://mainnet.ckb.dev/ws"
|
|
12
|
-
: "https://mainnet.ckb.dev/"),
|
|
13
|
-
this.
|
|
13
|
+
: "https://mainnet.ckb.dev/"), config);
|
|
14
|
+
this.config = config;
|
|
15
|
+
}
|
|
16
|
+
get scripts() {
|
|
17
|
+
return this.config?.scripts ?? MAINNET_SCRIPTS;
|
|
14
18
|
}
|
|
15
19
|
get addressPrefix() {
|
|
16
20
|
return "ckb";
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { Script } from "../ckb/index.js";
|
|
2
|
+
import { ClientCache } from "./cache/index.js";
|
|
2
3
|
import { CellDepInfo, KnownScript } from "./client.js";
|
|
4
|
+
import { TESTNET_SCRIPTS } from "./clientPublicTestnet.advanced.js";
|
|
3
5
|
import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
4
6
|
/**
|
|
5
7
|
* @public
|
|
6
8
|
*/
|
|
7
9
|
export declare class ClientPublicTestnet extends ClientJsonRpc {
|
|
8
|
-
private readonly
|
|
9
|
-
constructor(
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
private readonly config?;
|
|
11
|
+
constructor(config?: {
|
|
12
|
+
url?: string | undefined;
|
|
13
|
+
timeout?: number | undefined;
|
|
14
|
+
scripts?: Record<KnownScript, Pick<Script, "codeHash" | "hashType"> & {
|
|
15
|
+
cellDeps: import("./client.js").CellDepInfoLike[];
|
|
16
|
+
}> | undefined;
|
|
17
|
+
cache?: ClientCache | undefined;
|
|
18
|
+
} | undefined);
|
|
19
|
+
get scripts(): typeof TESTNET_SCRIPTS;
|
|
12
20
|
get addressPrefix(): string;
|
|
13
21
|
getKnownScript(script: KnownScript): Promise<Pick<Script, "codeHash" | "hashType"> & {
|
|
14
22
|
cellDeps: CellDepInfo[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientPublicTestnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientPublicTestnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC;;;;;;;iBAKvB;IAWH,IAAI,OAAO,IAAI,OAAO,eAAe,CAEpC;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAClB,MAAM,EAAE,WAAW,GAClB,OAAO,CACR,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;KAAE,CACpE;CAOF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import WebSocket from "isomorphic-ws";
|
|
1
2
|
import { CellDepInfo } from "./client.js";
|
|
2
3
|
import { TESTNET_SCRIPTS } from "./clientPublicTestnet.advanced.js";
|
|
3
4
|
import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
@@ -5,12 +6,15 @@ import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
|
5
6
|
* @public
|
|
6
7
|
*/
|
|
7
8
|
export class ClientPublicTestnet extends ClientJsonRpc {
|
|
8
|
-
constructor(
|
|
9
|
-
super(url ??
|
|
9
|
+
constructor(config) {
|
|
10
|
+
super(config?.url ??
|
|
10
11
|
(typeof WebSocket !== "undefined"
|
|
11
12
|
? "wss://testnet.ckb.dev/ws"
|
|
12
|
-
: "https://testnet.ckb.dev/"),
|
|
13
|
-
this.
|
|
13
|
+
: "https://testnet.ckb.dev/"), config);
|
|
14
|
+
this.config = config;
|
|
15
|
+
}
|
|
16
|
+
get scripts() {
|
|
17
|
+
return this.config?.scripts ?? TESTNET_SCRIPTS;
|
|
14
18
|
}
|
|
15
19
|
get addressPrefix() {
|
|
16
20
|
return "ckt";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TransactionLike } from "../../ckb/index.js";
|
|
2
2
|
import { Hex, HexLike } from "../../hex/index.js";
|
|
3
3
|
import { Num, NumLike } from "../../num/index.js";
|
|
4
|
+
import { ClientCache } from "../cache/index.js";
|
|
4
5
|
import { Client } from "../client.js";
|
|
5
6
|
import { ClientFindCellsResponse, ClientIndexerSearchKeyLike, ClientTransactionResponse, OutputsValidator } from "../clientTypes.js";
|
|
6
7
|
import { JsonRpcPayload } from "../transports/advanced.js";
|
|
@@ -10,7 +11,6 @@ import { JsonRpcPayload } from "../transports/advanced.js";
|
|
|
10
11
|
*/
|
|
11
12
|
export declare abstract class ClientJsonRpc extends Client {
|
|
12
13
|
private readonly url_;
|
|
13
|
-
private readonly timeout?;
|
|
14
14
|
private readonly transport;
|
|
15
15
|
/**
|
|
16
16
|
* Creates an instance of ClientJsonRpc.
|
|
@@ -18,7 +18,10 @@ export declare abstract class ClientJsonRpc extends Client {
|
|
|
18
18
|
* @param url_ - The URL of the JSON-RPC server.
|
|
19
19
|
* @param timeout - The timeout for requests in milliseconds
|
|
20
20
|
*/
|
|
21
|
-
constructor(url_: string,
|
|
21
|
+
constructor(url_: string, config?: {
|
|
22
|
+
timeout?: number;
|
|
23
|
+
cache?: ClientCache;
|
|
24
|
+
});
|
|
22
25
|
/**
|
|
23
26
|
* Returns the URL of the JSON-RPC server.
|
|
24
27
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EAGf,MAAM,2BAA2B,CAAC;AA2BnC;;;GAGG;AAEH,8BAAsB,aAAc,SAAQ,MAAM;IAW9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC;;;;;OAKG;gBAGgB,IAAI,EAAE,MAAM,EAC7B,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE;IAOpD;;;;OAIG;IAEH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;OAIG;IAEH,MAAM,QAIK,QAAQ,GAAG,CAAC,CAAC;IAExB;;;;;;;OAOG;IACH,gBAAgB,yKAIgB;IAEhC;;;;;;;OAOG;IACH,cAAc,mMAEgB;IAE9B;;;;;;OAMG;IAEH,sBAAsB,gBAKP,eAAe,cAChB,gBAAgB,GAAG,SAAS,KACrC,QAAQ,GAAG,CAAC,CAAC;IAElB;;;;;OAKG;IAEH,qBAAqB,WAIP,OAAO,KAAK,QAAQ,yBAAyB,GAAG,SAAS,CAAC,CAAC;IAEzE;;;;;;;;OAQG;IAEH,qBAAqB,QASd,0BAA0B,UACvB,KAAK,GAAG,MAAM,UACd,OAAO,UACP,MAAM,KACX,QAAQ,uBAAuB,CAAC,CAAC;IAEtC;;;;;;;;OAQG;IAEH,qBAAqB;;;;;;;;MAQgB;IAErC;;;;;OAKG;IAEH,gBAAgB,QAIL,0BAA0B,KAAK,QAAQ,GAAG,CAAC,CAAC;IAEvD;;;;;;;OAOG;IAEH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,EACrD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,GACnC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC;IAmB1C;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAerD;;;;;;OAMG;IAEH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQpE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { apply } from "../../barrel.js";
|
|
2
1
|
import { hexFrom } from "../../hex/index.js";
|
|
3
2
|
import { numFrom, numToHex } from "../../num/index.js";
|
|
3
|
+
import { apply } from "../../utils/index.js";
|
|
4
4
|
import { Client } from "../client.js";
|
|
5
5
|
import { transportFromUri, } from "../transports/advanced.js";
|
|
6
6
|
import { JsonRpcTransformers } from "./advanced.js";
|
|
@@ -34,10 +34,9 @@ export class ClientJsonRpc extends Client {
|
|
|
34
34
|
* @param url_ - The URL of the JSON-RPC server.
|
|
35
35
|
* @param timeout - The timeout for requests in milliseconds
|
|
36
36
|
*/
|
|
37
|
-
constructor(url_,
|
|
38
|
-
super();
|
|
37
|
+
constructor(url_, config) {
|
|
38
|
+
super(config);
|
|
39
39
|
this.url_ = url_;
|
|
40
|
-
this.timeout = timeout;
|
|
41
40
|
/**
|
|
42
41
|
* Get tip block number
|
|
43
42
|
*
|
|
@@ -112,7 +111,7 @@ export class ClientJsonRpc extends Client {
|
|
|
112
111
|
* @returns The sum of cells capacity.
|
|
113
112
|
*/
|
|
114
113
|
this.getCellsCapacity = this.buildSender("get_cells_capacity", [JsonRpcTransformers.indexerSearchKeyFrom], ({ capacity }) => numFrom(capacity));
|
|
115
|
-
this.transport = transportFromUri(url_);
|
|
114
|
+
this.transport = transportFromUri(url_, config);
|
|
116
115
|
}
|
|
117
116
|
/**
|
|
118
117
|
* Returns the URL of the JSON-RPC server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/client/transports/webSocket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/client/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,kBAAmB,YAAW,SAAS;IAYhD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,OAAO,CAAC,OAAO,CAOD;IACd,OAAO,CAAC,MAAM,CAAC,CAAqB;gBAGjB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAG5B,OAAO,CAAC,IAAI,EAAE,cAAc;CA8DnC"}
|
|
@@ -3,18 +3,18 @@ import { HexLike } from "../../hex/index.js";
|
|
|
3
3
|
import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
|
|
4
4
|
import { ClientCache } from "./cache.js";
|
|
5
5
|
export declare class ClientCacheMemory implements ClientCache {
|
|
6
|
-
private readonly cachedTransactions;
|
|
7
6
|
private readonly unusableOutPoints;
|
|
8
7
|
private readonly usableCells;
|
|
8
|
+
private readonly knownTransactions;
|
|
9
9
|
private readonly knownCells;
|
|
10
10
|
markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
|
|
11
11
|
markUnusable(...outPointLikes: (OutPointLike | OutPointLike[])[]): Promise<void>;
|
|
12
12
|
markTransactions(...transactionLike: (TransactionLike | TransactionLike[])[]): Promise<void>;
|
|
13
|
+
findCells(keyLike: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
|
|
13
14
|
isUnusable(outPointLike: OutPointLike): Promise<boolean>;
|
|
14
15
|
recordTransactions(...transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
|
|
15
16
|
getTransaction(txHashLike: HexLike): Promise<Transaction | undefined>;
|
|
16
17
|
recordCells(...cells: (CellLike | CellLike[])[]): Promise<void>;
|
|
17
18
|
getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
|
|
18
|
-
findCells(keyLike: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEnC,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,YAAY,CAChB,GAAG,aAAa,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAYV,gBAAgB,CACpB,GAAG,eAAe,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;IAyBT,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;IAUjB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD,kBAAkB,CACtB,GAAG,YAAY,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACvD,OAAO,CAAC,IAAI,CAAC;IAGV,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKrE,WAAW,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG/D,OAAO,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;CAIrE"}
|
|
@@ -6,9 +6,9 @@ const index_js_2 = require("../../hex/index.js");
|
|
|
6
6
|
const memory_advanced_js_1 = require("./memory.advanced.js");
|
|
7
7
|
class ClientCacheMemory {
|
|
8
8
|
constructor() {
|
|
9
|
-
this.cachedTransactions = [];
|
|
10
9
|
this.unusableOutPoints = [];
|
|
11
10
|
this.usableCells = [];
|
|
11
|
+
this.knownTransactions = [];
|
|
12
12
|
this.knownCells = [];
|
|
13
13
|
}
|
|
14
14
|
async markUsable(...cellLikes) {
|
|
@@ -47,31 +47,31 @@ class ClientCacheMemory {
|
|
|
47
47
|
})));
|
|
48
48
|
}));
|
|
49
49
|
}
|
|
50
|
+
async *findCells(keyLike) {
|
|
51
|
+
for (const cell of this.usableCells) {
|
|
52
|
+
if (!(0, memory_advanced_js_1.filterCell)(keyLike, cell)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
yield cell;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
50
58
|
async isUnusable(outPointLike) {
|
|
51
59
|
const outPoint = index_js_1.OutPoint.from(outPointLike);
|
|
52
60
|
return this.unusableOutPoints.find((o) => o.eq(outPoint)) !== undefined;
|
|
53
61
|
}
|
|
54
62
|
async recordTransactions(...transactions) {
|
|
55
|
-
this.
|
|
63
|
+
this.knownTransactions.push(...transactions.flat().map(index_js_1.Transaction.from));
|
|
56
64
|
}
|
|
57
65
|
async getTransaction(txHashLike) {
|
|
58
66
|
const txHash = (0, index_js_2.hexFrom)(txHashLike);
|
|
59
|
-
return this.
|
|
67
|
+
return this.knownTransactions.find((tx) => tx.hash() === txHash);
|
|
60
68
|
}
|
|
61
69
|
async recordCells(...cells) {
|
|
62
|
-
this.
|
|
70
|
+
this.knownCells.push(...cells.flat().map(index_js_1.Cell.from));
|
|
63
71
|
}
|
|
64
72
|
async getCell(outPointLike) {
|
|
65
73
|
const outPoint = index_js_1.OutPoint.from(outPointLike);
|
|
66
|
-
return this.
|
|
67
|
-
}
|
|
68
|
-
async *findCells(keyLike) {
|
|
69
|
-
for (const cell of this.usableCells) {
|
|
70
|
-
if (!(0, memory_advanced_js_1.filterCell)(keyLike, cell)) {
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
yield cell;
|
|
74
|
-
}
|
|
74
|
+
return this.knownCells.find((cell) => cell.outPoint.eq(outPoint));
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
exports.ClientCacheMemory = ClientCacheMemory;
|
|
@@ -43,7 +43,9 @@ export declare class CellDepInfo {
|
|
|
43
43
|
*/
|
|
44
44
|
export declare abstract class Client {
|
|
45
45
|
cache: ClientCache;
|
|
46
|
-
constructor(
|
|
46
|
+
constructor(config?: {
|
|
47
|
+
cache?: ClientCache;
|
|
48
|
+
});
|
|
47
49
|
abstract get url(): string;
|
|
48
50
|
abstract get addressPrefix(): string;
|
|
49
51
|
abstract getKnownScript(script: KnownScript): Promise<Pick<Script, "codeHash" | "hashType"> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EAEX,YAAY,EACZ,MAAM,EACN,UAAU,EAEV,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,qCAAqC,EACrC,8BAA8B,EAE9B,0BAA0B,EAC1B,qCAAqC,EACrC,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,oBAAY,WAAW;IACrB,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW;IAEb,OAAO,EAAE,OAAO;IAChB,IAAI,CAAC;gBADL,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,oBAAQ;IAGtB,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,WAAW;CAM3D;AAED;;GAEG;AACH,8BAAsB,MAAM;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,8 +44,8 @@ exports.CellDepInfo = CellDepInfo;
|
|
|
44
44
|
* @public
|
|
45
45
|
*/
|
|
46
46
|
class Client {
|
|
47
|
-
constructor(
|
|
48
|
-
this.cache = cache;
|
|
47
|
+
constructor(config) {
|
|
48
|
+
this.cache = config?.cache ?? new memory_js_1.ClientCacheMemory();
|
|
49
49
|
}
|
|
50
50
|
async getCell(outPointLike) {
|
|
51
51
|
const outPoint = index_js_1.OutPoint.from(outPointLike);
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { Script } from "../ckb/index.js";
|
|
2
|
+
import { ClientCache } from "./cache/index.js";
|
|
2
3
|
import { CellDepInfo, KnownScript } from "./client.js";
|
|
4
|
+
import { MAINNET_SCRIPTS } from "./clientPublicMainnet.advanced.js";
|
|
3
5
|
import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
4
6
|
/**
|
|
5
7
|
* @public
|
|
6
8
|
*/
|
|
7
9
|
export declare class ClientPublicMainnet extends ClientJsonRpc {
|
|
8
|
-
private readonly
|
|
9
|
-
constructor(
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
private readonly config?;
|
|
11
|
+
constructor(config?: {
|
|
12
|
+
url?: string | undefined;
|
|
13
|
+
timeout?: number | undefined;
|
|
14
|
+
scripts?: Record<KnownScript, (Pick<Script, "codeHash" | "hashType"> & {
|
|
15
|
+
cellDeps: import("./client.js").CellDepInfoLike[];
|
|
16
|
+
}) | undefined> | undefined;
|
|
17
|
+
cache?: ClientCache | undefined;
|
|
18
|
+
} | undefined);
|
|
19
|
+
get scripts(): typeof MAINNET_SCRIPTS;
|
|
12
20
|
get addressPrefix(): string;
|
|
13
21
|
getKnownScript(script: KnownScript): Promise<Pick<Script, "codeHash" | "hashType"> & {
|
|
14
22
|
cellDeps: CellDepInfo[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC;;;;;;;iBAKvB;IAWH,IAAI,OAAO,IAAI,OAAO,eAAe,CAEpC;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAClB,MAAM,EAAE,WAAW,GAClB,OAAO,CACR,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;KAAE,CACpE;CAYF"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.ClientPublicMainnet = void 0;
|
|
7
|
+
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
4
8
|
const client_js_1 = require("./client.js");
|
|
5
9
|
const clientPublicMainnet_advanced_js_1 = require("./clientPublicMainnet.advanced.js");
|
|
6
10
|
const index_js_1 = require("./jsonRpc/index.js");
|
|
@@ -8,12 +12,15 @@ const index_js_1 = require("./jsonRpc/index.js");
|
|
|
8
12
|
* @public
|
|
9
13
|
*/
|
|
10
14
|
class ClientPublicMainnet extends index_js_1.ClientJsonRpc {
|
|
11
|
-
constructor(
|
|
12
|
-
super(url ??
|
|
13
|
-
(typeof
|
|
15
|
+
constructor(config) {
|
|
16
|
+
super(config?.url ??
|
|
17
|
+
(typeof isomorphic_ws_1.default !== "undefined"
|
|
14
18
|
? "wss://mainnet.ckb.dev/ws"
|
|
15
|
-
: "https://mainnet.ckb.dev/"),
|
|
16
|
-
this.
|
|
19
|
+
: "https://mainnet.ckb.dev/"), config);
|
|
20
|
+
this.config = config;
|
|
21
|
+
}
|
|
22
|
+
get scripts() {
|
|
23
|
+
return this.config?.scripts ?? clientPublicMainnet_advanced_js_1.MAINNET_SCRIPTS;
|
|
17
24
|
}
|
|
18
25
|
get addressPrefix() {
|
|
19
26
|
return "ckb";
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { Script } from "../ckb/index.js";
|
|
2
|
+
import { ClientCache } from "./cache/index.js";
|
|
2
3
|
import { CellDepInfo, KnownScript } from "./client.js";
|
|
4
|
+
import { TESTNET_SCRIPTS } from "./clientPublicTestnet.advanced.js";
|
|
3
5
|
import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
4
6
|
/**
|
|
5
7
|
* @public
|
|
6
8
|
*/
|
|
7
9
|
export declare class ClientPublicTestnet extends ClientJsonRpc {
|
|
8
|
-
private readonly
|
|
9
|
-
constructor(
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
private readonly config?;
|
|
11
|
+
constructor(config?: {
|
|
12
|
+
url?: string | undefined;
|
|
13
|
+
timeout?: number | undefined;
|
|
14
|
+
scripts?: Record<KnownScript, Pick<Script, "codeHash" | "hashType"> & {
|
|
15
|
+
cellDeps: import("./client.js").CellDepInfoLike[];
|
|
16
|
+
}> | undefined;
|
|
17
|
+
cache?: ClientCache | undefined;
|
|
18
|
+
} | undefined);
|
|
19
|
+
get scripts(): typeof TESTNET_SCRIPTS;
|
|
12
20
|
get addressPrefix(): string;
|
|
13
21
|
getKnownScript(script: KnownScript): Promise<Pick<Script, "codeHash" | "hashType"> & {
|
|
14
22
|
cellDeps: CellDepInfo[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientPublicTestnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientPublicTestnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC;;;;;;;iBAKvB;IAWH,IAAI,OAAO,IAAI,OAAO,eAAe,CAEpC;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAClB,MAAM,EAAE,WAAW,GAClB,OAAO,CACR,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;KAAE,CACpE;CAOF"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.ClientPublicTestnet = void 0;
|
|
7
|
+
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
4
8
|
const client_js_1 = require("./client.js");
|
|
5
9
|
const clientPublicTestnet_advanced_js_1 = require("./clientPublicTestnet.advanced.js");
|
|
6
10
|
const index_js_1 = require("./jsonRpc/index.js");
|
|
@@ -8,12 +12,15 @@ const index_js_1 = require("./jsonRpc/index.js");
|
|
|
8
12
|
* @public
|
|
9
13
|
*/
|
|
10
14
|
class ClientPublicTestnet extends index_js_1.ClientJsonRpc {
|
|
11
|
-
constructor(
|
|
12
|
-
super(url ??
|
|
13
|
-
(typeof
|
|
15
|
+
constructor(config) {
|
|
16
|
+
super(config?.url ??
|
|
17
|
+
(typeof isomorphic_ws_1.default !== "undefined"
|
|
14
18
|
? "wss://testnet.ckb.dev/ws"
|
|
15
|
-
: "https://testnet.ckb.dev/"),
|
|
16
|
-
this.
|
|
19
|
+
: "https://testnet.ckb.dev/"), config);
|
|
20
|
+
this.config = config;
|
|
21
|
+
}
|
|
22
|
+
get scripts() {
|
|
23
|
+
return this.config?.scripts ?? clientPublicTestnet_advanced_js_1.TESTNET_SCRIPTS;
|
|
17
24
|
}
|
|
18
25
|
get addressPrefix() {
|
|
19
26
|
return "ckt";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TransactionLike } from "../../ckb/index.js";
|
|
2
2
|
import { Hex, HexLike } from "../../hex/index.js";
|
|
3
3
|
import { Num, NumLike } from "../../num/index.js";
|
|
4
|
+
import { ClientCache } from "../cache/index.js";
|
|
4
5
|
import { Client } from "../client.js";
|
|
5
6
|
import { ClientFindCellsResponse, ClientIndexerSearchKeyLike, ClientTransactionResponse, OutputsValidator } from "../clientTypes.js";
|
|
6
7
|
import { JsonRpcPayload } from "../transports/advanced.js";
|
|
@@ -10,7 +11,6 @@ import { JsonRpcPayload } from "../transports/advanced.js";
|
|
|
10
11
|
*/
|
|
11
12
|
export declare abstract class ClientJsonRpc extends Client {
|
|
12
13
|
private readonly url_;
|
|
13
|
-
private readonly timeout?;
|
|
14
14
|
private readonly transport;
|
|
15
15
|
/**
|
|
16
16
|
* Creates an instance of ClientJsonRpc.
|
|
@@ -18,7 +18,10 @@ export declare abstract class ClientJsonRpc extends Client {
|
|
|
18
18
|
* @param url_ - The URL of the JSON-RPC server.
|
|
19
19
|
* @param timeout - The timeout for requests in milliseconds
|
|
20
20
|
*/
|
|
21
|
-
constructor(url_: string,
|
|
21
|
+
constructor(url_: string, config?: {
|
|
22
|
+
timeout?: number;
|
|
23
|
+
cache?: ClientCache;
|
|
24
|
+
});
|
|
22
25
|
/**
|
|
23
26
|
* Returns the URL of the JSON-RPC server.
|
|
24
27
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EAGf,MAAM,2BAA2B,CAAC;AA2BnC;;;GAGG;AAEH,8BAAsB,aAAc,SAAQ,MAAM;IAW9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC;;;;;OAKG;gBAGgB,IAAI,EAAE,MAAM,EAC7B,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE;IAOpD;;;;OAIG;IAEH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;OAIG;IAEH,MAAM,QAIK,QAAQ,GAAG,CAAC,CAAC;IAExB;;;;;;;OAOG;IACH,gBAAgB,yKAIgB;IAEhC;;;;;;;OAOG;IACH,cAAc,mMAEgB;IAE9B;;;;;;OAMG;IAEH,sBAAsB,gBAKP,eAAe,cAChB,gBAAgB,GAAG,SAAS,KACrC,QAAQ,GAAG,CAAC,CAAC;IAElB;;;;;OAKG;IAEH,qBAAqB,WAIP,OAAO,KAAK,QAAQ,yBAAyB,GAAG,SAAS,CAAC,CAAC;IAEzE;;;;;;;;OAQG;IAEH,qBAAqB,QASd,0BAA0B,UACvB,KAAK,GAAG,MAAM,UACd,OAAO,UACP,MAAM,KACX,QAAQ,uBAAuB,CAAC,CAAC;IAEtC;;;;;;;;OAQG;IAEH,qBAAqB;;;;;;;;MAQgB;IAErC;;;;;OAKG;IAEH,gBAAgB,QAIL,0BAA0B,KAAK,QAAQ,GAAG,CAAC,CAAC;IAEvD;;;;;;;OAOG;IAEH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,EACrD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,GACnC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC;IAmB1C;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAerD;;;;;;OAMG;IAEH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc;CAQpE"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ClientJsonRpc = void 0;
|
|
4
|
-
const barrel_js_1 = require("../../barrel.js");
|
|
5
4
|
const index_js_1 = require("../../hex/index.js");
|
|
6
5
|
const index_js_2 = require("../../num/index.js");
|
|
6
|
+
const index_js_3 = require("../../utils/index.js");
|
|
7
7
|
const client_js_1 = require("../client.js");
|
|
8
8
|
const advanced_js_1 = require("../transports/advanced.js");
|
|
9
9
|
const advanced_js_2 = require("./advanced.js");
|
|
@@ -37,10 +37,9 @@ class ClientJsonRpc extends client_js_1.Client {
|
|
|
37
37
|
* @param url_ - The URL of the JSON-RPC server.
|
|
38
38
|
* @param timeout - The timeout for requests in milliseconds
|
|
39
39
|
*/
|
|
40
|
-
constructor(url_,
|
|
41
|
-
super();
|
|
40
|
+
constructor(url_, config) {
|
|
41
|
+
super(config);
|
|
42
42
|
this.url_ = url_;
|
|
43
|
-
this.timeout = timeout;
|
|
44
43
|
/**
|
|
45
44
|
* Get tip block number
|
|
46
45
|
*
|
|
@@ -55,7 +54,7 @@ class ClientJsonRpc extends client_js_1.Client {
|
|
|
55
54
|
* @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
|
|
56
55
|
* @returns Block
|
|
57
56
|
*/
|
|
58
|
-
this.getBlockByNumber = this.buildSender("get_block_by_number", [(v) => (0, index_js_2.numToHex)((0, index_js_2.numFrom)(v))], (b) => (0,
|
|
57
|
+
this.getBlockByNumber = this.buildSender("get_block_by_number", [(v) => (0, index_js_2.numToHex)((0, index_js_2.numFrom)(v))], (b) => (0, index_js_3.apply)(advanced_js_2.JsonRpcTransformers.blockTo, b));
|
|
59
58
|
/**
|
|
60
59
|
* Get block by block hash
|
|
61
60
|
*
|
|
@@ -64,7 +63,7 @@ class ClientJsonRpc extends client_js_1.Client {
|
|
|
64
63
|
* @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
|
|
65
64
|
* @returns Block
|
|
66
65
|
*/
|
|
67
|
-
this.getBlockByHash = this.buildSender("get_block", [index_js_1.hexFrom], (b) => (0,
|
|
66
|
+
this.getBlockByHash = this.buildSender("get_block", [index_js_1.hexFrom], (b) => (0, index_js_3.apply)(advanced_js_2.JsonRpcTransformers.blockTo, b));
|
|
68
67
|
/**
|
|
69
68
|
* Send a transaction to node.
|
|
70
69
|
*
|
|
@@ -115,7 +114,7 @@ class ClientJsonRpc extends client_js_1.Client {
|
|
|
115
114
|
* @returns The sum of cells capacity.
|
|
116
115
|
*/
|
|
117
116
|
this.getCellsCapacity = this.buildSender("get_cells_capacity", [advanced_js_2.JsonRpcTransformers.indexerSearchKeyFrom], ({ capacity }) => (0, index_js_2.numFrom)(capacity));
|
|
118
|
-
this.transport = (0, advanced_js_1.transportFromUri)(url_);
|
|
117
|
+
this.transport = (0, advanced_js_1.transportFromUri)(url_, config);
|
|
119
118
|
}
|
|
120
119
|
/**
|
|
121
120
|
* Returns the URL of the JSON-RPC server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/client/transports/webSocket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/client/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,kBAAmB,YAAW,SAAS;IAYhD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,OAAO,CAAC,OAAO,CAOD;IACd,OAAO,CAAC,MAAM,CAAC,CAAqB;gBAGjB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAG5B,OAAO,CAAC,IAAI,EAAE,cAAc;CA8DnC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.TransportWebSocket = void 0;
|
|
7
|
+
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
4
8
|
class TransportWebSocket {
|
|
5
9
|
constructor(url, timeout = 30000) {
|
|
6
10
|
this.url = url;
|
|
@@ -12,7 +16,7 @@ class TransportWebSocket {
|
|
|
12
16
|
if (this.socket) {
|
|
13
17
|
return this.socket;
|
|
14
18
|
}
|
|
15
|
-
const socket = new
|
|
19
|
+
const socket = new isomorphic_ws_1.default(this.url);
|
|
16
20
|
const onMessage = ({ data }) => {
|
|
17
21
|
const res = JSON.parse(data);
|
|
18
22
|
if (typeof res !== "object" || res === null) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckb-ccc/core",
|
|
3
|
-
"version": "0.0.13-alpha.
|
|
3
|
+
"version": "0.0.13-alpha.5",
|
|
4
4
|
"description": "Core of CCC - CKBer's Codebase",
|
|
5
5
|
"author": "Hanssen0 <hanssen0@hanssen0.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,7 +60,9 @@
|
|
|
60
60
|
"bitcoinjs-message": "^2.2.0",
|
|
61
61
|
"buffer": "^6.0.3",
|
|
62
62
|
"cross-fetch": "^4.0.0",
|
|
63
|
-
"ethers": "^6.13.1"
|
|
63
|
+
"ethers": "^6.13.1",
|
|
64
|
+
"isomorphic-ws": "^5.0.0",
|
|
65
|
+
"ws": "^8.18.0"
|
|
64
66
|
},
|
|
65
67
|
"scripts": {
|
|
66
68
|
"test": "jest",
|
|
@@ -12,9 +12,9 @@ import { ClientCache } from "./cache.js";
|
|
|
12
12
|
import { filterCell } from "./memory.advanced.js";
|
|
13
13
|
|
|
14
14
|
export class ClientCacheMemory implements ClientCache {
|
|
15
|
-
private readonly cachedTransactions: Transaction[] = [];
|
|
16
15
|
private readonly unusableOutPoints: OutPoint[] = [];
|
|
17
16
|
private readonly usableCells: Cell[] = [];
|
|
17
|
+
private readonly knownTransactions: Transaction[] = [];
|
|
18
18
|
private readonly knownCells: Cell[] = [];
|
|
19
19
|
|
|
20
20
|
async markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void> {
|
|
@@ -73,6 +73,18 @@ export class ClientCacheMemory implements ClientCache {
|
|
|
73
73
|
);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
async *findCells(
|
|
77
|
+
keyLike: ClientCollectableSearchKeyLike,
|
|
78
|
+
): AsyncGenerator<Cell> {
|
|
79
|
+
for (const cell of this.usableCells) {
|
|
80
|
+
if (!filterCell(keyLike, cell)) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
yield cell;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
76
88
|
async isUnusable(outPointLike: OutPointLike): Promise<boolean> {
|
|
77
89
|
const outPoint = OutPoint.from(outPointLike);
|
|
78
90
|
return this.unusableOutPoints.find((o) => o.eq(outPoint)) !== undefined;
|
|
@@ -81,30 +93,18 @@ export class ClientCacheMemory implements ClientCache {
|
|
|
81
93
|
async recordTransactions(
|
|
82
94
|
...transactions: (TransactionLike | TransactionLike[])[]
|
|
83
95
|
): Promise<void> {
|
|
84
|
-
this.
|
|
96
|
+
this.knownTransactions.push(...transactions.flat().map(Transaction.from));
|
|
85
97
|
}
|
|
86
98
|
async getTransaction(txHashLike: HexLike): Promise<Transaction | undefined> {
|
|
87
99
|
const txHash = hexFrom(txHashLike);
|
|
88
|
-
return this.
|
|
100
|
+
return this.knownTransactions.find((tx) => tx.hash() === txHash);
|
|
89
101
|
}
|
|
90
102
|
|
|
91
103
|
async recordCells(...cells: (CellLike | CellLike[])[]): Promise<void> {
|
|
92
|
-
this.
|
|
104
|
+
this.knownCells.push(...cells.flat().map(Cell.from));
|
|
93
105
|
}
|
|
94
106
|
async getCell(outPointLike: OutPointLike): Promise<Cell | undefined> {
|
|
95
107
|
const outPoint = OutPoint.from(outPointLike);
|
|
96
|
-
return this.
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
async *findCells(
|
|
100
|
-
keyLike: ClientCollectableSearchKeyLike,
|
|
101
|
-
): AsyncGenerator<Cell> {
|
|
102
|
-
for (const cell of this.usableCells) {
|
|
103
|
-
if (!filterCell(keyLike, cell)) {
|
|
104
|
-
continue;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
yield cell;
|
|
108
|
-
}
|
|
108
|
+
return this.knownCells.find((cell) => cell.outPoint.eq(outPoint));
|
|
109
109
|
}
|
|
110
110
|
}
|
package/src/client/client.ts
CHANGED
|
@@ -76,7 +76,11 @@ export class CellDepInfo {
|
|
|
76
76
|
* @public
|
|
77
77
|
*/
|
|
78
78
|
export abstract class Client {
|
|
79
|
-
|
|
79
|
+
public cache: ClientCache;
|
|
80
|
+
|
|
81
|
+
constructor(config?: { cache?: ClientCache }) {
|
|
82
|
+
this.cache = config?.cache ?? new ClientCacheMemory();
|
|
83
|
+
}
|
|
80
84
|
|
|
81
85
|
abstract get url(): string;
|
|
82
86
|
abstract get addressPrefix(): string;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import WebSocket from "isomorphic-ws";
|
|
1
2
|
import { Script } from "../ckb/index.js";
|
|
3
|
+
import { ClientCache } from "./cache/index.js";
|
|
2
4
|
import { CellDepInfo, KnownScript } from "./client.js";
|
|
3
5
|
import { MAINNET_SCRIPTS } from "./clientPublicMainnet.advanced.js";
|
|
4
6
|
import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
@@ -8,19 +10,26 @@ import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
|
8
10
|
*/
|
|
9
11
|
export class ClientPublicMainnet extends ClientJsonRpc {
|
|
10
12
|
constructor(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
private readonly config?: {
|
|
14
|
+
url?: string;
|
|
15
|
+
timeout?: number;
|
|
16
|
+
scripts?: typeof MAINNET_SCRIPTS;
|
|
17
|
+
cache?: ClientCache;
|
|
18
|
+
},
|
|
14
19
|
) {
|
|
15
20
|
super(
|
|
16
|
-
url ??
|
|
21
|
+
config?.url ??
|
|
17
22
|
(typeof WebSocket !== "undefined"
|
|
18
23
|
? "wss://mainnet.ckb.dev/ws"
|
|
19
24
|
: "https://mainnet.ckb.dev/"),
|
|
20
|
-
|
|
25
|
+
config,
|
|
21
26
|
);
|
|
22
27
|
}
|
|
23
28
|
|
|
29
|
+
get scripts(): typeof MAINNET_SCRIPTS {
|
|
30
|
+
return this.config?.scripts ?? MAINNET_SCRIPTS;
|
|
31
|
+
}
|
|
32
|
+
|
|
24
33
|
get addressPrefix(): string {
|
|
25
34
|
return "ckb";
|
|
26
35
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import WebSocket from "isomorphic-ws";
|
|
1
2
|
import { Script } from "../ckb/index.js";
|
|
3
|
+
import { ClientCache } from "./cache/index.js";
|
|
2
4
|
import { CellDepInfo, KnownScript } from "./client.js";
|
|
3
5
|
import { TESTNET_SCRIPTS } from "./clientPublicTestnet.advanced.js";
|
|
4
6
|
import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
@@ -8,19 +10,26 @@ import { ClientJsonRpc } from "./jsonRpc/index.js";
|
|
|
8
10
|
*/
|
|
9
11
|
export class ClientPublicTestnet extends ClientJsonRpc {
|
|
10
12
|
constructor(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
private readonly config?: {
|
|
14
|
+
url?: string;
|
|
15
|
+
timeout?: number;
|
|
16
|
+
scripts?: typeof TESTNET_SCRIPTS;
|
|
17
|
+
cache?: ClientCache;
|
|
18
|
+
},
|
|
14
19
|
) {
|
|
15
20
|
super(
|
|
16
|
-
url ??
|
|
21
|
+
config?.url ??
|
|
17
22
|
(typeof WebSocket !== "undefined"
|
|
18
23
|
? "wss://testnet.ckb.dev/ws"
|
|
19
24
|
: "https://testnet.ckb.dev/"),
|
|
20
|
-
|
|
25
|
+
config,
|
|
21
26
|
);
|
|
22
27
|
}
|
|
23
28
|
|
|
29
|
+
get scripts(): typeof TESTNET_SCRIPTS {
|
|
30
|
+
return this.config?.scripts ?? TESTNET_SCRIPTS;
|
|
31
|
+
}
|
|
32
|
+
|
|
24
33
|
get addressPrefix(): string {
|
|
25
34
|
return "ckt";
|
|
26
35
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { apply } from "../../barrel.js";
|
|
2
1
|
import { TransactionLike } from "../../ckb/index.js";
|
|
3
2
|
import { Hex, HexLike, hexFrom } from "../../hex/index.js";
|
|
4
3
|
import { Num, NumLike, numFrom, numToHex } from "../../num/index.js";
|
|
4
|
+
import { apply } from "../../utils/index.js";
|
|
5
|
+
import { ClientCache } from "../cache/index.js";
|
|
5
6
|
import { Client } from "../client.js";
|
|
6
7
|
import {
|
|
7
8
|
ClientFindCellsResponse,
|
|
@@ -57,11 +58,11 @@ export abstract class ClientJsonRpc extends Client {
|
|
|
57
58
|
|
|
58
59
|
constructor(
|
|
59
60
|
private readonly url_: string,
|
|
60
|
-
|
|
61
|
+
config?: { timeout?: number; cache?: ClientCache },
|
|
61
62
|
) {
|
|
62
|
-
super();
|
|
63
|
+
super(config);
|
|
63
64
|
|
|
64
|
-
this.transport = transportFromUri(url_);
|
|
65
|
+
this.transport = transportFromUri(url_, config);
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
/**
|