@bit-buccaneers/wallet-abstraction 0.0.24 → 0.0.30

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/dev.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { injected, metaMask, coinbaseWallet } from '@wagmi/connectors';
2
- import { createConfig, getConnectors, signMessage, disconnect, connect, watchConnections, switchChain as switchChain$1, sendTransaction as sendTransaction$1, waitForTransactionReceipt as waitForTransactionReceipt$1, readContract, writeContract } from '@wagmi/core';
2
+ import { createConfig, getConnectors, signMessage, connect, disconnect, watchConnections, switchChain as switchChain$1, sendTransaction as sendTransaction$1, waitForTransactionReceipt as waitForTransactionReceipt$1, readContract, writeContract } from '@wagmi/core';
3
3
  import { http, erc20Abi } from 'viem';
4
4
  import { mainnet } from 'viem/chains';
5
5
  import bs582 from 'bs58';
@@ -25,7 +25,7 @@ var createEvmConfig = (chains) => {
25
25
  chains: configuredChains,
26
26
  connectors,
27
27
  transports,
28
- multiInjectedProviderDiscovery: false
28
+ multiInjectedProviderDiscovery: true
29
29
  });
30
30
  return config;
31
31
  };
@@ -232,7 +232,15 @@ var isMobile = () => {
232
232
  return typeof window !== "undefined" && /iPhone|iPad|iPod|Android/i.test(window.navigator.userAgent);
233
233
  };
234
234
  var isInWalletBrowser = (key) => {
235
- return typeof window !== "undefined" && !!window.ethereum?.[key];
235
+ if (typeof window === "undefined") return false;
236
+ const ethereum = window.ethereum;
237
+ const providers = ethereum?.providers ?? (ethereum ? [ethereum] : []);
238
+ if (key === "isMetaMask") {
239
+ return providers.some(
240
+ (provider) => !!provider.isMetaMask && !provider.isBraveWallet && !provider.isOkxWallet && !provider.isRabby
241
+ );
242
+ }
243
+ return providers.some((provider) => !!provider[key]);
236
244
  };
237
245
  var openDeeplink = (url) => {
238
246
  const link = document.createElement("a");
@@ -1307,10 +1315,28 @@ var checkEvmWalletInstalled = (connectorId) => {
1307
1315
  }
1308
1316
  };
1309
1317
  var cleanupWalletLocalStorage = () => {
1310
- Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1318
+ const prefixes = ["wagmi.", "@metamask/", "MMSDK_"];
1319
+ Object.keys(window.localStorage).filter((key) => prefixes.some((p) => key.startsWith(p))).forEach((key) => window.localStorage.removeItem(key));
1320
+ };
1321
+ var disconnectAllEvmConnections = async () => {
1322
+ const config2 = getEvmConfig();
1323
+ const connections = [...config2.state.connections.values()];
1324
+ for (const connection of connections) {
1325
+ await disconnect(config2, { connector: connection.connector });
1326
+ }
1327
+ const shimKeys = [];
1328
+ for (const connector of config2.connectors) {
1329
+ await config2.storage?.setItem(`${connector.id}.disconnected`, true);
1330
+ shimKeys.push(`wagmi.${connector.id}.disconnected`);
1331
+ }
1332
+ cleanupWalletLocalStorage();
1333
+ for (const key of shimKeys) {
1334
+ window.localStorage.setItem(key, JSON.stringify(true));
1335
+ }
1311
1336
  };
