@wagmi/connectors 7.2.1 → 8.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,41 +1,17 @@
1
- import { ChainNotConfiguredError, createConnector, extractRpcUrls, ProviderNotFoundError, } from '@wagmi/core';
2
- import { getAddress, hexToNumber, numberToHex, ResourceUnavailableRpcError, SwitchChainError, UserRejectedRequestError, withRetry, withTimeout, } from 'viem';
1
+ import { ChainNotConfiguredError, createConnector } from '@wagmi/core';
2
+ import { getAddress, numberToHex, ResourceUnavailableRpcError, SwitchChainError, UserRejectedRequestError, withRetry, withTimeout, } from 'viem';
3
3
  metaMask.type = 'metaMask';
4
4
  export function metaMask(parameters = {}) {
5
- let sdk;
6
- let provider;
7
- let providerPromise;
8
- let accountsChanged;
9
- let chainChanged;
10
- let connect;
11
- let displayUri;
12
- let disconnect;
5
+ let metamask;
6
+ let metamaskPromise;
13
7
  return createConnector((config) => ({
14
8
  id: 'metaMaskSDK',
15
9
  name: 'MetaMask',
16
10
  rdns: ['io.metamask', 'io.metamask.mobile'],
17
11
  type: metaMask.type,
18
- async setup() {
19
- const provider = await this.getProvider();
20
- if (provider?.on) {
21
- if (!connect) {
22
- connect = this.onConnect.bind(this);
23
- provider.on('connect', connect);
24
- }
25
- // We shouldn't need to listen for `'accountsChanged'` here since the `'connect'` event should suffice (and wallet shouldn't be connected yet).
26
- // Some wallets, like MetaMask, do not implement the `'connect'` event and overload `'accountsChanged'` instead.
27
- if (!accountsChanged) {
28
- accountsChanged = this.onAccountsChanged.bind(this);
29
- provider.on('accountsChanged', accountsChanged);
30
- }
31
- }
32
- },
33
12
  async connect({ chainId, isReconnecting, withCapabilities } = {}) {
34
- const provider = await this.getProvider();
35
- if (!displayUri) {
36
- displayUri = this.onDisplayUri;
37
- provider.on('display_uri', displayUri);
38
- }
13
+ const instance = await this.getInstance();
14
+ const provider = instance.getProvider();
39
15
  let accounts = [];
40
16
  if (isReconnecting)
41
17
  accounts = await this.getAccounts().catch(() => []);
@@ -43,25 +19,28 @@ export function metaMask(parameters = {}) {
43
19
  let signResponse;
44
20
  let connectWithResponse;
45
21
  if (!accounts?.length) {
22
+ const chainIds = config.chains.map((chain) => numberToHex(chain.id));
46
23
  if (parameters.connectAndSign || parameters.connectWith) {
47
24
  if (parameters.connectAndSign)
48
- signResponse = await sdk.connectAndSign({
49
- msg: parameters.connectAndSign,
25
+ signResponse = await instance.connectAndSign({
26
+ chainIds,
27
+ message: parameters.connectAndSign,
50
28
  });
51
29
  else if (parameters.connectWith)
52
- connectWithResponse = await sdk.connectWith({
30
+ connectWithResponse = await instance.connectWith({
31
+ chainIds,
53
32
  method: parameters.connectWith.method,
54
33
  params: parameters.connectWith.params,
55
34
  });
56
35
  accounts = await this.getAccounts();
57
36
  }
58
37
  else {
59
- const requestedAccounts = (await sdk.connect());
60
- accounts = requestedAccounts.map((x) => getAddress(x));
38
+ const result = await instance.connect({ chainIds });
39
+ accounts = result.accounts.map((x) => getAddress(x));
61
40
  }
62
41
  }
63
42
  // Switch to chain if provided
64
- let currentChainId = (await this.getChainId());
43
+ let currentChainId = await this.getChainId();
65
44
  if (chainId && currentChainId !== chainId) {
66
45
  const chain = await this.switchChain({ chainId }).catch((error) => {
67
46
  if (error.code === UserRejectedRequestError.code)
@@ -70,40 +49,18 @@ export function metaMask(parameters = {}) {
70
49
  });
71
50
  currentChainId = chain?.id ?? currentChainId;
72
51
  }
73
- if (displayUri) {
74
- provider.removeListener('display_uri', displayUri);
75
- displayUri = undefined;
76
- }
77
52
  if (signResponse)
78
53
  provider.emit('connectAndSign', {
79
54
  accounts,
80
- chainId: currentChainId,
55
+ chainId: numberToHex(currentChainId),
81
56
  signResponse,
82
57
  });
83
58
  else if (connectWithResponse)
84
59
  provider.emit('connectWith', {
85
60
  accounts,
86
- chainId: currentChainId,
61
+ chainId: numberToHex(currentChainId),
87
62
  connectWithResponse,
88
63
  });
89
- // Manage EIP-1193 event listeners
90
- // https://eips.ethereum.org/EIPS/eip-1193#events
91
- if (connect) {
92
- provider.removeListener('connect', connect);
93
- connect = undefined;
94
- }
95
- if (!accountsChanged) {
96
- accountsChanged = this.onAccountsChanged.bind(this);
97
- provider.on('accountsChanged', accountsChanged);
98
- }
99
- if (!chainChanged) {
100
- chainChanged = this.onChainChanged.bind(this);
101
- provider.on('chainChanged', chainChanged);
102
- }
103
- if (!disconnect) {
104
- disconnect = this.onDisconnect.bind(this);
105
- provider.on('disconnect', disconnect);
106
- }
107
64
  return {
108
65
  // TODO(v3): Make `withCapabilities: true` default behavior
109
66
  accounts: (withCapabilities
@@ -122,236 +79,89 @@ export function metaMask(parameters = {}) {
122
79
  }
123
80
  },
124
81
  async disconnect() {
125
- const provider = await this.getProvider();
126
- // Manage EIP-1193 event listeners
127
- if (chainChanged) {
128
- provider.removeListener('chainChanged', chainChanged);
129
- chainChanged = undefined;
130
- }
131
- if (disconnect) {
132
- provider.removeListener('disconnect', disconnect);
133
- disconnect = undefined;
134
- }
135
- if (!connect) {
136
- connect = this.onConnect.bind(this);
137
- provider.on('connect', connect);
138
- }
139
- await sdk.terminate();
82
+ const instance = await this.getInstance();
83
+ return instance.disconnect();
140
84
  },
141
85
  async getAccounts() {
142
- const provider = await this.getProvider();
86
+ const instance = await this.getInstance();
87
+ if (instance.accounts.length)
88
+ return instance.accounts.map((x) => getAddress(x));
89
+ // Fallback to provider if SDK doesn't return accounts
90
+ const provider = instance.getProvider();
143
91
  const accounts = (await provider.request({
144
92
  method: 'eth_accounts',
145
93
  }));
146
94
  return accounts.map((x) => getAddress(x));
147
95
  },
148
96
  async getChainId() {
149
- const provider = await this.getProvider();
150
- const chainId = provider.getChainId() ||
151
- (await provider?.request({ method: 'eth_chainId' }));
97
+ const instance = await this.getInstance();
98
+ if (instance.getChainId())
99
+ return Number(instance.getChainId());
100
+ // Fallback to provider if SDK doesn't return chainId
101
+ const provider = instance.getProvider();
102
+ const chainId = await provider.request({ method: 'eth_chainId' });
152
103
  return Number(chainId);
153
104
  },
154
105
  async getProvider() {
155
- async function initProvider() {
156
- // Unwrapping import for Vite compatibility.
157
- // See: https://github.com/vitejs/vite/issues/9703
158
- const MetaMaskSDK = await (async () => {
159
- const { default: SDK } = await (() => {
160
- // safe webpack optional peer dependency dynamic import
161
- try {
162
- return import('@metamask/sdk');
163
- }
164
- catch {
165
- throw new Error('dependency "@metamask/sdk" not found');
166
- }
167
- })();
168
- if (typeof SDK !== 'function' && typeof SDK.default === 'function')
169
- return SDK.default;
170
- return SDK;
171
- })();
172
- const readonlyRPCMap = {};
173
- for (const chain of config.chains)
174
- readonlyRPCMap[numberToHex(chain.id)] = extractRpcUrls({
175
- chain,
176
- transports: config.transports,
177
- })?.[0];
178
- sdk = new MetaMaskSDK({
179
- // Workaround cast since MetaMask SDK does not support `'exactOptionalPropertyTypes'`
180
- ...parameters,
181
- _source: 'wagmi',
182
- forceDeleteProvider: false,
183
- forceInjectProvider: false,
184
- injectProvider: false,
185
- readonlyRPCMap,
186
- dappMetadata: {
187
- ...parameters.dappMetadata,
188
- // Test if name and url are set AND not empty
189
- name: parameters.dappMetadata?.name
190
- ? parameters.dappMetadata?.name
191
- : 'wagmi',
192
- url: parameters.dappMetadata?.url
193
- ? parameters.dappMetadata?.url
194
- : typeof window !== 'undefined'
195
- ? window.location.origin
196
- : 'https://wagmi.sh',
197
- },
198
- useDeeplink: true,
199
- });
200
- const result = await sdk.init();
201
- // On initial load, sometimes `sdk.getProvider` does not return provider.
202
- // https://github.com/wevm/wagmi/issues/4367
203
- // Use result of `init` call if available.
204
- const provider = (() => {
205
- if (result?.activeProvider)
206
- return result.activeProvider;
207
- return sdk.getProvider();
208
- })();
209
- if (!provider)
210
- throw new ProviderNotFoundError();
211
- return provider;
212
- }
213
- if (!provider) {
214
- if (!providerPromise)
215
- providerPromise = initProvider();
216
- provider = await providerPromise;
217
- }
218
- return provider;
106
+ const instance = await this.getInstance();
107
+ return instance.getProvider();
219
108
  },
220
109
  async isAuthorized() {
221
110
  try {
222
111
  // MetaMask mobile provider sometimes fails to immediately resolve
223
112
  // JSON-RPC requests on page load
224
- const timeout = 200;
225
- const accounts = await withRetry(() => withTimeout(() => this.getAccounts(), { timeout }), {
226
- delay: timeout + 1,
227
- retryCount: 3,
228
- });
229
- return !!accounts.length;
113
+ const timeout = 10;
114
+ const accounts = await withRetry(async () => withTimeout(async () => {
115
+ const accounts = await this.getAccounts();
116
+ if (!accounts.length)
117
+ throw new Error('try again');
118
+ return accounts;
119
+ }, { timeout }), { delay: timeout + 1, retryCount: 3 });
120
+ return Boolean(accounts.length);
230
121
  }
231
122
  catch {
232
123
  return false;
233
124
  }
234
125
  },
235
126
  async switchChain({ addEthereumChainParameter, chainId }) {
236
- const provider = await this.getProvider();
237
- const chain = config.chains.find((x) => x.id === chainId);
127
+ const chain = config.chains.find(({ id }) => id === Number(chainId));
238
128
  if (!chain)
239
129
  throw new SwitchChainError(new ChainNotConfiguredError());
130
+ const hexChainId = numberToHex(chainId);
240
131
  try {
241
- await provider.request({
242
- method: 'wallet_switchEthereumChain',
243
- params: [{ chainId: numberToHex(chainId) }],
132
+ const instance = await this.getInstance();
133
+ await instance.switchChain({
134
+ chainId: hexChainId,
135
+ chainConfiguration: {
136
+ blockExplorerUrls: addEthereumChainParameter?.blockExplorerUrls
137
+ ? [...addEthereumChainParameter.blockExplorerUrls]
138
+ : chain.blockExplorers?.default.url
139
+ ? [chain.blockExplorers.default.url]
140
+ : undefined,
141
+ chainId: hexChainId,
142
+ chainName: addEthereumChainParameter?.chainName ?? chain.name,
143
+ iconUrls: addEthereumChainParameter?.iconUrls,
144
+ nativeCurrency: addEthereumChainParameter?.nativeCurrency ?? chain.nativeCurrency,
145
+ rpcUrls: addEthereumChainParameter?.rpcUrls
146
+ ? [...addEthereumChainParameter.rpcUrls]
147
+ : chain.rpcUrls.default?.http
148
+ ? [...chain.rpcUrls.default.http]
149
+ : undefined,
150
+ },
244
151
  });
245
- // During `'wallet_switchEthereumChain'`, MetaMask makes a `'net_version'` RPC call to the target chain.
246
- // If this request fails, MetaMask does not emit the `'chainChanged'` event, but will still switch the chain.
247
- // To counter this behavior, we request and emit the current chain ID to confirm the chain switch either via
248
- // this callback or an externally emitted `'chainChanged'` event.
249
- // https://github.com/MetaMask/metamask-extension/issues/24247
250
- await waitForChainIdToSync();
251
- await sendAndWaitForChangeEvent(chainId);
252
152
  return chain;
253
153
  }
254
154
  catch (err) {
255
155
  const error = err;
256
156
  if (error.code === UserRejectedRequestError.code)
257
157
  throw new UserRejectedRequestError(error);
258
- // Indicates chain is not added to provider
259
- if (error.code === 4902 ||
260
- // Unwrapping for MetaMask Mobile
261
- // https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
262
- error
263
- ?.data?.originalError?.code === 4902) {
264
- try {
265
- await provider.request({
266
- method: 'wallet_addEthereumChain',
267
- params: [
268
- {
269
- blockExplorerUrls: (() => {
270
- const { default: blockExplorer, ...blockExplorers } = chain.blockExplorers ?? {};
271
- if (addEthereumChainParameter?.blockExplorerUrls)
272
- return addEthereumChainParameter.blockExplorerUrls;
273
- if (blockExplorer)
274
- return [
275
- blockExplorer.url,
276
- ...Object.values(blockExplorers).map((x) => x.url),
277
- ];
278
- return;
279
- })(),
280
- chainId: numberToHex(chainId),
281
- chainName: addEthereumChainParameter?.chainName ?? chain.name,
282
- iconUrls: addEthereumChainParameter?.iconUrls,
283
- nativeCurrency: addEthereumChainParameter?.nativeCurrency ??
284
- chain.nativeCurrency,
285
- rpcUrls: (() => {
286
- if (addEthereumChainParameter?.rpcUrls?.length)
287
- return addEthereumChainParameter.rpcUrls;
288
- return [chain.rpcUrls.default?.http[0] ?? ''];
289
- })(),
290
- },
291
- ],
292
- });
293
- await waitForChainIdToSync();
294
- await sendAndWaitForChangeEvent(chainId);
295
- return chain;
296
- }
297
- catch (err) {
298
- const error = err;
299
- if (error.code === UserRejectedRequestError.code)
300
- throw new UserRejectedRequestError(error);
301
- throw new SwitchChainError(error);
302
- }
303
- }
304
158
  throw new SwitchChainError(error);
305
159
  }
306
- async function waitForChainIdToSync() {
307
- // On mobile, there is a race condition between the result of `'wallet_addEthereumChain'` and `'eth_chainId'`.
308
- // To avoid this, we wait for `'eth_chainId'` to return the expected chain ID with a retry loop.
309
- await withRetry(async () => {
310
- const value = hexToNumber(
311
- // `'eth_chainId'` is cached by the MetaMask SDK side to avoid unnecessary deeplinks
312
- (await provider.request({ method: 'eth_chainId' })));
313
- // `value` doesn't match expected `chainId`, throw to trigger retry
314
- if (value !== chainId)
315
- throw new Error('User rejected switch after adding network.');
316
- return value;
317
- }, {
318
- delay: 50,
319
- retryCount: 20, // android device encryption is slower
320
- });
321
- }
322
- async function sendAndWaitForChangeEvent(chainId) {
323
- await new Promise((resolve) => {
324
- const listener = ((data) => {
325
- if ('chainId' in data && data.chainId === chainId) {
326
- config.emitter.off('change', listener);
327
- resolve();
328
- }
329
- });
330
- config.emitter.on('change', listener);
331
- config.emitter.emit('change', { chainId });
332
- });
333
- }
334
160
  },
335
161
  async onAccountsChanged(accounts) {
336
- // Disconnect if there are no accounts
337
- if (accounts.length === 0) {
338
- // ... and using browser extension
339
- if (sdk.isExtensionActive())
340
- this.onDisconnect();
341
- // FIXME(upstream): Mobile app sometimes emits invalid `accountsChanged` event with empty accounts array
342
- else
343
- return;
344
- }
345
- // Connect if emitter is listening for connect event (e.g. is disconnected and connects through wallet interface)
346
- else if (config.emitter.listenerCount('connect')) {
347
- const chainId = (await this.getChainId()).toString();
348
- this.onConnect({ chainId });
349
- }
350
- // Regular change event
351
- else
352
- config.emitter.emit('change', {
353
- accounts: accounts.map((x) => getAddress(x)),
354
- });
162
+ config.emitter.emit('change', {
163
+ accounts: accounts.map((x) => getAddress(x)),
164
+ });
355
165
  },
356
166
  onChainChanged(chain) {
357
167
  const chainId = Number(chain);
@@ -363,50 +173,70 @@ export function metaMask(parameters = {}) {
363
173
  return;
364
174
  const chainId = Number(connectInfo.chainId);
365
175
  config.emitter.emit('connect', { accounts, chainId });
366
- const provider = await this.getProvider();
367
- if (connect) {
368
- provider.removeListener('connect', connect);
369
- connect = undefined;
370
- }
371
- if (!accountsChanged) {
372
- accountsChanged = this.onAccountsChanged.bind(this);
373
- provider.on('accountsChanged', accountsChanged);
374
- }
375
- if (!chainChanged) {
376
- chainChanged = this.onChainChanged.bind(this);
377
- provider.on('chainChanged', chainChanged);
378
- }
379
- if (!disconnect) {
380
- disconnect = this.onDisconnect.bind(this);
381
- provider.on('disconnect', disconnect);
382
- }
383
176
  },
384
177
  async onDisconnect(error) {
385
- const provider = await this.getProvider();
386
178
  // If MetaMask emits a `code: 1013` error, wait for reconnection before disconnecting
387
179
  // https://github.com/MetaMask/providers/pull/120
388
180
  if (error && error.code === 1013) {
389
- if (provider && !!(await this.getAccounts()).length)
181
+ const provider = await this.getProvider();
182
+ if (provider && Boolean((await this.getAccounts()).length))
390
183
  return;
391
184
  }
392
185
  config.emitter.emit('disconnect');
393
- // Manage EIP-1193 event listeners
394
- if (chainChanged) {
395
- provider.removeListener('chainChanged', chainChanged);
396
- chainChanged = undefined;
397
- }
398
- if (disconnect) {
399
- provider.removeListener('disconnect', disconnect);
400
- disconnect = undefined;
401
- }
402
- if (!connect) {
403
- connect = this.onConnect.bind(this);
404
- provider.on('connect', connect);
405
- }
406
186
  },
407
187
  onDisplayUri(uri) {
408
188
  config.emitter.emit('message', { type: 'display_uri', data: uri });
409
189
  },
190
+ async getInstance() {
191
+ if (!metamask) {
192
+ if (!metamaskPromise) {
193
+ const { createEVMClient } = await (async () => {
194
+ try {
195
+ return import('@metamask/connect-evm');
196
+ }
197
+ catch {
198
+ throw new Error('dependency "@metamask/connect-evm" not found');
199
+ }
200
+ })();
201
+ const defaultDappParams = typeof window === 'undefined'
202
+ ? { name: 'wagmi' }
203
+ : { name: window.location.hostname, url: window.location.href };
204
+ metamaskPromise = createEVMClient({
205
+ ...parameters,
206
+ api: {
207
+ supportedNetworks: Object.fromEntries(config.chains.map((chain) => [
208
+ numberToHex(chain.id),
209
+ chain.rpcUrls.default?.http[0] ?? '',
210
+ ])),
211
+ },
212
+ dapp: parameters.dapp ?? {
213
+ ...defaultDappParams,
214
+ ...parameters.dappMetadata,
215
+ },
216
+ debug: parameters.debug ?? parameters.logging?.sdk,
217
+ eventHandlers: {
218
+ accountsChanged: this.onAccountsChanged.bind(this),
219
+ chainChanged: this.onChainChanged.bind(this),
220
+ connect: this.onConnect.bind(this),
221
+ disconnect: this.onDisconnect.bind(this),
222
+ displayUri: this.onDisplayUri.bind(this),
223
+ },
224
+ analytics: {
225
+ integrationType: 'wagmi',
226
+ },
227
+ ui: {
228
+ ...parameters.ui,
229
+ ...(parameters.headless != null && {
230
+ headless: parameters.headless,
231
+ }),
232
+ },
233
+ ...(parameters.mobile && { mobile: parameters.mobile }),
234
+ });
235
+ }
236
+ metamask = await metamaskPromise;
237
+ }
238
+ return metamask;
239
+ },
410
240
  }));
411
241
  }
412
242
  //# sourceMappingURL=metaMask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metaMask.js","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metaMask.js","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"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"}