@bit-buccaneers/wallet-abstraction 0.0.14 → 0.0.15

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
@@ -150,12 +150,6 @@ var WALLETS = [
150
150
  icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#rainbow",
151
151
  chromeExtensionUrl: "https://chromewebstore.google.com/detail/rainbow/opfgelmcmbiajamepnmloijbpoleiama"
152
152
  },
153
- {
154
- id: "exodus",
155
- name: "Exodus",
156
- icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#exodus",
157
- chromeExtensionUrl: "https://chromewebstore.google.com/detail/aholpfdialjgjfhomihkjbmgjidlcdno"
158
- },
159
153
  {
160
154
  id: "walletconnect",
161
155
  name: "WalletConnect",
@@ -174,14 +168,12 @@ var EVM_WALLET_ID_MAP = {
174
168
  coinbaseWalletSDK: "coinbase",
175
169
  "io.rabby": "rabby",
176
170
  "me.rainbow": "rainbow",
177
- "com.exodus.web3-wallet": "exodus",
178
171
  walletConnect: "walletconnect"
179
172
  };
180
173
  var SOLANA_WALLET_ID_MAP = {
181
174
  "binance-wallet": "binance",
182
175
  "bitget-wallet": "bitget",
183
- "okx-wallet": "okx",
184
- "exodus-wallet": "exodus"
176
+ "okx-wallet": "okx"
185
177
  };
186
178
  var normalizeEvmWalletId = (id) => EVM_WALLET_ID_MAP[id] || id.toLowerCase().replace(/sdk$/i, "");
187
179
  var normalizeSolanaWalletId = (id) => SOLANA_WALLET_ID_MAP[id] || id.replace(/-wallet$/, "");
@@ -874,14 +866,8 @@ var RAINBOW_CONFIG = {
874
866
  };
875
867
  var createRainbowEvmMobileConnector = () => createWcEvmConnector(RAINBOW_CONFIG);
876
868
 
877
- // src/lib/connectors/exodus.ts
878
- var EXODUS_CONFIG = {
879
- walletId: "exodus",
880
- wcDeeplink: "https://exodus.com/wc",
881
- injectedKey: "isExodus"
882
- };
883
- var createExodusEvmMobileConnector = () => createWcEvmConnector(EXODUS_CONFIG);
884
- var createExodusSolanaMobileConnector = () => createWcSolanaConnector(EXODUS_CONFIG);
869
+ // src/lib/connectors/rabby.ts
870
+ var createRabbyEvmConnector = () => createDownloadOnlyEvmConnector({ walletId: "rabby" });
885
871
 
886
872
  // src/lib/connectors/binance.ts
887
873
  var BINANCE_CONFIG = {
@@ -905,6 +891,7 @@ var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector
905
891
  injectedKey: "isOkxWallet",
906
892
  buildUrl: buildOkxBrowseUrl
907
893
  });
894
+ var createOkxSolanaConnector = () => createDownloadOnlySolanaConnector({ walletId: "okx" });
908
895
 
909
896
  // src/lib/connectors/coinbase.ts
910
897
  var buildCoinbaseBrowseUrl = () => `cbwallet://dapp?url=${encodeURIComponent(window.location.href)}`;
@@ -1009,13 +996,25 @@ var EVM_FALLBACK_CONNECTORS = [
1009
996
  id: "phantom",
1010
997
  create: isMobile() ? createPhantomEvmConnectorDeeplink : createPhantomEvmConnector
1011
998
  },
1012
- { id: "metamask", create: createMetaMaskEvmConnector },
999
+ ...isMobile() ? [] : [{ id: "metamask", create: createMetaMaskEvmConnector }],
1013
1000
  { id: "trust", create: createTrustEvmMobileConnector },
1014
1001
  { id: "binance", create: createBinanceEvmConnector },
1015
1002
  { id: "rainbow", create: createRainbowEvmMobileConnector },
1016
- { id: "exodus", create: createExodusEvmMobileConnector }
1003
+ ...isMobile() ? [] : [{ id: "rabby", create: createRabbyEvmConnector }]
1017
1004
  ];
