@wagmi/connectors 5.0.0 → 5.0.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.
- package/dist/esm/coinbaseWallet.js +274 -36
- package/dist/esm/coinbaseWallet.js.map +1 -1
- package/dist/esm/metaMask.js +67 -96
- package/dist/esm/metaMask.js.map +1 -1
- package/dist/esm/safe.js +20 -13
- package/dist/esm/safe.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/walletConnect.js +147 -77
- package/dist/esm/walletConnect.js.map +1 -1
- package/dist/types/coinbaseWallet.d.ts +38 -7
- package/dist/types/coinbaseWallet.d.ts.map +1 -1
- package/dist/types/metaMask.d.ts +3 -10
- package/dist/types/metaMask.d.ts.map +1 -1
- package/dist/types/safe.d.ts +2 -2
- package/dist/types/safe.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/walletConnect.d.ts +5 -9
- package/dist/types/walletConnect.d.ts.map +1 -1
- package/package.json +7 -6
- package/src/coinbaseWallet.ts +378 -66
- package/src/metaMask.ts +81 -110
- package/src/safe.ts +29 -14
- package/src/version.ts +1 -1
- package/src/walletConnect.ts +173 -99
- package/dist/esm/exports/index.test-d.js +0 -4
- package/dist/esm/exports/index.test-d.js.map +0 -1
- package/dist/types/exports/index.test-d.d.ts +0 -2
- package/dist/types/exports/index.test-d.d.ts.map +0 -1
package/dist/esm/metaMask.js
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ChainNotConfiguredError, createConnector, normalizeChainId, } from '@wagmi/core';
|
|
1
|
+
import { ChainNotConfiguredError, createConnector } from '@wagmi/core';
|
|
3
2
|
import { ResourceUnavailableRpcError, RpcError, SwitchChainError, UserRejectedRequestError, getAddress, numberToHex, } from 'viem';
|
|
4
3
|
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
4
|
export function metaMask(parameters = {}) {
|
|
13
5
|
let sdk;
|
|
14
|
-
let
|
|
6
|
+
let provider;
|
|
7
|
+
let providerPromise;
|
|
15
8
|
return createConnector((config) => ({
|
|
16
9
|
id: 'metaMaskSDK',
|
|
17
10
|
name: 'MetaMask',
|
|
@@ -23,52 +16,20 @@ export function metaMask(parameters = {}) {
|
|
|
23
16
|
},
|
|
24
17
|
async connect({ chainId, isReconnecting } = {}) {
|
|
25
18
|
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(getAddress);
|
|
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
|
-
}
|
|
19
|
+
let accounts = [];
|
|
20
|
+
if (isReconnecting)
|
|
21
|
+
accounts = await this.getAccounts().catch(() => []);
|
|
50
22
|
try {
|
|
51
23
|
if (!accounts?.length) {
|
|
52
24
|
const requestedAccounts = (await sdk.connect());
|
|
53
|
-
accounts = requestedAccounts.map(getAddress);
|
|
25
|
+
accounts = requestedAccounts.map((x) => getAddress(x));
|
|
54
26
|
}
|
|
55
27
|
provider.removeListener('connect', this.onConnect.bind(this));
|
|
56
28
|
provider.on('accountsChanged', this.onAccountsChanged.bind(this));
|
|
57
29
|
provider.on('chainChanged', this.onChainChanged);
|
|
58
30
|
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
31
|
// Switch to chain if provided
|
|
71
|
-
let currentChainId = await this.getChainId();
|
|
32
|
+
let currentChainId = (await this.getChainId());
|
|
72
33
|
if (chainId && currentChainId !== chainId) {
|
|
73
34
|
const chain = await this.switchChain({ chainId }).catch((error) => {
|
|
74
35
|
if (error.code === UserRejectedRequestError.code)
|
|
@@ -104,49 +65,44 @@ export function metaMask(parameters = {}) {
|
|
|
104
65
|
const accounts = (await provider.request({
|
|
105
66
|
method: 'eth_accounts',
|
|
106
67
|
}));
|
|
107
|
-
return accounts.map(getAddress);
|
|
68
|
+
return accounts.map((x) => getAddress(x));
|
|
108
69
|
},
|
|
109
70
|
async getChainId() {
|
|
110
71
|
const provider = await this.getProvider();
|
|
111
|
-
const chainId = provider.
|
|
112
|
-
|
|
72
|
+
const chainId = provider.getChainId() ||
|
|
73
|
+
(await provider?.request({ method: 'eth_chainId' }));
|
|
74
|
+
return Number(chainId);
|
|
113
75
|
},
|
|
114
76
|
async getProvider() {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
});
|
|
134
|
-
await sdk.init();
|
|
135
|
-
}
|
|
136
|
-
try {
|
|
137
|
-
walletProvider = sdk.getProvider();
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
// TODO: SDK sometimes throws errors when MM extension or mobile provider is not detected (don't throw for those errors)
|
|
141
|
-
const regex = /^SDK state invalid -- undefined( mobile)? provider$/;
|
|
142
|
-
if (!regex.test(error.message))
|
|
143
|
-
throw error;
|
|
144
|
-
}
|
|
77
|
+
async function initProvider() {
|
|
78
|
+
const { MetaMaskSDK } = await import('@metamask/sdk');
|
|
79
|
+
sdk = new MetaMaskSDK({
|
|
80
|
+
dappMetadata: {},
|
|
81
|
+
...parameters,
|
|
82
|
+
_source: 'wagmi',
|
|
83
|
+
readonlyRPCMap: Object.fromEntries(config.chains.map((chain) => [
|
|
84
|
+
chain.id,
|
|
85
|
+
chain.rpcUrls.default.http[0],
|
|
86
|
+
])),
|
|
87
|
+
});
|
|
88
|
+
await sdk.init();
|
|
89
|
+
return sdk.getProvider();
|
|
90
|
+
}
|
|
91
|
+
if (!provider) {
|
|
92
|
+
if (!providerPromise)
|
|
93
|
+
providerPromise = initProvider();
|
|
94
|
+
provider = await providerPromise;
|
|
145
95
|
}
|
|
146
|
-
return
|
|
96
|
+
return provider;
|
|
147
97
|
},
|
|
148
98
|
async isAuthorized() {
|
|
149
99
|
try {
|
|
100
|
+
const isMobileBrowser = typeof navigator !== 'undefined'
|
|
101
|
+
? /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
|
|
102
|
+
: false;
|
|
103
|
+
// MetaMask Mobile doesn't support persisted sessions.
|
|
104
|
+
if (isMobileBrowser)
|
|
105
|
+
return false;
|
|
150
106
|
const isDisconnected =
|
|
151
107
|
// If shim exists in storage, connector is disconnected
|
|
152
108
|
await config.storage?.getItem('metaMaskSDK.disconnected');
|
|
@@ -159,7 +115,7 @@ export function metaMask(parameters = {}) {
|
|
|
159
115
|
return false;
|
|
160
116
|
}
|
|
161
117
|
},
|
|
162
|
-
async switchChain({ chainId }) {
|
|
118
|
+
async switchChain({ addEthereumChainParameter, chainId }) {
|
|
163
119
|
const provider = await this.getProvider();
|
|
164
120
|
const chain = config.chains.find((x) => x.id === chainId);
|
|
165
121
|
if (!chain)
|
|
@@ -187,23 +143,31 @@ export function metaMask(parameters = {}) {
|
|
|
187
143
|
?.data?.originalError?.code === 4902) {
|
|
188
144
|
try {
|
|
189
145
|
const { default: blockExplorer, ...blockExplorers } = chain.blockExplorers ?? {};
|
|
190
|
-
let blockExplorerUrls
|
|
191
|
-
if (
|
|
146
|
+
let blockExplorerUrls;
|
|
147
|
+
if (addEthereumChainParameter?.blockExplorerUrls)
|
|
148
|
+
blockExplorerUrls = addEthereumChainParameter.blockExplorerUrls;
|
|
149
|
+
else if (blockExplorer)
|
|
192
150
|
blockExplorerUrls = [
|
|
193
151
|
blockExplorer.url,
|
|
194
152
|
...Object.values(blockExplorers).map((x) => x.url),
|
|
195
153
|
];
|
|
154
|
+
let rpcUrls;
|
|
155
|
+
if (addEthereumChainParameter?.rpcUrls?.length)
|
|
156
|
+
rpcUrls = addEthereumChainParameter.rpcUrls;
|
|
157
|
+
else
|
|
158
|
+
rpcUrls = [chain.rpcUrls.default?.http[0] ?? ''];
|
|
159
|
+
const addEthereumChain = {
|
|
160
|
+
blockExplorerUrls,
|
|
161
|
+
chainId: numberToHex(chainId),
|
|
162
|
+
chainName: addEthereumChainParameter?.chainName ?? chain.name,
|
|
163
|
+
iconUrls: addEthereumChainParameter?.iconUrls,
|
|
164
|
+
nativeCurrency: addEthereumChainParameter?.nativeCurrency ??
|
|
165
|
+
chain.nativeCurrency,
|
|
166
|
+
rpcUrls,
|
|
167
|
+
};
|
|
196
168
|
await provider.request({
|
|
197
169
|
method: 'wallet_addEthereumChain',
|
|
198
|
-
params: [
|
|
199
|
-
{
|
|
200
|
-
chainId: numberToHex(chainId),
|
|
201
|
-
chainName: chain.name,
|
|
202
|
-
nativeCurrency: chain.nativeCurrency,
|
|
203
|
-
rpcUrls: [chain.rpcUrls.default?.http[0] ?? ''],
|
|
204
|
-
blockExplorerUrls,
|
|
205
|
-
},
|
|
206
|
-
],
|
|
170
|
+
params: [addEthereumChain],
|
|
207
171
|
});
|
|
208
172
|
const currentChainId = await this.getChainId();
|
|
209
173
|
if (currentChainId !== chainId)
|
|
@@ -231,17 +195,19 @@ export function metaMask(parameters = {}) {
|
|
|
231
195
|
}
|
|
232
196
|
// Regular change event
|
|
233
197
|
else
|
|
234
|
-
config.emitter.emit('change', {
|
|
198
|
+
config.emitter.emit('change', {
|
|
199
|
+
accounts: accounts.map((x) => getAddress(x)),
|
|
200
|
+
});
|
|
235
201
|
},
|
|
236
202
|
onChainChanged(chain) {
|
|
237
|
-
const chainId =
|
|
203
|
+
const chainId = Number(chain);
|
|
238
204
|
config.emitter.emit('change', { chainId });
|
|
239
205
|
},
|
|
240
206
|
async onConnect(connectInfo) {
|
|
241
207
|
const accounts = await this.getAccounts();
|
|
242
208
|
if (accounts.length === 0)
|
|
243
209
|
return;
|
|
244
|
-
const chainId =
|
|
210
|
+
const chainId = Number(connectInfo.chainId);
|
|
245
211
|
config.emitter.emit('connect', { accounts, chainId });
|
|
246
212
|
const provider = await this.getProvider();
|
|
247
213
|
if (provider) {
|
|
@@ -259,6 +225,11 @@ export function metaMask(parameters = {}) {
|
|
|
259
225
|
if (provider && !!(await this.getAccounts()).length)
|
|
260
226
|
return;
|
|
261
227
|
}
|
|
228
|
+
// Remove cached SDK properties.
|
|
229
|
+
if (typeof localStorage !== 'undefined') {
|
|
230
|
+
localStorage.removeItem('MMSDK_cached_address');
|
|
231
|
+
localStorage.removeItem('MMSDK_cached_chainId');
|
|
232
|
+
}
|
|
262
233
|
// No need to remove 'metaMaskSDK.disconnected' from storage because `onDisconnect` is typically
|
|
263
234
|
// only called when the wallet is disconnected through the wallet's interface, meaning the wallet
|
|
264
235
|
// 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":"
|
|
1
|
+
{"version":3,"file":"metaMask.js","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/safe.js
CHANGED
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as SafeAppsSDK } from '@safe-global/safe-apps-sdk';
|
|
3
|
-
import { ProviderNotFoundError, createConnector, normalizeChainId, } from '@wagmi/core';
|
|
1
|
+
import { ProviderNotFoundError, createConnector, } from '@wagmi/core';
|
|
4
2
|
import { getAddress } from 'viem';
|
|
5
3
|
safe.type = 'safe';
|
|
6
4
|
export function safe(parameters = {}) {
|
|
7
5
|
const { shimDisconnect = false } = parameters;
|
|
8
6
|
let provider_;
|
|
9
|
-
let
|
|
10
|
-
if (typeof SafeAppsSDK !== 'function' &&
|
|
11
|
-
typeof SafeAppsSDK.default === 'function')
|
|
12
|
-
SDK = SafeAppsSDK.default;
|
|
13
|
-
else
|
|
14
|
-
SDK = SafeAppsSDK;
|
|
15
|
-
const sdk = new SDK(parameters);
|
|
7
|
+
let disconnect;
|
|
16
8
|
return createConnector((config) => ({
|
|
17
9
|
id: 'safe',
|
|
18
10
|
name: 'Safe',
|
|
@@ -23,7 +15,10 @@ export function safe(parameters = {}) {
|
|
|
23
15
|
throw new ProviderNotFoundError();
|
|
24
16
|
const accounts = await this.getAccounts();
|
|
25
17
|
const chainId = await this.getChainId();
|
|
26
|
-
|
|
18
|
+
if (!disconnect) {
|
|
19
|
+
disconnect = this.onDisconnect.bind(this);
|
|
20
|
+
provider.on('disconnect', disconnect);
|
|
21
|
+
}
|
|
27
22
|
// Remove disconnected shim if it exists
|
|
28
23
|
if (shimDisconnect)
|
|
29
24
|
await config.storage?.removeItem('safe.disconnected');
|
|
@@ -33,7 +28,10 @@ export function safe(parameters = {}) {
|
|
|
33
28
|
const provider = await this.getProvider();
|
|
34
29
|
if (!provider)
|
|
35
30
|
throw new ProviderNotFoundError();
|
|
36
|
-
|
|
31
|
+
if (disconnect) {
|
|
32
|
+
provider.removeListener('disconnect', disconnect);
|
|
33
|
+
disconnect = undefined;
|
|
34
|
+
}
|
|
37
35
|
// Add shim signalling connector is disconnected
|
|
38
36
|
if (shimDisconnect)
|
|
39
37
|
await config.storage?.setItem('safe.disconnected', true);
|
|
@@ -50,9 +48,18 @@ export function safe(parameters = {}) {
|
|
|
50
48
|
if (!isIframe)
|
|
51
49
|
return;
|
|
52
50
|
if (!provider_) {
|
|
51
|
+
const { default: SafeAppsSDK } = await import('@safe-global/safe-apps-sdk');
|
|
52
|
+
let SDK;
|
|
53
|
+
if (typeof SafeAppsSDK !== 'function' &&
|
|
54
|
+
typeof SafeAppsSDK.default === 'function')
|
|
55
|
+
SDK = SafeAppsSDK.default;
|
|
56
|
+
else
|
|
57
|
+
SDK = SafeAppsSDK;
|
|
58
|
+
const sdk = new SDK(parameters);
|
|
53
59
|
const safe = await sdk.safe.getInfo();
|
|
54
60
|
if (!safe)
|
|
55
61
|
throw new Error('Could not load Safe information');
|
|
62
|
+
const { SafeAppProvider } = await import('@safe-global/safe-apps-provider');
|
|
56
63
|
provider_ = new SafeAppProvider(safe, sdk);
|
|
57
64
|
}
|
|
58
65
|
return provider_;
|
|
@@ -61,7 +68,7 @@ export function safe(parameters = {}) {
|
|
|
61
68
|
const provider = await this.getProvider();
|
|
62
69
|
if (!provider)
|
|
63
70
|
throw new ProviderNotFoundError();
|
|
64
|
-
return
|
|
71
|
+
return Number(provider.chainId);
|
|
65
72
|
},
|
|
66
73
|
async isAuthorized() {
|
|
67
74
|
try {
|
package/dist/esm/safe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.js","sourceRoot":"","sources":["../../src/safe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"safe.js","sourceRoot":"","sources":["../../src/safe.ts"],"names":[],"mappings":"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"}
|