@bit-buccaneers/wallet-abstraction 0.0.14 → 0.0.16

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 = {
@@ -899,7 +885,14 @@ var createBinanceSolanaDappBrowserConnector = () => createDappBrowserSolanaConne
899
885
  });
900
886
 
901
887
  // src/lib/connectors/okx.ts
888
+ var OKX_CONFIG = {
889
+ walletId: "okx",
890
+ wcDeeplink: "okx://wallet/wc",
891
+ injectedKey: "isOkxWallet"
892
+ };
902
893
  var buildOkxBrowseUrl = () => `okx://wallet/dapp/url?dappUrl=${encodeURIComponent(window.location.href)}`;
894
+ var createOkxEvmConnector = () => createWcEvmConnector(OKX_CONFIG);
895
+ var createOkxSolanaConnector = () => createWcSolanaConnector(OKX_CONFIG);
903
896
  var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
904
897
  walletId: "okx",
905
898
  injectedKey: "isOkxWallet",
@@ -934,7 +927,6 @@ var disconnectWc2 = async () => {
934
927
  }
935
928
  };
936
929
  var createWalletConnectEvmConnector = () => {
937
- if (isMobile()) return null;
938
930
  return {
939
931
  id: walletConfig.id,
940
932
  name: walletConfig.name,
@@ -968,7 +960,6 @@ var createWalletConnectEvmConnector = () => {
968
960
  };
969
961
  };
970
962
  var createWalletConnectSolanaConnector = () => {
971
- if (isMobile()) return null;
972
963
  return {
973
964
  id: walletConfig.id,
974
965
  name: walletConfig.name,
@@ -1009,13 +1000,26 @@ var EVM_FALLBACK_CONNECTORS = [
1009
1000
  id: "phantom",
1010
1001
  create: isMobile() ? createPhantomEvmConnectorDeeplink : createPhantomEvmConnector
1011
1002
  },
1012
- { id: "metamask", create: createMetaMaskEvmConnector },
1003
+ ...isMobile() ? [] : [{ id: "metamask", create: createMetaMaskEvmConnector }],
1013
1004
  { id: "trust", create: createTrustEvmMobileConnector },
1014
1005
  { id: "binance", create: createBinanceEvmConnector },
1006
+ { id: "okx", create: createOkxEvmConnector },
1015
1007
  { id: "rainbow", create: createRainbowEvmMobileConnector },
1016
- { id: "exodus", create: createExodusEvmMobileConnector }
1008
+ ...isMobile() ? [] : [{ id: "rabby", create: createRabbyEvmConnector }]
1017
1009
  ];
1018
1010
  var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
1011
+ var checkEvmWalletInstalled = (connectorId) => {
1012
+ if (typeof window === "undefined" || !window.ethereum) return false;
1013
+ const providers = window.ethereum.providers ?? [window.ethereum];
1014
+ switch (connectorId) {
1015
+ case "metaMaskSDK":
1016
+ return providers.some((p) => p.isMetaMask && !p.isBraveWallet);
1017
+ case "coinbaseWalletSDK":
1018
+ return providers.some((p) => p.isCoinbaseWallet);
1019
+ default:
1020
+ return true;
1021
+ }
1022
+ };
1019
1023
  var cleanupWalletLocalStorage = () => {
1020
1024
  Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1021
1025
  };
@@ -1026,7 +1030,7 @@ var getEvmConnectors = () => {
1026
1030
  name: c.name,
1027
1031
  icon: c.icon,
1028
1032
  type: "evm",
1029
- installed: true,
1033
+ installed: checkEvmWalletInstalled(c.id),
1030
1034
  wallet: {
1031
1035
  _connector: c,
1032
1036
  connect: async () => {
@@ -1228,10 +1232,6 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1228
1232
  {
1229
1233
  id: "binance",
1230
1234
  create: () => createSolanaMobileConnector(createBinanceSolanaDappBrowserConnector())
1231
- },
1232
- {
1233
- id: "exodus",
1234
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1235
1235
  }
1236
1236
  ] : [
1237
1237
  { id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
@@ -1245,10 +1245,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1245
1245
  },
1246
1246
  { id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
1247
1247
  { id: "bitget", create: createBitgetSolanaConnector },
1248
- {
1249
- id: "exodus",
1250
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1251
- }
1248
+ { id: "okx", create: createOkxSolanaConnector }
1252
1249
  ];
1253
1250
  var getSolanaWallets = () => {
1254
1251
  const { get } = getWallets();
@@ -1261,8 +1258,6 @@ var getSolanaWallets = () => {
1261
1258
  seenNames.add(w.name);
1262
1259
  return true;
1263
1260
  }).map(createSolanaConnector);
1264
- console.log("wallets", { wallets });
1265
- console.log("connectors", { connectors });
1266
1261
  addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
1267
1262
  return connectors;
1268
1263
  };
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 = {
@@ -907,7 +893,14 @@ var createBinanceSolanaDappBrowserConnector = () => createDappBrowserSolanaConne
907
893
  });
908
894
 
909
895
  // src/lib/connectors/okx.ts
896
+ var OKX_CONFIG = {
897
+ walletId: "okx",
898
+ wcDeeplink: "okx://wallet/wc",
899
+ injectedKey: "isOkxWallet"
900
+ };
910
901
  var buildOkxBrowseUrl = () => `okx://wallet/dapp/url?dappUrl=${encodeURIComponent(window.location.href)}`;
902
+ var createOkxEvmConnector = () => createWcEvmConnector(OKX_CONFIG);
903
+ var createOkxSolanaConnector = () => createWcSolanaConnector(OKX_CONFIG);
911
904
  var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
912
905
  walletId: "okx",
913
906
  injectedKey: "isOkxWallet",
@@ -945,7 +938,6 @@ var disconnectWc2 = async () => {
945
938
  }
946
939
  };
947
940
  var createWalletConnectEvmConnector = () => {
948
- if (isMobile()) return null;
949
941
  return {
950
942
  id: walletConfig.id,
951
943
  name: walletConfig.name,
@@ -979,7 +971,6 @@ var createWalletConnectEvmConnector = () => {
979
971
  };
980
972
  };
981
973
  var createWalletConnectSolanaConnector = () => {
982
- if (isMobile()) return null;
983
974
  return {
984
975
  id: walletConfig.id,
985
976
  name: walletConfig.name,
@@ -1020,13 +1011,26 @@ var EVM_FALLBACK_CONNECTORS = [
1020
1011
  id: "phantom",
1021
1012
  create: isMobile() ? createPhantomEvmConnectorDeeplink : createPhantomEvmConnector
1022
1013
  },
1023
- { id: "metamask", create: createMetaMaskEvmConnector },
1014
+ ...isMobile() ? [] : [{ id: "metamask", create: createMetaMaskEvmConnector }],
1024
1015
  { id: "trust", create: createTrustEvmMobileConnector },
1025
1016
  { id: "binance", create: createBinanceEvmConnector },
1017
+ { id: "okx", create: createOkxEvmConnector },
1026
1018
  { id: "rainbow", create: createRainbowEvmMobileConnector },
1027
- { id: "exodus", create: createExodusEvmMobileConnector }
1019
+ ...isMobile() ? [] : [{ id: "rabby", create: createRabbyEvmConnector }]
1028
1020
  ];
1029
1021
  var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
1022
+ var checkEvmWalletInstalled = (connectorId) => {
1023
+ if (typeof window === "undefined" || !window.ethereum) return false;
1024
+ const providers = window.ethereum.providers ?? [window.ethereum];
1025
+ switch (connectorId) {
1026
+ case "metaMaskSDK":
1027
+ return providers.some((p) => p.isMetaMask && !p.isBraveWallet);
1028
+ case "coinbaseWalletSDK":
1029
+ return providers.some((p) => p.isCoinbaseWallet);
1030
+ default:
1031
+ return true;
1032
+ }
1033
+ };
1030
1034
  var cleanupWalletLocalStorage = () => {
1031
1035
  Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1032
1036
  };
@@ -1037,7 +1041,7 @@ var getEvmConnectors = () => {
1037
1041
  name: c.name,
1038
1042
  icon: c.icon,
1039
1043
  type: "evm",
1040
- installed: true,
1044
+ installed: checkEvmWalletInstalled(c.id),
1041
1045
  wallet: {
1042
1046
  _connector: c,
1043
1047
  connect: async () => {
@@ -1260,10 +1264,6 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1260
1264
  {
1261
1265
  id: "binance",
1262
1266
  create: () => createSolanaMobileConnector(createBinanceSolanaDappBrowserConnector())
1263
- },
1264
- {
1265
- id: "exodus",
1266
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1267
1267
  }
1268
1268
  ] : [
1269
1269
  { id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
@@ -1277,10 +1277,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1277
1277
  },
1278
1278
  { id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
1279
1279
  { id: "bitget", create: createBitgetSolanaConnector },
1280
- {
1281
- id: "exodus",
1282
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1283
- }
1280
+ { id: "okx", create: createOkxSolanaConnector }
1284
1281
  ];
1285
1282
  var getSolanaWallets = () => {
1286
1283
  const { get } = getWallets();
@@ -1293,8 +1290,6 @@ var getSolanaWallets = () => {
1293
1290
  seenNames.add(w.name);
1294
1291
  return true;
1295
1292
  }).map(createSolanaConnector);
1296
- console.log("wallets", { wallets });
1297
- console.log("connectors", { connectors });
1298
1293
  addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
1299
1294
  return connectors;
1300
1295
  };
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 = {
@@ -899,7 +885,14 @@ var createBinanceSolanaDappBrowserConnector = () => createDappBrowserSolanaConne
899
885
  });
900
886
 
901
887
  // src/lib/connectors/okx.ts
888
+ var OKX_CONFIG = {
889
+ walletId: "okx",
890
+ wcDeeplink: "okx://wallet/wc",
891
+ injectedKey: "isOkxWallet"
892
+ };
902
893
  var buildOkxBrowseUrl = () => `okx://wallet/dapp/url?dappUrl=${encodeURIComponent(window.location.href)}`;
894
+ var createOkxEvmConnector = () => createWcEvmConnector(OKX_CONFIG);
895
+ var createOkxSolanaConnector = () => createWcSolanaConnector(OKX_CONFIG);
903
896
  var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
904
897
  walletId: "okx",
905
898
  injectedKey: "isOkxWallet",
@@ -934,7 +927,6 @@ var disconnectWc2 = async () => {
934
927
  }
935
928
  };
936
929
  var createWalletConnectEvmConnector = () => {
937
- if (isMobile()) return null;
938
930
  return {
939
931
  id: walletConfig.id,
940
932
  name: walletConfig.name,
@@ -968,7 +960,6 @@ var createWalletConnectEvmConnector = () => {
968
960
  };
969
961
  };
970
962
  var createWalletConnectSolanaConnector = () => {
971
- if (isMobile()) return null;
972
963
  return {
973
964
  id: walletConfig.id,
974
965
  name: walletConfig.name,
@@ -1009,13 +1000,26 @@ var EVM_FALLBACK_CONNECTORS = [
1009
1000
  id: "phantom",
1010
1001
  create: isMobile() ? createPhantomEvmConnectorDeeplink : createPhantomEvmConnector
1011
1002
  },
1012
- { id: "metamask", create: createMetaMaskEvmConnector },
1003
+ ...isMobile() ? [] : [{ id: "metamask", create: createMetaMaskEvmConnector }],
1013
1004
  { id: "trust", create: createTrustEvmMobileConnector },
1014
1005
  { id: "binance", create: createBinanceEvmConnector },
1006
+ { id: "okx", create: createOkxEvmConnector },
1015
1007
  { id: "rainbow", create: createRainbowEvmMobileConnector },
1016
- { id: "exodus", create: createExodusEvmMobileConnector }
1008
+ ...isMobile() ? [] : [{ id: "rabby", create: createRabbyEvmConnector }]
1017
1009
  ];
1018
1010
  var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
1011
+ var checkEvmWalletInstalled = (connectorId) => {
1012
+ if (typeof window === "undefined" || !window.ethereum) return false;
1013
+ const providers = window.ethereum.providers ?? [window.ethereum];
1014
+ switch (connectorId) {
1015
+ case "metaMaskSDK":
1016
+ return providers.some((p) => p.isMetaMask && !p.isBraveWallet);
1017
+ case "coinbaseWalletSDK":
1018
+ return providers.some((p) => p.isCoinbaseWallet);
1019
+ default:
1020
+ return true;
1021
+ }
1022
+ };
1019
1023
  var cleanupWalletLocalStorage = () => {
1020
1024
  Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1021
1025
  };
@@ -1026,7 +1030,7 @@ var getEvmConnectors = () => {
1026
1030
  name: c.name,
1027
1031
  icon: c.icon,
1028
1032
  type: "evm",
1029
- installed: true,
1033
+ installed: checkEvmWalletInstalled(c.id),
1030
1034
  wallet: {
1031
1035
  _connector: c,
1032
1036
  connect: async () => {
@@ -1228,10 +1232,6 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1228
1232
  {
1229
1233
  id: "binance",
1230
1234
  create: () => createSolanaMobileConnector(createBinanceSolanaDappBrowserConnector())
1231
- },
1232
- {
1233
- id: "exodus",
1234
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1235
1235
  }
1236
1236
  ] : [
1237
1237
  { id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
@@ -1245,10 +1245,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1245
1245
  },
1246
1246
  { id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
1247
1247
  { id: "bitget", create: createBitgetSolanaConnector },
1248
- {
1249
- id: "exodus",
1250
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1251
- }
1248
+ { id: "okx", create: createOkxSolanaConnector }
1252
1249
  ];
1253
1250
  var getSolanaWallets = () => {
1254
1251
  const { get } = getWallets();
@@ -1261,8 +1258,6 @@ var getSolanaWallets = () => {
1261
1258
  seenNames.add(w.name);
1262
1259
  return true;
1263
1260
  }).map(createSolanaConnector);
1264
- console.log("wallets", { wallets });
1265
- console.log("connectors", { connectors });
1266
1261
  addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
1267
1262
  return connectors;
1268
1263
  };
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 = {
@@ -907,7 +893,14 @@ var createBinanceSolanaDappBrowserConnector = () => createDappBrowserSolanaConne
907
893
  });
908
894
 
909
895
  // src/lib/connectors/okx.ts
896
+ var OKX_CONFIG = {
897
+ walletId: "okx",
898
+ wcDeeplink: "okx://wallet/wc",
899
+ injectedKey: "isOkxWallet"
900
+ };
910
901
  var buildOkxBrowseUrl = () => `okx://wallet/dapp/url?dappUrl=${encodeURIComponent(window.location.href)}`;
902
+ var createOkxEvmConnector = () => createWcEvmConnector(OKX_CONFIG);
903
+ var createOkxSolanaConnector = () => createWcSolanaConnector(OKX_CONFIG);
911
904
  var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
912
905
  walletId: "okx",
913
906
  injectedKey: "isOkxWallet",
@@ -945,7 +938,6 @@ var disconnectWc2 = async () => {
945
938
  }
946
939
  };
947
940
  var createWalletConnectEvmConnector = () => {
948
- if (isMobile()) return null;
949
941
  return {
950
942
  id: walletConfig.id,
951
943
  name: walletConfig.name,
@@ -979,7 +971,6 @@ var createWalletConnectEvmConnector = () => {
979
971
  };
980
972
  };
981
973
  var createWalletConnectSolanaConnector = () => {
982
- if (isMobile()) return null;
983
974
  return {
984
975
  id: walletConfig.id,
985
976
  name: walletConfig.name,
@@ -1020,13 +1011,26 @@ var EVM_FALLBACK_CONNECTORS = [
1020
1011
  id: "phantom",
1021
1012
  create: isMobile() ? createPhantomEvmConnectorDeeplink : createPhantomEvmConnector
1022
1013
  },
1023
- { id: "metamask", create: createMetaMaskEvmConnector },
1014
+ ...isMobile() ? [] : [{ id: "metamask", create: createMetaMaskEvmConnector }],
1024
1015
  { id: "trust", create: createTrustEvmMobileConnector },
1025
1016
  { id: "binance", create: createBinanceEvmConnector },
1017
+ { id: "okx", create: createOkxEvmConnector },
1026
1018
  { id: "rainbow", create: createRainbowEvmMobileConnector },
1027
- { id: "exodus", create: createExodusEvmMobileConnector }
1019
+ ...isMobile() ? [] : [{ id: "rabby", create: createRabbyEvmConnector }]
1028
1020
  ];
1029
1021
  var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
1022
+ var checkEvmWalletInstalled = (connectorId) => {
1023
+ if (typeof window === "undefined" || !window.ethereum) return false;
1024
+ const providers = window.ethereum.providers ?? [window.ethereum];
1025
+ switch (connectorId) {
1026
+ case "metaMaskSDK":
1027
+ return providers.some((p) => p.isMetaMask && !p.isBraveWallet);
1028
+ case "coinbaseWalletSDK":
1029
+ return providers.some((p) => p.isCoinbaseWallet);
1030
+ default:
1031
+ return true;
1032
+ }
1033
+ };
1030
1034
  var cleanupWalletLocalStorage = () => {
1031
1035
  Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
1032
1036
  };
@@ -1037,7 +1041,7 @@ var getEvmConnectors = () => {
1037
1041
  name: c.name,
1038
1042
  icon: c.icon,
1039
1043
  type: "evm",
1040
- installed: true,
1044
+ installed: checkEvmWalletInstalled(c.id),
1041
1045
  wallet: {
1042
1046
  _connector: c,
1043
1047
  connect: async () => {
@@ -1260,10 +1264,6 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1260
1264
  {
1261
1265
  id: "binance",
1262
1266
  create: () => createSolanaMobileConnector(createBinanceSolanaDappBrowserConnector())
1263
- },
1264
- {
1265
- id: "exodus",
1266
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1267
1267
  }
1268
1268
  ] : [
1269
1269
  { id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
@@ -1277,10 +1277,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1277
1277
  },
1278
1278
  { id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
1279
1279
  { id: "bitget", create: createBitgetSolanaConnector },
1280
- {
1281
- id: "exodus",
1282
- create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1283
- }
1280
+ { id: "okx", create: createOkxSolanaConnector }
1284
1281
  ];
1285
1282
  var getSolanaWallets = () => {
1286
1283
  const { get } = getWallets();
@@ -1293,8 +1290,6 @@ var getSolanaWallets = () => {
1293
1290
  seenNames.add(w.name);
1294
1291
  return true;
1295
1292
  }).map(createSolanaConnector);
1296
- console.log("wallets", { wallets });
1297
- console.log("connectors", { connectors });
1298
1293
  addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
1299
1294
  return connectors;
1300
1295
  };
@@ -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 { createOkxEvmConnector, createOkxSolanaConnector, createOkxSolanaDappBrowserConnector, } 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,5 @@
1
+ import type { EvmWalletConnector } from '../evm';
1
2
  import type { SolanaWalletConnector } from '../solana';
3
+ export declare const createOkxEvmConnector: () => EvmWalletConnector;
4
+ export declare const createOkxSolanaConnector: () => SolanaWalletConnector;
2
5
  export declare const createOkxSolanaDappBrowserConnector: () => 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.16",
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;