@wagmi/connectors 4.0.0 → 4.0.2

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.
Files changed (52) hide show
  1. package/README.md +13 -0
  2. package/dist/esm/coinbaseWallet.js +20 -19
  3. package/dist/esm/coinbaseWallet.js.map +1 -1
  4. package/dist/esm/exports/index.js +7 -0
  5. package/dist/esm/exports/index.js.map +1 -0
  6. package/dist/esm/exports/index.test-d.js.map +1 -0
  7. package/dist/esm/metaMask.js +266 -0
  8. package/dist/esm/metaMask.js.map +1 -0
  9. package/dist/esm/safe.js +19 -16
  10. package/dist/esm/safe.js.map +1 -1
  11. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  12. package/dist/esm/version.js +1 -1
  13. package/dist/esm/walletConnect.js +15 -16
  14. package/dist/esm/walletConnect.js.map +1 -1
  15. package/dist/types/coinbaseWallet.d.ts +3 -0
  16. package/dist/types/coinbaseWallet.d.ts.map +1 -1
  17. package/dist/types/exports/index.d.ts +7 -0
  18. package/dist/types/exports/index.d.ts.map +1 -0
  19. package/dist/types/exports/index.test-d.d.ts.map +1 -0
  20. package/dist/types/metaMask.d.ts +13 -0
  21. package/dist/types/metaMask.d.ts.map +1 -0
  22. package/dist/types/safe.d.ts +5 -2
  23. package/dist/types/safe.d.ts.map +1 -1
  24. package/dist/types/version.d.ts +1 -1
  25. package/dist/types/walletConnect.d.ts +3 -0
  26. package/dist/types/walletConnect.d.ts.map +1 -1
  27. package/package.json +21 -38
  28. package/src/coinbaseWallet.ts +20 -19
  29. package/src/exports/index.ts +22 -0
  30. package/src/metaMask.ts +334 -0
  31. package/src/safe.ts +26 -20
  32. package/src/version.ts +1 -1
  33. package/src/walletConnect.ts +15 -20
  34. package/dist/esm/index.js +0 -7
  35. package/dist/esm/index.js.map +0 -1
  36. package/dist/esm/index.test-d.js.map +0 -1
  37. package/dist/esm/injected.js +0 -372
  38. package/dist/esm/injected.js.map +0 -1
  39. package/dist/esm/ledger.js +0 -162
  40. package/dist/esm/ledger.js.map +0 -1
  41. package/dist/types/index.d.ts +0 -7
  42. package/dist/types/index.d.ts.map +0 -1
  43. package/dist/types/index.test-d.d.ts.map +0 -1
  44. package/dist/types/injected.d.ts +0 -381
  45. package/dist/types/injected.d.ts.map +0 -1
  46. package/dist/types/ledger.d.ts +0 -18
  47. package/dist/types/ledger.d.ts.map +0 -1
  48. package/src/index.ts +0 -17
  49. package/src/injected.ts +0 -527
  50. package/src/ledger.ts +0 -210
  51. /package/dist/esm/{index.test-d.js → exports/index.test-d.js} +0 -0
  52. /package/dist/types/{index.test-d.d.ts → exports/index.test-d.d.ts} +0 -0
