@ckb-ccc/core 1.2.0 → 1.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ckb-ccc/core
2
2
 
3
+ ## 1.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#120](https://github.com/ckb-devrel/ccc/pull/120) [`7886e3d`](https://github.com/ckb-devrel/ccc/commit/7886e3d89e9ca8f3514a2044c6dd4e8ec6b49933) Thanks [@Hanssen0](https://github.com/Hanssen0)! - fix: support ws:// rpc
8
+
9
+ ## 1.2.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#118](https://github.com/ckb-devrel/ccc/pull/118) [`94e2618`](https://github.com/ckb-devrel/ccc/commit/94e26182515e09d6086ec5b653d091f117a499e6) Thanks [@Hanssen0](https://github.com/Hanssen0)! - fix: client concurrent should be FIFO
14
+
3
15
  ## 1.2.0
4
16
 
5
17
  ### Minor Changes
@@ -1,6 +1,7 @@
1
1
  import { ClientCache } from "./cache/index.js";
2
2
  import { KnownScript, ScriptInfo, ScriptInfoLike } from "./clientTypes.js";
3
3
  import { ClientJsonRpc } from "./jsonRpc/index.js";
4
+ import { Transport } from "./transports/advanced.js";
4
5
  /**
5
6
  * @public
6
7
  */
@@ -10,6 +11,7 @@ export declare class ClientPublicMainnet extends ClientJsonRpc {
10
11
  url?: string;
11
12
  timeout?: number;
12
13
  maxConcurrent?: number;
14
+ transport?: Transport;
13
15
  scripts?: Record<KnownScript, ScriptInfoLike | undefined>;
14
16
  cache?: ClientCache;
15
17
  } | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE;QACxB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,YAAA;IAWH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
