@reown/appkit-adapter-ethers5 1.6.4 → 1.6.5-rc.0.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.
@@ -1,15 +1,16 @@
1
- import { AdapterBlueprint } from '@reown/appkit/adapters';
2
- import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';
3
- import { CoreHelperUtil } from '@reown/appkit-core';
4
- import { ConstantsUtil, PresetsUtil } from '@reown/appkit-utils';
5
- import { EthersHelpersUtil } from '@reown/appkit-utils/ethers';
6
- import { WcConstantsUtil, WcHelpersUtil } from '@reown/appkit';
1
+ import { CoinbaseWalletSDK } from '@coinbase/wallet-sdk';
7
2
  import UniversalProvider from '@walletconnect/universal-provider';
8
3
  import * as ethers from 'ethers';
9
- import { CoinbaseWalletSDK } from '@coinbase/wallet-sdk';
10
- import { Ethers5Methods } from './utils/Ethers5Methods.js';
11
4
  import { formatEther } from 'ethers/lib/utils.js';
5
+ import { WcConstantsUtil } from '@reown/appkit';
6
+ import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';
7
+ import { CoreHelperUtil, OptionsController } from '@reown/appkit-core';
8
+ import { ConstantsUtil, PresetsUtil } from '@reown/appkit-utils';
9
+ import { EthersHelpersUtil } from '@reown/appkit-utils/ethers';
10
+ import { AdapterBlueprint } from '@reown/appkit/adapters';
11
+ import { WalletConnectConnector } from '@reown/appkit/connectors';
12
12
  import { ProviderUtil } from '@reown/appkit/store';
13
+ import { Ethers5Methods } from './utils/Ethers5Methods.js';
13
14
  export class Ethers5Adapter extends AdapterBlueprint {
14
15
  constructor() {
15
16
  super({});
@@ -181,17 +182,12 @@ export class Ethers5Adapter extends AdapterBlueprint {
181
182
  }
182
183
  });
183
184
  }
