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
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWebSocketRpcClient = void 0;
4
+ const request_js_1 = require("../../errors/request.js");
5
+ const socket_js_1 = require("./socket.js");
6
+ async function getWebSocketRpcClient(url) {
7
+ return (0, socket_js_1.getSocketRpcClient)({
8
+ async getSocket({ onResponse }) {
9
+ const WebSocket = await Promise.resolve().then(() => require('isows')).then((module) => module.WebSocket);
10
+ const socket = new WebSocket(url);
11
+ function onClose() {
12
+ socket.removeEventListener('close', onClose);
13
+ socket.removeEventListener('message', onMessage);
14
+ }
15
+ function onMessage({ data }) {
16
+ onResponse(JSON.parse(data));
17
+ }
18
+ socket.addEventListener('close', onClose);
19
+ socket.addEventListener('message', onMessage);
20
+ if (socket.readyState === WebSocket.CONNECTING) {
21
+ await new Promise((resolve, reject) => {
22
+ if (!socket)
23
+ return;
24
+ socket.onopen = resolve;
25
+ socket.onerror = reject;
26
+ });
27
+ }
28
+ const { close: close_ } = socket;
29
+ return Object.assign(socket, {
30
+ close() {
31
+ close_.bind(socket)();
32
+ onClose();
33
+ },
34
+ request({ body }) {
35
+ if (socket.readyState === socket.CLOSED ||
36
+ socket.readyState === socket.CLOSING)
37
+ throw new request_js_1.WebSocketRequestError({
38
+ body,
39
+ url: socket.url,
40
+ details: 'Socket is closed.',
41
+ });
42
+ return socket.send(JSON.stringify(body));
43
+ },
44
+ });
45
+ },
46
+ url,
47
+ });
48
+ }
49
+ exports.getWebSocketRpcClient = getWebSocketRpcClient;
50
+ //# sourceMappingURL=webSocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webSocket.js","sourceRoot":"","sources":["../../../utils/rpc/webSocket.ts"],"names":[],"mappings":";;;AAEA,wDAA+D;AAC/D,2CAIoB;AAEb,KAAK,UAAU,qBAAqB,CACzC,GAAW;IAEX,OAAO,IAAA,8BAAkB,EAAC;QACxB,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE;YAC5B,MAAM,SAAS,GAAG,MAAM,qCAAO,OAAO,GAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC1E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAA;YAEjC,SAAS,OAAO;gBACd,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBAC5C,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAClD,CAAC;YACD,SAAS,SAAS,CAAC,EAAE,IAAI,EAAgB;gBACvC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9B,CAAC;YAGD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACzC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAG7C,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC/C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACpC,IAAI,CAAC,MAAM;wBAAE,OAAM;oBACnB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAA;oBACvB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAA;gBACzB,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;YAEhC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC3B,KAAK;oBACH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;oBACrB,OAAO,EAAE,CAAA;gBACX,CAAC;gBACD,OAAO,CAAC,EAAE,IAAI,EAAE;oBACd,IACE,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM;wBACnC,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,OAAO;wBAEpC,MAAM,IAAI,kCAAqB,CAAC;4BAC9B,IAAI;4BACJ,GAAG,EAAE,MAAM,CAAC,GAAG;4BACf,OAAO,EAAE,mBAAmB;yBAC7B,CAAC,CAAA;oBAEJ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC1C,CAAC;aACmB,CAAC,CAAA;QACzB,CAAC;QACD,GAAG;KACJ,CAAC,CAAA;AACJ,CAAC;AArDD,sDAqDC"}
@@ -1,7 +1,7 @@
1
1
  import { RpcRequestError } from '../../errors/request.js';
2
2
  import { UrlRequiredError, } from '../../errors/transport.js';
