viem 2.4.1 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/_cjs/clients/transports/http.js +8 -5
  3. package/_cjs/clients/transports/http.js.map +1 -1
  4. package/_cjs/clients/transports/ipc.js +77 -0
  5. package/_cjs/clients/transports/ipc.js.map +1 -0
  6. package/_cjs/clients/transports/webSocket.js +11 -7
  7. package/_cjs/clients/transports/webSocket.js.map +1 -1
  8. package/_cjs/errors/version.js +1 -1
  9. package/_cjs/node/index.js +8 -0
  10. package/_cjs/node/index.js.map +1 -0
  11. package/_cjs/utils/index.js +13 -6
  12. package/_cjs/utils/index.js.map +1 -1
  13. package/_cjs/utils/rpc/compat.js +35 -0
  14. package/_cjs/utils/rpc/compat.js.map +1 -0
  15. package/_cjs/utils/rpc/http.js +74 -0
  16. package/_cjs/utils/rpc/http.js.map +1 -0
  17. package/_cjs/utils/rpc/id.js +17 -0
  18. package/_cjs/utils/rpc/id.js.map +1 -0
  19. package/_cjs/utils/rpc/ipc.js +75 -0
  20. package/_cjs/utils/rpc/ipc.js.map +1 -0
  21. package/_cjs/utils/rpc/socket.js +85 -0
  22. package/_cjs/utils/rpc/socket.js.map +1 -0
  23. package/_cjs/utils/rpc/webSocket.js +50 -0
  24. package/_cjs/utils/rpc/webSocket.js.map +1 -0
  25. package/_esm/clients/transports/http.js +8 -5
  26. package/_esm/clients/transports/http.js.map +1 -1
  27. package/_esm/clients/transports/ipc.js +77 -0
  28. package/_esm/clients/transports/ipc.js.map +1 -0
  29. package/_esm/clients/transports/webSocket.js +10 -6
  30. package/_esm/clients/transports/webSocket.js.map +1 -1
  31. package/_esm/errors/version.js +1 -1
  32. package/_esm/node/index.js +3 -0
  33. package/_esm/node/index.js.map +1 -0
  34. package/_esm/utils/index.js +4 -1
  35. package/_esm/utils/index.js.map +1 -1
  36. package/_esm/utils/rpc/compat.js +86 -0
  37. package/_esm/utils/rpc/compat.js.map +1 -0
  38. package/_esm/utils/rpc/http.js +70 -0
  39. package/_esm/utils/rpc/http.js.map +1 -0
  40. package/_esm/utils/rpc/id.js +13 -0
  41. package/_esm/utils/rpc/id.js.map +1 -0
  42. package/_esm/utils/rpc/ipc.js +71 -0
  43. package/_esm/utils/rpc/ipc.js.map +1 -0
  44. package/_esm/utils/rpc/socket.js +90 -0
  45. package/_esm/utils/rpc/socket.js.map +1 -0
  46. package/_esm/utils/rpc/webSocket.js +48 -0
  47. package/_esm/utils/rpc/webSocket.js.map +1 -0
  48. package/_types/clients/transports/http.d.ts +2 -2
  49. package/_types/clients/transports/http.d.ts.map +1 -1
  50. package/_types/clients/transports/ipc.d.ts +46 -0
  51. package/_types/clients/transports/ipc.d.ts.map +1 -0
  52. package/_types/clients/transports/webSocket.d.ts +6 -1
  53. package/_types/clients/transports/webSocket.d.ts.map +1 -1
  54. package/_types/errors/version.d.ts +1 -1
  55. package/_types/node/index.d.ts +3 -0
  56. package/_types/node/index.d.ts.map +1 -0
  57. package/_types/types/rpc.d.ts +35 -0
  58. package/_types/types/rpc.d.ts.map +1 -1
  59. package/_types/utils/buildRequest.d.ts +2 -2
  60. package/_types/utils/buildRequest.d.ts.map +1 -1
  61. package/_types/utils/index.d.ts +4 -1
  62. package/_types/utils/index.d.ts.map +1 -1
  63. package/_types/utils/rpc/compat.d.ts +78 -0
  64. package/_types/utils/rpc/compat.d.ts.map +1 -0
  65. package/_types/utils/rpc/http.d.ts +20 -0
  66. package/_types/utils/rpc/http.d.ts.map +1 -0
  67. package/_types/utils/rpc/id.d.ts +11 -0
  68. package/_types/utils/rpc/id.d.ts.map +1 -0
  69. package/_types/utils/rpc/ipc.d.ts +8 -0
  70. package/_types/utils/rpc/ipc.d.ts.map +1 -0
  71. package/_types/utils/rpc/socket.d.ts +45 -0
  72. package/_types/utils/rpc/socket.d.ts.map +1 -0
  73. package/_types/utils/rpc/webSocket.d.ts +3 -0
  74. package/_types/utils/rpc/webSocket.d.ts.map +1 -0
  75. package/clients/transports/http.ts +15 -6
  76. package/clients/transports/ipc.ts +144 -0
  77. package/clients/transports/webSocket.ts +16 -6
  78. package/errors/version.ts +1 -1
  79. package/node/index.ts +11 -0
  80. package/node/package.json +6 -0
  81. package/package.json +9 -1
  82. package/types/rpc.ts +44 -0
  83. package/utils/buildRequest.ts +2 -2
  84. package/utils/index.ts +19 -8
  85. package/utils/rpc/compat.ts +117 -0
  86. package/utils/rpc/http.ts +132 -0
  87. package/utils/rpc/id.ts +13 -0
  88. package/utils/rpc/ipc.ts +89 -0
  89. package/utils/rpc/socket.ts +162 -0
  90. package/utils/rpc/webSocket.ts +63 -0
  91. package/_cjs/utils/rpc.js +0 -154
  92. package/_cjs/utils/rpc.js.map +0 -1
  93. package/_esm/utils/rpc.js +0 -160
  94. package/_esm/utils/rpc.js.map +0 -1
  95. package/_types/utils/rpc.d.ts +0 -80
  96. package/_types/utils/rpc.d.ts.map +0 -1
  97. package/utils/rpc.ts +0 -318
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # viem
2
2
 
