@ckb-ccc/core 0.0.13-alpha.0 → 0.0.13-alpha.2

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 (120) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/ckb/transaction.d.ts.map +1 -1
  3. package/dist/ckb/transaction.js +17 -10
  4. package/dist/client/advanced.d.ts +2 -1
  5. package/dist/client/advanced.d.ts.map +1 -1
  6. package/dist/client/advanced.js +2 -1
  7. package/dist/client/cache/advanced.d.ts +2 -0
  8. package/dist/client/cache/advanced.d.ts.map +1 -0
  9. package/dist/client/cache/advanced.js +1 -0
  10. package/dist/client/cache/cache.d.ts +14 -0
  11. package/dist/client/cache/cache.d.ts.map +1 -0
  12. package/dist/client/cache/cache.js +1 -0
  13. package/dist/client/cache/index.d.ts +3 -0
  14. package/dist/client/cache/index.d.ts.map +1 -0
  15. package/dist/client/cache/index.js +2 -0
  16. package/dist/client/{client.advanced.d.ts → cache/memory.advanced.d.ts} +5 -5
  17. package/dist/client/cache/memory.advanced.d.ts.map +1 -0
  18. package/dist/client/{client.advanced.js → cache/memory.advanced.js} +6 -6
  19. package/dist/client/cache/memory.d.ts +19 -0
  20. package/dist/client/cache/memory.d.ts.map +1 -0
  21. package/dist/client/cache/memory.js +54 -0
  22. package/dist/client/client.d.ts +4 -7
  23. package/dist/client/client.d.ts.map +1 -1
  24. package/dist/client/client.js +22 -39
  25. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  26. package/dist/client/clientPublicMainnet.js +5 -2
  27. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  28. package/dist/client/clientPublicTestnet.js +5 -2
  29. package/dist/client/clientTypes.d.ts +1 -1
  30. package/dist/client/clientTypes.d.ts.map +1 -1
  31. package/dist/client/index.d.ts +1 -0
  32. package/dist/client/index.d.ts.map +1 -1
  33. package/dist/client/index.js +1 -0
  34. package/dist/client/jsonRpc/index.d.ts +5 -4
  35. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  36. package/dist/client/jsonRpc/index.js +5 -15
  37. package/dist/client/jsonRpc/types.d.ts +0 -6
  38. package/dist/client/jsonRpc/types.d.ts.map +1 -1
  39. package/dist/client/transports/advanced.d.ts +9 -0
  40. package/dist/client/transports/advanced.d.ts.map +1 -0
  41. package/dist/client/transports/advanced.js +11 -0
  42. package/dist/client/transports/http.d.ts +8 -0
  43. package/dist/client/transports/http.d.ts.map +1 -0
  44. package/dist/client/transports/http.js +20 -0
  45. package/dist/client/transports/transport.d.ts +10 -0
  46. package/dist/client/transports/transport.d.ts.map +1 -0
  47. package/dist/client/transports/transport.js +1 -0
  48. package/dist/client/transports/webSocket.d.ts +10 -0
  49. package/dist/client/transports/webSocket.d.ts.map +1 -0
  50. package/dist/client/transports/webSocket.js +61 -0
  51. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  52. package/dist.commonjs/ckb/transaction.js +17 -10
  53. package/dist.commonjs/client/advanced.d.ts +2 -1
  54. package/dist.commonjs/client/advanced.d.ts.map +1 -1
  55. package/dist.commonjs/client/advanced.js +2 -1
  56. package/dist.commonjs/client/cache/advanced.d.ts +2 -0
  57. package/dist.commonjs/client/cache/advanced.d.ts.map +1 -0
  58. package/dist.commonjs/client/cache/advanced.js +17 -0
  59. package/dist.commonjs/client/cache/cache.d.ts +14 -0
  60. package/dist.commonjs/client/cache/cache.d.ts.map +1 -0
  61. package/dist.commonjs/client/cache/cache.js +2 -0
  62. package/dist.commonjs/client/cache/index.d.ts +3 -0
  63. package/dist.commonjs/client/cache/index.d.ts.map +1 -0
  64. package/dist.commonjs/client/cache/index.js +18 -0
  65. package/dist.commonjs/client/{client.advanced.d.ts → cache/memory.advanced.d.ts} +5 -5
  66. package/dist.commonjs/client/cache/memory.advanced.d.ts.map +1 -0
  67. package/dist.commonjs/client/{client.advanced.js → cache/memory.advanced.js} +6 -6
  68. package/dist.commonjs/client/cache/memory.d.ts +19 -0
  69. package/dist.commonjs/client/cache/memory.d.ts.map +1 -0
  70. package/dist.commonjs/client/cache/memory.js +58 -0
  71. package/dist.commonjs/client/client.d.ts +4 -7
  72. package/dist.commonjs/client/client.d.ts.map +1 -1
  73. package/dist.commonjs/client/client.js +22 -39
  74. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  75. package/dist.commonjs/client/clientPublicMainnet.js +5 -2
  76. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
  77. package/dist.commonjs/client/clientPublicTestnet.js +5 -2
  78. package/dist.commonjs/client/clientTypes.d.ts +1 -1
  79. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  80. package/dist.commonjs/client/index.d.ts +1 -0
  81. package/dist.commonjs/client/index.d.ts.map +1 -1
  82. package/dist.commonjs/client/index.js +1 -0
  83. package/dist.commonjs/client/jsonRpc/index.d.ts +5 -4
  84. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  85. package/dist.commonjs/client/jsonRpc/index.js +15 -28
  86. package/dist.commonjs/client/jsonRpc/types.d.ts +0 -6
  87. package/dist.commonjs/client/jsonRpc/types.d.ts.map +1 -1
  88. package/dist.commonjs/client/transports/advanced.d.ts +9 -0
  89. package/dist.commonjs/client/transports/advanced.d.ts.map +1 -0
  90. package/dist.commonjs/client/transports/advanced.js +29 -0
  91. package/dist.commonjs/client/transports/http.d.ts +8 -0
  92. package/dist.commonjs/client/transports/http.d.ts.map +1 -0
  93. package/dist.commonjs/client/transports/http.js +24 -0
  94. package/dist.commonjs/client/transports/transport.d.ts +10 -0
  95. package/dist.commonjs/client/transports/transport.d.ts.map +1 -0
  96. package/dist.commonjs/client/transports/transport.js +2 -0
  97. package/dist.commonjs/client/transports/webSocket.d.ts +10 -0
  98. package/dist.commonjs/client/transports/webSocket.d.ts.map +1 -0
  99. package/dist.commonjs/client/transports/webSocket.js +65 -0
  100. package/package.json +1 -1
  101. package/src/ckb/transaction.ts +24 -16
  102. package/src/client/advanced.ts +2 -1
  103. package/src/client/cache/advanced.ts +1 -0
  104. package/src/client/cache/cache.ts +25 -0
  105. package/src/client/cache/index.ts +2 -0
  106. package/src/client/{client.advanced.ts → cache/memory.advanced.ts} +6 -6
  107. package/src/client/cache/memory.ts +75 -0
  108. package/src/client/client.ts +23 -44
  109. package/src/client/clientPublicMainnet.ts +8 -2
  110. package/src/client/clientPublicTestnet.ts +8 -2
  111. package/src/client/clientTypes.ts +1 -0
  112. package/src/client/index.ts +1 -0
  113. package/src/client/jsonRpc/index.ts +13 -19
  114. package/src/client/jsonRpc/types.ts +0 -7
  115. package/src/client/transports/advanced.ts +14 -0
  116. package/src/client/transports/http.ts +26 -0
  117. package/src/client/transports/transport.ts +10 -0
  118. package/src/client/transports/webSocket.ts +81 -0
  119. package/dist/client/client.advanced.d.ts.map +0 -1
  120. package/dist.commonjs/client/client.advanced.d.ts.map +0 -1