3
3
  import { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js';
4
- import { rpc } from '../../utils/rpc.js';
4
+ import { getHttpRpcClient, } from '../../utils/rpc/http.js';
5
5
  import { createTransport, } from './createTransport.js';
6
6
  /**
7
7
  * @description Creates a HTTP transport that connects to a JSON-RPC API.
@@ -17,6 +17,7 @@ url, config = {}) {
17
17
  const url_ = url || chain?.rpcUrls.default.http[0];
18
18
  if (!url_)
19
19
  throw new UrlRequiredError();
20
+ const rpcClient = getHttpRpcClient(url_, { fetchOptions, timeout });
20
21
  return createTransport({
21
22
  key,
22
23
  name,
@@ -28,16 +29,18 @@ url, config = {}) {
28
29
  shouldSplitBatch(requests) {
29
30
  return requests.length > batchSize;
30
31
  },
31
- fn: (body) => rpc.http(url_, {
32
+ fn: (body) => rpcClient.request({
32
33
  body,
33
- fetchOptions,
34
- timeout,
35
34
  }),
36
35
  sort: (a, b) => a.id - b.id,
37
36
  });
38
37
  const fn = async (body) => batch
39
38
  ? schedule(body)
40
- : [await rpc.http(url_, { body, fetchOptions, timeout })];
39
+ : [
40
+ await rpcClient.request({
41
+ body,
42
+ }),
43
+ ];
41
44
  const [{ error, result }] = await fn(body);
42
45
  if (error)
43
46
  throw new RpcRequestError({
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../clients/transports/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EACL,gBAAgB,GAEjB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAClF,OAAO,EAAqC,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAE3E,OAAO,EAIL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AA6C7B;;GAEG;AACH,MAAM,UAAU,IAAI;AAClB,uEAAuE;AACvE,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,gBAAgB,EAAE,CAAA;QACvC,OAAO,eAAe,CACpB;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,oBAAoB,CAAC;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,GAAG,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,GAAG,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,eAAe,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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../clients/transports/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EACL,gBAAgB,GAEjB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAClF,OAAO,EAEL,gBAAgB,GACjB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAIL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AA6C7B;;GAEG;AACH,MAAM,UAAU,IAAI;AAClB,uEAAuE;AACvE,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,gBAAgB,EAAE,CAAA;QAEvC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;QAEnE,OAAO,eAAe,CACpB;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,oBAAoB,CAAC;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,eAAe,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"}
@@ -0,0 +1,77 @@
1
+ import { RpcRequestError } from '../../errors/request.js';
2
+ import {} from '../../errors/transport.js';
3
+ import { getIpcRpcClient } from '../../utils/rpc/ipc.js';
4
+ import { createTransport, } from './createTransport.js';
5
+ /**
6
+ * @description Creates an IPC transport that connects to a JSON-RPC API.
7
+ */
8
+ export function ipc(path, config = {}) {
9
+ const { key = 'ipc', name = 'IPC JSON-RPC', retryDelay } = config;
10
+ return ({ retryCount: retryCount_, timeout: timeout_ }) => {
11
+ const retryCount = config.retryCount ?? retryCount_;
12
+ const timeout = timeout_ ?? config.timeout ?? 10000;
13
+ return createTransport({
14
+ key,
15
+ name,
16
+ async request({ method, params }) {
17
+ const body = { method, params };
18
+ const rpcClient = await getIpcRpcClient(path);
19
+ const { error, result } = await rpcClient.requestAsync({
20
+ body,
21
+ timeout,
22
+ });
23
+ if (error)
24
+ throw new RpcRequestError({
25
+ body,
26
+ error,
27
+ url: path,
28
+ });
29
+ return result;
30
+ },
31
+ retryCount,
32
+ retryDelay,
33
+ timeout,
34
+ type: 'ipc',
35
+ }, {
36
+ getRpcClient() {
37
+ return getIpcRpcClient(path);
38
+ },
39
+ async subscribe({ params, onData, onError }) {
40
+ const rpcClient = await getIpcRpcClient(path);
41
+ const { result: subscriptionId } = await new Promise((resolve, reject) => rpcClient.request({
42
+ body: {
43
+ method: 'eth_subscribe',
44
+ params,
45
+ },
46
+ onResponse(response) {
47
+ if (response.error) {
48
+ reject(response.error);
49
+ onError?.(response.error);
50
+ return;
51
+ }
52
+ if (typeof response.id === 'number') {
53
+ resolve(response);
54
+ return;
55
+ }
56
+ if (response.method !== 'eth_subscription')
57
+ return;
58
+ onData(response.params);
59
+ },
60
+ }));
61
+ return {
62
+ subscriptionId,
63
+ async unsubscribe() {
64
+ return new Promise((resolve) => rpcClient.request({
65
+ body: {
66
+ method: 'eth_unsubscribe',
67
+ params: [subscriptionId],
68
+ },
69
+ onResponse: resolve,
70
+ }));
71
+ },
72
+ };
73
+ },
74
+ });
75
+ };
76
+ }
77
+ //# sourceMappingURL=ipc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../../clients/transports/ipc.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { RpcRequestError } from '../../errors/request.js';
2
2
  import { UrlRequiredError, } from '../../errors/transport.js';
3
- import { getSocket, rpc } from '../../utils/rpc.js';
3
+ import { getSocket } from '../../utils/rpc/compat.js';
4
+ import { getWebSocketRpcClient } from '../../utils/rpc/webSocket.js';
4
5
  import { createTransport, } from './createTransport.js';
5
6
  /**
6
7
  * @description Creates a WebSocket transport that connects to a JSON-RPC API.
@@ -20,8 +21,8 @@ url, config = {}) {
20
21
  name,
21
22
  async request({ method, params }) {
22
23
  const body = { method, params };
23
- const socket = await getSocket(url_);
24
- const { error, result } = await rpc.webSocketAsync(socket, {
24
+ const rpcClient = await getWebSocketRpcClient(url_);
25
+ const { error, result } = await rpcClient.requestAsync({
25
26
  body,
26
27
  timeout,
27
28
  });
@@ -41,9 +42,12 @@ url, config = {}) {
41
42
  getSocket() {
42
43
  return getSocket(url_);
43
44
  },
45
+ getRpcClient() {
46
+ return getWebSocketRpcClient(url_);
47
+ },
44
48
  async subscribe({ params, onData, onError }) {
45
- const socket = await getSocket(url_);
46
- const { result: subscriptionId } = await new Promise((resolve, reject) => rpc.webSocket(socket, {
49
+ const rpcClient = await getWebSocketRpcClient(url_);
50
+ const { result: subscriptionId } = await new Promise((resolve, reject) => rpcClient.request({
47
51
  body: {
48
52
  method: 'eth_subscribe',
49
53
  params,
@@ -66,7 +70,7 @@ url, config = {}) {
66
70
  return {
67
71
  subscriptionId,
68
72
  async unsubscribe() {
69
- return new Promise((resolve) => rpc.webSocket(socket, {
73
+ return new Promise((resolve) => rpcClient.request({
70
74
  body: {
71
75
  method: 'eth_unsubscribe',
72
76
  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,2 +1,2 @@
1
- export const version = '2.4.1';
1
+ export const version = '2.5.0';
2
2
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,3 @@
1
+ export { ipc, } from '../clients/transports/ipc.js';
2
+ export { getIpcRpcClient, } from '../utils/rpc/ipc.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,GAAG,GACJ,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAEL,eAAe,GAChB,MAAM,qBAAqB,CAAA"}
@@ -5,7 +5,10 @@ export { defineChain } from './chain/defineChain.js';
5
5
  export { extractChain, } from './chain/extractChain.js';
6
6
  export { getChainContractAddress, } from './chain/getChainContractAddress.js';
7
7
  export { arrayRegex, bytesRegex, integerRegex } from './regex.js';
8
- export { getSocket, rpc, } from './rpc.js';
8
+ export { getSocket, rpc, } from './rpc/compat.js';
9
+ export { getHttpRpcClient, } from './rpc/http.js';
10
+ export { getSocketRpcClient, socketClientCache, } from './rpc/socket.js';
11
+ export { getWebSocketRpcClient } from './rpc/webSocket.js';
9
12
  export { stringify } from './stringify.js';
10
13
  export { validateTypedData, } from './typedData.js';
11
14
  export { decodeAbiParameters, } from './abi/decodeAbiParameters.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,86 @@
1
+ // TODO(v3): This file is here for backwards compatibility, and to prevent breaking changes.
2
+ // These APIs will be removed in v3.
3
+ /* c8 ignore start */
4
+ import { WebSocketRequestError, } from '../../errors/request.js';
5
+ import {} from '../promise/withTimeout.js';
6
+ import { getHttpRpcClient } from './http.js';
7
+ import {} from './socket.js';
8
+ import { getWebSocketRpcClient } from './webSocket.js';
9
+ function webSocket(socketClient, { body, onError, onResponse }) {
10
+ socketClient.request({
11
+ body,
12
+ onError,
13
+ onResponse,
14
+ });
15
+ return socketClient;
16
+ }
17
+ async function webSocketAsync(socketClient, { body, timeout = 10000 }) {
18
+ return socketClient.requestAsync({
19
+ body,
20
+ timeout,
21
+ });
22
+ }
23
+ /**
24
+ * @deprecated use `getSocketClient` instead.
25
+ *
26
+ * ```diff
27
+ * -import { getSocket } from 'viem/utils'
28
+ * +import { getSocketClient } from 'viem/utils'
29
+ *
30
+ * -const socket = await getSocket(url)
31
+ * +const socketClient = await getSocketClient(url)
32
+ * +const socket = socketClient.socket
33
+ * ```
34
+ */
35
+ export async function getSocket(url) {
36
+ const client = await getWebSocketRpcClient(url);
37
+ return Object.assign(client.socket, {
38
+ requests: client.requests,
39
+ subscriptions: client.subscriptions,
40
+ });
41
+ }
42
+ export const rpc = {
43
+ /**
44
+ * @deprecated use `getHttpRpcClient` instead.
45
+ *
46
+ * ```diff
47
+ * -import { rpc } from 'viem/utils'
48
+ * +import { getHttpRpcClient } from 'viem/utils'
49
+ *
50
+ * -rpc.http(url, params)
51
+ * +const httpClient = getHttpRpcClient(url)
52
+ * +httpClient.request(params)
53
+ * ```
54
+ */
55
+ http(url, params) {
56
+ return getHttpRpcClient(url).request(params);
57
+ },
58
+ /**
59
+ * @deprecated use `getWebSocketRpcClient` instead.
60
+ *
61
+ * ```diff
62
+ * -import { rpc } from 'viem/utils'
63
+ * +import { getWebSocketRpcClient } from 'viem/utils'
64
+ *
65
+ * -rpc.webSocket(url, params)
66
+ * +const webSocketClient = getWebSocketRpcClient(url)
67
+ * +webSocketClient.request(params)
68
+ * ```
69
+ */
70
+ webSocket,
71
+ /**
72
+ * @deprecated use `getWebSocketRpcClient` instead.
73
+ *
74
+ * ```diff
75
+ * -import { rpc } from 'viem/utils'
76
+ * +import { getWebSocketRpcClient } from 'viem/utils'
77
+ *
78
+ * -const response = await rpc.webSocketAsync(url, params)
79
+ * +const webSocketClient = getWebSocketRpcClient(url)
80
+ * +const response = await webSocketClient.requestAsync(params)
81
+ * ```
82
+ */
83
+ webSocketAsync,
84
+ };
85
+ /* c8 ignore end */
86
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../utils/rpc/compat.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,oCAAoC;AAEpC,qBAAqB;AACrB,OAAO,EAEL,qBAAqB,GACtB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAA6B,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAA8B,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAwB,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;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;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,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;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,GAAW,EAAE,MAA6B;QAC7C,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9C,CAAC;IACD;;;;;;;;;;;OAWG;IACH,SAAS;IACT;;;;;;;;;;;OAWG;IACH,cAAc;CACf,CAAA;AACD,mBAAmB"}
@@ -0,0 +1,70 @@
1
+ import { HttpRequestError, TimeoutError, } from '../../errors/request.js';
2
+ import { withTimeout, } from '../promise/withTimeout.js';
3
+ import { stringify } from '../stringify.js';
4
+ import { idCache } from './id.js';
5
+ export function getHttpRpcClient(url, options = {}) {
6
+ return {
7
+ async request(params) {
8
+ const { body, fetchOptions = {}, timeout = options.timeout ?? 10000, } = params;
9
+ const { headers, method, signal: signal_, } = { ...options.fetchOptions, ...fetchOptions };
10
+ try {
11
+ const response = await withTimeout(async ({ signal }) => {
12
+ const response = await fetch(url, {
13
+ ...fetchOptions,
14
+ body: Array.isArray(body)
15
+ ? stringify(body.map((body) => ({
16
+ jsonrpc: '2.0',
17
+ id: body.id ?? idCache.take(),
18
+ ...body,
19
+ })))
20
+ : stringify({
21
+ jsonrpc: '2.0',
22
+ id: body.id ?? idCache.take(),
23
+ ...body,
24
+ }),
25
+ headers: {
26
+ ...headers,
27
+ 'Content-Type': 'application/json',
28
+ },
29
+ method: method || 'POST',
30
+ signal: signal_ || (timeout > 0 ? signal : undefined),
31
+ });
32
+ return response;
33
+ }, {
34
+ errorInstance: new TimeoutError({ body, url }),
35
+ timeout,
36
+ signal: true,
37
+ });
38
+ let data;
39
+ if (response.headers.get('Content-Type')?.startsWith('application/json')) {
40
+ data = await response.json();
41
+ }
42
+ else {
43
+ data = await response.text();
44
+ }
45
+ if (!response.ok) {
46
+ throw new HttpRequestError({
47
+ body,
48
+ details: stringify(data.error) || response.statusText,
49
+ headers: response.headers,
50
+ status: response.status,
51
+ url,
52
+ });
53
+ }
54
+ return data;
55
+ }
56
+ catch (err) {
57
+ if (err instanceof HttpRequestError)
58
+ throw err;
59
+ if (err instanceof TimeoutError)
60
+ throw err;
61
+ throw new HttpRequestError({
62
+ body,
63
+ details: err.message,
64
+ url,
65
+ });
66
+ }
67
+ },
68
+ };
69
+ }
70
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../utils/rpc/http.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,YAAY,GAEb,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAEL,WAAW,GACZ,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAoCjC,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,UAAgC,EAAE;IAElC,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,MAAM;YAClB,MAAM,EACJ,IAAI,EACJ,YAAY,GAAG,EAAE,EACjB,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAM,GACpC,GAAG,MAAM,CAAA;YACV,MAAM,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EAAE,OAAO,GAChB,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE,CAAA;YAEhD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;oBACnB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;wBAChC,GAAG,YAAY;wBACf,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;4BACvB,CAAC,CAAC,SAAS,CACP,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gCAClB,OAAO,EAAE,KAAK;gCACd,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE;gCAC7B,GAAG,IAAI;6BACR,CAAC,CAAC,CACJ;4BACH,CAAC,CAAC,SAAS,CAAC;gCACR,OAAO,EAAE,KAAK;gCACd,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE;gCAC7B,GAAG,IAAI;6BACR,CAAC;wBACN,OAAO,EAAE;4BACP,GAAG,OAAO;4BACV,cAAc,EAAE,kBAAkB;yBACnC;wBACD,MAAM,EAAE,MAAM,IAAI,MAAM;wBACxB,MAAM,EAAE,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;qBACtD,CAAC,CAAA;oBACF,OAAO,QAAQ,CAAA;gBACjB,CAAC,EACD;oBACE,aAAa,EAAE,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;oBAC9C,OAAO;oBACP,MAAM,EAAE,IAAI;iBACb,CACF,CAAA;gBAED,IAAI,IAAS,CAAA;gBACb,IACE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,EACpE,CAAC;oBACD,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAC9B,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAC9B,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,gBAAgB,CAAC;wBACzB,IAAI;wBACJ,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU;wBACrD,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,GAAG;qBACJ,CAAC,CAAA;gBACJ,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,gBAAgB;oBAAE,MAAM,GAAG,CAAA;gBAC9C,IAAI,GAAG,YAAY,YAAY;oBAAE,MAAM,GAAG,CAAA;gBAC1C,MAAM,IAAI,gBAAgB,CAAC;oBACzB,IAAI;oBACJ,OAAO,EAAG,GAAa,CAAC,OAAO;oBAC/B,GAAG;iBACJ,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ export function createIdStore() {
2
+ return {
3
+ current: 0,
4
+ take() {
5
+ return this.current++;
6
+ },
7
+ reset() {
8
+ this.current = 0;
9
+ },
10
+ };
11
+ }
12
+ export const idCache = /*#__PURE__*/ createIdStore();
13
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../utils/rpc/id.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,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;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,EAAE,CAAA"}
@@ -0,0 +1,71 @@
1
+ import { connect } from 'node:net';
2
+ import { WebSocketRequestError } from '../../index.js';
3
+ import { getSocketRpcClient, } from './socket.js';
4
+ const openingBrace = '{'.charCodeAt(0);
5
+ const closingBrace = '}'.charCodeAt(0);
6
+ export function extractMessages(buffer) {
7
+ const messages = [];
8
+ let cursor = 0;
9
+ let level = 0;
10
+ for (let i = 0; i < buffer.length; i++) {
11
+ if (buffer[i] === openingBrace)
12
+ level++;
13
+ if (buffer[i] === closingBrace)
14
+ level--;
15
+ if (level === 0) {
16
+ const message = buffer.subarray(cursor, i + 1);
17
+ if (message[0] === openingBrace &&
18
+ message[message.length - 1] === closingBrace)
19
+ messages.push(message);
20
+ cursor = i + 1;
21
+ }
22
+ }
23
+ return [messages, buffer.subarray(cursor)];
24
+ }
25
+ export async function getIpcRpcClient(path) {
26
+ return getSocketRpcClient({
27
+ async getSocket({ onResponse }) {
28
+ const socket = connect(path);
29
+ function onClose() {
30
+ socket.off('close', onClose);
31
+ socket.off('message', onData);
32
+ }
33
+ let lastRemaining = Buffer.alloc(0);
34
+ function onData(buffer) {
35
+ const [messages, remaining] = extractMessages(Buffer.concat([lastRemaining, buffer]));
36
+ for (const message of messages) {
37
+ const response = JSON.parse(Buffer.from(message).toString());
38
+ onResponse(response);
39
+ }
40
+ lastRemaining = remaining;
41
+ }
42
+ socket.on('close', onClose);
43
+ socket.on('data', onData);
44
+ // Wait for the socket to open.
45
+ await new Promise((resolve, reject) => {
46
+ socket.on('ready', () => {
47
+ resolve();
48
+ socket.off('error', reject);
49
+ });
50
+ socket.on('error', reject);
51
+ });
52
+ return Object.assign(socket, {
53
+ close() {
54
+ socket.destroy();
55
+ socket.end();
56
+ },
57
+ request({ body }) {
58
+ if (socket.readyState !== 'open')
59
+ throw new WebSocketRequestError({
60
+ body,
61
+ url: path,
62
+ details: 'Socket is closed.',
63
+ });
64
+ return socket.write(JSON.stringify(body));
65
+ },
66
+ });
67
+ },
68
+ url: path,
69
+ });
70
+ }
71
+ //# 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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"}