@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.
Files changed (42) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/client/cache/memory.d.ts +2 -2
  3. package/dist/client/cache/memory.d.ts.map +1 -1
  4. package/dist/client/cache/memory.js +13 -13
  5. package/dist/client/client.d.ts +3 -1
  6. package/dist/client/client.d.ts.map +1 -1
  7. package/dist/client/client.js +2 -2
  8. package/dist/client/clientPublicMainnet.d.ts +12 -4
  9. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  10. package/dist/client/clientPublicMainnet.js +8 -4
  11. package/dist/client/clientPublicTestnet.d.ts +12 -4
  12. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  13. package/dist/client/clientPublicTestnet.js +8 -4
  14. package/dist/client/jsonRpc/index.d.ts +5 -2
  15. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  16. package/dist/client/jsonRpc/index.js +4 -5
  17. package/dist/client/transports/webSocket.d.ts.map +1 -1
  18. package/dist/client/transports/webSocket.js +1 -0
  19. package/dist.commonjs/client/cache/memory.d.ts +2 -2
  20. package/dist.commonjs/client/cache/memory.d.ts.map +1 -1
  21. package/dist.commonjs/client/cache/memory.js +13 -13
  22. package/dist.commonjs/client/client.d.ts +3 -1
  23. package/dist.commonjs/client/client.d.ts.map +1 -1
  24. package/dist.commonjs/client/client.js +2 -2
  25. package/dist.commonjs/client/clientPublicMainnet.d.ts +12 -4
  26. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  27. package/dist.commonjs/client/clientPublicMainnet.js +12 -5
  28. package/dist.commonjs/client/clientPublicTestnet.d.ts +12 -4
  29. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
  30. package/dist.commonjs/client/clientPublicTestnet.js +12 -5
  31. package/dist.commonjs/client/jsonRpc/index.d.ts +5 -2
  32. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  33. package/dist.commonjs/client/jsonRpc/index.js +6 -7
  34. package/dist.commonjs/client/transports/webSocket.d.ts.map +1 -1
  35. package/dist.commonjs/client/transports/webSocket.js +5 -1
  36. package/package.json +4 -2
  37. package/src/client/cache/memory.ts +17 -17
  38. package/src/client/client.ts +5 -1
  39. package/src/client/clientPublicMainnet.ts +14 -5
  40. package/src/client/clientPublicTestnet.ts +14 -5
  41. package/src/client/jsonRpc/index.ts +5 -4
  42. 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,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,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;IAyBV,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;IAK7D,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;CASxB"}
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.cachedTransactions.push(...transactions.flat().map(Transaction.from));
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.cachedTransactions.find((tx) => tx.hash() === txHash);
64
+ return this.knownTransactions.find((tx) => tx.hash() === txHash);
57
65
  }
58
66
  async recordCells(...cells) {
59
- this.usableCells.push(...cells.flat().map(Cell.from));
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.usableCells.find((cell) => cell.outPoint.eq(outPoint));
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
  }