package/README.md ADDED
@@ -0,0 +1,13 @@
1
+ # @wagmi/connectors
2
+
3
+ Collection of connectors for Wagmi
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add @wagmi/connectors @wagmi/core viem
9
+ ```
10
+
11
+ ## Documentation
12
+
13
+ For documentation and guides, visit [wagmi.sh](https://wagmi.sh).
@@ -1,13 +1,15 @@
1
1
  import { CoinbaseWalletSDK, } from '@coinbase/wallet-sdk';
2
2
  import { ChainNotConfiguredError, createConnector, normalizeChainId, } from '@wagmi/core';
3
3
  import { SwitchChainError, UserRejectedRequestError, getAddress, numberToHex, } from 'viem';
4
+ coinbaseWallet.type = 'coinbaseWallet';
4
5
  export function coinbaseWallet(parameters) {
5
6
  const reloadOnDisconnect = false;
6
7
  let sdk;
7
- let provider_;
8
+ let walletProvider;
8
9
  return createConnector((config) => ({
9
- id: 'coinbaseWallet',
10
+ id: 'coinbaseWalletSDK',
10
11
  name: 'Coinbase Wallet',
12
+ type: coinbaseWallet.type,
11
13
  async connect({ chainId } = {}) {
12
14
  try {
13
15
  const provider = await this.getProvider();
@@ -20,15 +22,17 @@ export function coinbaseWallet(parameters) {
20
22
  // Switch to chain if provided
21
23
  let currentChainId = await this.getChainId();
22
24
  if (chainId && currentChainId !== chainId) {
23
- const chain = await this.switchChain({ chainId }).catch(() => ({
24
- id: currentChainId,
25
- }));
25
+ const chain = await this.switchChain({ chainId }).catch((error) => {
26
+ if (error.code === UserRejectedRequestError.code)
27
+ throw error;
28
+ return { id: currentChainId };
29
+ });
26
30
  currentChainId = chain?.id ?? currentChainId;
27
31
  }
28
32
  return { accounts, chainId: currentChainId };
29
33
  }
30
34
  catch (error) {
31
- if (/(user closed modal|accounts received is empty)/i.test(error.message))
35
+ if (/(user closed modal|accounts received is empty|user denied account)/i.test(error.message))
32
36
  throw new UserRejectedRequestError(error);
33
37
  throw error;
34
38
  }
@@ -47,13 +51,14 @@ export function coinbaseWallet(parameters) {
47
51
  method: 'eth_accounts',
48
52
  })).map(getAddress);
49
53
  },
54
+ async getChainId() {
55
+ const provider = await this.getProvider();
56
+ return normalizeChainId(provider.chainId);
57
+ },
50
58
  async getProvider() {
51
- if (!provider_) {
59
+ if (!walletProvider) {
52
60
  sdk = new CoinbaseWalletSDK({ reloadOnDisconnect, ...parameters });
53
- /**
54
- * Mock implementations to retrieve private `walletExtension` method
55
- * from the Coinbase Wallet SDK.
56
- */
61
+ // Mock implementations to retrieve private `walletExtension` method from the Coinbase Wallet SDK.
57
62
  class WalletProvider {
58
63
  }
59
64
  class SDK {
@@ -64,13 +69,9 @@ export function coinbaseWallet(parameters) {
64
69
  : chain.id === walletExtensionChainId) || config.chains[0];
65
70
  const chainId = parameters.chainId || chain?.id;
66
71
  const jsonRpcUrl = parameters.jsonRpcUrl || chain?.rpcUrls.default.http[0];
67
- provider_ = sdk.makeWeb3Provider(jsonRpcUrl, chainId);
72
+ walletProvider = sdk.makeWeb3Provider(jsonRpcUrl, chainId);
68
73
  }
69
- return provider_;
70
- },
71
- async getChainId() {
72
- const provider = await this.getProvider();
73
- return normalizeChainId(provider.chainId);
74
+ return walletProvider;
74
75
  },
75
76
  async isAuthorized() {
76
77
  try {
@@ -105,8 +106,8 @@ export function coinbaseWallet(parameters) {
105
106
  chainId: chainId_,
106
107
  chainName: chain.name,
107
108
  nativeCurrency: chain.nativeCurrency,
108
- rpcUrls: [chain.rpcUrls.public?.http[0] ?? ''],
109
- blockExplorerUrls: [chain.blockExplorers?.default],
109
+ rpcUrls: [chain.rpcUrls.default?.http[0] ?? ''],
110
+ blockExplorerUrls: [chain.blockExplorers?.default.url],
110
111
  },
111
112
  ],
112
113
  });
@@ -1 +1 @@
1
- {"version":3,"file":"coinbaseWallet.js","sourceRoot":"","sources":["../../src/coinbaseWallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coinbaseWallet.js","sourceRoot":"","sources":["../../src/coinbaseWallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { injected, mock, } from '@wagmi/core';
2
+ export { coinbaseWallet, } from '../coinbaseWallet.js';
3
+ export { metaMask } from '../metaMask.js';
4
+ export { safe } from '../safe.js';
5
+ export { walletConnect, } from '../walletConnect.js';
6
+ export { version } from '../version.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAER,IAAI,GACL,MAAM,aAAa,CAAA;AAEpB,OAAO,EAEL,cAAc,GACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAA2B,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAElE,OAAO,EAAuB,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,EAEL,aAAa,GACd,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-d.js","sourceRoot":"","sources":["../../../src/exports/index.test-d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC,uFAAuF;AACvF,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,EAAU,CAAA"}
@@ -0,0 +1,266 @@
1
+ import { EventType, MetaMaskSDK, SDKProvider, } from '@metamask/sdk';
2
+ import { ChainNotConfiguredError, createConnector, normalizeChainId, } from '@wagmi/core';
3
+ import { ResourceUnavailableRpcError, RpcError, SwitchChainError, UserRejectedRequestError, getAddress, numberToHex, } from 'viem';
4
+ metaMask.type = 'metaMask';
5
+ export function metaMask(parameters = {}) {
6
+ let sdk;
7
+ let walletProvider;
8
+ return createConnector((config) => ({
9
+ id: 'metaMaskSDK',
10
+ name: 'MetaMask',
11
+ type: metaMask.type,
12
+ async setup() {
13
+ const provider = await this.getProvider();
14
+ if (provider)
15
+ provider.on('connect', this.onConnect.bind(this));
16
+ },
17
+ async connect({ chainId, isReconnecting } = {}) {
18
+ const provider = await this.getProvider();
19
+ let accounts = null;
20
+ if (!isReconnecting) {
21
+ accounts = await this.getAccounts().catch(() => null);
22
+ const isAuthorized = !!accounts?.length;
23
+ if (isAuthorized)
24
+ // Attempt to show another prompt for selecting account if already connected
25
+ try {
26
+ const permissions = (await provider.request({
27
+ method: 'wallet_requestPermissions',
28
+ params: [{ eth_accounts: {} }],
29
+ }));
30
+ accounts = permissions[0]?.caveats?.[0]?.value?.map(getAddress);
31
+ }
32
+ catch (err) {
33
+ const error = err;
34
+ // Not all injected providers support `wallet_requestPermissions` (e.g. MetaMask iOS).
35
+ // Only bubble up error if user rejects request
36
+ if (error.code === UserRejectedRequestError.code)
37
+ throw new UserRejectedRequestError(error);
38
+ // Or prompt is already open
39
+ if (error.code === ResourceUnavailableRpcError.code)
40
+ throw error;
41
+ }
42
+ }
43
+ try {
44
+ if (!accounts?.length) {
45
+ const requestedAccounts = (await sdk.connect());
46
+ accounts = requestedAccounts.map(getAddress);
47
+ }
48
+ provider.removeListener('connect', this.onConnect.bind(this));
49
+ provider.on('accountsChanged', this.onAccountsChanged.bind(this));
50
+ provider.on('chainChanged', this.onChainChanged);
51
+ provider.on('disconnect', this.onDisconnect.bind(this));
52
+ // Backward compatibility with older wallet (<7.3) version that return accounts before authorization
53
+ if (!sdk.isExtensionActive() && !sdk._getConnection()?.isAuthorized()) {
54
+ function waitForAuthorized() {
55
+ return new Promise((resolve) => {
56
+ const connection = sdk._getConnection();
57
+ const connector = connection?.getConnector();
58
+ connector?.once(EventType.AUTHORIZED, () => resolve(true));
59
+ });
60
+ }
61
+ await waitForAuthorized();
62
+ }
63
+ // Switch to chain if provided
64
+ let currentChainId = await this.getChainId();
65
+ if (chainId && currentChainId !== chainId) {
66
+ const chain = await this.switchChain({ chainId }).catch((error) => {
67
+ if (error.code === UserRejectedRequestError.code)
68
+ throw error;
69
+ return { id: currentChainId };
70
+ });
71
+ currentChainId = chain?.id ?? currentChainId;
72
+ }
73
+ await config.storage?.removeItem('metaMaskSDK.disconnected');
74
+ return { accounts, chainId: currentChainId };
75
+ }
76
+ catch (err) {
77
+ const error = err;
78
+ if (error.code === UserRejectedRequestError.code)
79
+ throw new UserRejectedRequestError(error);
80
+ if (error.code === ResourceUnavailableRpcError.code)
81
+ throw new ResourceUnavailableRpcError(error);
82
+ throw error;
83
+ }
84
+ },
85
+ async disconnect() {
86
+ const provider = await this.getProvider();
87
+ provider.removeListener('accountsChanged', this.onAccountsChanged.bind(this));
88
+ provider.removeListener('chainChanged', this.onChainChanged);
89
+ provider.removeListener('disconnect', this.onDisconnect.bind(this));
90
+ provider.on('connect', this.onConnect.bind(this));
91
+ sdk.terminate();
92
+ // Add shim signalling connector is disconnected
93
+ await config.storage?.setItem('metaMaskSDK.disconnected', true);
94
+ },
95
+ async getAccounts() {
96
+ const provider = await this.getProvider();
97
+ const accounts = (await provider.request({
98
+ method: 'eth_accounts',
99
+ }));
100
+ return accounts.map(getAddress);
101
+ },
102
+ async getChainId() {
103
+ const provider = await this.getProvider();
104
+ const chainId = provider.chainId ?? (await provider?.request({ method: 'eth_chainId' }));
105
+ return normalizeChainId(chainId);
106
+ },
107
+ async getProvider() {
108
+ if (!walletProvider) {
109
+ if (!sdk || !sdk?.isInitialized()) {
110
+ sdk = new MetaMaskSDK({
111
+ enableDebug: false,
112
+ dappMetadata: { name: 'wagmi' },
113
+ extensionOnly: true,
114
+ modals: {
115
+ // Disable by default since it pops up when mobile tries to reconnect
116
+ otp() {
117
+ const noop = () => { };
118
+ return { mount: noop, unmount: noop };
119
+ },
120
+ },
121
+ useDeeplink: true,
122
+ _source: 'wagmi',
123
+ ...parameters,
124
+ checkInstallationImmediately: false,
125
+ checkInstallationOnAllCalls: false,
126
+ });
127
+ await sdk.init();
128
+ }
129
+ try {
130
+ walletProvider = sdk.getProvider();
131
+ }
132
+ catch (error) {
133
+ // TODO: SDK sometimes throws errors when MM extension or mobile provider is not detected (don't throw for those errors)
134
+ const regex = /^SDK state invalid -- undefined( mobile)? provider$/;
135
+ if (!regex.test(error.message))
136
+ throw error;
137
+ }
138
+ }
139
+ return walletProvider;
140
+ },
141
+ async isAuthorized() {
142
+ try {
143
+ const isDisconnected =
144
+ // If shim exists in storage, connector is disconnected
145
+ await config.storage?.getItem('metaMaskSDK.disconnected');
146
+ if (isDisconnected)
147
+ return false;
148
+ const accounts = await this.getAccounts();
149
+ return !!accounts.length;
150
+ }
151
+ catch {
152
+ return false;
153
+ }
154
+ },
155
+ async switchChain({ chainId }) {
156
+ const provider = await this.getProvider();
157
+ const chain = config.chains.find((x) => x.id === chainId);
158
+ if (!chain)
159
+ throw new SwitchChainError(new ChainNotConfiguredError());
160
+ try {
161
+ await Promise.all([
162
+ provider.request({
163
+ method: 'wallet_switchEthereumChain',
164
+ params: [{ chainId: numberToHex(chainId) }],
165
+ }),
166
+ new Promise((resolve) => config.emitter.once('change', ({ chainId: currentChainId }) => {
167
+ if (currentChainId === chainId)
168
+ resolve();
169
+ })),
170
+ ]);
171
+ return chain;
172
+ }
173
+ catch (err) {
174
+ const error = err;
175
+ // Indicates chain is not added to provider
176
+ if (error.code === 4902 ||
177
+ // Unwrapping for MetaMask Mobile
178
+ // https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
179
+ error
180
+ ?.data?.originalError?.code === 4902) {
181
+ try {
182
+ const { default: blockExplorer, ...blockExplorers } = chain.blockExplorers ?? {};
183
+ let blockExplorerUrls = [];
184
+ if (blockExplorer)
185
+ blockExplorerUrls = [
186
+ blockExplorer.url,
187
+ ...Object.values(blockExplorers).map((x) => x.url),
188
+ ];
189
+ await provider.request({
190
+ method: 'wallet_addEthereumChain',
191
+ params: [
192
+ {
193
+ chainId: numberToHex(chainId),
194
+ chainName: chain.name,
195
+ nativeCurrency: chain.nativeCurrency,
196
+ rpcUrls: [chain.rpcUrls.default?.http[0] ?? ''],
197
+ blockExplorerUrls,
198
+ },
199
+ ],
200
+ });
201
+ const currentChainId = await this.getChainId();
202
+ if (currentChainId !== chainId)
203
+ throw new UserRejectedRequestError(new Error('User rejected switch after adding network.'));
204
+ return chain;
205
+ }
206
+ catch (error) {
207
+ throw new UserRejectedRequestError(error);
208
+ }
209
+ }
210
+ if (error.code === UserRejectedRequestError.code)
211
+ throw new UserRejectedRequestError(error);
212
+ throw new SwitchChainError(error);
213
+ }
214
+ },
215
+ async onAccountsChanged(accounts) {
216
+ // Disconnect if there are no accounts
217
+ if (accounts.length === 0)
218
+ this.onDisconnect();
219
+ // Connect if emitter is listening for connect event (e.g. is disconnected and connects through wallet interface)
220
+ else if (config.emitter.listenerCount('connect')) {
221
+ const chainId = (await this.getChainId()).toString();
222
+ this.onConnect({ chainId });
223
+ await config.storage?.removeItem('metaMaskSDK.disconnected');
224
+ }
225
+ // Regular change event
226
+ else
227
+ config.emitter.emit('change', { accounts: accounts.map(getAddress) });
228
+ },
229
+ onChainChanged(chain) {
230
+ const chainId = normalizeChainId(chain);
231
+ config.emitter.emit('change', { chainId });
232
+ },
233
+ async onConnect(connectInfo) {
234
+ const accounts = await this.getAccounts();
235
+ if (accounts.length === 0)
236
+ return;
237
+ const chainId = normalizeChainId(connectInfo.chainId);
238
+ config.emitter.emit('connect', { accounts, chainId });
239
+ const provider = await this.getProvider();
240
+ if (provider) {
241
+ provider.removeListener('connect', this.onConnect.bind(this));
242
+ provider.on('accountsChanged', this.onAccountsChanged.bind(this));
243
+ provider.on('chainChanged', this.onChainChanged);
244
+ provider.on('disconnect', this.onDisconnect.bind(this));
245
+ }
246
+ },
247
+ async onDisconnect(error) {
248
+ const provider = await this.getProvider();
249
+ // If MetaMask emits a `code: 1013` error, wait for reconnection before disconnecting
250
+ // https://github.com/MetaMask/providers/pull/120
251
+ if (error && error.code === 1013) {
252
+ if (provider && !!(await this.getAccounts()).length)
253
+ return;
254
+ }
255
+ // No need to remove 'metaMaskSDK.disconnected' from storage because `onDisconnect` is typically
256
+ // only called when the wallet is disconnected through the wallet's interface, meaning the wallet
257
+ // actually disconnected and we don't need to simulate it.
258
+ config.emitter.emit('disconnect');
259
+ provider.removeListener('accountsChanged', this.onAccountsChanged.bind(this));
260
+ provider.removeListener('chainChanged', this.onChainChanged);
261
+ provider.removeListener('disconnect', this.onDisconnect.bind(this));
262
+ provider.on('connect', this.onConnect.bind(this));
263
+ },
264
+ }));
265
+ }
266
+ //# sourceMappingURL=metaMask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metaMask.js","sourceRoot":"","sources":["../../src/metaMask.ts"],"names":[],"mappings":"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"}
package/dist/esm/safe.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { SafeAppProvider } from '@safe-global/safe-apps-provider';
2
2
  import { default as SafeAppsSDK } from '@safe-global/safe-apps-sdk';
3
- import { ProviderNotFoundError } from '@wagmi/core';
4
- import { createConnector, normalizeChainId } from '@wagmi/core';
3
+ import { ProviderNotFoundError, createConnector, normalizeChainId, } from '@wagmi/core';
5
4
  import { getAddress } from 'viem';
5
+ safe.type = 'safe';
6
6
  export function safe(parameters = {}) {
7
- const shimDisconnectStorageKey = 'safe.shimDisconnect';
7
+ const { shimDisconnect = false } = parameters;
8
8
  let provider_;
9
9
  let SDK;
10
10
  if (typeof SafeAppsSDK !== 'function' &&
@@ -16,28 +16,27 @@ export function safe(parameters = {}) {
16
16
  return createConnector((config) => ({
17
17
  id: 'safe',
18
18
  name: 'Safe',
19
+ type: safe.type,
19
20
  async connect() {
20
- // Only allowed in iframe context
21
- const isIframe = typeof window !== 'undefined' && window?.parent !== window;
22
- if (!isIframe)
23
- throw new ProviderNotFoundError();
24
21
  const provider = await this.getProvider();
25
22
  if (!provider)
26
23
  throw new ProviderNotFoundError();
27
24
  const accounts = await this.getAccounts();
28
25
  const chainId = await this.getChainId();
29
26
  provider.on('disconnect', this.onDisconnect.bind(this));
30
- // Add shim to storage signalling wallet is connected
31
- if (parameters.shimDisconnect)
32
- await config.storage?.setItem(shimDisconnectStorageKey, true);
27
+ // Remove disconnected shim if it exists
28
+ if (shimDisconnect)
29
+ await config.storage?.removeItem('safe.disconnected');
33
30
  return { accounts, chainId };
34
31
  },
35
32
  async disconnect() {
36
33
  const provider = await this.getProvider();
34
+ if (!provider)
35
+ throw new ProviderNotFoundError();
37
36
  provider.removeListener('disconnect', this.onDisconnect.bind(this));
38
- // Remove shim signalling wallet is disconnected
39
- if (parameters.shimDisconnect)
40
- await config.storage?.removeItem(shimDisconnectStorageKey);
37
+ // Add shim signalling connector is disconnected
38
+ if (shimDisconnect)
39
+ await config.storage?.setItem('safe.disconnected', true);
41
40
  },
42
41
  async getAccounts() {
43
42
  const provider = await this.getProvider();
@@ -46,6 +45,10 @@ export function safe(parameters = {}) {
46
45
  return (await provider.request({ method: 'eth_accounts' })).map(getAddress);
47
46
  },
48
47
  async getProvider() {
48
+ // Only allowed in iframe context
49
+ const isIframe = typeof window !== 'undefined' && window?.parent !== window;
50
+ if (!isIframe)
51
+ return;
49
52
  if (!provider_) {
50
53
  const safe = await sdk.safe.getInfo();
51
54
  if (!safe)
@@ -62,9 +65,9 @@ export function safe(parameters = {}) {
62
65
  },
63
66
  async isAuthorized() {
64
67
  try {
65
- const isDisconnected = parameters.shimDisconnect &&
66
- // If shim does not exist in storage, wallet is disconnected
67
- !(await config.storage?.getItem(shimDisconnectStorageKey));
68
+ const isDisconnected = shimDisconnect &&
69
+ // If shim exists in storage, connector is disconnected
70
+ (await config.storage?.getItem('safe.disconnected'));
68
71
  if (isDisconnected)
69
72
  return false;
70
73
  const accounts = await this.getAccounts();
@@ -1 +1 @@
1
- {"version":3,"file":"safe.js","sourceRoot":"","sources":["../../src/safe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe.js","sourceRoot":"","sources":["../../src/safe.ts"],"names":[],"mappings":"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"}