@wagmi/connectors 5.1.15 → 5.2.1

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 = '5.1.15';
1
+ export const version = '5.2.1';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
@@ -1,7 +1,24 @@
1
1
  import type { MetaMaskSDKOptions, SDKProvider } from '@metamask/sdk';
2
- import type { Compute, ExactPartial } from '@wagmi/core/internal';
2
+ import type { Compute, ExactPartial, OneOf, UnionCompute } from '@wagmi/core/internal';
3
3
  import { type ProviderConnectInfo } from 'viem';
4
- export type MetaMaskParameters = Compute<ExactPartial<Omit<MetaMaskSDKOptions, '_source' | 'readonlyRPCMap'>>>;
4
+ export type MetaMaskParameters = UnionCompute<WagmiMetaMaskSDKOptions & OneOf<{
5
+ connectAndSign?: string | undefined;
6
+ } | {
7
+ connectWith?: {
8
+ method: string;
9
+ params: unknown[];
10
+ } | undefined;
11
+ }>>;
12
+ type WagmiMetaMaskSDKOptions = Compute<ExactPartial<Omit<MetaMaskSDKOptions, '_source' | 'forceDeleteProvider' | 'forceInjectProvider' | 'injectProvider' | 'useDeeplink' | 'readonlyRPCMap'>> & {
13
+ /** @deprecated */
14
+ forceDeleteProvider?: MetaMaskSDKOptions['forceDeleteProvider'];
15
+ /** @deprecated */
16
+ forceInjectProvider?: MetaMaskSDKOptions['forceInjectProvider'];
17
+ /** @deprecated */
18
+ injectProvider?: MetaMaskSDKOptions['injectProvider'];
19
+ /** @deprecated */
20
+ useDeeplink?: MetaMaskSDKOptions['useDeeplink'];
21
+ }>;
5
22
  export declare function metaMask(parameters?: MetaMaskParameters): import("@wagmi/core").CreateConnectorFn<SDKProvider, {
6
23
  onConnect(connectInfo: ProviderConnectInfo): void;
7
24
  onDisplayUri(uri: string): void;
@@ -9,4 +26,5 @@ export declare function metaMask(parameters?: MetaMaskParameters): import("@wagm
9
26
  export declare namespace metaMask {
10
27
  var type: "metaMask";
11
28
  }
29
+ export {};
12
30
  //# sourceMappingURL=metaMask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metaMask.d.ts","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,WAAW,EACZ,MAAM,eAAe,CAAA;AAOtB,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EAEb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAIL,KAAK,mBAAmB,EAWzB,MAAM,MAAM,CAAA;AAEb,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAC,CACrE,CAAA;AAGD,wBAAgB,QAAQ,CAAC,UAAU,GAAE,kBAAuB;2BAGjC,mBAAmB,GAAG,IAAI;sBAC/B,MAAM,GAAG,IAAI;4BA8VlC;yBAlWe,QAAQ"}
1
+ {"version":3,"file":"metaMask.d.ts","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,WAAW,EACZ,MAAM,eAAe,CAAA;AAOtB,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,KAAK,EAEL,YAAY,EACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAIL,KAAK,mBAAmB,EAWzB,MAAM,MAAM,CAAA;AAEb,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAC3C,uBAAuB,GACrB,KAAK,CACD;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,uBAAuB,GAAG,OAAO,CACpC,YAAY,CACV,IAAI,CACF,kBAAkB,EAChB,SAAS,GACT,qBAAqB,GACrB,qBAAqB,GACrB,gBAAgB,GAChB,aAAa,GACb,gBAAgB,CACnB,CACF,GAAG;IACF,kBAAkB;IAClB,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,CAAA;IAC/D,kBAAkB;IAClB,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,CAAA;IAC/D,kBAAkB;IAClB,cAAc,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;IACrD,kBAAkB;IAClB,WAAW,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAA;CAChD,CACF,CAAA;AAGD,wBAAgB,QAAQ,CAAC,UAAU,GAAE,kBAAuB;2BAGjC,mBAAmB,GAAG,IAAI;sBAC/B,MAAM,GAAG,IAAI;4BAiYlC;yBArYe,QAAQ"}
@@ -1,2 +1,2 @@
1
- export declare const version = "5.1.15";
1
+ export declare const version = "5.2.1";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA"}
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": "5.1.15",
4
+ "version": "5.2.1",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@coinbase/wallet-sdk": "4.0.4",
42
- "@metamask/sdk": "0.28.4",
42
+ "@metamask/sdk": "0.29.3",
43
43
  "@safe-global/safe-apps-provider": "0.18.3",
44
44
  "@safe-global/safe-apps-sdk": "9.1.0",
45
45
  "@walletconnect/ethereum-provider": "2.17.0",
package/src/metaMask.ts CHANGED
@@ -12,7 +12,9 @@ import {
12
12
  import type {
13
13
  Compute,
14
14
  ExactPartial,
15
+ OneOf,
15
16
  RemoveUndefined,
17
+ UnionCompute,
16
18
  } from '@wagmi/core/internal'
17
19
  import {
18
20
  type AddEthereumChainParameter,
@@ -31,8 +33,42 @@ import {
31
33
  withTimeout,
32
34
  } from 'viem'
33
35
 
34
- export type MetaMaskParameters = Compute<
35
- ExactPartial<Omit<MetaMaskSDKOptions, '_source' | 'readonlyRPCMap'>>
36
+ export type MetaMaskParameters = UnionCompute<
37
+ WagmiMetaMaskSDKOptions &
38
+ OneOf<
39
+ | {
40
+ /* Shortcut to connect and sign a message */
41
+ connectAndSign?: string | undefined
42
+ }
43
+ | {
44
+ // TODO: Strongly type `method` and `params`
45
+ /* Allow `connectWith` any rpc method */
46
+ connectWith?: { method: string; params: unknown[] } | undefined
47
+ }
48
+ >
49
+ >
50
+
51
+ type WagmiMetaMaskSDKOptions = Compute<
52
+ ExactPartial<
53
+ Omit<
54
+ MetaMaskSDKOptions,
55
+ | '_source'
56
+ | 'forceDeleteProvider'
57
+ | 'forceInjectProvider'
58
+ | 'injectProvider'
59
+ | 'useDeeplink'
60
+ | 'readonlyRPCMap'
61
+ >
62
+ > & {
63
+ /** @deprecated */
64
+ forceDeleteProvider?: MetaMaskSDKOptions['forceDeleteProvider']
65
+ /** @deprecated */
66
+ forceInjectProvider?: MetaMaskSDKOptions['forceInjectProvider']
67
+ /** @deprecated */
68
+ injectProvider?: MetaMaskSDKOptions['injectProvider']
69
+ /** @deprecated */
70
+ useDeeplink?: MetaMaskSDKOptions['useDeeplink']
71
+ }
36
72
  >
37
73
 
38
74
  metaMask.type = 'metaMask' as const
@@ -76,11 +112,26 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
76
112
  if (isReconnecting) accounts = await this.getAccounts().catch(() => [])
77
113
 
78
114
  try {
115
+ let signResponse: string | undefined
116
+ let connectWithResponse: unknown | undefined
79
117
  if (!accounts?.length) {
80
- const requestedAccounts = (await sdk.connect()) as string[]
81
- accounts = requestedAccounts.map((x) => getAddress(x))
82
- }
118
+ if (parameters.connectAndSign || parameters.connectWith) {
119
+ if (parameters.connectAndSign)
120
+ signResponse = await sdk.connectAndSign({
121
+ msg: parameters.connectAndSign,
122
+ })
123
+ else if (parameters.connectWith)
124
+ connectWithResponse = await sdk.connectWith({
125
+ method: parameters.connectWith.method,
126
+ params: parameters.connectWith.params,
127
+ })
83
128
 
129
+ accounts = await this.getAccounts()
130
+ } else {
131
+ const requestedAccounts = (await sdk.connect()) as string[]
132
+ accounts = requestedAccounts.map((x) => getAddress(x))
133
+ }
134
+ }
84
135
  // Switch to chain if provided
85
136
  let currentChainId = (await this.getChainId()) as number
86
137
  if (chainId && currentChainId !== chainId) {
@@ -96,6 +147,19 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
96
147
  displayUri = undefined
97
148
  }
98
149
 
150
+ if (signResponse)
151
+ provider.emit('connectAndSign', {
152
+ accounts,
153
+ chainId: currentChainId,
154
+ signResponse,
155
+ })
156
+ else if (connectWithResponse)
157
+ provider.emit('connectWith', {
158
+ accounts,
159
+ chainId: currentChainId,
160
+ connectWithResponse,
161
+ })
162
+
99
163
  // Manage EIP-1193 event listeners
100
164
  // https://eips.ethereum.org/EIPS/eip-1193#events
101
165
  if (connect) {
@@ -175,6 +239,9 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
175
239
 
176
240
  sdk = new MetaMaskSDK({
177
241
  _source: 'wagmi',
242
+ forceDeleteProvider: false,
243
+ forceInjectProvider: false,
244
+ injectProvider: false,
178
245
  // Workaround cast since MetaMask SDK does not support `'exactOptionalPropertyTypes'`
179
246
  ...(parameters as RemoveUndefined<typeof parameters>),
180
247
  readonlyRPCMap: Object.fromEntries(
@@ -186,7 +253,11 @@ export function metaMask(parameters: MetaMaskParameters = {}) {
186
253
  return [chain.id, url]
187
254
  }),
188
255
  ),
189
- dappMetadata: parameters.dappMetadata ?? { name: 'wagmi' },
256
+ dappMetadata:
257
+ parameters.dappMetadata ??
258
+ (typeof window !== 'undefined'
259
+ ? { url: window.location.origin }
260
+ : { name: 'wagmi' }),
190
261
  useDeeplink: parameters.useDeeplink ?? true,
191
262
  })
192
263
  await sdk.init()
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '5.1.15'
1
+ export const version = '5.2.1'