3
+ ## 2.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1724](https://github.com/wevm/viem/pull/1724) [`1aa664cc888516efb828b7e6e90c13993963459b`](https://github.com/wevm/viem/commit/1aa664cc888516efb828b7e6e90c13993963459b) Thanks [@jxom](https://github.com/jxom)! - Added support for IPC transport.
8
+
3
9
  ## 2.4.1
4
10
 
5
11
  ### Patch Changes
@@ -4,7 +4,7 @@ exports.http = void 0;
4
4
  const request_js_1 = require("../../errors/request.js");
5
5
  const transport_js_1 = require("../../errors/transport.js");
6
6
  const createBatchScheduler_js_1 = require("../../utils/promise/createBatchScheduler.js");
7
- const rpc_js_1 = require("../../utils/rpc.js");
7
+ const http_js_1 = require("../../utils/rpc/http.js");
8
8
  const createTransport_js_1 = require("./createTransport.js");
9
9
  function http(url, config = {}) {
10
10
  const { batch, fetchOptions, key = 'http', name = 'HTTP JSON-RPC', retryDelay, } = config;
@@ -15,6 +15,7 @@ function http(url, config = {}) {
15
15
  const url_ = url || chain?.rpcUrls.default.http[0];
16
16
  if (!url_)
17
17
  throw new transport_js_1.UrlRequiredError();
18
+ const rpcClient = (0, http_js_1.getHttpRpcClient)(url_, { fetchOptions, timeout });
18
19
  return (0, createTransport_js_1.createTransport)({
19
20
  key,
20
21
  name,
@@ -26,16 +27,18 @@ function http(url, config = {}) {
26
27
  shouldSplitBatch(requests) {
27
28
  return requests.length > batchSize;
28
29
  },
29
- fn: (body) => rpc_js_1.rpc.http(url_, {
30
+ fn: (body) => rpcClient.request({
30
31
  body,
31
- fetchOptions,
32
- timeout,
33
32
  }),
34
33
  sort: (a, b) => a.id - b.id,
35
34
  });
36
35
  const fn = async (body) => batch
37
36
  ? schedule(body)
38
- : [await rpc_js_1.rpc.http(url_, { body, fetchOptions, timeout })];
37
+ : [
38
+ await rpcClient.request({
39
+ body,
40
+ }),
41
+ ];
39
42
  const [{ error, result }] = await fn(body);
40
43
  if (error)
41
44
  throw new request_js_1.RpcRequestError({
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../clients/transports/http.ts"],"names":[],"mappings":";;;AAAA,wDAAyD;AACzD,4DAGkC;AAElC,yFAAkF;AAClF,+CAA2E;AAE3E,6DAK6B;AAgD7B,SAAgB,IAAI,CAElB,GAAY,EACZ,SAA8B,EAAE;IAEhC,MAAM,EACJ,KAAK,EACL,YAAY,EACZ,GAAG,GAAG,MAAM,EACZ,IAAI,GAAG,eAAe,EACtB,UAAU,GACX,GAAG,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/D,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,GAClC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,WAAW,CAAA;QACnD,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,KAAM,CAAA;QACpD,MAAM,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,+BAAgB,EAAE,CAAA;QACvC,OAAO,IAAA,oCAAe,EACpB;YACE,GAAG;YACH,IAAI;YACJ,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC9B,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;gBAE/B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,8CAAoB,EAAC;oBACxC,EAAE,EAAE,GAAG,GAAG,EAAE;oBACZ,IAAI;oBACJ,gBAAgB,CAAC,QAAQ;wBACvB,OAAO,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAA;oBACpC,CAAC;oBACD,EAAE,EAAE,CAAC,IAAkB,EAAE,EAAE,CACzB,YAAG,CAAC,IAAI,CAAC,IAAI,EAAE;wBACb,IAAI;wBACJ,YAAY;wBACZ,OAAO;qBACR,CAAC;oBACJ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;iBAC5B,CAAC,CAAA;gBAEF,MAAM,EAAE,GAAG,KAAK,EAAE,IAAgB,EAAE,EAAE,CACpC,KAAK;oBACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAChB,CAAC,CAAC,CAAC,MAAM,YAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;gBAE7D,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;gBAC1C,IAAI,KAAK;oBACP,MAAM,IAAI,4BAAe,CAAC;wBACxB,IAAI;wBACJ,KAAK;wBACL,GAAG,EAAE,IAAI;qBACV,CAAC,CAAA;gBACJ,OAAO,MAAM,CAAA;YACf,CAAC;YACD,UAAU;YACV,UAAU;YACV,OAAO;YACP,IAAI,EAAE,MAAM;SACb,EACD;YACE,YAAY;YACZ,GAAG,EAAE,IAAI;SACV,CACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAlED,oBAkEC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../clients/transports/http.ts"],"names":[],"mappings":";;;AAAA,wDAAyD;AACzD,4DAGkC;AAGlC,yFAAkF;AAClF,qDAGgC;AAEhC,6DAK6B;AAgD7B,SAAgB,IAAI,CAElB,GAAY,EACZ,SAA8B,EAAE;IAEhC,MAAM,EACJ,KAAK,EACL,YAAY,EACZ,GAAG,GAAG,MAAM,EACZ,IAAI,GAAG,eAAe,EACtB,UAAU,GACX,GAAG,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/D,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,GAClC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,WAAW,CAAA;QACnD,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,KAAM,CAAA;QACpD,MAAM,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,+BAAgB,EAAE,CAAA;QAEvC,MAAM,SAAS,GAAG,IAAA,0BAAgB,EAAC,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;QAEnE,OAAO,IAAA,oCAAe,EACpB;YACE,GAAG;YACH,IAAI;YACJ,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC9B,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;gBAE/B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,8CAAoB,EAAC;oBACxC,EAAE,EAAE,GAAG,GAAG,EAAE;oBACZ,IAAI;oBACJ,gBAAgB,CAAC,QAAQ;wBACvB,OAAO,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAA;oBACpC,CAAC;oBACD,EAAE,EAAE,CAAC,IAAkB,EAAE,EAAE,CACzB,SAAS,CAAC,OAAO,CAAC;wBAChB,IAAI;qBACL,CAAC;oBACJ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;iBAC5B,CAAC,CAAA;gBAEF,MAAM,EAAE,GAAG,KAAK,EAAE,IAAgB,EAAE,EAAE,CACpC,KAAK;oBACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAChB,CAAC,CAAC;wBACE,MAAM,SAAS,CAAC,OAAO,CAAC;4BACtB,IAAI;yBACL,CAAC;qBACH,CAAA;gBAEP,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;gBAC1C,IAAI,KAAK;oBACP,MAAM,IAAI,4BAAe,CAAC;wBACxB,IAAI;wBACJ,KAAK;wBACL,GAAG,EAAE,IAAI;qBACV,CAAC,CAAA;gBACJ,OAAO,MAAM,CAAA;YACf,CAAC;YACD,UAAU;YACV,UAAU;YACV,OAAO;YACP,IAAI,EAAE,MAAM;SACb,EACD;YACE,YAAY;YACZ,GAAG,EAAE,IAAI;SACV,CACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAvED,oBAuEC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ipc = void 0;
4
+ const request_js_1 = require("../../errors/request.js");
5
+ const ipc_js_1 = require("../../utils/rpc/ipc.js");
6
+ const createTransport_js_1 = require("./createTransport.js");
7
+ function ipc(path, config = {}) {
8
+ const { key = 'ipc', name = 'IPC JSON-RPC', retryDelay } = config;
9
+ return ({ retryCount: retryCount_, timeout: timeout_ }) => {
10
+ const retryCount = config.retryCount ?? retryCount_;
11
+ const timeout = timeout_ ?? config.timeout ?? 10000;
12
+ return (0, createTransport_js_1.createTransport)({
13
+ key,
14
+ name,
15
+ async request({ method, params }) {
16
+ const body = { method, params };
17
+ const rpcClient = await (0, ipc_js_1.getIpcRpcClient)(path);
18
+ const { error, result } = await rpcClient.requestAsync({
19
+ body,
20
+ timeout,
21
+ });
22
+ if (error)
23
+ throw new request_js_1.RpcRequestError({
24
+ body,
25
+ error,
26
+ url: path,
27
+ });
28
+ return result;
29
+ },
30
+ retryCount,
31
+ retryDelay,
32
+ timeout,
33
+ type: 'ipc',
34
+ }, {
35
+ getRpcClient() {
36
+ return (0, ipc_js_1.getIpcRpcClient)(path);
37
+ },
38
+ async subscribe({ params, onData, onError }) {
39
+ const rpcClient = await (0, ipc_js_1.getIpcRpcClient)(path);
40
+ const { result: subscriptionId } = await new Promise((resolve, reject) => rpcClient.request({
41
+ body: {
42
+ method: 'eth_subscribe',
43
+ params,
44
+ },
45
+ onResponse(response) {
46
+ if (response.error) {
47
+ reject(response.error);
48
+ onError?.(response.error);
49
+ return;
50
+ }
51
+ if (typeof response.id === 'number') {
52
+ resolve(response);
53
+ return;
54
+ }
55
+ if (response.method !== 'eth_subscription')
56
+ return;
57
+ onData(response.params);
58
+ },
59
+ }));
60
+ return {
61
+ subscriptionId,
62
+ async unsubscribe() {
63
+ return new Promise((resolve) => rpcClient.request({
64
+ body: {
65
+ method: 'eth_unsubscribe',
66
+ params: [subscriptionId],
67
+ },
68
+ onResponse: resolve,
69
+ }));
70
+ },
71
+ };
72
+ },
73
+ });
74
+ };
75
+ }
76
+ exports.ipc = ipc;
77
+ //# sourceMappingURL=ipc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../../clients/transports/ipc.ts"],"names":[],"mappings":";;;AAAA,wDAAyD;AAKzD,mDAA2E;AAC3E,6DAK6B;AAqD7B,SAAgB,GAAG,CACjB,IAAY,EACZ,SAA6B,EAAE;IAE/B,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,IAAI,GAAG,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IACjE,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QACxD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,WAAW,CAAA;QACnD,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,KAAM,CAAA;QACpD,OAAO,IAAA,oCAAe,EACpB;YACE,GAAG;YACH,IAAI;YACJ,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC9B,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;gBAC/B,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAA;gBAC7C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC;oBACrD,IAAI;oBACJ,OAAO;iBACR,CAAC,CAAA;gBACF,IAAI,KAAK;oBACP,MAAM,IAAI,4BAAe,CAAC;wBACxB,IAAI;wBACJ,KAAK;wBACL,GAAG,EAAE,IAAI;qBACV,CAAC,CAAA;gBACJ,OAAO,MAAM,CAAA;YACf,CAAC;YACD,UAAU;YACV,UAAU;YACV,OAAO;YACP,IAAI,EAAE,KAAK;SACZ,EACD;YACE,YAAY;gBACV,OAAO,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAO;gBAC9C,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAA;gBAC7C,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,OAAO,CAClD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAClB,SAAS,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE;wBACJ,MAAM,EAAE,eAAe;wBACvB,MAAM;qBACP;oBACD,UAAU,CAAC,QAAQ;wBACjB,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;4BACnB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;4BACtB,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;4BACzB,OAAM;wBACR,CAAC;wBAED,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;4BACpC,OAAO,CAAC,QAAQ,CAAC,CAAA;4BACjB,OAAM;wBACR,CAAC;wBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB;4BAAE,OAAM;wBAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;oBACzB,CAAC;iBACF,CAAC,CACL,CAAA;gBACD,OAAO;oBACL,cAAc;oBACd,KAAK,CAAC,WAAW;wBACf,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,EAAE,CAClC,SAAS,CAAC,OAAO,CAAC;4BAChB,IAAI,EAAE;gCACJ,MAAM,EAAE,iBAAiB;gCACzB,MAAM,EAAE,CAAC,cAAc,CAAC;6BACzB;4BACD,UAAU,EAAE,OAAO;yBACpB,CAAC,CACH,CAAA;oBACH,CAAC;iBACF,CAAA;YACH,CAAC;SACF,CACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AA/ED,kBA+EC"}
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.webSocket = void 0;
4
4
  const request_js_1 = require("../../errors/request.js");
5
5
  const transport_js_1 = require("../../errors/transport.js");
6
- const rpc_js_1 = require("../../utils/rpc.js");
6
+ const compat_js_1 = require("../../utils/rpc/compat.js");
7
+ const webSocket_js_1 = require("../../utils/rpc/webSocket.js");
7
8
  const createTransport_js_1 = require("./createTransport.js");
8
9
  function webSocket(url, config = {}) {
9
10
  const { key = 'webSocket', name = 'WebSocket JSON-RPC', retryDelay } = config;
@@ -18,8 +19,8 @@ function webSocket(url, config = {}) {
18
19
  name,
19
20
  async request({ method, params }) {
20
21
  const body = { method, params };
21
- const socket = await (0, rpc_js_1.getSocket)(url_);
22
- const { error, result } = await rpc_js_1.rpc.webSocketAsync(socket, {
22
+ const rpcClient = await (0, webSocket_js_1.getWebSocketRpcClient)(url_);
23
+ const { error, result } = await rpcClient.requestAsync({
23
24
  body,
24
25
  timeout,
25
26
  });
@@ -37,11 +38,14 @@ function webSocket(url, config = {}) {
37
38
  type: 'webSocket',
38
39
  }, {
39
40
  getSocket() {
40
- return (0, rpc_js_1.getSocket)(url_);
41
+ return (0, compat_js_1.getSocket)(url_);
42
+ },
43
+ getRpcClient() {
44
+ return (0, webSocket_js_1.getWebSocketRpcClient)(url_);
41
45
  },
42
46
  async subscribe({ params, onData, onError }) {
43
- const socket = await (0, rpc_js_1.getSocket)(url_);
44
- const { result: subscriptionId } = await new Promise((resolve, reject) => rpc_js_1.rpc.webSocket(socket, {
47
+ const rpcClient = await (0, webSocket_js_1.getWebSocketRpcClient)(url_);
48
+ const { result: subscriptionId } = await new Promise((resolve, reject) => rpcClient.request({
45
49
  body: {
46
50
  method: 'eth_subscribe',
47
51
  params,
@@ -64,7 +68,7 @@ function webSocket(url, config = {}) {
64
68
  return {
65
69
  subscriptionId,
66
70
  async unsubscribe() {
67
- return new Promise((resolve) => rpc_js_1.rpc.webSocket(socket, {
71
+ return new Promise((resolve) => rpcClient.request({
68
72
  body: {
69
73
  method: 'eth_unsubscribe',
70
74
  params: [subscriptionId],
@@ -1 +1 @@
1
- {"version":3,"file":"webSocket.js","sourceRoot":"","sources":["../../../clients/transports/webSocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webSocket.js","sourceRoot":"","sources":["../../../clients/transports/webSocket.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = '2.4.1';
4
+ exports.version = '2.5.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIpcRpcClient = exports.ipc = void 0;
4
+ var ipc_js_1 = require("../clients/transports/ipc.js");
5
+ Object.defineProperty(exports, "ipc", { enumerable: true, get: function () { return ipc_js_1.ipc; } });
6
+ var ipc_js_2 = require("../utils/rpc/ipc.js");
7
+ Object.defineProperty(exports, "getIpcRpcClient", { enumerable: true, get: function () { return ipc_js_2.getIpcRpcClient; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../node/index.ts"],"names":[],"mappings":";;;AAAA,uDAKqC;AADnC,6FAAA,GAAG,OAAA;AAGL,8CAG4B;AAD1B,yGAAA,eAAe,OAAA"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isHex = exports.isBytes = exports.concatHex = exports.concatBytes = exports.concat = exports.isAddressEqual = exports.isAddress = exports.getAddress = exports.getCreate2Address = exports.getCreateAddress = exports.getContractAddress = exports.publicKeyToAddress = exports.parseAccount = exports.formatAbiParams = exports.formatAbiItem = exports.formatAbiItemWithArgs = exports.encodePacked = exports.parseAbiParameters = exports.parseAbiParameter = exports.parseAbiItem = exports.parseAbi = exports.getAbiItem = exports.parseEventLogs = exports.encodeFunctionResult = exports.encodeFunctionData = exports.encodeEventTopics = exports.encodeErrorResult = exports.encodeDeployData = exports.encodeAbiParameters = exports.decodeFunctionResult = exports.decodeFunctionData = exports.decodeEventLog = exports.decodeErrorResult = exports.decodeAbiParameters = exports.validateTypedData = exports.stringify = exports.rpc = exports.getSocket = exports.integerRegex = exports.bytesRegex = exports.arrayRegex = exports.getChainContractAddress = exports.extractChain = exports.defineChain = exports.assertCurrentChain = exports.offchainLookupSignature = exports.offchainLookupAbiItem = exports.offchainLookup = exports.ccipFetch = exports.buildRequest = void 0;
4
- exports.getEventSelector = exports.toEventSelector = exports.defineFormatter = exports.getTransactionError = exports.getEstimateGasError = exports.getContractError = exports.getCallError = exports.getNodeError = exports.containsNodeError = exports.fromRlp = exports.hexToString = exports.hexToNumber = exports.hexToBigInt = exports.hexToBool = exports.fromHex = exports.fromBytes = exports.bytesToString = exports.bytesToNumber = exports.bytesToBool = exports.bytesToBigint = exports.bytesToBigInt = exports.stringToHex = exports.numberToHex = exports.toHex = exports.bytesToHex = exports.boolToHex = exports.stringToBytes = exports.numberToBytes = exports.hexToBytes = exports.toBytes = exports.boolToBytes = exports.toRlp = exports.extract = exports.formatTransactionRequest = exports.defineTransactionRequest = exports.defineTransactionReceipt = exports.formatLog = exports.transactionType = exports.formatTransaction = exports.defineTransaction = exports.formatBlock = exports.defineBlock = exports.trim = exports.sliceHex = exports.sliceBytes = exports.slice = exports.size = exports.padHex = exports.padBytes = exports.pad = void 0;
5
- exports.parseGwei = exports.parseEther = exports.parseUnits = exports.formatUnits = exports.formatGwei = exports.formatEther = exports.serializeAccessList = exports.serializeTransaction = exports.parseTransaction = exports.assertTransactionLegacy = exports.assertTransactionEIP2930 = exports.assertTransactionEIP1559 = exports.assertRequest = exports.getTransactionType = exports.getSerializedTransactionType = exports.hashMessage = exports.verifyTypedData = exports.verifyMessage = exports.recoverTypedDataAddress = exports.recoverPublicKey = exports.recoverMessageAddress = exports.recoverAddress = exports.hashTypedData = exports.ripemd160 = exports.sha256 = exports.keccak256 = exports.isHash = exports.toFunctionHash = exports.toEventHash = exports.getFunctionSignature = exports.toFunctionSignature = exports.getEventSignature = exports.toEventSignature = exports.getFunctionSelector = exports.toFunctionSelector = void 0;
3
+ exports.concat = exports.isAddressEqual = exports.isAddress = exports.getAddress = exports.getCreate2Address = exports.getCreateAddress = exports.getContractAddress = exports.publicKeyToAddress = exports.parseAccount = exports.formatAbiParams = exports.formatAbiItem = exports.formatAbiItemWithArgs = exports.encodePacked = exports.parseAbiParameters = exports.parseAbiParameter = exports.parseAbiItem = exports.parseAbi = exports.getAbiItem = exports.parseEventLogs = exports.encodeFunctionResult = exports.encodeFunctionData = exports.encodeEventTopics = exports.encodeErrorResult = exports.encodeDeployData = exports.encodeAbiParameters = exports.decodeFunctionResult = exports.decodeFunctionData = exports.decodeEventLog = exports.decodeErrorResult = exports.decodeAbiParameters = exports.validateTypedData = exports.stringify = exports.getWebSocketRpcClient = exports.socketClientCache = exports.getSocketRpcClient = exports.getHttpRpcClient = exports.rpc = exports.getSocket = exports.integerRegex = exports.bytesRegex = exports.arrayRegex = exports.getChainContractAddress = exports.extractChain = exports.defineChain = exports.assertCurrentChain = exports.offchainLookupSignature = exports.offchainLookupAbiItem = exports.offchainLookup = exports.ccipFetch = exports.buildRequest = void 0;
4
+ exports.getEstimateGasError = exports.getContractError = exports.getCallError = exports.getNodeError = exports.containsNodeError = exports.fromRlp = exports.hexToString = exports.hexToNumber = exports.hexToBigInt = exports.hexToBool = exports.fromHex = exports.fromBytes = exports.bytesToString = exports.bytesToNumber = exports.bytesToBool = exports.bytesToBigint = exports.bytesToBigInt = exports.stringToHex = exports.numberToHex = exports.toHex = exports.bytesToHex = exports.boolToHex = exports.stringToBytes = exports.numberToBytes = exports.hexToBytes = exports.toBytes = exports.boolToBytes = exports.toRlp = exports.extract = exports.formatTransactionRequest = exports.defineTransactionRequest = exports.defineTransactionReceipt = exports.formatLog = exports.transactionType = exports.formatTransaction = exports.defineTransaction = exports.formatBlock = exports.defineBlock = exports.trim = exports.sliceHex = exports.sliceBytes = exports.slice = exports.size = exports.padHex = exports.padBytes = exports.pad = exports.isHex = exports.isBytes = exports.concatHex = exports.concatBytes = void 0;
5
+ exports.parseGwei = exports.parseEther = exports.parseUnits = exports.formatUnits = exports.formatGwei = exports.formatEther = exports.serializeAccessList = exports.serializeTransaction = exports.parseTransaction = exports.assertTransactionLegacy = exports.assertTransactionEIP2930 = exports.assertTransactionEIP1559 = exports.assertRequest = exports.getTransactionType = exports.getSerializedTransactionType = exports.hashMessage = exports.verifyTypedData = exports.verifyMessage = exports.recoverTypedDataAddress = exports.recoverPublicKey = exports.recoverMessageAddress = exports.recoverAddress = exports.hashTypedData = exports.ripemd160 = exports.sha256 = exports.keccak256 = exports.isHash = exports.toFunctionHash = exports.toEventHash = exports.getFunctionSignature = exports.toFunctionSignature = exports.getEventSignature = exports.toEventSignature = exports.getFunctionSelector = exports.toFunctionSelector = exports.getEventSelector = exports.toEventSelector = exports.defineFormatter = exports.getTransactionError = void 0;
6
6
  var buildRequest_js_1 = require("./buildRequest.js");
7
7
  Object.defineProperty(exports, "buildRequest", { enumerable: true, get: function () { return buildRequest_js_1.buildRequest; } });
8
8
  var ccip_js_1 = require("./ccip.js");
@@ -22,9 +22,16 @@ var regex_js_1 = require("./regex.js");
22
22
  Object.defineProperty(exports, "arrayRegex", { enumerable: true, get: function () { return regex_js_1.arrayRegex; } });
23
23
  Object.defineProperty(exports, "bytesRegex", { enumerable: true, get: function () { return regex_js_1.bytesRegex; } });
24
24
  Object.defineProperty(exports, "integerRegex", { enumerable: true, get: function () { return regex_js_1.integerRegex; } });
25
- var rpc_js_1 = require("./rpc.js");
26
- Object.defineProperty(exports, "getSocket", { enumerable: true, get: function () { return rpc_js_1.getSocket; } });
27
- Object.defineProperty(exports, "rpc", { enumerable: true, get: function () { return rpc_js_1.rpc; } });
25
+ var compat_js_1 = require("./rpc/compat.js");
26
+ Object.defineProperty(exports, "getSocket", { enumerable: true, get: function () { return compat_js_1.getSocket; } });
27
+ Object.defineProperty(exports, "rpc", { enumerable: true, get: function () { return compat_js_1.rpc; } });
28
+ var http_js_1 = require("./rpc/http.js");
29
+ Object.defineProperty(exports, "getHttpRpcClient", { enumerable: true, get: function () { return http_js_1.getHttpRpcClient; } });
30
+ var socket_js_1 = require("./rpc/socket.js");
31
+ Object.defineProperty(exports, "getSocketRpcClient", { enumerable: true, get: function () { return socket_js_1.getSocketRpcClient; } });
32
+ Object.defineProperty(exports, "socketClientCache", { enumerable: true, get: function () { return socket_js_1.socketClientCache; } });
33
+ var webSocket_js_1 = require("./rpc/webSocket.js");
34
+ Object.defineProperty(exports, "getWebSocketRpcClient", { enumerable: true, get: function () { return webSocket_js_1.getWebSocketRpcClient; } });
28
35
  var stringify_js_1 = require("./stringify.js");
29
36
  Object.defineProperty(exports, "stringify", { enumerable: true, get: function () { return stringify_js_1.stringify; } });
30
37
  var typedData_js_1 = require("./typedData.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rpc = exports.getSocket = void 0;
4
+ const http_js_1 = require("./http.js");
5
+ const webSocket_js_1 = require("./webSocket.js");
6
+ function webSocket(socketClient, { body, onError, onResponse }) {
7
+ socketClient.request({
8
+ body,
9
+ onError,
10
+ onResponse,
11
+ });
12
+ return socketClient;
13
+ }
14
+ async function webSocketAsync(socketClient, { body, timeout = 10000 }) {
15
+ return socketClient.requestAsync({
16
+ body,
17
+ timeout,
18
+ });
19
+ }
20
+ async function getSocket(url) {
21
+ const client = await (0, webSocket_js_1.getWebSocketRpcClient)(url);
22
+ return Object.assign(client.socket, {
23
+ requests: client.requests,
24
+ subscriptions: client.subscriptions,
25
+ });
26
+ }
27
+ exports.getSocket = getSocket;
28
+ exports.rpc = {
29
+ http(url, params) {
30
+ return (0, http_js_1.getHttpRpcClient)(url).request(params);
31
+ },
32
+ webSocket,
33
+ webSocketAsync,
34
+ };
35
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../utils/rpc/compat.ts"],"names":[],"mappings":";;;AAWA,uCAAwE;AAExE,iDAAsD;AAQtD,SAAS,SAAS,CAChB,YAAwC,EACxC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAoB;IAE/C,YAAY,CAAC,OAAO,CAAC;QACnB,IAAI;QACJ,OAAO;QACP,UAAU;KACX,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACrB,CAAC;AAYD,KAAK,UAAU,cAAc,CAC3B,YAAwC,EACxC,EAAE,IAAI,EAAE,OAAO,GAAG,KAAM,EAAyB;IAEjD,OAAO,YAAY,CAAC,YAAY,CAAC;QAC/B,IAAI;QACJ,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAcM,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAqB,EAAC,GAAG,CAAC,CAAA;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC,CAAA;AACJ,CAAC;AAND,8BAMC;AAEY,QAAA,GAAG,GAAG;IAajB,IAAI,CAAC,GAAW,EAAE,MAA6B;QAC7C,OAAO,IAAA,0BAAgB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9C,CAAC;IAaD,SAAS;IAaT,cAAc;CACf,CAAA"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHttpRpcClient = void 0;
4
+ const request_js_1 = require("../../errors/request.js");
5
+ const withTimeout_js_1 = require("../promise/withTimeout.js");
6
+ const stringify_js_1 = require("../stringify.js");
7
+ const id_js_1 = require("./id.js");
8
+ function getHttpRpcClient(url, options = {}) {
9
+ return {
10
+ async request(params) {
11
+ const { body, fetchOptions = {}, timeout = options.timeout ?? 10000, } = params;
12
+ const { headers, method, signal: signal_, } = { ...options.fetchOptions, ...fetchOptions };
13
+ try {
14
+ const response = await (0, withTimeout_js_1.withTimeout)(async ({ signal }) => {
15
+ const response = await fetch(url, {
16
+ ...fetchOptions,
17
+ body: Array.isArray(body)
18
+ ? (0, stringify_js_1.stringify)(body.map((body) => ({
19
+ jsonrpc: '2.0',
20
+ id: body.id ?? id_js_1.idCache.take(),
21
+ ...body,
22
+ })))
23
+ : (0, stringify_js_1.stringify)({
24
+ jsonrpc: '2.0',
25
+ id: body.id ?? id_js_1.idCache.take(),
26
+ ...body,
27
+ }),
28
+ headers: {
29
+ ...headers,
30
+ 'Content-Type': 'application/json',
31
+ },
32
+ method: method || 'POST',
33
+ signal: signal_ || (timeout > 0 ? signal : undefined),
34
+ });
35
+ return response;
36
+ }, {
37
+ errorInstance: new request_js_1.TimeoutError({ body, url }),
38
+ timeout,
39
+ signal: true,
40
+ });
41
+ let data;
42
+ if (response.headers.get('Content-Type')?.startsWith('application/json')) {
43
+ data = await response.json();
44
+ }
45
+ else {
46
+ data = await response.text();
47
+ }
48
+ if (!response.ok) {
49
+ throw new request_js_1.HttpRequestError({
50
+ body,
51
+ details: (0, stringify_js_1.stringify)(data.error) || response.statusText,
52
+ headers: response.headers,
53
+ status: response.status,
54
+ url,
55
+ });
56
+ }
57
+ return data;
58
+ }
59
+ catch (err) {
60
+ if (err instanceof request_js_1.HttpRequestError)
61
+ throw err;
62
+ if (err instanceof request_js_1.TimeoutError)
63
+ throw err;
64
+ throw new request_js_1.HttpRequestError({
65
+ body,
66
+ details: err.message,
67
+ url,
68
+ });
69
+ }
70
+ },
71
+ };
72
+ }
73
+ exports.getHttpRpcClient = getHttpRpcClient;
74
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../utils/rpc/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.idCache = exports.createIdStore = void 0;
4
+ function createIdStore() {
5
+ return {
6
+ current: 0,
7
+ take() {
8
+ return this.current++;
9
+ },
10
+ reset() {
11
+ this.current = 0;
12
+ },
13
+ };
14
+ }
15
+ exports.createIdStore = createIdStore;
16
+ exports.idCache = createIdStore();
17
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../utils/rpc/id.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa;IAC3B,OAAO;QACL,OAAO,EAAE,CAAC;QACV,IAAI;YACF,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC;QACD,KAAK;YACH,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;QAClB,CAAC;KACF,CAAA;AACH,CAAC;AAVD,sCAUC;AAEY,QAAA,OAAO,GAAiB,aAAa,EAAE,CAAA"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIpcRpcClient = exports.extractMessages = void 0;
4
+ const node_net_1 = require("node:net");
5
+ const index_js_1 = require("../../index.js");
6
+ const socket_js_1 = require("./socket.js");
7
+ const openingBrace = '{'.charCodeAt(0);
8
+ const closingBrace = '}'.charCodeAt(0);
9
+ function extractMessages(buffer) {
10
+ const messages = [];
11
+ let cursor = 0;
12
+ let level = 0;
13
+ for (let i = 0; i < buffer.length; i++) {
14
+ if (buffer[i] === openingBrace)
15
+ level++;
16
+ if (buffer[i] === closingBrace)
17
+ level--;
18
+ if (level === 0) {
19
+ const message = buffer.subarray(cursor, i + 1);
20
+ if (message[0] === openingBrace &&
21
+ message[message.length - 1] === closingBrace)
22
+ messages.push(message);
23
+ cursor = i + 1;
24
+ }
25
+ }
26
+ return [messages, buffer.subarray(cursor)];
27
+ }
28
+ exports.extractMessages = extractMessages;
29
+ async function getIpcRpcClient(path) {
30
+ return (0, socket_js_1.getSocketRpcClient)({
31
+ async getSocket({ onResponse }) {
32
+ const socket = (0, node_net_1.connect)(path);
33
+ function onClose() {
34
+ socket.off('close', onClose);
35
+ socket.off('message', onData);
36
+ }
37
+ let lastRemaining = Buffer.alloc(0);
38
+ function onData(buffer) {
39
+ const [messages, remaining] = extractMessages(Buffer.concat([lastRemaining, buffer]));
40
+ for (const message of messages) {
41
+ const response = JSON.parse(Buffer.from(message).toString());
42
+ onResponse(response);
43
+ }
44
+ lastRemaining = remaining;
45
+ }
46
+ socket.on('close', onClose);
47
+ socket.on('data', onData);
48
+ await new Promise((resolve, reject) => {
49
+ socket.on('ready', () => {
50
+ resolve();
51
+ socket.off('error', reject);
52
+ });
53
+ socket.on('error', reject);
54
+ });
55
+ return Object.assign(socket, {
56
+ close() {
57
+ socket.destroy();
58
+ socket.end();
59
+ },
60
+ request({ body }) {
61
+ if (socket.readyState !== 'open')
62
+ throw new index_js_1.WebSocketRequestError({
63
+ body,
64
+ url: path,
65
+ details: 'Socket is closed.',
66
+ });
67
+ return socket.write(JSON.stringify(body));
68
+ },
69
+ });
70
+ },
71
+ url: path,
72
+ });
73
+ }
74
+ exports.getIpcRpcClient = getIpcRpcClient;
75
+ //# sourceMappingURL=ipc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../../utils/rpc/ipc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSocketRpcClient = exports.socketClientCache = void 0;
4
+ const request_js_1 = require("../../errors/request.js");
5
+ const createBatchScheduler_js_1 = require("../promise/createBatchScheduler.js");
6
+ const withTimeout_js_1 = require("../promise/withTimeout.js");
7
+ const id_js_1 = require("./id.js");
8
+ exports.socketClientCache = new Map();
9
+ async function getSocketRpcClient(params) {
10
+ const { getSocket, url } = params;
11
+ let socketClient = exports.socketClientCache.get(url);
12
+ if (socketClient)
13
+ return socketClient;
14
+ const { schedule } = (0, createBatchScheduler_js_1.createBatchScheduler)({
15
+ id: url,
16
+ fn: async () => {
17
+ const requests = new Map();
18
+ const subscriptions = new Map();
19
+ const socket = await getSocket({
20
+ onResponse(data) {
21
+ const isSubscription = data.method === 'eth_subscription';
22
+ const id = isSubscription ? data.params.subscription : data.id;
23
+ const cache = isSubscription ? subscriptions : requests;
24
+ const callback = cache.get(id);
25
+ if (callback)
26
+ callback(data);
27
+ if (!isSubscription)
28
+ cache.delete(id);
29
+ },
30
+ });
31
+ socketClient = {
32
+ close() {
33
+ socket.close();
34
+ exports.socketClientCache.delete(url);
35
+ },
36
+ socket,
37
+ request({ body, onError, onResponse }) {
38
+ const id = body.id ?? id_js_1.idCache.take();
39
+ const callback = (response) => {
40
+ if (typeof response.id === 'number' && id !== response.id)
41
+ return;
42
+ if (body.method === 'eth_subscribe' &&
43
+ typeof response.result === 'string')
44
+ subscriptions.set(response.result, callback);
45
+ if (body.method === 'eth_unsubscribe')
46
+ subscriptions.delete(body.params?.[0]);
47
+ onResponse(response);
48
+ };
49
+ requests.set(id, callback);
50
+ try {
51
+ socket.request({
52
+ body: {
53
+ jsonrpc: '2.0',
54
+ id,
55
+ ...body,
56
+ },
57
+ });
58
+ }
59
+ catch (error) {
60
+ onError?.(error);
61
+ }
62
+ },
63
+ requestAsync({ body, timeout = 10000 }) {
64
+ return (0, withTimeout_js_1.withTimeout)(() => new Promise((onResponse, onError) => this.request({
65
+ body,
66
+ onError,
67
+ onResponse,
68
+ })), {
69
+ errorInstance: new request_js_1.TimeoutError({ body, url }),
70
+ timeout,
71
+ });
72
+ },
73
+ requests,
74
+ subscriptions,
75
+ url,
76
+ };
77
+ exports.socketClientCache.set(url, socketClient);
78
+ return [socketClient];
79
+ },
80
+ });
81
+ const [_, [socketClient_]] = await schedule();
82
+ return socketClient_;
83
+ }
84
+ exports.getSocketRpcClient = getSocketRpcClient;
85
+ //# sourceMappingURL=socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../utils/rpc/socket.ts"],"names":[],"mappings":"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"}