@wagmi/connectors 8.0.14 → 8.0.16

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,2 +1,2 @@
1
- export const version = '8.0.14';
1
+ export const version = '8.0.16';
2
2
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,7 @@
1
1
  import type { createEVMClient, EIP1193Provider, MetamaskConnectEVM } from '@metamask/connect-evm';
2
2
  import type { ExactPartial, OneOf, UnionCompute } from '@wagmi/core/internal';
3
3
  import { type ProviderConnectInfo } from 'viem';
4
- export type MetaMaskParameters = UnionCompute<ExactPartial<Omit<CreateEVMClientParameters, 'api' | 'eventHandlers'>> & {
4
+ export type MetaMaskParameters = UnionCompute<ExactPartial<Omit<CreateEVMClientParameters, 'api' | 'eventHandlers' | 'skipAutoAnnounce'>> & {
5
5
  /**
6
6
  * @deprecated Use `dapp` instead.
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"metaMask.d.ts","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAKL,KAAK,mBAAmB,EAOzB,MAAM,MAAM,CAAA;AAEb,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAC3C,YAAY,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC,GAAG;IACvE;;;;OAIG;IACH,YAAY,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IAC5E;;OAEG;IACH,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAA;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC/B,GAAG,KAAK,CACH;IAEE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC,GACD;IAGE,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,SAAS,CAAA;CAChE,CACJ,CACJ,CAAA;AAED,KAAK,yBAAyB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAGtE,wBAAgB,QAAQ,CAAC,UAAU,GAAE,kBAAuB;2BAGjC,mBAAmB,GAAG,IAAI;sBAC/B,MAAM,GAAG,IAAI;mBAChB,OAAO,CAAC,kBAAkB,CAAC;4BAgR7C;yBArRe,QAAQ"}
1
+ {"version":3,"file":"metaMask.d.ts","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAKL,KAAK,mBAAmB,EAOzB,MAAM,MAAM,CAAA;AAEb,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAC3C,YAAY,CACV,IAAI,CACF,yBAAyB,EACzB,KAAK,GAAG,eAAe,GAAG,kBAAkB,CAC7C,CACF,GAAG;IACF;;;;OAIG;IACH,YAAY,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IAC5E;;OAEG;IACH,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAA;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC/B,GAAG,KAAK,CACH;IAEE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC,GACD;IAGE,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,SAAS,CAAA;CAChE,CACJ,CACJ,CAAA;AAED,KAAK,yBAAyB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAGtE,wBAAgB,QAAQ,CAAC,UAAU,GAAE,kBAAuB;2BAGjC,mBAAmB,GAAG,IAAI;sBAC/B,MAAM,GAAG,IAAI;mBAChB,OAAO,CAAC,kBAAkB,CAAC;4BAyT7C;yBA9Te,QAAQ"}
@@ -1,2 +1,2 @@
1
- export declare const version = "8.0.14";
1
+ export declare const version = "8.0.16";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wagmi/connectors",
3
3
  "description": "Collection of connectors for Wagmi",
4
- "version": "8.0.14",
4
+ "version": "8.0.16",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -30,15 +30,15 @@
30
30
  "peerDependencies": {
31
31
  "@base-org/account": "^2.5.1",
32
32
  "@coinbase/wallet-sdk": "^4.3.6",
33
- "@metamask/connect-evm": "^1.0.0",
33
+ "@metamask/connect-evm": "^2.1.0",
34
34
  "@safe-global/safe-apps-provider": "~0.18.6",
35
35
  "@safe-global/safe-apps-sdk": "^9.1.0",
36
36
  "@walletconnect/ethereum-provider": "^2.21.1",
37
37
  "accounts": "~0.10",
38
38
  "porto": "~0.2.35",
39
- "typescript": ">=5.7.3",
39
+ "typescript": ">=5.9.3",
40
40
  "viem": "2.x",
41
- "@wagmi/core": "3.4.12"
41
+ "@wagmi/core": "3.5.1"
42
42
  },
43
43
  "peerDependenciesMeta": {
44
44
  "@base-org/account": {
package/src/metaMask.ts CHANGED
@@ -20,7 +20,12 @@ import {
20
20
  } from 'viem'
21
21
 
22
22
  export type MetaMaskParameters = UnionCompute<
23
- ExactPartial<Omit<CreateEVMClientParameters, 'api' | 'eventHandlers'>> & {
23
+ ExactPartial<
24
+ Omit<
25
+ CreateEVMClientParameters,
26
+ 'api' | 'eventHandlers' | 'skipAutoAnnounce'
27
+ >
28
+ > & {
24
29
  /**
25
30
  * @deprecated Use `dapp` instead.
26
31
  *
@@ -163,6 +168,15 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
163
168
  return instance.disconnect()
164
169
  },
165
170
  async getAccounts() {
171
+ // Pre-connect: serve from the EIP-6963 MetaMask provider when present
172
+ // so we don't import the SDK chunk just to answer this probe.
173
+ if (!metamask && !metamaskPromise) {
174
+ const injected = config.providers[0]?.provider
175
+ if (injected) {
176
+ const accounts = await injected.request({ method: 'eth_accounts' })
177
+ return accounts.map((x) => getAddress(x))
178
+ }
179
+ }
166
180
  const instance = await this.getInstance()
167
181
  if (instance.accounts.length)
168
182
  return instance.accounts.map((x) => getAddress(x))
@@ -174,6 +188,14 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
174
188
  return accounts.map((x) => getAddress(x))
175
189
  },
176
190
  async getChainId() {
191
+ // Pre-connect: serve from the EIP-6963 MetaMask provider when present.
192
+ if (!metamask && !metamaskPromise) {
193
+ const injected = config.providers[0]?.provider
194
+ if (injected) {
195
+ const chainId = await injected.request({ method: 'eth_chainId' })
196
+ return Number(chainId)
197
+ }
198
+ }
177
199
  const instance = await this.getInstance()
178
200
  if (instance.getChainId()) return Number(instance.getChainId())
179
201
  // Fallback to provider if SDK doesn't return chainId
@@ -182,11 +204,34 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
182
204
  return Number(chainId)
183
205
  },
184
206
  async getProvider() {
207
+ // Pre-connect: return the EIP-6963 MetaMask provider directly so
208
+ // wagmi's `reconnect()` probe doesn't have to dynamically import the
209
+ // SDK on every page load for extension users.
210
+ if (!metamask && !metamaskPromise) {
211
+ const injected = config.providers[0]?.provider
212
+ // In `@metamask/connect-evm` v2, `EIP1193Provider` is a class with
213
+ // private fields, so it's nominally typed — an injected EIP-6963
214
+ // provider can't be assigned to it directly and must be cast through
215
+ // `unknown`. The provider implements the EIP-1193 surface (`request` +
216
+ // events) wagmi uses at runtime.
217
+ if (injected) return injected as unknown as EIP1193Provider
218
+ }
185
219
  const instance = await this.getInstance()
186
220
  return instance.getProvider()
187
221
  },
188
222
  async isAuthorized() {
189
223
  try {
224
+ // Pre-connect: ask the EIP-6963 MetaMask provider directly to avoid
225
+ // a chunk download for an `eth_accounts` probe on page load. The
226
+ // SDK retry/timeout dance below is only necessary for the mobile
227
+ // SDK transport path.
228
+ if (!metamask && !metamaskPromise) {
229
+ const injected = config.providers[0]?.provider
230
+ if (injected) {
231
+ const accounts = await injected.request({ method: 'eth_accounts' })
232
+ return accounts.length > 0
233
+ }
234
+ }
190
235
  // MetaMask mobile provider sometimes fails to immediately resolve
191
236
  // JSON-RPC requests on page load
192
237
  const timeout = 10
@@ -291,6 +336,7 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
291
336
 
292
337
  metamaskPromise = createEVMClient({
293
338
  ...parameters,
339
+ skipAutoAnnounce: true,
294
340
  api: {
295
341
  supportedNetworks: Object.fromEntries(
296
342
  config.chains.map((chain) => [
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '8.0.14'
1
+ export const version = '8.0.16'