@wagmi/connectors 4.1.26 → 4.1.28
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 +39 -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 +46 -88
- package/src/version.ts +1 -1
package/dist/esm/metaMask.js
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
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
4
|
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
5
|
export function metaMask(parameters = {}) {
|
|
13
6
|
let sdk;
|
|
14
|
-
let
|
|
7
|
+
let provider;
|
|
8
|
+
let providerPromise;
|
|
15
9
|
return createConnector((config) => ({
|
|
16
10
|
id: 'metaMaskSDK',
|
|
17
11
|
name: 'MetaMask',
|
|
@@ -23,30 +17,9 @@ export function metaMask(parameters = {}) {
|
|
|
23
17
|
},
|
|
24
18
|
async connect({ chainId, isReconnecting } = {}) {
|
|
25
19
|
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
|
-
}
|
|
20
|
+
let accounts = [];
|
|
21
|
+
if (isReconnecting)
|
|
22
|
+
accounts = await this.getAccounts().catch(() => []);
|
|
50
23
|
try {
|
|
51
24
|
if (!accounts?.length) {
|
|
52
25
|
const requestedAccounts = (await sdk.connect());
|
|
@@ -56,19 +29,8 @@ export function metaMask(parameters = {}) {
|
|
|
56
29
|
provider.on('accountsChanged', this.onAccountsChanged.bind(this));
|
|
57
30
|
provider.on('chainChanged', this.onChainChanged);
|
|
58
31
|
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
32
|
// Switch to chain if provided
|
|
71
|
-
let currentChainId = await this.getChainId();
|
|
33
|
+
let currentChainId = (await this.getChainId());
|
|
72
34
|
if (chainId && currentChainId !== chainId) {
|
|
73
35
|
const chain = await this.switchChain({ chainId }).catch((error) => {
|
|
74
36
|
if (error.code === UserRejectedRequestError.code)
|
|
@@ -108,46 +70,40 @@ export function metaMask(parameters = {}) {
|
|
|
108
70
|
},
|
|
109
71
|
async getChainId() {
|
|
110
72
|
const provider = await this.getProvider();
|
|
111
|
-
const chainId = provider.
|
|
73
|
+
const chainId = provider.getChainId() ||
|
|
74
|
+
(await provider?.request({ method: 'eth_chainId' }));
|
|
112
75
|
return Number(chainId);
|
|
113
76
|
},
|
|
114
77
|
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
|
-
}
|
|
78
|
+
async function initProvider() {
|
|
79
|
+
const { MetaMaskSDK } = await import('@metamask/sdk');
|
|
80
|
+
sdk = new MetaMaskSDK({
|
|
81
|
+
dappMetadata: {},
|
|
82
|
+
...parameters,
|
|
83
|
+
_source: 'wagmi',
|
|
84
|
+
readonlyRPCMap: Object.fromEntries(config.chains.map((chain) => [
|
|
85
|
+
chain.id,
|
|
86
|
+
chain.rpcUrls.default.http[0],
|
|
87
|
+
])),
|
|
88
|
+
});
|
|
89
|
+
await sdk.init();
|
|
90
|
+
return sdk.getProvider();
|
|
91
|
+
}
|
|
92
|
+
if (!provider) {
|
|
93
|
+
if (!providerPromise)
|
|
94
|
+
providerPromise = initProvider();
|
|
95
|
+
provider = await providerPromise;
|
|
146
96
|
}
|
|
147
|
-
return
|
|
97
|
+
return provider;
|
|
148
98
|
},
|
|
149
99
|
async isAuthorized() {
|
|
150
100
|
try {
|
|
101
|
+
const isMobileBrowser = typeof navigator !== 'undefined'
|
|
102
|
+
? /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
|
|
103
|
+
: false;
|
|
104
|
+
// MetaMask Mobile doesn't support persisted sessions.
|
|
105
|
+
if (isMobileBrowser)
|
|
106
|
+
return false;
|
|
151
107
|
const isDisconnected =
|
|
152
108
|
// If shim exists in storage, connector is disconnected
|
|
153
109
|
await config.storage?.getItem('metaMaskSDK.disconnected');
|
|
@@ -262,6 +218,11 @@ export function metaMask(parameters = {}) {
|
|
|
262
218
|
if (provider && !!(await this.getAccounts()).length)
|
|
263
219
|
return;
|
|
264
220
|
}
|
|
221
|
+
// Remove cached SDK properties.
|
|
222
|
+
if (typeof localStorage !== 'undefined') {
|
|
223
|
+
localStorage.removeItem('MMSDK_cached_address');
|
|
224
|
+
localStorage.removeItem('MMSDK_cached_chainId');
|
|
225
|
+
}
|
|
265
226
|
// No need to remove 'metaMaskSDK.disconnected' from storage because `onDisconnect` is typically
|
|
266
227
|
// only called when the wallet is disconnected through the wallet's interface, meaning the wallet
|
|
267
228
|
// 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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"}
|