@@ -43,7 +43,9 @@ export declare class CellDepInfo {
43
43
  */
44
44
  export declare abstract class Client {
45
45
  cache: ClientCache;
46
- constructor(cache?: ClientCache);
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":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -40,8 +40,8 @@ export class CellDepInfo {
40
40
  * @public
41
41
  */
42
42
  export class Client {
43
- constructor(cache = new ClientCacheMemory()) {
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 scripts;
9
- constructor(url?: string, timeout?: number, scripts?: Record<KnownScript, (Pick<Script, "codeHash" | "hashType"> & {
10
- cellDeps: import("./client.js").CellDepInfoLike[];
11
- }) | undefined>);
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAIlD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFxB,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EACC,OAAO;;mBAAkB;IAW5C,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
+ {"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(url, timeout, scripts = MAINNET_SCRIPTS) {
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/"), timeout);
13
- this.scripts = scripts;
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 scripts;
9
- constructor(url?: string, timeout?: number, scripts?: Record<KnownScript, Pick<Script, "codeHash" | "hashType"> & {
10
- cellDeps: import("./client.js").CellDepInfoLike[];
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAIlD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFxB,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EACC,OAAO;;MAAkB;IAW5C,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
+ {"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(url, timeout, scripts = TESTNET_SCRIPTS) {
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/"), timeout);
13
- this.scripts = scripts;
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, timeout?: number | undefined);
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":"AACA,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;AACrE,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;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAX3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC;;;;;OAKG;gBAGgB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,oBAAQ;IAOnC;;;;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
+ {"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_, timeout) {
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":"AAAA,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
+ {"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,3 +1,4 @@
1
+ import WebSocket from "isomorphic-ws";
1
2
  export class TransportWebSocket {
2
3
  constructor(url, timeout = 30000) {
3
4
  this.url = url;
@@ -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,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,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;IAyBV,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;IAK7D,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;CASxB"}
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.cachedTransactions.push(...transactions.flat().map(index_js_1.Transaction.from));
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.cachedTransactions.find((tx) => tx.hash() === txHash);
67
+ return this.knownTransactions.find((tx) => tx.hash() === txHash);
60
68
  }
61
69
  async recordCells(...cells) {
62
- this.usableCells.push(...cells.flat().map(index_js_1.Cell.from));
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.usableCells.find((cell) => cell.outPoint.eq(outPoint));
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(cache?: ClientCache);
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":"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"}
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(cache = new memory_js_1.ClientCacheMemory()) {
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 scripts;
9
- constructor(url?: string, timeout?: number, scripts?: Record<KnownScript, (Pick<Script, "codeHash" | "hashType"> & {
10
- cellDeps: import("./client.js").CellDepInfoLike[];
11
- }) | undefined>);
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAIlD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFxB,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EACC,OAAO;;mBAAkB;IAW5C,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
+ {"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(url, timeout, scripts = clientPublicMainnet_advanced_js_1.MAINNET_SCRIPTS) {
12
- super(url ??
13
- (typeof WebSocket !== "undefined"
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/"), timeout);
16
- this.scripts = scripts;
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 scripts;
9
- constructor(url?: string, timeout?: number, scripts?: Record<KnownScript, Pick<Script, "codeHash" | "hashType"> & {
10
- cellDeps: import("./client.js").CellDepInfoLike[];
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAIlD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFxB,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EACC,OAAO;;MAAkB;IAW5C,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
+ {"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(url, timeout, scripts = clientPublicTestnet_advanced_js_1.TESTNET_SCRIPTS) {
12
- super(url ??
13
- (typeof WebSocket !== "undefined"
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/"), timeout);
16
- this.scripts = scripts;
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, timeout?: number | undefined);
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":"AACA,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;AACrE,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;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAX3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC;;;;;OAKG;gBAGgB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,oBAAQ;IAOnC;;;;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
+ {"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_, timeout) {
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, barrel_js_1.apply)(advanced_js_2.JsonRpcTransformers.blockTo, b));
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, barrel_js_1.apply)(advanced_js_2.JsonRpcTransformers.blockTo, b));
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":"AAAA,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
+ {"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 WebSocket(this.url);
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",
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.cachedTransactions.push(...transactions.flat().map(Transaction.from));
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.cachedTransactions.find((tx) => tx.hash() === txHash);
100
+ return this.knownTransactions.find((tx) => tx.hash() === txHash);
89
101
  }
90
102
 
91
103
  async recordCells(...cells: (CellLike | CellLike[])[]): Promise<void> {
92
- this.usableCells.push(...cells.flat().map(Cell.from));
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.usableCells.find((cell) => cell.outPoint.eq(outPoint));
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
  }
@@ -76,7 +76,11 @@ export class CellDepInfo {
76
76
  * @public
77
77
  */
78
78
  export abstract class Client {
79
- constructor(public cache: ClientCache = new ClientCacheMemory()) {}
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
- url?: string,
12
- timeout?: number,
13
- private readonly scripts = MAINNET_SCRIPTS,
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
- timeout,
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
- url?: string,
12
- timeout?: number,
13
- private readonly scripts = TESTNET_SCRIPTS,
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
- timeout,
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
- private readonly timeout?: number,
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
  /**
@@ -1,3 +1,4 @@
1
+ import WebSocket from "isomorphic-ws";
1
2
  import { JsonRpcPayload, Transport } from "./transport.js";
2
3
 
3
4
  export class TransportWebSocket implements Transport {