@wagmi/connectors 4.1.25 → 4.1.27
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/dist/esm/metaMask.js +37 -78
- package/dist/esm/metaMask.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/metaMask.d.ts +2 -9
- package/dist/types/metaMask.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +3 -3
- package/src/metaMask.ts +44 -88
- package/src/version.ts +1 -1
package/dist/esm/metaMask.js
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {} from '@metamask/sdk';
|
|
2
2
|
import { ChainNotConfiguredError, createConnector } from '@wagmi/core';
|
|
3
3
|
import { ResourceUnavailableRpcError, RpcError, SwitchChainError, UserRejectedRequestError, getAddress, numberToHex, } from 'viem';
|
|
4
|
+
const isMobileBrowser = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
4
5
|
metaMask.type = 'metaMask';
|
|
5
|
-
/**
|
|
6
|
-
* @deprecated
|
|
7
|
-
*
|
|
8
|
-
* __Warning__ This connector has a large file size due to the underlying `@metamask/sdk`. For mobile
|
|
9
|
-
* support, it is recommended to use {@link walletConnect}. For desktop support, you should rely on Multi Injected
|
|
10
|
-
* Provider Discovery (EIP-6963) via the Wagmi {@link Config}.
|
|
11
|
-
*/
|
|
12
6
|
export function metaMask(parameters = {}) {
|
|
13
7
|
let sdk;
|
|
14
|
-
let
|
|
8
|
+
let provider;
|
|
9
|
+
let providerPromise;
|
|
15
10
|
return createConnector((config) => ({
|
|
16
11
|
id: 'metaMaskSDK',
|
|
17
12
|
name: 'MetaMask',
|
|
@@ -23,30 +18,9 @@ export function metaMask(parameters = {}) {
|
|
|
23
18
|
},
|
|
24
19
|
async connect({ chainId, isReconnecting } = {}) {
|
|
25
20
|
const provider = await this.getProvider();
|
|
26
|
-
let accounts =
|
|
27
|
-
if (
|
|
28
|
-
accounts = await this.getAccounts().catch(() =>
|
|
29
|
-
const isAuthorized = !!accounts?.length;
|
|
30
|
-
if (isAuthorized)
|
|
31
|
-
// Attempt to show another prompt for selecting account if already connected
|
|
32
|
-
try {
|
|
33
|
-
const permissions = (await provider.request({
|
|
34
|
-
method: 'wallet_requestPermissions',
|
|
35
|
-
params: [{ eth_accounts: {} }],
|
|
36
|
-
}));
|
|
37
|
-
accounts = permissions[0]?.caveats?.[0]?.value?.map((x) => getAddress(x));
|
|
38
|
-
}
|
|
39
|
-
catch (err) {
|
|
40
|
-
const error = err;
|
|
41
|
-
// Not all injected providers support `wallet_requestPermissions` (e.g. MetaMask iOS).
|
|
42
|
-
// Only bubble up error if user rejects request
|
|
43
|
-
if (error.code === UserRejectedRequestError.code)
|
|
44
|
-
throw new UserRejectedRequestError(error);
|
|
45
|
-
// Or prompt is already open
|
|
46
|
-
if (error.code === ResourceUnavailableRpcError.code)
|
|
47
|
-
throw error;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
21
|
+
let accounts = [];
|
|
22
|
+
if (isReconnecting)
|
|
23
|
+
accounts = await this.getAccounts().catch(() => []);
|
|
50
24
|
try {
|
|
51
25
|
if (!accounts?.length) {
|
|
52
26
|
const requestedAccounts = (await sdk.connect());
|
|
@@ -56,19 +30,8 @@ export function metaMask(parameters = {}) {
|
|
|
56
30
|
provider.on('accountsChanged', this.onAccountsChanged.bind(this));
|
|
57
31
|
provider.on('chainChanged', this.onChainChanged);
|
|
58
32
|
provider.on('disconnect', this.onDisconnect.bind(this));
|
|
59
|
-
// Backward compatibility with older wallet (<7.3) version that return accounts before authorization
|
|
60
|
-
if (!sdk.isExtensionActive() && !sdk._getConnection()?.isAuthorized()) {
|
|
61
|
-
function waitForAuthorized() {
|
|
62
|
-
return new Promise((resolve) => {
|
|
63
|
-
const connection = sdk._getConnection();
|
|
64
|
-
const connector = connection?.getConnector();
|
|
65
|
-
connector?.once(EventType.AUTHORIZED, () => resolve(true));
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
await waitForAuthorized();
|
|
69
|
-
}
|
|
70
33
|
// Switch to chain if provided
|
|
71
|
-
let currentChainId = await this.getChainId();
|
|
34
|
+
let currentChainId = (await this.getChainId());
|
|
72
35
|
if (chainId && currentChainId !== chainId) {
|
|
73
36
|
const chain = await this.switchChain({ chainId }).catch((error) => {
|
|
74
37
|
if (error.code === UserRejectedRequestError.code)
|
|
@@ -108,46 +71,37 @@ export function metaMask(parameters = {}) {
|
|
|
108
71
|
},
|
|
109
72
|
async getChainId() {
|
|
110
73
|
const provider = await this.getProvider();
|
|
111
|
-
const chainId = provider.
|
|
74
|
+
const chainId = provider.getChainId() ||
|
|
75
|
+
(await provider?.request({ method: 'eth_chainId' }));
|
|
112
76
|
return Number(chainId);
|
|
113
77
|
},
|
|
114
78
|
async getProvider() {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
checkInstallationOnAllCalls: false,
|
|
134
|
-
});
|
|
135
|
-
await sdk.init();
|
|
136
|
-
}
|
|
137
|
-
try {
|
|
138
|
-
walletProvider = sdk.getProvider();
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
// TODO: SDK sometimes throws errors when MM extension or mobile provider is not detected (don't throw for those errors)
|
|
142
|
-
const regex = /^SDK state invalid -- undefined( mobile)? provider$/;
|
|
143
|
-
if (!regex.test(error.message))
|
|
144
|
-
throw error;
|
|
145
|
-
}
|
|
79
|
+
async function initProvider() {
|
|
80
|
+
const { MetaMaskSDK } = await import('@metamask/sdk');
|
|
81
|
+
sdk = new MetaMaskSDK({
|
|
82
|
+
dappMetadata: {},
|
|
83
|
+
...parameters,
|
|
84
|
+
_source: 'wagmi',
|
|
85
|
+
readonlyRPCMap: Object.fromEntries(config.chains.map((chain) => [
|
|
86
|
+
chain.id,
|
|
87
|
+
chain.rpcUrls.default.http[0],
|
|
88
|
+
])),
|
|
89
|
+
});
|
|
90
|
+
await sdk.init();
|
|
91
|
+
return sdk.getProvider();
|
|
92
|
+
}
|
|
93
|
+
if (!provider) {
|
|
94
|
+
if (!providerPromise)
|
|
95
|
+
providerPromise = initProvider();
|
|
96
|
+
provider = await providerPromise;
|
|
146
97
|
}
|
|
147
|
-
return
|
|
98
|
+
return provider;
|
|
148
99
|
},
|
|
149
100
|
async isAuthorized() {
|
|
150
101
|
try {
|
|
102
|
+
// MetaMask Mobile doesn't support persisted sessions.
|
|
103
|
+
if (isMobileBrowser)
|
|
104
|
+
return false;
|
|
151
105
|
const isDisconnected =
|
|
152
106
|
// If shim exists in storage, connector is disconnected
|
|
153
107
|
await config.storage?.getItem('metaMaskSDK.disconnected');
|
|
@@ -262,6 +216,11 @@ export function metaMask(parameters = {}) {
|
|
|
262
216
|
if (provider && !!(await this.getAccounts()).length)
|
|
263
217
|
return;
|
|
264
218
|
}
|
|
219
|
+
// Remove cached SDK properties.
|
|
220
|
+
if (typeof localStorage !== 'undefined') {
|
|
221
|
+
localStorage.removeItem('MMSDK_cached_address');
|
|
222
|
+
localStorage.removeItem('MMSDK_cached_chainId');
|
|
223
|
+
}
|
|
265
224
|
// No need to remove 'metaMaskSDK.disconnected' from storage because `onDisconnect` is typically
|
|
266
225
|
// only called when the wallet is disconnected through the wallet's interface, meaning the wallet
|
|
267
226
|
// actually disconnected and we don't need to simulate it.
|
package/dist/esm/metaMask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaMask.js","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"metaMask.js","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"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"}
|