1018
1005
  var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
1006
+ var checkEvmWalletInstalled = (connectorId) => {
1007
+ if (typeof window === "undefined" || !window.ethereum) return false;
1008
+ const providers = window.ethereum.providers ?? [window.ethereum];
1009
+ switch (connectorId) {
1010
+ case "metaMaskSDK":
1011
+ return providers.some((p) => p.isMetaMask && !p.isBraveWallet);
1012
+ case "coinbaseWalletSDK":
1013
+ return providers.some((p) => p.isCoinbaseWallet);
1014
+ default:
1015
+ return true;
1016
+ }
1017
+ };
1019
1018
  var cleanupWalletLocalStorage = () => {
1020
1019
  Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1021
1020
  };
@@ -1026,7 +1025,7 @@ var getEvmConnectors = () => {
1026
1025
  name: c.name,
1027
1026
  icon: c.icon,
1028
1027
  type: "evm",
1029
- installed: true,
1028
+ installed: checkEvmWalletInstalled(c.id),
1030
1029
  wallet: {
1031
1030
  _connector: c,
1032
1031
  connect: async () => {
@@ -1228,10 +1227,6 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1228
1227
  {
1229
1228
  id: "binance",
1230
1229
  create: () => createSolanaMobileConnector(createBinanceSolanaDappBrowserConnector())
1231
- },
1232
- {
1233
- id: "exodus",
1234
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1235
1230
  }
1236
1231
  ] : [
1237
1232
  { id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
@@ -1245,10 +1240,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1245
1240
  },
1246
1241
  { id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
1247
1242
  { id: "bitget", create: createBitgetSolanaConnector },
1248
- {
1249
- id: "exodus",
1250
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1251
- }
1243
+ { id: "okx", create: createOkxSolanaConnector }
1252
1244
  ];
1253
1245
  var getSolanaWallets = () => {
1254
1246
  const { get } = getWallets();
@@ -1261,8 +1253,6 @@ var getSolanaWallets = () => {
1261
1253
  seenNames.add(w.name);
1262
1254
  return true;
1263
1255
  }).map(createSolanaConnector);
1264
- console.log("wallets", { wallets });
1265
- console.log("connectors", { connectors });
1266
1256
  addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
1267
1257
  return connectors;
1268
1258
  };
package/dist/dev.jsx CHANGED
@@ -145,12 +145,6 @@ var WALLETS = [
145
145
  icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#rainbow",
146
146
  chromeExtensionUrl: "https://chromewebstore.google.com/detail/rainbow/opfgelmcmbiajamepnmloijbpoleiama"
147
147
  },
148
- {
149
- id: "exodus",
150
- name: "Exodus",
151
- icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#exodus",
152
- chromeExtensionUrl: "https://chromewebstore.google.com/detail/aholpfdialjgjfhomihkjbmgjidlcdno"
153
- },
154
148
  {
155
149
  id: "walletconnect",
156
150
  name: "WalletConnect",
@@ -169,14 +163,12 @@ var EVM_WALLET_ID_MAP = {
169
163
  coinbaseWalletSDK: "coinbase",
170
164
  "io.rabby": "rabby",
171
165
  "me.rainbow": "rainbow",
172
- "com.exodus.web3-wallet": "exodus",
173
166
  walletConnect: "walletconnect"
174
167
  };
175
168
  var SOLANA_WALLET_ID_MAP = {
176
169
  "binance-wallet": "binance",
177
170
  "bitget-wallet": "bitget",
178
- "okx-wallet": "okx",
179
- "exodus-wallet": "exodus"
171
+ "okx-wallet": "okx"
180
172
  };
181
173
  var normalizeEvmWalletId = (id) => EVM_WALLET_ID_MAP[id] || id.toLowerCase().replace(/sdk$/i, "");
182
174
  var normalizeSolanaWalletId = (id) => SOLANA_WALLET_ID_MAP[id] || id.replace(/-wallet$/, "");
@@ -882,14 +874,8 @@ var RAINBOW_CONFIG = {
882
874
  };
883
875
  var createRainbowEvmMobileConnector = () => createWcEvmConnector(RAINBOW_CONFIG);
884
876
 
885
- // src/lib/connectors/exodus.ts
886
- var EXODUS_CONFIG = {
887
- walletId: "exodus",
888
- wcDeeplink: "https://exodus.com/wc",
889
- injectedKey: "isExodus"
890
- };
891
- var createExodusEvmMobileConnector = () => createWcEvmConnector(EXODUS_CONFIG);
892
- var createExodusSolanaMobileConnector = () => createWcSolanaConnector(EXODUS_CONFIG);
877
+ // src/lib/connectors/rabby.ts
878
+ var createRabbyEvmConnector = () => createDownloadOnlyEvmConnector({ walletId: "rabby" });
893
879
 
894
880
  // src/lib/connectors/binance.ts
895
881
  var BINANCE_CONFIG = {
@@ -913,6 +899,7 @@ var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector
913
899
  injectedKey: "isOkxWallet",
914
900
  buildUrl: buildOkxBrowseUrl
915
901
  });
902
+ var createOkxSolanaConnector = () => createDownloadOnlySolanaConnector({ walletId: "okx" });
916
903
 
917
904
  // src/lib/connectors/coinbase.ts
918
905
  var buildCoinbaseBrowseUrl = () => `cbwallet://dapp?url=${encodeURIComponent(window.location.href)}`;
@@ -1020,13 +1007,25 @@ var EVM_FALLBACK_CONNECTORS = [
1020
1007
  id: "phantom",
1021
1008
  create: isMobile() ? createPhantomEvmConnectorDeeplink : createPhantomEvmConnector
1022
1009
  },
1023
- { id: "metamask", create: createMetaMaskEvmConnector },
1010
+ ...isMobile() ? [] : [{ id: "metamask", create: createMetaMaskEvmConnector }],
1024
1011
  { id: "trust", create: createTrustEvmMobileConnector },
1025
1012
  { id: "binance", create: createBinanceEvmConnector },
1026
1013
  { id: "rainbow", create: createRainbowEvmMobileConnector },
1027
- { id: "exodus", create: createExodusEvmMobileConnector }
1014
+ ...isMobile() ? [] : [{ id: "rabby", create: createRabbyEvmConnector }]
1028
1015
  ];
1029
1016
  var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
1017
+ var checkEvmWalletInstalled = (connectorId) => {
1018
+ if (typeof window === "undefined" || !window.ethereum) return false;
1019
+ const providers = window.ethereum.providers ?? [window.ethereum];
1020
+ switch (connectorId) {
1021
+ case "metaMaskSDK":
1022
+ return providers.some((p) => p.isMetaMask && !p.isBraveWallet);
1023
+ case "coinbaseWalletSDK":
1024
+ return providers.some((p) => p.isCoinbaseWallet);
1025
+ default:
1026
+ return true;
1027
+ }
1028
+ };
1030
1029
  var cleanupWalletLocalStorage = () => {
1031
1030
  Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1032
1031
  };
@@ -1037,7 +1036,7 @@ var getEvmConnectors = () => {
1037
1036
  name: c.name,
1038
1037
  icon: c.icon,
1039
1038
  type: "evm",
1040
- installed: true,
1039
+ installed: checkEvmWalletInstalled(c.id),
1041
1040
  wallet: {
1042
1041
  _connector: c,
1043
1042
  connect: async () => {
@@ -1260,10 +1259,6 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1260
1259
  {
1261
1260
  id: "binance",
1262
1261
  create: () => createSolanaMobileConnector(createBinanceSolanaDappBrowserConnector())
1263
- },
1264
- {
1265
- id: "exodus",
1266
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1267
1262
  }
1268
1263
  ] : [
1269
1264
  { id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
@@ -1277,10 +1272,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1277
1272
  },
1278
1273
  { id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
1279
1274
  { id: "bitget", create: createBitgetSolanaConnector },
1280
- {
1281
- id: "exodus",
1282
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1283
- }
1275
+ { id: "okx", create: createOkxSolanaConnector }
1284
1276
  ];
1285
1277
  var getSolanaWallets = () => {
1286
1278
  const { get } = getWallets();
@@ -1293,8 +1285,6 @@ var getSolanaWallets = () => {
1293
1285
  seenNames.add(w.name);
1294
1286
  return true;
1295
1287
  }).map(createSolanaConnector);
1296
- console.log("wallets", { wallets });
1297
- console.log("connectors", { connectors });
1298
1288
  addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
1299
1289
  return connectors;
1300
1290
  };
package/dist/index.js CHANGED
@@ -150,12 +150,6 @@ var WALLETS = [
150
150
  icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#rainbow",
151
151
  chromeExtensionUrl: "https://chromewebstore.google.com/detail/rainbow/opfgelmcmbiajamepnmloijbpoleiama"
152
152
  },
153
- {
154
- id: "exodus",
155
- name: "Exodus",
156
- icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#exodus",
157
- chromeExtensionUrl: "https://chromewebstore.google.com/detail/aholpfdialjgjfhomihkjbmgjidlcdno"
158
- },
159
153
  {
160
154
  id: "walletconnect",
161
155
  name: "WalletConnect",
@@ -174,14 +168,12 @@ var EVM_WALLET_ID_MAP = {
174
168
  coinbaseWalletSDK: "coinbase",
175
169
  "io.rabby": "rabby",
176
170
  "me.rainbow": "rainbow",
177
- "com.exodus.web3-wallet": "exodus",
178
171
  walletConnect: "walletconnect"
179
172
  };
180
173
  var SOLANA_WALLET_ID_MAP = {
181
174
  "binance-wallet": "binance",
182
175
  "bitget-wallet": "bitget",
183
- "okx-wallet": "okx",
184
- "exodus-wallet": "exodus"
176
+ "okx-wallet": "okx"
185
177
  };
186
178
  var normalizeEvmWalletId = (id) => EVM_WALLET_ID_MAP[id] || id.toLowerCase().replace(/sdk$/i, "");
187
179
  var normalizeSolanaWalletId = (id) => SOLANA_WALLET_ID_MAP[id] || id.replace(/-wallet$/, "");
@@ -874,14 +866,8 @@ var RAINBOW_CONFIG = {
874
866
  };
875
867
  var createRainbowEvmMobileConnector = () => createWcEvmConnector(RAINBOW_CONFIG);
876
868
 
877
- // src/lib/connectors/exodus.ts
878
- var EXODUS_CONFIG = {
879
- walletId: "exodus",
880
- wcDeeplink: "https://exodus.com/wc",
881
- injectedKey: "isExodus"
882
- };
883
- var createExodusEvmMobileConnector = () => createWcEvmConnector(EXODUS_CONFIG);
884
- var createExodusSolanaMobileConnector = () => createWcSolanaConnector(EXODUS_CONFIG);
869
+ // src/lib/connectors/rabby.ts
870
+ var createRabbyEvmConnector = () => createDownloadOnlyEvmConnector({ walletId: "rabby" });
885
871
 
886
872
  // src/lib/connectors/binance.ts
887
873
  var BINANCE_CONFIG = {
@@ -905,6 +891,7 @@ var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector
905
891
  injectedKey: "isOkxWallet",
906
892
  buildUrl: buildOkxBrowseUrl
907
893
  });
894
+ var createOkxSolanaConnector = () => createDownloadOnlySolanaConnector({ walletId: "okx" });
908
895
 
909
896
  // src/lib/connectors/coinbase.ts
910
897
  var buildCoinbaseBrowseUrl = () => `cbwallet://dapp?url=${encodeURIComponent(window.location.href)}`;
@@ -1009,13 +996,25 @@ var EVM_FALLBACK_CONNECTORS = [
1009
996
  id: "phantom",
1010
997
  create: isMobile() ? createPhantomEvmConnectorDeeplink : createPhantomEvmConnector
1011
998
  },
1012
- { id: "metamask", create: createMetaMaskEvmConnector },
999
+ ...isMobile() ? [] : [{ id: "metamask", create: createMetaMaskEvmConnector }],
1013
1000
  { id: "trust", create: createTrustEvmMobileConnector },
1014
1001
  { id: "binance", create: createBinanceEvmConnector },
1015
1002
  { id: "rainbow", create: createRainbowEvmMobileConnector },
1016
- { id: "exodus", create: createExodusEvmMobileConnector }
1003
+ ...isMobile() ? [] : [{ id: "rabby", create: createRabbyEvmConnector }]
1017
1004
  ];
1018
1005
  var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
1006
+ var checkEvmWalletInstalled = (connectorId) => {
1007
+ if (typeof window === "undefined" || !window.ethereum) return false;
1008
+ const providers = window.ethereum.providers ?? [window.ethereum];
1009
+ switch (connectorId) {
1010
+ case "metaMaskSDK":
1011
+ return providers.some((p) => p.isMetaMask && !p.isBraveWallet);
1012
+ case "coinbaseWalletSDK":
1013
+ return providers.some((p) => p.isCoinbaseWallet);
1014
+ default:
1015
+ return true;
1016
+ }
1017
+ };
1019
1018
  var cleanupWalletLocalStorage = () => {
1020
1019
  Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1021
1020
  };
@@ -1026,7 +1025,7 @@ var getEvmConnectors = () => {
1026
1025
  name: c.name,
1027
1026
  icon: c.icon,
1028
1027
  type: "evm",
1029
- installed: true,
1028
+ installed: checkEvmWalletInstalled(c.id),
1030
1029
  wallet: {
1031
1030
  _connector: c,
1032
1031
  connect: async () => {
@@ -1228,10 +1227,6 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1228
1227
  {
1229
1228
  id: "binance",
1230
1229
  create: () => createSolanaMobileConnector(createBinanceSolanaDappBrowserConnector())
1231
- },
1232
- {
1233
- id: "exodus",
1234
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1235
1230
  }
1236
1231
  ] : [
1237
1232
  { id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
@@ -1245,10 +1240,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1245
1240
  },
1246
1241
  { id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
1247
1242
  { id: "bitget", create: createBitgetSolanaConnector },
1248
- {
1249
- id: "exodus",
1250
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1251
- }
1243
+ { id: "okx", create: createOkxSolanaConnector }
1252
1244
  ];
1253
1245
  var getSolanaWallets = () => {
1254
1246
  const { get } = getWallets();
@@ -1261,8 +1253,6 @@ var getSolanaWallets = () => {
1261
1253
  seenNames.add(w.name);
1262
1254
  return true;
1263
1255
  }).map(createSolanaConnector);
1264
- console.log("wallets", { wallets });
1265
- console.log("connectors", { connectors });
1266
1256
  addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
1267
1257
  return connectors;
1268
1258
  };
package/dist/index.jsx CHANGED
@@ -145,12 +145,6 @@ var WALLETS = [
145
145
  icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#rainbow",
146
146
  chromeExtensionUrl: "https://chromewebstore.google.com/detail/rainbow/opfgelmcmbiajamepnmloijbpoleiama"
147
147
  },
148
- {
149
- id: "exodus",
150
- name: "Exodus",
151
- icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#exodus",
152
- chromeExtensionUrl: "https://chromewebstore.google.com/detail/aholpfdialjgjfhomihkjbmgjidlcdno"
153
- },
154
148
  {
155
149
  id: "walletconnect",
156
150
  name: "WalletConnect",
@@ -169,14 +163,12 @@ var EVM_WALLET_ID_MAP = {
169
163
  coinbaseWalletSDK: "coinbase",
170
164
  "io.rabby": "rabby",
171
165
  "me.rainbow": "rainbow",
172
- "com.exodus.web3-wallet": "exodus",
173
166
  walletConnect: "walletconnect"
174
167
  };
175
168
  var SOLANA_WALLET_ID_MAP = {
176
169
  "binance-wallet": "binance",
177
170
  "bitget-wallet": "bitget",
178
- "okx-wallet": "okx",
179
- "exodus-wallet": "exodus"
171
+ "okx-wallet": "okx"
180
172
  };
181
173
  var normalizeEvmWalletId = (id) => EVM_WALLET_ID_MAP[id] || id.toLowerCase().replace(/sdk$/i, "");
182
174
  var normalizeSolanaWalletId = (id) => SOLANA_WALLET_ID_MAP[id] || id.replace(/-wallet$/, "");
@@ -882,14 +874,8 @@ var RAINBOW_CONFIG = {
882
874
  };
883
875
  var createRainbowEvmMobileConnector = () => createWcEvmConnector(RAINBOW_CONFIG);
884
876
 
885
- // src/lib/connectors/exodus.ts
886
- var EXODUS_CONFIG = {
887
- walletId: "exodus",
888
- wcDeeplink: "https://exodus.com/wc",
889
- injectedKey: "isExodus"
890
- };
891
- var createExodusEvmMobileConnector = () => createWcEvmConnector(EXODUS_CONFIG);
892
- var createExodusSolanaMobileConnector = () => createWcSolanaConnector(EXODUS_CONFIG);
877
+ // src/lib/connectors/rabby.ts
878
+ var createRabbyEvmConnector = () => createDownloadOnlyEvmConnector({ walletId: "rabby" });
893
879
 
894
880
  // src/lib/connectors/binance.ts
895
881
  var BINANCE_CONFIG = {
@@ -913,6 +899,7 @@ var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector
913
899
  injectedKey: "isOkxWallet",
914
900
  buildUrl: buildOkxBrowseUrl
915
901
  });
902
+ var createOkxSolanaConnector = () => createDownloadOnlySolanaConnector({ walletId: "okx" });
916
903
 
917
904
  // src/lib/connectors/coinbase.ts
918
905
  var buildCoinbaseBrowseUrl = () => `cbwallet://dapp?url=${encodeURIComponent(window.location.href)}`;
@@ -1020,13 +1007,25 @@ var EVM_FALLBACK_CONNECTORS = [
1020
1007
  id: "phantom",
1021
1008
  create: isMobile() ? createPhantomEvmConnectorDeeplink : createPhantomEvmConnector
1022
1009
  },
1023
- { id: "metamask", create: createMetaMaskEvmConnector },
1010
+ ...isMobile() ? [] : [{ id: "metamask", create: createMetaMaskEvmConnector }],
1024
1011
  { id: "trust", create: createTrustEvmMobileConnector },
1025
1012
  { id: "binance", create: createBinanceEvmConnector },
1026
1013
  { id: "rainbow", create: createRainbowEvmMobileConnector },
1027
- { id: "exodus", create: createExodusEvmMobileConnector }
1014
+ ...isMobile() ? [] : [{ id: "rabby", create: createRabbyEvmConnector }]
1028
1015
  ];
1029
1016
  var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
1017
+ var checkEvmWalletInstalled = (connectorId) => {
1018
+ if (typeof window === "undefined" || !window.ethereum) return false;
1019
+ const providers = window.ethereum.providers ?? [window.ethereum];
1020
+ switch (connectorId) {
1021
+ case "metaMaskSDK":
1022
+ return providers.some((p) => p.isMetaMask && !p.isBraveWallet);
1023
+ case "coinbaseWalletSDK":
1024
+ return providers.some((p) => p.isCoinbaseWallet);
1025
+ default:
1026
+ return true;
1027
+ }
1028
+ };
1030
1029
  var cleanupWalletLocalStorage = () => {
1031
1030
  Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1032
1031
  };
@@ -1037,7 +1036,7 @@ var getEvmConnectors = () => {
1037
1036
  name: c.name,
1038
1037
  icon: c.icon,
1039
1038
  type: "evm",
1040
- installed: true,
1039
+ installed: checkEvmWalletInstalled(c.id),
1041
1040
  wallet: {
1042
1041
  _connector: c,
1043
1042
  connect: async () => {
@@ -1260,10 +1259,6 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1260
1259
  {
1261
1260
  id: "binance",
1262
1261
  create: () => createSolanaMobileConnector(createBinanceSolanaDappBrowserConnector())
1263
- },
1264
- {
1265
- id: "exodus",
1266
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1267
1262
  }
1268
1263
  ] : [
1269
1264
  { id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
@@ -1277,10 +1272,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1277
1272
  },
1278
1273
  { id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
1279
1274
  { id: "bitget", create: createBitgetSolanaConnector },
1280
- {
1281
- id: "exodus",
1282
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1283
- }
1275
+ { id: "okx", create: createOkxSolanaConnector }
1284
1276
  ];
1285
1277
  var getSolanaWallets = () => {
1286
1278
  const { get } = getWallets();
@@ -1293,8 +1285,6 @@ var getSolanaWallets = () => {
1293
1285
  seenNames.add(w.name);
1294
1286
  return true;
1295
1287
  }).map(createSolanaConnector);
1296
- console.log("wallets", { wallets });
1297
- console.log("connectors", { connectors });
1298
1288
  addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
1299
1289
  return connectors;
1300
1290
  };
@@ -3,9 +3,9 @@ export { createMetaMaskEvmConnector, createMetaMaskSolanaConnector, createMetaMa
3
3
  export { createSolflareSolanaMobileConnector, createSolflareSolanaDappBrowserConnector, isSolflareMobilePending, handleSolflareMobileCallback, restoreSolflareMobileSession, isSolflareSignPending, handleSolflareSignCallback, } from './solflare';
4
4
  export { createTrustEvmMobileConnector, createTrustSolanaMobileConnector, createTrustSolanaDappBrowserConnector, } from './trust';
5
5
  export { createRainbowEvmMobileConnector } from './rainbow';
6
- export { createExodusEvmMobileConnector, createExodusSolanaMobileConnector, createExodusSolanaDappBrowserConnector, } from './exodus';
6
+ export { createRabbyEvmConnector } from './rabby';
7
7
  export { createBinanceEvmConnector, createBinanceSolanaConnector, createBinanceSolanaDappBrowserConnector, } from './binance';
8
- export { createOkxSolanaDappBrowserConnector } from './okx';
8
+ export { createOkxSolanaDappBrowserConnector, createOkxSolanaConnector } from './okx';
9
9
  export { createCoinbaseSolanaDappBrowserConnector } from './coinbase';
10
10
  export { createBitgetSolanaDappBrowserConnector, createBitgetSolanaConnector } from './bitget';
11
11
  export { createWalletConnectEvmConnector, createWalletConnectSolanaConnector, } from './walletconnect';
@@ -1,2 +1,3 @@
1
1
  import type { SolanaWalletConnector } from '../solana';
2
2
  export declare const createOkxSolanaDappBrowserConnector: () => SolanaWalletConnector;
3
+ export declare const createOkxSolanaConnector: () => SolanaWalletConnector;
@@ -0,0 +1,2 @@
1
+ import type { EvmWalletConnector } from '../evm';
2
+ export declare const createRabbyEvmConnector: () => EvmWalletConnector;
@@ -1,4 +1,4 @@
1
- export declare const WALLET_IDS: readonly ["walletconnect", "metamask", "phantom", "okx", "coinbase", "binance", "bitget", "solflare", "trust", "rabby", "rainbow", "exodus"];
1
+ export declare const WALLET_IDS: readonly ["walletconnect", "metamask", "phantom", "okx", "coinbase", "binance", "bitget", "solflare", "trust", "rabby", "rainbow"];
2
2
  export type WalletId = (typeof WALLET_IDS)[number];
3
3
  export interface WalletConfig {
4
4
  id: WalletId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bit-buccaneers/wallet-abstraction",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "description": "Solid.js web3 wallet abstraction for EVM and Solana",
5
5
  "license": "MIT",
6
6
  "author": "Bit Buccaneers",
@@ -1,5 +0,0 @@
1
- import type { EvmWalletConnector } from '../evm';
2
- import type { SolanaWalletConnector } from '../solana';
3
- export declare const createExodusEvmMobileConnector: () => EvmWalletConnector;
4
- export declare const createExodusSolanaMobileConnector: () => SolanaWalletConnector;
5
- export declare const createExodusSolanaDappBrowserConnector: () => SolanaWalletConnector;