1
+ {"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE;QACxB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,YAAA;IAWH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
@@ -1,6 +1,7 @@
1
1
  import { ClientCache } from "./cache/index.js";
2
2
  import { KnownScript, ScriptInfo, ScriptInfoLike } from "./clientTypes.js";
3
3
  import { ClientJsonRpc } from "./jsonRpc/index.js";
4
+ import { Transport } from "./transports/advanced.js";
4
5
  /**
5
6
  * @public
6
7
  */
@@ -10,6 +11,7 @@ export declare class ClientPublicTestnet extends ClientJsonRpc {
10
11
  url?: string;
11
12
  timeout?: number;
12
13
  maxConcurrent?: number;
14
+ transport?: Transport;
13
15
  scripts?: Record<KnownScript, ScriptInfoLike | undefined>;
14
16
  cache?: ClientCache;
15
17
  } | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicTestnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE;QACxB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,YAAA;IAWH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
1
+ {"version":3,"file":"clientPublicTestnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE;QACxB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,YAAA;IAWH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
@@ -4,7 +4,7 @@ import { Num, NumLike } from "../../num/index.js";
4
4
  import { ClientCache } from "../cache/index.js";
5
5
  import { Client } from "../client.js";
6
6
  import { ClientFindCellsResponse, ClientIndexerSearchKeyLike, ClientTransactionResponse, OutputsValidator } from "../clientTypes.js";
7
- import { JsonRpcPayload } from "../transports/advanced.js";
7
+ import { JsonRpcPayload, Transport } from "../transports/advanced.js";
8
8
  /**
9
9
  * An abstract class implementing JSON-RPC client functionality for a specific URL and timeout.
10
10
  * Provides methods for sending transactions and building JSON-RPC payloads.
@@ -26,6 +26,7 @@ export declare abstract class ClientJsonRpc extends Client {
26
26
  timeout?: number;
27
27
  cache?: ClientCache;
28
28
  maxConcurrent?: number;
29
+ transport?: Transport;
29
30
  });
30
31
  /**
31
32
  * Returns the URL of the JSON-RPC server.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"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"}
@@ -186,7 +186,7 @@ export class ClientJsonRpc extends Client {
186
186
  */
187
187
  this.getCellsCapacity = this.buildSender("get_cells_capacity", [JsonRpcTransformers.indexerSearchKeyFrom], ({ capacity }) => numFrom(capacity));
188
188
  this.maxConcurrent = config?.maxConcurrent;
189
- this.transport = transportFromUri(url_, config);
189
+ this.transport = config?.transport ?? transportFromUri(url_, config);
190
190
  }
191
191
  /**
192
192
  * Returns the URL of the JSON-RPC server.
@@ -266,7 +266,7 @@ export class ClientJsonRpc extends Client {
266
266
  this.concurrent += 1;
267
267
  const res = (await this.transport.request(payload));
268
268
  this.concurrent -= 1;
269
- this.pending.pop()?.();
269
+ this.pending.shift()?.();
270
270
  if (res.id !== payload.id) {
271
271
  throw new Error(`Id mismatched, got ${res.id}, expected ${payload.id}`);
272
272
  }
@@ -4,7 +4,7 @@ export * from "./http.js";
4
4
  export * from "./transport.js";
5
5
  export * from "./webSocket.js";
6
6
  export function transportFromUri(uri, config) {
7
- if (uri.startsWith("wss://")) {
7
+ if (uri.startsWith("wss://") || uri.startsWith("ws://")) {
8
8
  return new TransportWebSocket(uri, config?.timeout);
9
9
  }
10
10
  return new TransportHttp(uri, config?.timeout);
@@ -1,6 +1,7 @@
1
1
  import { ClientCache } from "./cache/index.js";
2
2
  import { KnownScript, ScriptInfo, ScriptInfoLike } from "./clientTypes.js";
3
3
  import { ClientJsonRpc } from "./jsonRpc/index.js";
4
+ import { Transport } from "./transports/advanced.js";
4
5
  /**
5
6
  * @public
6
7
  */
@@ -10,6 +11,7 @@ export declare class ClientPublicMainnet extends ClientJsonRpc {
10
11
  url?: string;
11
12
  timeout?: number;
12
13
  maxConcurrent?: number;
14
+ transport?: Transport;
13
15
  scripts?: Record<KnownScript, ScriptInfoLike | undefined>;
14
16
  cache?: ClientCache;
15
17
  } | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE;QACxB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,YAAA;IAWH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
1
+ {"version":3,"file":"clientPublicMainnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE;QACxB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,YAAA;IAWH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
@@ -1,6 +1,7 @@
1
1
  import { ClientCache } from "./cache/index.js";
2
2
  import { KnownScript, ScriptInfo, ScriptInfoLike } from "./clientTypes.js";
3
3
  import { ClientJsonRpc } from "./jsonRpc/index.js";
4
+ import { Transport } from "./transports/advanced.js";
4
5
  /**
5
6
  * @public
6
7
  */
@@ -10,6 +11,7 @@ export declare class ClientPublicTestnet extends ClientJsonRpc {
10
11
  url?: string;
11
12
  timeout?: number;
12
13
  maxConcurrent?: number;
14
+ transport?: Transport;
13
15
  scripts?: Record<KnownScript, ScriptInfoLike | undefined>;
14
16
  cache?: ClientCache;
15
17
  } | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicTestnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE;QACxB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,YAAA;IAWH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
1
+ {"version":3,"file":"clientPublicTestnet.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicTestnet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAElD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE;QACxB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,YAAA;IAWH,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC,CAE7D;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAEK,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAS/D"}
@@ -4,7 +4,7 @@ import { Num, NumLike } from "../../num/index.js";
4
4
  import { ClientCache } from "../cache/index.js";
5
5
  import { Client } from "../client.js";
6
6
  import { ClientFindCellsResponse, ClientIndexerSearchKeyLike, ClientTransactionResponse, OutputsValidator } from "../clientTypes.js";
7
- import { JsonRpcPayload } from "../transports/advanced.js";
7
+ import { JsonRpcPayload, Transport } from "../transports/advanced.js";
8
8
  /**
9
9
  * An abstract class implementing JSON-RPC client functionality for a specific URL and timeout.
10
10
  * Provides methods for sending transactions and building JSON-RPC payloads.
@@ -26,6 +26,7 @@ export declare abstract class ClientJsonRpc extends Client {
26
26
  timeout?: number;
27
27
  cache?: ClientCache;
28
28
  maxConcurrent?: number;
29
+ transport?: Transport;
29
30
  });
30
31
  /**
31
32
  * Returns the URL of the JSON-RPC server.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/jsonRpc/index.ts"],"names":[],"mappings":"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"}
@@ -189,7 +189,7 @@ class ClientJsonRpc extends client_js_1.Client {
189
189
  */
190
190
  this.getCellsCapacity = this.buildSender("get_cells_capacity", [advanced_js_2.JsonRpcTransformers.indexerSearchKeyFrom], ({ capacity }) => (0, index_js_3.numFrom)(capacity));
191
191
  this.maxConcurrent = config?.maxConcurrent;
192
- this.transport = (0, advanced_js_1.transportFromUri)(url_, config);
192
+ this.transport = config?.transport ?? (0, advanced_js_1.transportFromUri)(url_, config);
193
193
  }
194
194
  /**
195
195
  * Returns the URL of the JSON-RPC server.
@@ -269,7 +269,7 @@ class ClientJsonRpc extends client_js_1.Client {
269
269
  this.concurrent += 1;
270
270
  const res = (await this.transport.request(payload));
271
271
  this.concurrent -= 1;
272
- this.pending.pop()?.();
272
+ this.pending.shift()?.();
273
273
  if (res.id !== payload.id) {
274
274
  throw new Error(`Id mismatched, got ${res.id}, expected ${payload.id}`);
275
275
  }
@@ -21,7 +21,7 @@ __exportStar(require("./http.js"), exports);
21
21
  __exportStar(require("./transport.js"), exports);
22
22
  __exportStar(require("./webSocket.js"), exports);
23
23
  function transportFromUri(uri, config) {
24
- if (uri.startsWith("wss://")) {
24
+ if (uri.startsWith("wss://") || uri.startsWith("ws://")) {
25
25
  return new webSocket_js_1.TransportWebSocket(uri, config?.timeout);
26
26
  }
27
27
  return new http_js_1.TransportHttp(uri, config?.timeout);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckb-ccc/core",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Core of CCC - CKBer's Codebase",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",
@@ -3,6 +3,7 @@ import { ClientCache } from "./cache/index.js";
3
3
  import { MAINNET_SCRIPTS } from "./clientPublicMainnet.advanced.js";
4
4
  import { KnownScript, ScriptInfo, ScriptInfoLike } from "./clientTypes.js";
5
5
  import { ClientJsonRpc } from "./jsonRpc/index.js";
6
+ import { Transport } from "./transports/advanced.js";
6
7
 
7
8
  /**
8
9
  * @public
@@ -13,6 +14,7 @@ export class ClientPublicMainnet extends ClientJsonRpc {
13
14
  url?: string;
14
15
  timeout?: number;
15
16
  maxConcurrent?: number;
17
+ transport?: Transport;
16
18
  scripts?: Record<KnownScript, ScriptInfoLike | undefined>;
17
19
  cache?: ClientCache;
18
20
  },
@@ -3,6 +3,7 @@ import { ClientCache } from "./cache/index.js";
3
3
  import { TESTNET_SCRIPTS } from "./clientPublicTestnet.advanced.js";
4
4
  import { KnownScript, ScriptInfo, ScriptInfoLike } from "./clientTypes.js";
5
5
  import { ClientJsonRpc } from "./jsonRpc/index.js";
6
+ import { Transport } from "./transports/advanced.js";
6
7
 
7
8
  /**
8
9
  * @public
@@ -13,7 +14,8 @@ export class ClientPublicTestnet extends ClientJsonRpc {
13
14
  url?: string;
14
15
  timeout?: number;
15
16
  maxConcurrent?: number;
16
- scripts?: Record<KnownScript, ScriptInfoLike | undefined>,
17
+ transport?: Transport;
18
+ scripts?: Record<KnownScript, ScriptInfoLike | undefined>;
17
19
  cache?: ClientCache;
18
20
  },
19
21
  ) {
@@ -115,12 +115,13 @@ export abstract class ClientJsonRpc extends Client {
115
115
  timeout?: number;
116
116
  cache?: ClientCache;
117
117
  maxConcurrent?: number;
118
+ transport?: Transport;
118
119
  },
119
120
  ) {
120
121
  super(config);
121
122
 
122
123
  this.maxConcurrent = config?.maxConcurrent;
123
- this.transport = transportFromUri(url_, config);
124
+ this.transport = config?.transport ?? transportFromUri(url_, config);
124
125
  }
125
126
 
126
127
  /**
@@ -459,7 +460,7 @@ export abstract class ClientJsonRpc extends Client {
459
460
  result: unknown;
460
461
  };
461
462
  this.concurrent -= 1;
462
- this.pending.pop()?.();
463
+ this.pending.shift()?.();
463
464
 
464
465
  if (res.id !== payload.id) {
465
466
  throw new Error(`Id mismatched, got ${res.id}, expected ${payload.id}`);
@@ -6,7 +6,7 @@ export * from "./transport.js";
6
6
  export * from "./webSocket.js";
7
7
 
8
8
  export function transportFromUri(uri: string, config?: { timeout?: number }) {
9
- if (uri.startsWith("wss://")) {
9
+ if (uri.startsWith("wss://") || uri.startsWith("ws://")) {
10
10
  return new TransportWebSocket(uri, config?.timeout);
11
11
  }
12
12