viem 2.31.6 → 2.31.7

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,11 @@
1
1
  # viem
2
2
 
3
+ ## 2.31.7
4
+
5
+ ### Patch Changes
6
+
7
+ - [#3772](https://github.com/wevm/viem/pull/3772) [`d79fb7ea8274e98911aa4a42190b8810816585cc`](https://github.com/wevm/viem/commit/d79fb7ea8274e98911aa4a42190b8810816585cc) Thanks [@hazelnutcloud](https://github.com/hazelnutcloud)! - Fixed issue where WebSocket subscriptions did not replay on reconnect.
8
+
3
9
  ## 2.31.6
4
10
 
5
11
  ### Patch Changes
@@ -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.31.6';
4
+ exports.version = '2.31.7';
5
5
  //# sourceMappingURL=version.js.map
@@ -11,12 +11,13 @@ async function getSocketRpcClient(parameters) {
11
11
  const { getSocket, keepAlive = true, key = 'socket', reconnect = true, url, } = parameters;
12
12
  const { interval: keepAliveInterval = 30_000 } = typeof keepAlive === 'object' ? keepAlive : {};
13
13
  const { attempts = 5, delay = 2_000 } = typeof reconnect === 'object' ? reconnect : {};
14
- let socketClient = exports.socketClientCache.get(`${key}:${url}`);
14
+ const id = JSON.stringify({ keepAlive, key, url, reconnect });
15
+ let socketClient = exports.socketClientCache.get(id);
15
16
  if (socketClient)
16
17
  return socketClient;
17
18
  let reconnectCount = 0;
18
19
  const { schedule } = (0, createBatchScheduler_js_1.createBatchScheduler)({
19
- id: `${key}:${url}`,
20
+ id,
20
21
  fn: async () => {
21
22
  const requests = new Map();
22
23
  const subscriptions = new Map();
@@ -78,6 +79,15 @@ async function getSocketRpcClient(parameters) {
78
79
  clearInterval(keepAliveTimer);
79
80
  keepAliveTimer = setInterval(() => socket.ping?.(), keepAliveInterval);
80
81
  }
82
+ if (reconnect && subscriptions.size > 0) {
83
+ const subscriptionEntries = subscriptions.entries();
84
+ for (const [key, { onResponse, body, onError },] of subscriptionEntries) {
85
+ if (!body)
86
+ continue;
87
+ subscriptions.delete(key);
88
+ socketClient?.request({ body, onResponse, onError });
89
+ }
90
+ }
81
91
  return result;
82
92
  }
83
93
  await setup();
@@ -86,7 +96,7 @@ async function getSocketRpcClient(parameters) {
86
96
  close() {
87
97
  keepAliveTimer && clearInterval(keepAliveTimer);
88
98
  socket.close();
89
- exports.socketClientCache.delete(`${key}:${url}`);
99
+ exports.socketClientCache.delete(id);
90
100
  },
91
101
  get socket() {
92
102
  return socket;
@@ -103,6 +113,7 @@ async function getSocketRpcClient(parameters) {
103
113
  subscriptions.set(response.result, {
104
114
  onResponse: callback,
105
115
  onError,
116
+ body,
106
117
  });
107
118
  if (body.method === 'eth_unsubscribe')
108
119
  subscriptions.delete(body.params?.[0]);
@@ -136,7 +147,7 @@ async function getSocketRpcClient(parameters) {
136
147
  subscriptions,
137
148
  url,
138
149
  };
139
- exports.socketClientCache.set(`${key}:${url}`, socketClient);
150
+ exports.socketClientCache.set(id, socketClient);
140
151
  return [socketClient];
141
152
  },
142
153
  });
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../utils/rpc/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../utils/rpc/socket.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export const version = '2.31.6';
1
+ export const version = '2.31.7';
2
2
  //# sourceMappingURL=version.js.map
@@ -7,13 +7,14 @@ export async function getSocketRpcClient(parameters) {
7
7
  const { getSocket, keepAlive = true, key = 'socket', reconnect = true, url, } = parameters;
8
8
  const { interval: keepAliveInterval = 30_000 } = typeof keepAlive === 'object' ? keepAlive : {};
9
9
  const { attempts = 5, delay = 2_000 } = typeof reconnect === 'object' ? reconnect : {};
10
- let socketClient = socketClientCache.get(`${key}:${url}`);
10
+ const id = JSON.stringify({ keepAlive, key, url, reconnect });
11
+ let socketClient = socketClientCache.get(id);
11
12
  // If the socket already exists, return it.
12
13
  if (socketClient)
13
14
  return socketClient;
14
15
  let reconnectCount = 0;
15
16
  const { schedule } = createBatchScheduler({
16
- id: `${key}:${url}`,
17
+ id,
17
18
  fn: async () => {
18
19
  // Set up a cache for incoming "synchronous" requests.
19
20
  const requests = new Map();
@@ -85,6 +86,15 @@ export async function getSocketRpcClient(parameters) {
85
86
  clearInterval(keepAliveTimer);
86
87
  keepAliveTimer = setInterval(() => socket.ping?.(), keepAliveInterval);
87
88
  }
89
+ if (reconnect && subscriptions.size > 0) {
90
+ const subscriptionEntries = subscriptions.entries();
91
+ for (const [key, { onResponse, body, onError },] of subscriptionEntries) {
92
+ if (!body)
93
+ continue;
94
+ subscriptions.delete(key);
95
+ socketClient?.request({ body, onResponse, onError });
96
+ }
97
+ }
88
98
  return result;
89
99
  }
90
100
  await setup();
@@ -94,7 +104,7 @@ export async function getSocketRpcClient(parameters) {
94
104
  close() {
95
105
  keepAliveTimer && clearInterval(keepAliveTimer);
96
106
  socket.close();
97
- socketClientCache.delete(`${key}:${url}`);
107
+ socketClientCache.delete(id);
98
108
  },
99
109
  get socket() {
100
110
  return socket;
@@ -113,6 +123,7 @@ export async function getSocketRpcClient(parameters) {
113
123
  subscriptions.set(response.result, {
114
124
  onResponse: callback,
115
125
  onError,
126
+ body,
116
127
  });
117
128
  // If we are unsubscribing from a topic, we want to remove the listener.
118
129
  if (body.method === 'eth_unsubscribe')
@@ -147,7 +158,7 @@ export async function getSocketRpcClient(parameters) {
147
158
  subscriptions,
148
159
  url,
149
160
  };
150
- socketClientCache.set(`${key}:${url}`, socketClient);
161
+ socketClientCache.set(id, socketClient);
151
162
  return [socketClient];
152
163
  },
153
164
  });
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../utils/rpc/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../utils/rpc/socket.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "2.31.6";
1
+ export declare const version = "2.31.7";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -34,10 +34,12 @@ export declare function getSocket(url: string): Promise<WebSocket & {
34
34
  requests: Map<string | number, {
35
35
  onResponse: (message: any) => void;
36
36
  onError?: ((error?: Error | Event | undefined) => void) | undefined;
37
+ body?: import("../../types/rpc.js").RpcRequest;
37
38
  }>;
38
39
  subscriptions: Map<string | number, {
39
40
  onResponse: (message: any) => void;
40
41
  onError?: ((error?: Error | Event | undefined) => void) | undefined;
42
+ body?: import("../../types/rpc.js").RpcRequest;
41
43
  }>;
42
44
  }>;
43
45
  export declare const rpc: {
@@ -1 +1 @@
1
- {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../../../utils/rpc/compat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,KAAK,qBAAqB,EAAoB,MAAM,WAAW,CAAA;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAGlD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CACvC,eAAe,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CACtC,CAAC,CAAC,CAAC,CAAA;AACJ,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;AAC5D,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG,SAAS,CAAA;AAElE,iBAAS,SAAS,CAChB,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,EACxC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,gBAAgB,GAC9C,mBAAmB,CAOrB;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAC5C,eAAe,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAC3C,CAAC,CAAC,CAAC,CAAA;AACJ,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAA;AAClD,MAAM,MAAM,uBAAuB,GAC/B,kBAAkB,GAClB,gBAAgB,GAChB,oBAAoB,GACpB,SAAS,CAAA;AAEb,iBAAe,cAAc,CAC3B,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,EACxC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,qBAAqB,GAChD,OAAO,CAAC,wBAAwB,CAAC,CAKnC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM;;;;;;;;;yBArDpC,CAAA;;;;yBAAA,CAAA;;GA2DN;AAED,eAAO,MAAM,GAAG;IACd;;;;;;;;;;;OAWG;cACO,MAAM,UAAU,qBAAqB;IAG/C;;;;;;;;;;;OAWG;;IAEH;;;;;;;;;;;OAWG;;CAEJ,CAAA"}
1
+ {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../../../utils/rpc/compat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,KAAK,qBAAqB,EAAoB,MAAM,WAAW,CAAA;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAGlD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CACvC,eAAe,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CACtC,CAAC,CAAC,CAAC,CAAA;AACJ,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;AAC5D,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG,SAAS,CAAA;AAElE,iBAAS,SAAS,CAChB,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,EACxC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,gBAAgB,GAC9C,mBAAmB,CAOrB;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAC5C,eAAe,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAC3C,CAAC,CAAC,CAAC,CAAA;AACJ,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAA;AAClD,MAAM,MAAM,uBAAuB,GAC/B,kBAAkB,GAClB,gBAAgB,GAChB,oBAAoB,GACpB,SAAS,CAAA;AAEb,iBAAe,cAAc,CAC3B,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,EACxC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,qBAAqB,GAChD,OAAO,CAAC,wBAAwB,CAAC,CAKnC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM;;;;;;;;;yBArDpC,CAAA;;;;;yBAAA,CAAA;;;GA2DN;AAED,eAAO,MAAM,GAAG;IACd;;;;;;;;;;;OAWG;cACO,MAAM,UAAU,qBAAqB;IAG/C;;;;;;;;;;;OAWG;;IAEH;;;;;;;;;;;OAWG;;CAEJ,CAAA"}
@@ -5,6 +5,7 @@ type Id = string | number;
5
5
  type CallbackFn = {
6
6
  onResponse: (message: any) => void;
7
7
  onError?: ((error?: Error | Event | undefined) => void) | undefined;
8
+ body?: RpcRequest;
8
9
  };
9
10
  type CallbackMap = Map<Id, CallbackFn>;
10
11
  export type GetSocketParameters = {
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../utils/rpc/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../utils/rpc/socket.ts"],"names":[],"mappings":"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"}
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.31.6'
1
+ export const version = '2.31.7'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.31.6",
4
+ "version": "2.31.7",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -12,6 +12,7 @@ type Id = string | number
12
12
  type CallbackFn = {
13
13
  onResponse: (message: any) => void
14
14
  onError?: ((error?: Error | Event | undefined) => void) | undefined
15
+ body?: RpcRequest
15
16
  }
16
17
  type CallbackMap = Map<Id, CallbackFn>
17
18
 
@@ -108,7 +109,8 @@ export async function getSocketRpcClient<socket extends {}>(
108
109
  const { attempts = 5, delay = 2_000 } =
109
110
  typeof reconnect === 'object' ? reconnect : {}
110
111
 
111
- let socketClient = socketClientCache.get(`${key}:${url}`)
112
+ const id = JSON.stringify({ keepAlive, key, url, reconnect })
113
+ let socketClient = socketClientCache.get(id)
112
114
 
113
115
  // If the socket already exists, return it.
114
116
  if (socketClient) return socketClient as {} as SocketRpcClient<socket>
@@ -118,7 +120,7 @@ export async function getSocketRpcClient<socket extends {}>(
118
120
  undefined,
119
121
  [SocketRpcClient<socket>]
120
122
  >({
121
- id: `${key}:${url}`,
123
+ id,
122
124
  fn: async () => {
123
125
  // Set up a cache for incoming "synchronous" requests.
124
126
  const requests = new Map<Id, CallbackFn>()
@@ -196,6 +198,19 @@ export async function getSocketRpcClient<socket extends {}>(
196
198
  keepAliveTimer = setInterval(() => socket.ping?.(), keepAliveInterval)
197
199
  }
198
200
 
201
+ if (reconnect && subscriptions.size > 0) {
202
+ const subscriptionEntries = subscriptions.entries()
203
+ for (const [
204
+ key,
205
+ { onResponse, body, onError },
206
+ ] of subscriptionEntries) {
207
+ if (!body) continue
208
+
209
+ subscriptions.delete(key)
210
+ socketClient?.request({ body, onResponse, onError })
211
+ }
212
+ }
213
+
199
214
  return result
200
215
  }
201
216
  await setup()
@@ -206,7 +221,7 @@ export async function getSocketRpcClient<socket extends {}>(
206
221
  close() {
207
222
  keepAliveTimer && clearInterval(keepAliveTimer)
208
223
  socket.close()
209
- socketClientCache.delete(`${key}:${url}`)
224
+ socketClientCache.delete(id)
210
225
  },
211
226
  get socket() {
212
227
  return socket
@@ -228,6 +243,7 @@ export async function getSocketRpcClient<socket extends {}>(
228
243
  subscriptions.set(response.result, {
229
244
  onResponse: callback,
230
245
  onError,
246
+ body,
231
247
  })
232
248
 
233
249
  // If we are unsubscribing from a topic, we want to remove the listener.
@@ -270,7 +286,7 @@ export async function getSocketRpcClient<socket extends {}>(
270
286
  subscriptions,
271
287
  url,
272
288
  }
273
- socketClientCache.set(`${key}:${url}`, socketClient)
289
+ socketClientCache.set(id, socketClient)
274
290
 
275
291
  return [socketClient as {} as SocketRpcClient<socket>]
276
292
  },