184
- async connectWalletConnect(onUri) {
185
- const connector = this.connectors.find(c => c.type === 'WALLET_CONNECT');
186
- const provider = connector?.provider;
187
- if (!this.caipNetworks || !provider) {
188
- throw new Error('UniversalAdapter:connectWalletConnect - caipNetworks or provider is undefined');
189
- }
190
- provider.on('display_uri', (uri) => {
191
- onUri(uri);
192
- });
193
- const namespaces = WcHelpersUtil.createNamespaces(this.caipNetworks);
194
- await provider.connect({ optionalNamespaces: namespaces });
185
+ setUniversalProvider(universalProvider) {
186
+ this.addConnector(new WalletConnectConnector({
187
+ provider: universalProvider,
188
+ caipNetworks: this.caipNetworks || [],
189
+ namespace: 'eip155'
190
+ }));
195
191
  }
196
192
  eip6963EventHandler(event) {
197
193
  if (event.detail) {
@@ -232,7 +228,8 @@ export class Ethers5Adapter extends AdapterBlueprint {
232
228
  let requestChainId = undefined;
233
229
  if (type === 'AUTH') {
234
230
  const { address } = await selectedProvider.connect({
235
- chainId
231
+ chainId,
232
+ preferredAccountType: OptionsController.state.defaultAccountTypes.eip155
236
233
  });
237
234
  accounts = [address];
238
235
  }
@@ -243,11 +240,27 @@ export class Ethers5Adapter extends AdapterBlueprint {
243
240
  requestChainId = await selectedProvider.request({
244
241
  method: 'eth_chainId'
245
242
  });
243
+ if (requestChainId !== chainId) {
244
+ const caipNetwork = this.caipNetworks?.find(n => n.id === chainId);
245
+ if (!caipNetwork) {
246
+ throw new Error('Ethers5Adapter:connect - could not find the caipNetwork to switch');
247
+ }
248
+ try {
249
+ await this.switchNetwork({
250
+ caipNetwork,
251
+ provider: selectedProvider,
252
+ providerType: type
253
+ });
254
+ }
255
+ catch (error) {
256
+ throw new Error('Ethers5Adapter:connect - Switch network failed');
257
+ }
258
+ }
246
259
  this.listenProviderEvents(selectedProvider);
247
260
  }
248
261
  return {
249
262
  address: accounts[0],
250
- chainId: Number(requestChainId) || Number(chainId),
263
+ chainId: Number(chainId),
251
264
  provider: selectedProvider,
252
265
  type: type,
253
266
  id
@@ -277,7 +290,10 @@ export class Ethers5Adapter extends AdapterBlueprint {
277
290
  const { id, chainId } = params;
278
291
  const connector = this.connectors.find(c => c.id === id);
279
292
  if (connector && connector.type === 'AUTH' && chainId) {
280
- await connector.provider.connect({ chainId });
293
+ await connector.provider.connect({
294
+ chainId,
295
+ preferredAccountType: OptionsController.state.defaultAccountTypes.eip155
296
+ });
281
297
  }
282
298
  }
283
299
  async disconnect(params) {
@@ -369,36 +385,26 @@ export class Ethers5Adapter extends AdapterBlueprint {
369
385
  }
370
386
  async switchNetwork(params) {
371
387
  const { caipNetwork, provider, providerType } = params;
372
- if (providerType === 'WALLET_CONNECT') {
373
- ;
374
- provider.setDefaultChain(String(`eip155:${String(caipNetwork.id)}`));
375
- }
376
- else if (providerType === 'AUTH') {
377
- const authProvider = provider;
378
- await authProvider.switchNetwork(caipNetwork.id);
379
- await authProvider.connect({
380
- chainId: caipNetwork.id
388
+ if (providerType === 'AUTH' || providerType === 'WALLET_CONNECT') {
389
+ await super.switchNetwork(params);
390
+ return;
391
+ }
392
+ try {
393
+ await provider.request({
394
+ method: 'wallet_switchEthereumChain',
395
+ params: [{ chainId: EthersHelpersUtil.numberToHexString(caipNetwork.id) }]
381
396
  });
382
397
  }
383
- else {
384
- try {
385
- await provider.request({
386
- method: 'wallet_switchEthereumChain',
387
- params: [{ chainId: EthersHelpersUtil.numberToHexString(caipNetwork.id) }]
388
- });
398
+ catch (switchError) {
399
+ if (switchError.code === WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID ||
400
+ switchError.code === WcConstantsUtil.ERROR_CODE_DEFAULT ||
401
+ switchError?.data?.originalError?.code === WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID) {
402
+ await EthersHelpersUtil.addEthereumChain(provider, caipNetwork);
389
403
  }
390
- catch (switchError) {
391
- if (switchError.code === WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID ||
392
- switchError.code === WcConstantsUtil.ERROR_CODE_DEFAULT ||
393
- switchError?.data?.originalError?.code ===
394
- WcConstantsUtil.ERROR_CODE_UNRECOGNIZED_CHAIN_ID) {
395
- await EthersHelpersUtil.addEthereumChain(provider, caipNetwork);
396
- }
397
- else if (providerType === 'ANNOUNCED' ||
398
- providerType === 'EXTERNAL' ||
399
- providerType === 'INJECTED') {
400
- throw new Error('Chain is not supported');
401
- }
404
+ else if (providerType === 'ANNOUNCED' ||
405
+ providerType === 'EXTERNAL' ||
406
+ providerType === 'INJECTED') {
407
+ throw new Error('Chain is not supported');
402
408
  }
403
409
  }
404
410
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,408 @@
1
+ import UniversalProvider from '@walletconnect/universal-provider';
2
+ import { providers } from 'ethers';
3
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
4
+ import { Emitter } from '@reown/appkit-common';
5
+ import { CaipNetworksUtil } from '@reown/appkit-utils';
6
+ import { mainnet, polygon } from '@reown/appkit/networks';
7
+ import { ProviderUtil } from '@reown/appkit/store';
8
+ import { Ethers5Adapter } from '../client';
9
+ import { Ethers5Methods } from '../utils/Ethers5Methods';
10
+ vi.mock('ethers', async (importOriginal) => {
11
+ const actual = await importOriginal();
12
+ return {
13
+ ...actual,
14
+ formatEther: vi.fn(() => '1.5'),
15
+ providers: {
16
+ InfuraProvider: vi.fn(() => ({
17
+ lookupAddress: vi.fn(),
18
+ getAvatar: vi.fn()
19
+ })),
20
+ JsonRpcProvider: vi.fn(() => ({
21
+ getBalance: vi.fn()
22
+ })),
23
+ Web3Provider: vi.fn(() => ({
24
+ on: vi.fn((event, callback) => {
25
+ if (event === 'pending') {
26
+ callback();
27
+ }
28
+ })
29
+ }))
30
+ }
31
+ };
32
+ });
33
+ vi.mock('../utils/Ethers5Methods', () => ({
34
+ Ethers5Methods: {
35
+ signMessage: vi.fn(),
36
+ sendTransaction: vi.fn(),
37
+ writeContract: vi.fn(),
38
+ estimateGas: vi.fn(),
39
+ getEnsAddress: vi.fn(),
40
+ parseUnits: vi.fn(),
41
+ formatUnits: vi.fn(),
42
+ hexStringToNumber: vi.fn(hex => parseInt(hex, 16)),
43
+ numberToHexString: vi.fn(num => `0x${num.toString(16)}`)
44
+ }
45
+ }));
46
+ const mockProvider = {
47
+ request: vi.fn(),
48
+ on: vi.fn(),
49
+ removeListener: vi.fn()
50
+ };
51
+ const mockWalletConnectProvider = {
52
+ connect: vi.fn(),
53
+ disconnect: vi.fn(),
54
+ on: vi.fn(),
55
+ removeListener: vi.fn(),
56
+ session: true,
57
+ setDefaultChain: vi.fn()
58
+ };
59
+ const mockAuthProvider = {
60
+ connect: vi.fn(),
61
+ disconnect: vi.fn(),
62
+ switchNetwork: vi.fn(),
63
+ getUser: vi.fn()
64
+ };
65
+ const mockNetworks = [mainnet, polygon];
66
+ const mockCaipNetworks = CaipNetworksUtil.extendCaipNetworks(mockNetworks, {
67
+ projectId: 'test-project-id',
68
+ customNetworkImageUrls: {}
69
+ });
70
+ describe('Ethers5Adapter', () => {
71
+ let adapter;
72
+ beforeEach(() => {
73
+ vi.clearAllMocks();
74
+ adapter = new Ethers5Adapter();
75
+ });
76
+ describe('Ethers5Adapter -constructor', () => {
77
+ it('should initialize with correct parameters', () => {
78
+ expect(adapter.adapterType).toBe('ethers');
79
+ expect(adapter.namespace).toBe('eip155');
80
+ });
81
+ it('should not set info property for injected connector', () => {
82
+ const mockConnectors = [
83
+ {
84
+ id: 'Browser Wallet',
85
+ name: 'Browser Wallet',
86
+ type: 'injected',
87
+ info: { rdns: 'Browser Wallet' }
88
+ }
89
+ ];
90
+ adapter.syncConnectors(mockConnectors);
91
+ const injectedConnector = mockConnectors.filter((c) => c.id === 'injected')[0];
92
+ expect(injectedConnector?.info).toBeUndefined();
93
+ });
94
+ });
95
+ describe('Ethers5Adapter - signMessage', () => {
96
+ it('should sign message successfully', async () => {
97
+ const mockSignature = '0xmocksignature';
98
+ vi.mocked(Ethers5Methods.signMessage).mockResolvedValue(mockSignature);
99
+ const result = await adapter.signMessage({
100
+ message: 'Hello',
101
+ address: '0x123',
102
+ provider: mockProvider
103
+ });
104
+ expect(result.signature).toBe(mockSignature);
105
+ });
106
+ it('should throw error when provider is undefined', async () => {
107
+ await expect(adapter.signMessage({
108
+ message: 'Hello',
109
+ address: '0x123'
110
+ })).rejects.toThrow('Provider is undefined');
111
+ });
112
+ });
113
+ describe('Ethers5Adapter -sendTransaction', () => {
114
+ it('should send transaction successfully', async () => {
115
+ const mockTxHash = '0xtxhash';
116
+ vi.mocked(Ethers5Methods.sendTransaction).mockResolvedValue(mockTxHash);
117
+ const result = await adapter.sendTransaction({
118
+ value: BigInt(1000),
119
+ to: '0x456',
120
+ data: '0x',
121
+ gas: BigInt(21000),
122
+ gasPrice: BigInt(2000000000),
123
+ address: '0x123',
124
+ provider: mockProvider,
125
+ caipNetwork: mockCaipNetworks[0]
126
+ });
127
+ expect(result.hash).toBe(mockTxHash);
128
+ });
129
+ it('should throw error when provider is undefined', async () => {
130
+ await expect(adapter.sendTransaction({
131
+ value: BigInt(1000),
132
+ to: '0x456',
133
+ data: '0x',
134
+ gas: BigInt(21000),
135
+ gasPrice: BigInt(2000000000),
136
+ address: '0x123'
137
+ })).rejects.toThrow('Provider is undefined');
138
+ });
139
+ });
140
+ describe('Ethers5Adapter -writeContract', () => {
141
+ it('should write contract successfully', async () => {
142
+ const mockTxHash = '0xtxhash';
143
+ vi.mocked(Ethers5Methods.writeContract).mockResolvedValue(mockTxHash);
144
+ const result = await adapter.writeContract({
145
+ abi: [],
146
+ method: 'transfer',
147
+ caipAddress: 'eip155:1:0x123',
148
+ fromAddress: '0x123',
149
+ args: ['0x789', BigInt(1000)],
150
+ tokenAddress: '0x789',
151
+ provider: mockProvider,
152
+ caipNetwork: mockCaipNetworks[0],
153
+ chainNamespace: 'eip155'
154
+ });
155
+ expect(result.hash).toBe(mockTxHash);
156
+ });
157
+ });
158
+ describe('Ethers5Adapter -connect', () => {
159
+ it('should connect with external provider', async () => {
160
+ adapter.caipNetworks = mockCaipNetworks;
161
+ vi.mocked(mockProvider.request).mockImplementation(request => {
162
+ if (request.method === 'eth_requestAccounts')
163
+ return Promise.resolve(['0x123']);
164
+ if (request.method === 'eth_chainId')
165
+ return Promise.resolve('0x1');
166
+ if (request.method === 'wallet_switchEthereumChain')
167
+ return Promise.resolve(null);
168
+ return Promise.resolve(null);
169
+ });
170
+ const connectors = [
171
+ {
172
+ id: 'test',
173
+ provider: mockProvider,
174
+ chains: [1],
175
+ type: 'EXTERNAL',
176
+ chain: 1
177
+ }
178
+ ];
179
+ Object.defineProperty(adapter, 'connectors', {
180
+ value: connectors
181
+ });
182
+ const result = await adapter.connect({
183
+ id: 'test',
184
+ provider: mockProvider,
185
+ type: 'EXTERNAL',
186
+ chainId: 1
187
+ });
188
+ expect(result.address).toBe('0x123');
189
+ expect(result.chainId).toBe(1);
190
+ });
191
+ it('should call switch network if wallet chain id is different than requested chain id', async () => {
192
+ adapter.caipNetworks = mockCaipNetworks;
193
+ vi.mocked(mockProvider.request).mockImplementation(request => {
194
+ if (request.method === 'eth_requestAccounts')
195
+ return Promise.resolve(['0x123']);
196
+ if (request.method === 'eth_chainId')
197
+ return Promise.resolve('137');
198
+ if (request.method === 'wallet_switchEthereumChain')
199
+ return Promise.resolve(null);
200
+ return Promise.resolve(null);
201
+ });
202
+ const connectors = [
203
+ {
204
+ id: 'test',
205
+ provider: mockProvider,
206
+ chains: [1],
207
+ type: 'EXTERNAL',
208
+ chain: 1
209
+ }
210
+ ];
211
+ Object.defineProperty(adapter, 'connectors', {
212
+ value: connectors
213
+ });
214
+ const result = await adapter.connect({
215
+ id: 'test',
216
+ provider: mockProvider,
217
+ type: 'EXTERNAL',
218
+ chainId: 1
219
+ });
220
+ expect(mockProvider.request).toHaveBeenCalledWith({
221
+ method: 'wallet_switchEthereumChain',
222
+ params: [{ chainId: '0x1' }]
223
+ });
224
+ expect(result.address).toBe('0x123');
225
+ expect(result.chainId).toBe(1);
226
+ });
227
+ });
228
+ describe('Ethers5Adapter -disconnect', () => {
229
+ it('should disconnect WalletConnect provider', async () => {
230
+ await adapter.disconnect({
231
+ provider: mockWalletConnectProvider,
232
+ providerType: 'WALLET_CONNECT'
233
+ });
234
+ expect(mockWalletConnectProvider.disconnect).toHaveBeenCalled();
235
+ });
236
+ it('should disconnect Auth provider', async () => {
237
+ await adapter.disconnect({
238
+ provider: mockAuthProvider,
239
+ providerType: 'AUTH'
240
+ });
241
+ expect(mockAuthProvider.disconnect).toHaveBeenCalled();
242
+ });
243
+ });
244
+ describe('Ethers5Adapter -getBalance', () => {
245
+ it('should get balance successfully', async () => {
246
+ adapter.caipNetworks = mockCaipNetworks;
247
+ const mockBalance = BigInt(1500000000000000000);
248
+ vi.mocked(providers.JsonRpcProvider).mockImplementation(() => ({
249
+ getBalance: vi.fn().mockResolvedValue(mockBalance)
250
+ }));
251
+ const result = await adapter.getBalance({
252
+ address: '0x123',
253
+ chainId: 1
254
+ });
255
+ expect(result).toEqual({
256
+ balance: '1.5',
257
+ symbol: 'ETH'
258
+ });
259
+ });
260
+ });
261
+ describe('Ethers5Adapter -getProfile', () => {
262
+ it('should get profile successfully', async () => {
263
+ const mockEnsName = 'test.eth';
264
+ const mockAvatar = 'https://avatar.com/test.jpg';
265
+ vi.mocked(providers.InfuraProvider).mockImplementation(() => ({
266
+ lookupAddress: vi.fn().mockResolvedValue(mockEnsName),
267
+ getAvatar: vi.fn().mockResolvedValue(mockAvatar)
268
+ }));
269
+ const result = await adapter.getProfile({
270
+ address: '0x123',
271
+ chainId: 1
272
+ });
273
+ expect(result).toEqual({
274
+ profileName: mockEnsName,
275
+ profileImage: mockAvatar
276
+ });
277
+ });
278
+ });
279
+ describe('Ethers5Adapter - switchNetwork', () => {
280
+ it('should switch network with WalletConnect provider', async () => {
281
+ await adapter.switchNetwork({
282
+ caipNetwork: mockCaipNetworks[0],
283
+ provider: mockWalletConnectProvider,
284
+ providerType: 'WALLET_CONNECT'
285
+ });
286
+ expect(mockWalletConnectProvider.setDefaultChain).toHaveBeenCalledWith('eip155:1');
287
+ });
288
+ it('should switch network with Auth provider', async () => {
289
+ await adapter.switchNetwork({
290
+ caipNetwork: mockCaipNetworks[0],
291
+ provider: mockAuthProvider,
292
+ providerType: 'AUTH'
293
+ });
294
+ expect(mockAuthProvider.switchNetwork).toHaveBeenCalledWith('eip155:1');
295
+ expect(mockAuthProvider.getUser).toHaveBeenCalledWith({
296
+ chainId: 'eip155:1',
297
+ preferredAccountType: 'smartAccount'
298
+ });
299
+ });
300
+ });
301
+ describe('Ethers5Adapter -getWalletConnectProvider', () => {
302
+ it('should return WalletConnect provider', () => {
303
+ Object.defineProperty(adapter, 'availableConnectors', {
304
+ value: [
305
+ {
306
+ id: 'walletconnect',
307
+ type: 'WALLET_CONNECT',
308
+ provider: mockWalletConnectProvider,
309
+ chain: 'eip155',
310
+ chains: []
311
+ }
312
+ ]
313
+ });
314
+ const result = adapter.getWalletConnectProvider();
315
+ expect(result).toBe(mockWalletConnectProvider);
316
+ });
317
+ });
318
+ describe('Ethers5Adapter -parseUnits and formatUnits', () => {
319
+ it('should parse units correctly', () => {
320
+ const mockBigInt = BigInt('1500000000000000000');
321
+ vi.mocked(Ethers5Methods.parseUnits).mockReturnValue(mockBigInt);
322
+ const result = adapter.parseUnits({
323
+ value: '1.5',
324
+ decimals: 18
325
+ });
326
+ expect(result).toBe(mockBigInt);
327
+ });
328
+ it('should format units correctly', () => {
329
+ vi.mocked(Ethers5Methods.formatUnits).mockReturnValue('1.5');
330
+ const result = adapter.formatUnits({
331
+ value: BigInt('1500000000000000000'),
332
+ decimals: 18
333
+ });
334
+ expect(result).toBe('1.5');
335
+ });
336
+ });
337
+ describe('Ethers5Adapter - Permissions', () => {
338
+ const mockProvider = {
339
+ request: vi.fn()
340
+ };
341
+ beforeEach(() => {
342
+ vi.spyOn(ProviderUtil, 'getProvider').mockImplementation(() => mockProvider);
343
+ });
344
+ it('should call wallet_getCapabilities', async () => {
345
+ await adapter.getCapabilities('eip155:1:0x123');
346
+ expect(mockProvider.request).toHaveBeenCalledWith({
347
+ method: 'wallet_getCapabilities',
348
+ params: ['eip155:1:0x123']
349
+ });
350
+ });
351
+ it('should call wallet_grantPermissions', async () => {
352
+ const mockParams = {
353
+ pci: 'test-pci',
354
+ expiry: 1234567890,
355
+ address: '0x123',
356
+ permissions: ['eth_accounts']
357
+ };
358
+ await adapter.grantPermissions(mockParams);
359
+ expect(mockProvider.request).toHaveBeenCalledWith({
360
+ method: 'wallet_grantPermissions',
361
+ params: mockParams
362
+ });
363
+ });
364
+ it('should call wallet_revokePermissions', async () => {
365
+ vi.mocked(mockProvider.request).mockImplementation(() => Promise.resolve('0x123'));
366
+ const mockParams = {
367
+ pci: 'test-pci',
368
+ expiry: 1234567890,
369
+ address: '0x123',
370
+ permissions: ['eth_accounts']
371
+ };
372
+ const result = await adapter.revokePermissions(mockParams);
373
+ expect(mockProvider.request).toHaveBeenCalledWith({
374
+ method: 'wallet_revokePermissions',
375
+ params: [mockParams]
376
+ });
377
+ expect(result).toBe('0x123');
378
+ });
379
+ });
380
+ describe('EthersAdapter - provider listener', () => {
381
+ it('should disconnect if accountsChanged event emits no accounts', async () => {
382
+ adapter.caipNetworks = mockCaipNetworks;
383
+ const emitter = new Emitter();
384
+ const mockProvider = {
385
+ connect: vi.fn(),
386
+ request: vi.fn().mockResolvedValue(['0x123']),
387
+ removeListener: vi.fn(),
388
+ on: emitter.on.bind(emitter),
389
+ off: emitter.off.bind(emitter),
390
+ emit: emitter.emit.bind(emitter)
391
+ };
392
+ Object.defineProperty(adapter, 'connectors', {
393
+ value: [{ id: 'test', provider: mockProvider }]
394
+ });
395
+ await adapter.connect({
396
+ id: 'test',
397
+ type: 'EXTERNAL',
398
+ chainId: 1
399
+ });
400
+ const disconnect = vi.fn();
401
+ adapter.on('disconnect', disconnect);
402
+ mockProvider.emit('accountsChanged', []);
403
+ expect(disconnect).toHaveBeenCalled();
404
+ expect(mockProvider.removeListener).toHaveBeenCalledWith('disconnect', expect.any(Function));
405
+ });
406
+ });
407
+ });
408
+ //# sourceMappingURL=client.test.js.map