1337
+ var EVM_EXCLUDED_RDNS = /* @__PURE__ */ new Set(["app.solflare"]);
1312
1338
  var getEvmConnectors = () => {
1313
- const wagmiConnectors = getConnectors(getEvmConfig());
1339
+ const wagmiConnectors = getConnectors(getEvmConfig()).filter((c) => !EVM_EXCLUDED_RDNS.has(c.id));
1314
1340
  const connectors = wagmiConnectors.map((c) => ({
1315
1341
  id: normalizeEvmWalletId(c.id),
1316
1342
  name: c.name,
@@ -1327,7 +1353,6 @@ var getEvmConnectors = () => {
1327
1353
  } catch (err) {
1328
1354
  if (err instanceof Error && err.name === "ConnectorAlreadyConnectedError") {
1329
1355
  await disconnect(getEvmConfig(), { connector: c });
1330
- cleanupWalletLocalStorage();
1331
1356
  await sleep(100);
1332
1357
  const result = await connect(getEvmConfig(), { connector: c });
1333
1358
  if (!result.accounts[0]) throw new Error("No accounts returned");
@@ -1337,8 +1362,7 @@ var getEvmConnectors = () => {
1337
1362
  }
1338
1363
  },
1339
1364
  disconnect: async () => {
1340
- await disconnect(getEvmConfig());
1341
- cleanupWalletLocalStorage();
1365
+ await disconnectAllEvmConnections();
1342
1366
  },
1343
1367
  signMessage: async (message) => {
1344
1368
  return signMessage(getEvmConfig(), { message });
package/dist/dev.jsx CHANGED
@@ -16,7 +16,7 @@ var createEvmConfig = (chains) => {
16
16
  chains: configuredChains,
17
17
  connectors,
18
18
  transports,
19
- multiInjectedProviderDiscovery: false
19
+ multiInjectedProviderDiscovery: true
20
20
  });
21
21
  return config;
22
22
  };
@@ -229,7 +229,15 @@ var isMobile = () => {
229
229
  return typeof window !== "undefined" && /iPhone|iPad|iPod|Android/i.test(window.navigator.userAgent);
230
230
  };
231
231
  var isInWalletBrowser = (key) => {
232
- return typeof window !== "undefined" && !!window.ethereum?.[key];
232
+ if (typeof window === "undefined") return false;
233
+ const ethereum = window.ethereum;
234
+ const providers = ethereum?.providers ?? (ethereum ? [ethereum] : []);
235
+ if (key === "isMetaMask") {
236
+ return providers.some(
237
+ (provider) => !!provider.isMetaMask && !provider.isBraveWallet && !provider.isOkxWallet && !provider.isRabby
238
+ );
239
+ }
240
+ return providers.some((provider) => !!provider[key]);
233
241
  };
234
242
  var openDeeplink = (url) => {
235
243
  const link = document.createElement("a");
@@ -1331,10 +1339,28 @@ var checkEvmWalletInstalled = (connectorId) => {
1331
1339
  }
1332
1340
  };
1333
1341
  var cleanupWalletLocalStorage = () => {
1334
- Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1342
+ const prefixes = ["wagmi.", "@metamask/", "MMSDK_"];
1343
+ Object.keys(window.localStorage).filter((key) => prefixes.some((p) => key.startsWith(p))).forEach((key) => window.localStorage.removeItem(key));
1344
+ };
1345
+ var disconnectAllEvmConnections = async () => {
1346
+ const config2 = getEvmConfig();
1347
+ const connections = [...config2.state.connections.values()];
1348
+ for (const connection of connections) {
1349
+ await disconnect(config2, { connector: connection.connector });
1350
+ }
1351
+ const shimKeys = [];
1352
+ for (const connector of config2.connectors) {
1353
+ await config2.storage?.setItem(`${connector.id}.disconnected`, true);
1354
+ shimKeys.push(`wagmi.${connector.id}.disconnected`);
1355
+ }
1356
+ cleanupWalletLocalStorage();
1357
+ for (const key of shimKeys) {
1358
+ window.localStorage.setItem(key, JSON.stringify(true));
1359
+ }
1335
1360
  };
1361
+ var EVM_EXCLUDED_RDNS = /* @__PURE__ */ new Set(["app.solflare"]);
1336
1362
  var getEvmConnectors = () => {
1337
- const wagmiConnectors = getConnectors(getEvmConfig());
1363
+ const wagmiConnectors = getConnectors(getEvmConfig()).filter((c) => !EVM_EXCLUDED_RDNS.has(c.id));
1338
1364
  const connectors = wagmiConnectors.map((c) => ({
1339
1365
  id: normalizeEvmWalletId(c.id),
1340
1366
  name: c.name,
@@ -1351,7 +1377,6 @@ var getEvmConnectors = () => {
1351
1377
  } catch (err) {
1352
1378
  if (err instanceof Error && err.name === "ConnectorAlreadyConnectedError") {
1353
1379
  await disconnect(getEvmConfig(), { connector: c });
1354
- cleanupWalletLocalStorage();
1355
1380
  await sleep(100);
1356
1381
  const result = await connect(getEvmConfig(), { connector: c });
1357
1382
  if (!result.accounts[0]) throw new Error("No accounts returned");
@@ -1361,8 +1386,7 @@ var getEvmConnectors = () => {
1361
1386
  }
1362
1387
  },
1363
1388
  disconnect: async () => {
1364
- await disconnect(getEvmConfig());
1365
- cleanupWalletLocalStorage();
1389
+ await disconnectAllEvmConnections();
1366
1390
  },
1367
1391
  signMessage: async (message) => {
1368
1392
  return wagmiSignMessage(getEvmConfig(), { message });
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { injected, metaMask, coinbaseWallet } from '@wagmi/connectors';
2
- import { createConfig, getConnectors, signMessage, disconnect, connect, watchConnections, switchChain as switchChain$1, sendTransaction as sendTransaction$1, waitForTransactionReceipt as waitForTransactionReceipt$1, readContract, writeContract } from '@wagmi/core';
2
+ import { createConfig, getConnectors, signMessage, connect, disconnect, watchConnections, switchChain as switchChain$1, sendTransaction as sendTransaction$1, waitForTransactionReceipt as waitForTransactionReceipt$1, readContract, writeContract } from '@wagmi/core';
3
3
  import { http, erc20Abi } from 'viem';
4
4
  import { mainnet } from 'viem/chains';
5
5
  import bs582 from 'bs58';
@@ -25,7 +25,7 @@ var createEvmConfig = (chains) => {
25
25
  chains: configuredChains,
26
26
  connectors,
27
27
  transports,
28
- multiInjectedProviderDiscovery: false
28
+ multiInjectedProviderDiscovery: true
29
29
  });
30
30
  return config;
31
31
  };
@@ -232,7 +232,15 @@ var isMobile = () => {
232
232
  return typeof window !== "undefined" && /iPhone|iPad|iPod|Android/i.test(window.navigator.userAgent);
233
233
  };
234
234
  var isInWalletBrowser = (key) => {
235
- return typeof window !== "undefined" && !!window.ethereum?.[key];
235
+ if (typeof window === "undefined") return false;
236
+ const ethereum = window.ethereum;
237
+ const providers = ethereum?.providers ?? (ethereum ? [ethereum] : []);
238
+ if (key === "isMetaMask") {
239
+ return providers.some(
240
+ (provider) => !!provider.isMetaMask && !provider.isBraveWallet && !provider.isOkxWallet && !provider.isRabby
241
+ );
242
+ }
243
+ return providers.some((provider) => !!provider[key]);
236
244
  };
237
245
  var openDeeplink = (url) => {
238
246
  const link = document.createElement("a");
@@ -1307,10 +1315,28 @@ var checkEvmWalletInstalled = (connectorId) => {
1307
1315
  }
1308
1316
  };
1309
1317
  var cleanupWalletLocalStorage = () => {
1310
- Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1318
+ const prefixes = ["wagmi.", "@metamask/", "MMSDK_"];
1319
+ Object.keys(window.localStorage).filter((key) => prefixes.some((p) => key.startsWith(p))).forEach((key) => window.localStorage.removeItem(key));
1320
+ };
1321
+ var disconnectAllEvmConnections = async () => {
1322
+ const config2 = getEvmConfig();
1323
+ const connections = [...config2.state.connections.values()];
1324
+ for (const connection of connections) {
1325
+ await disconnect(config2, { connector: connection.connector });
1326
+ }
1327
+ const shimKeys = [];
1328
+ for (const connector of config2.connectors) {
1329
+ await config2.storage?.setItem(`${connector.id}.disconnected`, true);
1330
+ shimKeys.push(`wagmi.${connector.id}.disconnected`);
1331
+ }
1332
+ cleanupWalletLocalStorage();
1333
+ for (const key of shimKeys) {
1334
+ window.localStorage.setItem(key, JSON.stringify(true));
1335
+ }
1311
1336
  };
1337
+ var EVM_EXCLUDED_RDNS = /* @__PURE__ */ new Set(["app.solflare"]);
1312
1338
  var getEvmConnectors = () => {
1313
- const wagmiConnectors = getConnectors(getEvmConfig());
1339
+ const wagmiConnectors = getConnectors(getEvmConfig()).filter((c) => !EVM_EXCLUDED_RDNS.has(c.id));
1314
1340
  const connectors = wagmiConnectors.map((c) => ({
1315
1341
  id: normalizeEvmWalletId(c.id),
1316
1342
  name: c.name,
@@ -1327,7 +1353,6 @@ var getEvmConnectors = () => {
1327
1353
  } catch (err) {
1328
1354
  if (err instanceof Error && err.name === "ConnectorAlreadyConnectedError") {
1329
1355
  await disconnect(getEvmConfig(), { connector: c });
1330
- cleanupWalletLocalStorage();
1331
1356
  await sleep(100);
1332
1357
  const result = await connect(getEvmConfig(), { connector: c });
1333
1358
  if (!result.accounts[0]) throw new Error("No accounts returned");
@@ -1337,8 +1362,7 @@ var getEvmConnectors = () => {
1337
1362
  }
1338
1363
  },
1339
1364
  disconnect: async () => {
1340
- await disconnect(getEvmConfig());
1341
- cleanupWalletLocalStorage();
1365
+ await disconnectAllEvmConnections();
1342
1366
  },
1343
1367
  signMessage: async (message) => {
1344
1368
  return signMessage(getEvmConfig(), { message });
package/dist/index.jsx CHANGED
@@ -16,7 +16,7 @@ var createEvmConfig = (chains) => {
16
16
  chains: configuredChains,
17
17
  connectors,
18
18
  transports,
19
- multiInjectedProviderDiscovery: false
19
+ multiInjectedProviderDiscovery: true
20
20
  });
21
21
  return config;
22
22
  };
@@ -229,7 +229,15 @@ var isMobile = () => {
229
229
  return typeof window !== "undefined" && /iPhone|iPad|iPod|Android/i.test(window.navigator.userAgent);
230
230
  };
231
231
  var isInWalletBrowser = (key) => {
232
- return typeof window !== "undefined" && !!window.ethereum?.[key];
232
+ if (typeof window === "undefined") return false;
233
+ const ethereum = window.ethereum;
234
+ const providers = ethereum?.providers ?? (ethereum ? [ethereum] : []);
235
+ if (key === "isMetaMask") {
236
+ return providers.some(
237
+ (provider) => !!provider.isMetaMask && !provider.isBraveWallet && !provider.isOkxWallet && !provider.isRabby
238
+ );
239
+ }
240
+ return providers.some((provider) => !!provider[key]);
233
241
  };
234
242
  var openDeeplink = (url) => {
235
243
  const link = document.createElement("a");
@@ -1331,10 +1339,28 @@ var checkEvmWalletInstalled = (connectorId) => {
1331
1339
  }
1332
1340
  };
1333
1341
  var cleanupWalletLocalStorage = () => {
1334
- Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1342
+ const prefixes = ["wagmi.", "@metamask/", "MMSDK_"];
1343
+ Object.keys(window.localStorage).filter((key) => prefixes.some((p) => key.startsWith(p))).forEach((key) => window.localStorage.removeItem(key));
1344
+ };
1345
+ var disconnectAllEvmConnections = async () => {
1346
+ const config2 = getEvmConfig();
1347
+ const connections = [...config2.state.connections.values()];
1348
+ for (const connection of connections) {
1349
+ await disconnect(config2, { connector: connection.connector });
1350
+ }
1351
+ const shimKeys = [];
1352
+ for (const connector of config2.connectors) {
1353
+ await config2.storage?.setItem(`${connector.id}.disconnected`, true);
1354
+ shimKeys.push(`wagmi.${connector.id}.disconnected`);
1355
+ }
1356
+ cleanupWalletLocalStorage();
1357
+ for (const key of shimKeys) {
1358
+ window.localStorage.setItem(key, JSON.stringify(true));
1359
+ }
1335
1360
  };
1361
+ var EVM_EXCLUDED_RDNS = /* @__PURE__ */ new Set(["app.solflare"]);
1336
1362
  var getEvmConnectors = () => {
1337
- const wagmiConnectors = getConnectors(getEvmConfig());
1363
+ const wagmiConnectors = getConnectors(getEvmConfig()).filter((c) => !EVM_EXCLUDED_RDNS.has(c.id));
1338
1364
  const connectors = wagmiConnectors.map((c) => ({
1339
1365
  id: normalizeEvmWalletId(c.id),
1340
1366
  name: c.name,
@@ -1351,7 +1377,6 @@ var getEvmConnectors = () => {
1351
1377
  } catch (err) {
1352
1378
  if (err instanceof Error && err.name === "ConnectorAlreadyConnectedError") {
1353
1379
  await disconnect(getEvmConfig(), { connector: c });
1354
- cleanupWalletLocalStorage();
1355
1380
  await sleep(100);
1356
1381
  const result = await connect(getEvmConfig(), { connector: c });
1357
1382
  if (!result.accounts[0]) throw new Error("No accounts returned");
@@ -1361,8 +1386,7 @@ var getEvmConnectors = () => {
1361
1386
  }
1362
1387
  },
1363
1388
  disconnect: async () => {
1364
- await disconnect(getEvmConfig());
1365
- cleanupWalletLocalStorage();
1389
+ await disconnectAllEvmConnections();
1366
1390
  },
1367
1391
  signMessage: async (message) => {
1368
1392
  return wagmiSignMessage(getEvmConfig(), { message });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bit-buccaneers/wallet-abstraction",
3
- "version": "0.0.24",
3
+ "version": "0.0.30",
4
4
  "description": "Solid.js web3 wallet abstraction for EVM and Solana",
5
5
  "license": "MIT",
6
6
  "author": "Bit Buccaneers",