@@ -6,7 +6,7 @@ const index_js_2 = require("../fixedPoint/index.js");
6
6
  const index_js_3 = require("../hex/index.js");
7
7
  const index_js_4 = require("../num/index.js");
8
8
  const index_js_5 = require("../utils/index.js");
9
- const client_advanced_js_1 = require("./client.advanced.js");
9
+ const memory_js_1 = require("./cache/memory.js");
10
10
  const clientTypes_js_1 = require("./clientTypes.js");
11
11
  /**
12
12
  * @public
@@ -44,34 +44,14 @@ exports.CellDepInfo = CellDepInfo;
44
44
  * @public
45
45
  */
46
46
  class Client {
47
- constructor() {
48
- this.cachedTransactions = [];
49
- this.unusableOutPoints = [];
50
- this.usableCells = [];
51
- this.knownCells = [];
52
- }
53
- async markUsable(cellLike) {
54
- const cell = index_js_1.Cell.from(cellLike).clone();
55
- this.usableCells.push(cell);
56
- this.knownCells.push(cell);
57
- const index = this.unusableOutPoints.findIndex((o) => cell.outPoint.eq(o));
58
- if (index !== -1) {
59
- this.unusableOutPoints.splice(index, 1);
60
- }
61
- }
62
- async markUnusable(outPointLike) {
63
- const outPoint = index_js_1.OutPoint.from(outPointLike);
64
- this.unusableOutPoints.push(outPoint.clone());
65
- const index = this.usableCells.findIndex((c) => c.outPoint.eq(outPoint));
66
- if (index !== -1) {
67
- this.usableCells.splice(index, 1);
68
- }
47
+ constructor(cache = new memory_js_1.ClientCacheMemory()) {
48
+ this.cache = cache;
69
49
  }
70
50
  async getCell(outPointLike) {
71
51
  const outPoint = index_js_1.OutPoint.from(outPointLike);
72
- const cached = this.knownCells.find((cell) => cell.outPoint.eq(outPoint));
52
+ const cached = await this.cache.getCell(outPoint);
73
53
  if (cached) {
74
- return cached.clone();
54
+ return cached;
75
55
  }
76
56
  const transaction = await this.getTransactionNoCache(outPoint.txHash);
77
57
  if (!transaction) {
@@ -86,12 +66,12 @@ class Client {
86
66
  cellOutput: transaction.transaction.outputs[index],
87
67
  outputData: transaction.transaction.outputsData[index] ?? "0x",
88
68
  });
89
- this.knownCells.push(cell);
90
- return cell.clone();
69
+ await this.cache.recordCells(cell);
70
+ return cell;
91
71
  }
92
72
  async findCellsPaged(key, order, limit, after) {
93
73
  const res = await this.findCellsPagedNoCache(key, order, limit, after);
94
- this.knownCells.push(...res.cells);
74
+ await this.cache.recordCells(res.cells);
95
75
  return res;
96
76
  }
97
77
  async *findCells(key, order, limit = 10) {
@@ -116,15 +96,12 @@ class Client {
116
96
  async *findCellsByCollectableSearchKey(keyLike, order, limit = 10) {
117
97
  const key = clientTypes_js_1.ClientIndexerSearchKey.from(keyLike);
118
98
  const foundedOutPoints = [];
119
- for (const cell of this.usableCells) {
120
- if (!(0, client_advanced_js_1.filterCell)(key, cell)) {
121
- continue;
122
- }
99
+ for await (const cell of this.cache.findCells(key)) {
123
100
  foundedOutPoints.push(cell.outPoint);
124
101
  yield cell;
125
102
  }
126
103
  for await (const cell of this.findCells(key, order, limit)) {
127
- if (this.unusableOutPoints.some((o) => o.eq(cell.outPoint)) ||
104
+ if ((await this.cache.isUnusable(cell.outPoint)) ||
128
105
  foundedOutPoints.some((founded) => founded.eq(cell.outPoint))) {
129
106
  continue;
130
107
  }
@@ -220,9 +197,9 @@ class Client {
220
197
  async sendTransaction(transaction, validator) {
221
198
  const tx = index_js_1.Transaction.from(transaction);
222
199
  const txHash = await this.sendTransactionNoCache(tx, validator);
223
- this.cachedTransactions.push(tx.clone());
224
- await Promise.all(tx.inputs.map((i) => this.markUnusable(i.previousOutput)));
225
- await Promise.all(tx.outputs.map((o, i) => this.markUsable({
200
+ await this.cache.recordTransactions(tx);
201
+ await Promise.all(tx.inputs.map((i) => this.cache.markUnusable(i.previousOutput)));
202
+ await Promise.all(tx.outputs.map((o, i) => this.cache.markUsable({
226
203
  cellOutput: o,
227
204
  outputData: tx.outputsData[i],
228
205
  outPoint: {
@@ -235,16 +212,22 @@ class Client {
235
212
  async getTransaction(txHashLike) {
236
213
  const txHash = (0, index_js_3.hexFrom)(txHashLike);
237
214
  const res = await this.getTransactionNoCache(txHash);
238
- if (res !== null) {
215
+ if (res?.transaction) {
239
216
  return res;
240
217
  }
241
- const tx = this.cachedTransactions.find((t) => t.hash() === txHash);
218
+ const tx = await this.cache.getTransaction(txHash);
242
219
  if (!tx) {
243
220
  return;
244
221
  }
222
+ if (!res) {
223
+ return {
224
+ transaction: tx,
225
+ status: "sent",
226
+ };
227
+ }
245
228
  return {
229
+ ...res,
246
230
  transaction: tx,
247
- status: "proposed",
248
231
  };
249
232
  }
250
233
  }
@@ -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,SAA6B,EAChC,OAAO,CAAC,EAAE,MAAM,EACC,OAAO;;mBAAkB;IAK5C,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":"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"}
@@ -8,8 +8,11 @@ const index_js_1 = require("./jsonRpc/index.js");
8
8
  * @public
9
9
  */
10
10
  class ClientPublicMainnet extends index_js_1.ClientJsonRpc {
11
- constructor(url = "https://mainnet.ckb.dev/", timeout, scripts = clientPublicMainnet_advanced_js_1.MAINNET_SCRIPTS) {
12
- super(url, timeout);
11
+ constructor(url, timeout, scripts = clientPublicMainnet_advanced_js_1.MAINNET_SCRIPTS) {
12
+ super(url ??
13
+ (typeof WebSocket !== "undefined"
14
+ ? "wss://mainnet.ckb.dev/ws"
15
+ : "https://mainnet.ckb.dev/"), timeout);
13
16
  this.scripts = scripts;
14
17
  }
15
18
  get addressPrefix() {
@@ -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,SAA6B,EAChC,OAAO,CAAC,EAAE,MAAM,EACC,OAAO;;MAAkB;IAK5C,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":"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"}
@@ -8,8 +8,11 @@ const index_js_1 = require("./jsonRpc/index.js");
8
8
  * @public
9
9
  */
10
10
  class ClientPublicTestnet extends index_js_1.ClientJsonRpc {
11
- constructor(url = "https://testnet.ckb.dev/", timeout, scripts = clientPublicTestnet_advanced_js_1.TESTNET_SCRIPTS) {
12
- super(url, timeout);
11
+ constructor(url, timeout, scripts = clientPublicTestnet_advanced_js_1.TESTNET_SCRIPTS) {
12
+ super(url ??
13
+ (typeof WebSocket !== "undefined"
14
+ ? "wss://testnet.ckb.dev/ws"
15
+ : "https://testnet.ckb.dev/"), timeout);
13
16
  this.scripts = scripts;
14
17
  }
15
18
  get addressPrefix() {
@@ -9,7 +9,7 @@ export type OutputsValidator = "passthrough" | "well_known_scripts_only";
9
9
  /**
10
10
  * @public
11
11
  */
12
- export type TransactionStatus = "pending" | "proposed" | "committed" | "unknown" | "rejected";
12
+ export type TransactionStatus = "sent" | "pending" | "proposed" | "committed" | "unknown" | "rejected";
13
13
  /**
14
14
  * @public
15
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"clientTypes.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientTypes.d.ts","sourceRoot":"","sources":["../../src/client/clientTypes.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * from "./cache/index.js";
1
2
  export * from "./client.js";
2
3
  export * from "./clientPublicMainnet.js";
3
4
  export * from "./clientPublicTestnet.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./cache/index.js"), exports);
17
18
  __exportStar(require("./client.js"), exports);
18
19
  __exportStar(require("./clientPublicMainnet.js"), exports);
19
20
  __exportStar(require("./clientPublicTestnet.js"), exports);
@@ -3,21 +3,22 @@ import { Hex, HexLike } from "../../hex/index.js";
3
3
  import { Num, NumLike } from "../../num/index.js";
4
4
  import { Client } from "../client.js";
5
5
  import { ClientFindCellsResponse, ClientIndexerSearchKeyLike, ClientTransactionResponse, OutputsValidator } from "../clientTypes.js";
6
- import { JsonRpcPayload } from "./advanced.js";
6
+ import { JsonRpcPayload } from "../transports/advanced.js";
7
7
  /**
8
8
  * An abstract class implementing JSON-RPC client functionality for a specific URL and timeout.
9
9
  * Provides methods for sending transactions and building JSON-RPC payloads.
10
10
  */
11
11
  export declare abstract class ClientJsonRpc extends Client {
12
12
  private readonly url_;
13
- private readonly timeout;
13
+ private readonly timeout?;
14
+ private readonly transport;
14
15
  /**
15
16
  * Creates an instance of ClientJsonRpc.
16
17
  *
17
18
  * @param url_ - The URL of the JSON-RPC server.
18
- * @param timeout - The timeout for requests in milliseconds, default is 30000.
19
+ * @param timeout - The timeout for requests in milliseconds
19
20
  */
20
- constructor(url_: string, timeout?: number);
21
+ constructor(url_: string, timeout?: number | undefined);
21
22
  /**
22
23
  * Returns the URL of the JSON-RPC server.
23
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"AAEA,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,EAAE,cAAc,EAAuB,MAAM,eAAe,CAAC;AA0BpE;;;GAGG;AAEH,8BAAsB,aAAc,SAAQ,MAAM;IAS9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B;;;;;OAKG;gBAGgB,IAAI,EAAE,MAAM,EACZ,OAAO,SAAQ;IAKlC;;;;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;IAEG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BrD;;;;;;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":"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,15 +1,12 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.ClientJsonRpc = void 0;
7
- const cross_fetch_1 = __importDefault(require("cross-fetch"));
8
4
  const barrel_js_1 = require("../../barrel.js");
9
5
  const index_js_1 = require("../../hex/index.js");
10
6
  const index_js_2 = require("../../num/index.js");
11
7
  const client_js_1 = require("../client.js");
12
- const advanced_js_1 = require("./advanced.js");
8
+ const advanced_js_1 = require("../transports/advanced.js");
9
+ const advanced_js_2 = require("./advanced.js");
13
10
  /**
14
11
  * Applies a transformation function to a value if the transformer is provided.
15
12
  *
@@ -38,9 +35,9 @@ class ClientJsonRpc extends client_js_1.Client {
38
35
  * Creates an instance of ClientJsonRpc.
39
36
  *
40
37
  * @param url_ - The URL of the JSON-RPC server.
41
- * @param timeout - The timeout for requests in milliseconds, default is 30000.
38
+ * @param timeout - The timeout for requests in milliseconds
42
39
  */
43
- constructor(url_, timeout = 30000) {
40
+ constructor(url_, timeout) {
44
41
  super();
45
42
  this.url_ = url_;
46
43
  this.timeout = timeout;
@@ -58,7 +55,7 @@ class ClientJsonRpc extends client_js_1.Client {
58
55
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
59
56
  * @returns Block
60
57
  */
61
- 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_1.JsonRpcTransformers.blockTo, b));
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));
62
59
  /**
63
60
  * Get block by block hash
64
61
  *
@@ -67,7 +64,7 @@ class ClientJsonRpc extends client_js_1.Client {
67
64
  * @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
68
65
  * @returns Block
69
66
  */
70
- this.getBlockByHash = this.buildSender("get_block", [index_js_1.hexFrom], (b) => (0, barrel_js_1.apply)(advanced_js_1.JsonRpcTransformers.blockTo, b));
67
+ this.getBlockByHash = this.buildSender("get_block", [index_js_1.hexFrom], (b) => (0, barrel_js_1.apply)(advanced_js_2.JsonRpcTransformers.blockTo, b));
71
68
  /**
72
69
  * Send a transaction to node.
73
70
  *
@@ -75,14 +72,14 @@ class ClientJsonRpc extends client_js_1.Client {
75
72
  * @param validator - "passthrough": Disable validation. "well_known_scripts_only": Only accept well known scripts in the transaction.
76
73
  * @returns Transaction hash.
77
74
  */
78
- this.sendTransactionNoCache = this.buildSender("send_transaction", [advanced_js_1.JsonRpcTransformers.transactionFrom], index_js_1.hexFrom);
75
+ this.sendTransactionNoCache = this.buildSender("send_transaction", [advanced_js_2.JsonRpcTransformers.transactionFrom], index_js_1.hexFrom);
79
76
  /**
80
77
  * Get a transaction from node.
81
78
  *
82
79
  * @param txHash - The hash of the transaction.
83
80
  * @returns The transaction with status.
84
81
  */
85
- this.getTransactionNoCache = this.buildSender("get_transaction", [index_js_1.hexFrom], advanced_js_1.JsonRpcTransformers.transactionResponseTo);
82
+ this.getTransactionNoCache = this.buildSender("get_transaction", [index_js_1.hexFrom], advanced_js_2.JsonRpcTransformers.transactionResponseTo);
86
83
  /**
87
84
  * find cells from node.
88
85
  *
@@ -93,10 +90,10 @@ class ClientJsonRpc extends client_js_1.Client {
93
90
  * @returns The found cells.
94
91
  */
95
92
  this.findCellsPagedNoCache = this.buildSender("get_cells", [
96
- advanced_js_1.JsonRpcTransformers.indexerSearchKeyFrom,
93
+ advanced_js_2.JsonRpcTransformers.indexerSearchKeyFrom,
97
94
  (order) => order ?? "asc",
98
95
  (limit) => (0, index_js_2.numToHex)(limit ?? 10),
99
- ], advanced_js_1.JsonRpcTransformers.findCellsResponseTo);
96
+ ], advanced_js_2.JsonRpcTransformers.findCellsResponseTo);
100
97
  /**
101
98
  * find transactions from node.
102
99
  *
@@ -107,17 +104,18 @@ class ClientJsonRpc extends client_js_1.Client {
107
104
  * @returns The found transactions.
108
105
  */
109
106
  this.findTransactionsPaged = this.buildSender("get_transactions", [
110
- advanced_js_1.JsonRpcTransformers.indexerSearchKeyTransactionFrom,
107
+ advanced_js_2.JsonRpcTransformers.indexerSearchKeyTransactionFrom,
111
108
  (order) => order ?? "asc",
112
109
  (limit) => (0, index_js_2.numToHex)(limit ?? 10),
113
- ], advanced_js_1.JsonRpcTransformers.findTransactionsResponseTo);
110
+ ], advanced_js_2.JsonRpcTransformers.findTransactionsResponseTo);
114
111
  /**
115
112
  * get cells capacity from node.
116
113
  *
117
114
  * @param key - The search key of cells.
118
115
  * @returns The sum of cells capacity.
119
116
  */
120
- this.getCellsCapacity = this.buildSender("get_cells_capacity", [advanced_js_1.JsonRpcTransformers.indexerSearchKeyFrom], ({ capacity }) => (0, index_js_2.numFrom)(capacity));
117
+ 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_);
121
119
  }
122
120
  /**
123
121
  * Returns the URL of the JSON-RPC server.
@@ -152,18 +150,7 @@ class ClientJsonRpc extends client_js_1.Client {
152
150
  * @throws Will throw an error if the response ID does not match the request ID, or if the response contains an error.
153
151
  */
154
152
  async send(payload) {
155
- const aborter = new AbortController();
156
- const abortTimer = setTimeout(() => aborter.abort(), this.timeout);
157
- const raw = await (0, cross_fetch_1.default)(this.url, {
158
- method: "POST",
159
- headers: {
160
- "content-type": "application/json",
161
- },
162
- body: JSON.stringify(payload),
163
- signal: aborter.signal,
164
- });
165
- clearTimeout(abortTimer);
166
- const res = (await raw.json());
153
+ const res = (await this.transport.request(payload));
167
154
  if (res.id !== payload.id) {
168
155
  throw new Error(`Id mismatched, got ${res.id}, expected ${payload.id}`);
169
156
  }
@@ -1,10 +1,4 @@
1
1
  import { Hex } from "../../hex/index.js";
2
- export type JsonRpcPayload = {
3
- id: number;
4
- jsonrpc: "2.0";
5
- method: string;
6
- params: unknown[] | Record<string, unknown>;
7
- };
8
2
  export type JsonRpcHashType = "type" | "data" | "data1" | "data2";
9
3
  export type JsonRpcDepType = "dep_group" | "code";
10
4
  export type JsonRpcScript = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { TransportHttp } from "./http.js";
2
+ import { TransportWebSocket } from "./webSocket.js";
3
+ export * from "./http.js";
4
+ export * from "./transport.js";
5
+ export * from "./webSocket.js";
6
+ export declare function transportFromUri(uri: string, config?: {
7
+ timeout?: number;
8
+ }): TransportHttp | TransportWebSocket;
9
+ //# sourceMappingURL=advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../../src/client/transports/advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAE/B,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,sCAM1E"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.transportFromUri = void 0;
18
+ const http_js_1 = require("./http.js");
19
+ const webSocket_js_1 = require("./webSocket.js");
20
+ __exportStar(require("./http.js"), exports);
21
+ __exportStar(require("./transport.js"), exports);
22
+ __exportStar(require("./webSocket.js"), exports);
23
+ function transportFromUri(uri, config) {
24
+ if (uri.startsWith("wss://")) {
25
+ return new webSocket_js_1.TransportWebSocket(uri, config?.timeout);
26
+ }
27
+ return new http_js_1.TransportHttp(uri, config?.timeout);
28
+ }
29
+ exports.transportFromUri = transportFromUri;
@@ -0,0 +1,8 @@
1
+ import { JsonRpcPayload, Transport } from "./transport.js";
2
+ export declare class TransportHttp implements Transport {
3
+ private readonly url;
4
+ private readonly timeout;
5
+ constructor(url: string, timeout?: number);
6
+ request(payload: JsonRpcPayload): Promise<any>;
7
+ }
8
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/client/transports/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,aAAc,YAAW,SAAS;IAE3C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAG5B,OAAO,CAAC,OAAO,EAAE,cAAc;CAiBtC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransportHttp = void 0;
4
+ class TransportHttp {
5
+ constructor(url, timeout = 30000) {
6
+ this.url = url;
7
+ this.timeout = timeout;
8
+ }
9
+ async request(payload) {
10
+ const aborter = new AbortController();
11
+ const abortTimer = setTimeout(() => aborter.abort(), this.timeout);
12
+ const raw = await (await fetch(this.url, {
13
+ method: "POST",
14
+ headers: {
15
+ "content-type": "application/json",
16
+ },
17
+ body: JSON.stringify(payload),
18
+ signal: aborter.signal,
19
+ })).json();
20
+ clearTimeout(abortTimer);
21
+ return raw;
22
+ }
23
+ }
24
+ exports.TransportHttp = TransportHttp;
@@ -0,0 +1,10 @@
1
+ export type JsonRpcPayload = {
2
+ id: number;
3
+ jsonrpc: "2.0";
4
+ method: string;
5
+ params: unknown[] | Record<string, unknown>;
6
+ };
7
+ export interface Transport {
8
+ request(data: JsonRpcPayload): Promise<unknown>;
9
+ }
10
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/client/transports/transport.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import { JsonRpcPayload, Transport } from "./transport.js";
2
+ export declare class TransportWebSocket implements Transport {
3
+ private readonly url;
4
+ private readonly timeout;
5
+ private ongoing;
6
+ private socket?;
7
+ constructor(url: string, timeout?: number);
8
+ request(data: JsonRpcPayload): Promise<unknown>;
9
+ }
10
+ //# sourceMappingURL=webSocket.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransportWebSocket = void 0;
4
+ class TransportWebSocket {
5
+ constructor(url, timeout = 30000) {
6
+ this.url = url;
7
+ this.timeout = timeout;
8
+ this.ongoing = new Map();
9
+ }
10
+ async request(data) {
11
+ const socket = (() => {
12
+ if (this.socket) {
13
+ return this.socket;
14
+ }
15
+ const socket = new WebSocket(this.url);
16
+ const onMessage = ({ data }) => {
17
+ const res = JSON.parse(data);
18
+ if (typeof res !== "object" || res === null) {
19
+ throw new Error(`Unknown response ${data}`);
20
+ }
21
+ const req = this.ongoing.get(res.id);
22
+ if (!req) {
23
+ return;
24
+ }
25
+ clearTimeout(req[2]);
26
+ this.ongoing.delete(res.id);
27
+ req[0](res);
28
+ };
29
+ const onClose = (error) => {
30
+ this.socket = undefined;
31
+ this.ongoing.forEach(([_, onError]) => onError(error ?? new Error("Connection closed")));
32
+ this.ongoing.clear();
33
+ };
34
+ socket.onclose = onClose;
35
+ socket.onerror = onClose;
36
+ socket.onmessage = onMessage;
37
+ this.socket = new Promise((resolve) => {
38
+ if (socket.readyState === socket.CONNECTING) {
39
+ socket.onopen = resolve;
40
+ }
41
+ else {
42
+ resolve(undefined);
43
+ }
44
+ }).then(() => socket);
45
+ return this.socket;
46
+ })();
47
+ return new Promise((resolve, reject) => {
48
+ this.ongoing.set(data.id, [
49
+ resolve,
50
+ reject,
51
+ setTimeout(() => reject(new Error("Request timeout")), this.timeout),
52
+ ]);
53
+ socket.then((socket) => {
54
+ if (socket.readyState === socket.CLOSED ||
55
+ socket.readyState === socket.CLOSING) {
56
+ reject(new Error("Connection closed"));
57
+ }
58
+ else {
59
+ socket.send(JSON.stringify(data));
60
+ }
61
+ });
62
+ });
63
+ }
64
+ }
65
+ exports.TransportWebSocket = TransportWebSocket;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckb-ccc/core",
3
- "version": "0.0.13-alpha.0",
3
+ "version": "0.0.13-alpha.2",
4
4
  "description": "Core of CCC - CKBer's Codebase",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",