@bit-buccaneers/wallet-abstraction 0.0.4 → 0.0.6

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.jsx CHANGED
@@ -149,6 +149,11 @@ var WALLETS = [
149
149
  name: "Exodus",
150
150
  icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#exodus",
151
151
  chromeExtensionUrl: "https://chromewebstore.google.com/detail/aholpfdialjgjfhomihkjbmgjidlcdno"
152
+ },
153
+ {
154
+ id: "walletconnect",
155
+ name: "WalletConnect",
156
+ icon: "https://iconic.dynamic-static-assets.com/icons/sprite.svg#walletconnect"
152
157
  }
153
158
  ];
154
159
 
@@ -200,8 +205,94 @@ var SOLANA_WC_CONFIG = {
200
205
  events: WC_EVENTS.SOLANA
201
206
  };
202
207
 
203
- // src/lib/connectors/shared/deeplink.ts
208
+ // src/lib/connectors/shared/injected.ts
204
209
  import bs58 from "bs58";
210
+ var connectEvmInjected = async () => {
211
+ if (!window.ethereum) throw new Error("No injected EVM provider");
212
+ const accounts = await window.ethereum.request({
213
+ method: "eth_requestAccounts"
214
+ });
215
+ if (!accounts[0]) throw new Error("No accounts returned");
216
+ const chainId = await window.ethereum.request({ method: "eth_chainId" });
217
+ return connectedResult(accounts[0], { chainId: parseInt(chainId, 16) });
218
+ };
219
+ var connectSolanaInjected = async () => {
220
+ if (!window.solana) throw new Error("No injected Solana provider");
221
+ const response = await window.solana.connect();
222
+ const publicKey = response.publicKey;
223
+ return connectedResult(publicKey.toBase58(), { publicKey: publicKey.toBytes() });
224
+ };
225
+ var signSolanaInjected = async (message) => {
226
+ if (!window.solana?.signMessage) {
227
+ throw new Error("No injected Solana provider or signMessage not supported");
228
+ }
229
+ const encodedMessage = new TextEncoder().encode(message);
230
+ const result = await window.solana.signMessage(encodedMessage, "utf8");
231
+ return bs58.encode(new Uint8Array(result.signature));
232
+ };
233
+
234
+ // src/lib/connectors/shared/utils.ts
235
+ var isMobile = () => {
236
+ return typeof window !== "undefined" && /iPhone|iPad|iPod|Android/i.test(window.navigator.userAgent);
237
+ };
238
+ var isInWalletBrowser = (key) => {
239
+ return typeof window !== "undefined" && !!window.ethereum?.[key];
240
+ };
241
+ var openDeeplink = (url) => {
242
+ const link = document.createElement("a");
243
+ link.href = url;
244
+ link.click();
245
+ };
246
+ var waitForValue = (getValue) => {
247
+ return new Promise((resolve) => {
248
+ const check = () => {
249
+ const value = getValue();
250
+ if (value != null) resolve(value);
251
+ else window.setTimeout(check, 50);
252
+ };
253
+ check();
254
+ });
255
+ };
256
+
257
+ // src/lib/connectors/shared/dapp-browser.ts
258
+ var buildBrowseUrl = (baseUrl, stripProtocol) => {
259
+ if (stripProtocol) {
260
+ return `${baseUrl}/${window.location.host}${window.location.pathname}${window.location.search}`;
261
+ }
262
+ return `${baseUrl}/${encodeURIComponent(window.location.href)}`;
263
+ };
264
+ var createDappBrowserSolanaConnector = (config2) => {
265
+ const walletConfig2 = WALLETS.find((w) => w.id === config2.walletId);
266
+ const isInWallet = () => isInWalletBrowser(config2.injectedKey);
267
+ return {
268
+ ...walletConfig2,
269
+ type: "solana",
270
+ wallet: {
271
+ _provider: null,
272
+ connect: async () => {
273
+ if (isInWallet() && window.solana) {
274
+ return connectSolanaInjected();
275
+ }
276
+ window.location.href = buildBrowseUrl(config2.browseUrl, config2.stripProtocol);
277
+ return pendingResult();
278
+ },
279
+ disconnect: async () => {
280
+ if (window.solana?.disconnect) {
281
+ await window.solana.disconnect();
282
+ }
283
+ },
284
+ signMessage: async (message) => {
285
+ if (isInWallet() && window.solana) {
286
+ return signSolanaInjected(message);
287
+ }
288
+ throw new Error("signMessage requires dApp browser");
289
+ }
290
+ }
291
+ };
292
+ };
293
+
294
+ // src/lib/connectors/shared/deeplink.ts
295
+ import bs582 from "bs58";
205
296
  import nacl from "tweetnacl";
206
297
  var getDappKeyPair = (storageKey) => {
207
298
  const stored = storage.get(storageKey);
@@ -222,7 +313,7 @@ var buildConnectUrl = (config2, params) => {
222
313
  const keyPair = getDappKeyPair(`${config2.storageKeyPrefix}_keypair`);
223
314
  const url = new URL(config2.connectUrl);
224
315
  url.searchParams.set("app_url", params.appUrl);
225
- url.searchParams.set("dapp_encryption_public_key", bs58.encode(keyPair.publicKey));
316
+ url.searchParams.set("dapp_encryption_public_key", bs582.encode(keyPair.publicKey));
226
317
  url.searchParams.set("redirect_link", params.redirectUrl);
227
318
  if (params.cluster) {
228
319
  url.searchParams.set("cluster", params.cluster);
@@ -241,8 +332,8 @@ var parseConnectResponse = (urlParams, config2) => {
241
332
  }
242
333
  try {
243
334
  const keyPair = getDappKeyPair(`${config2.storageKeyPrefix}_keypair`);
244
- const sharedSecret = nacl.box.before(bs58.decode(walletPublicKey), keyPair.secretKey);
245
- const decrypted = nacl.box.open.after(bs58.decode(data), bs58.decode(nonce), sharedSecret);
335
+ const sharedSecret = nacl.box.before(bs582.decode(walletPublicKey), keyPair.secretKey);
336
+ const decrypted = nacl.box.open.after(bs582.decode(data), bs582.decode(nonce), sharedSecret);
246
337
  if (!decrypted) {
247
338
  return null;
248
339
  }
@@ -292,7 +383,7 @@ var buildSignMessageUrl = (signUrl, config2, sessionKey, message, redirectUrl) =
292
383
  const keyPair = getDappKeyPair(`${config2.storageKeyPrefix}_keypair`);
293
384
  const sharedSecret = new Uint8Array(session.sharedSecret);
294
385
  const payload = {
295
- message: bs58.encode(new TextEncoder().encode(message)),
386
+ message: bs582.encode(new TextEncoder().encode(message)),
296
387
  session: session.session,
297
388
  display: "utf8"
298
389
  };
@@ -303,10 +394,10 @@ var buildSignMessageUrl = (signUrl, config2, sessionKey, message, redirectUrl) =
303
394
  sharedSecret
304
395
  );
305
396
  const url = new URL(signUrl);
306
- url.searchParams.set("dapp_encryption_public_key", bs58.encode(keyPair.publicKey));
307
- url.searchParams.set("nonce", bs58.encode(nonce));
397
+ url.searchParams.set("dapp_encryption_public_key", bs582.encode(keyPair.publicKey));
398
+ url.searchParams.set("nonce", bs582.encode(nonce));
308
399
  url.searchParams.set("redirect_link", redirectUrl);
309
- url.searchParams.set("payload", bs58.encode(encrypted));
400
+ url.searchParams.set("payload", bs582.encode(encrypted));
310
401
  return url.toString();
311
402
  };
312
403
  var parseSignMessageResponse = (config2, sessionKey) => {
@@ -318,7 +409,7 @@ var parseSignMessageResponse = (config2, sessionKey) => {
318
409
  if (!session) return null;
319
410
  try {
320
411
  const sharedSecret = new Uint8Array(session.sharedSecret);
321
- const decrypted = nacl.box.open.after(bs58.decode(data), bs58.decode(nonce), sharedSecret);
412
+ const decrypted = nacl.box.open.after(bs582.decode(data), bs582.decode(nonce), sharedSecret);
322
413
  if (!decrypted) return null;
323
414
  const response = JSON.parse(new TextDecoder().decode(decrypted));
324
415
  return response.signature;
@@ -327,32 +418,6 @@ var parseSignMessageResponse = (config2, sessionKey) => {
327
418
  }
328
419
  };
329
420
 
330
- // src/lib/connectors/shared/injected.ts
331
- import bs582 from "bs58";
332
- var connectEvmInjected = async () => {
333
- if (!window.ethereum) throw new Error("No injected EVM provider");
334
- const accounts = await window.ethereum.request({
335
- method: "eth_requestAccounts"
336
- });
337
- if (!accounts[0]) throw new Error("No accounts returned");
338
- const chainId = await window.ethereum.request({ method: "eth_chainId" });
339
- return connectedResult(accounts[0], { chainId: parseInt(chainId, 16) });
340
- };
341
- var connectSolanaInjected = async () => {
342
- if (!window.solana) throw new Error("No injected Solana provider");
343
- const response = await window.solana.connect();
344
- const publicKey = response.publicKey;
345
- return connectedResult(publicKey.toBase58(), { publicKey: publicKey.toBytes() });
346
- };
347
- var signSolanaInjected = async (message) => {
348
- if (!window.solana?.signMessage) {
349
- throw new Error("No injected Solana provider or signMessage not supported");
350
- }
351
- const encodedMessage = new TextEncoder().encode(message);
352
- const result = await window.solana.signMessage(encodedMessage, "utf8");
353
- return bs582.encode(new Uint8Array(result.signature));
354
- };
355
-
356
421
  // src/lib/connectors/shared/parsers.ts
357
422
  var parseEvmAccount = (account) => {
358
423
  const [, chainIdStr, address] = account.split(":");
@@ -362,8 +427,8 @@ var parseEvmAccount = (account) => {
362
427
  var parseSolanaAccount = async (account) => {
363
428
  const address = account.split(":")[2];
364
429
  if (!address) throw new Error("Invalid Solana account format");
365
- const { default: bs586 } = await import("bs58");
366
- return connectedResult(address, { publicKey: bs586.decode(address) });
430
+ const { default: bs587 } = await import("bs58");
431
+ return connectedResult(address, { publicKey: bs587.decode(address) });
367
432
  };
368
433
  var getEvmAccountFromSession = (namespaces) => {
369
434
  const account = namespaces.eip155?.accounts?.[0];
@@ -376,29 +441,6 @@ var getSolanaAccountFromSession = async (namespaces) => {
376
441
  return parseSolanaAccount(account);
377
442
  };
378
443
 
379
- // src/lib/connectors/shared/utils.ts
380
- var isMobile = () => {
381
- return typeof window !== "undefined" && /iPhone|iPad|iPod|Android/i.test(window.navigator.userAgent);
382
- };
383
- var isInWalletBrowser = (key) => {
384
- return typeof window !== "undefined" && !!window.ethereum?.[key];
385
- };
386
- var openDeeplink = (url) => {
387
- const link = document.createElement("a");
388
- link.href = url;
389
- link.click();
390
- };
391
- var waitForValue = (getValue) => {
392
- return new Promise((resolve) => {
393
- const check = () => {
394
- const value = getValue();
395
- if (value != null) resolve(value);
396
- else window.setTimeout(check, 50);
397
- };
398
- check();
399
- });
400
- };
401
-
402
444
  // src/lib/walletconnect/client.ts
403
445
  import { SignClient } from "@walletconnect/sign-client";
404
446
  var signClient = null;
@@ -573,11 +615,11 @@ var disconnectWcOrSolana = async () => {
573
615
  }
574
616
  };
575
617
  var createWcEvmConnector = (config2) => {
576
- const walletConfig = WALLETS.find((w) => w.id === config2.walletId);
618
+ const walletConfig2 = WALLETS.find((w) => w.id === config2.walletId);
577
619
  const getDeeplink = createDeeplink(config2.wcDeeplink);
578
620
  const isInWallet = () => isInWalletBrowser(config2.injectedKey);
579
621
  return {
580
- ...walletConfig,
622
+ ...walletConfig2,
581
623
  type: "evm",
582
624
  wallet: {
583
625
  _connector: null,
@@ -618,11 +660,11 @@ var createWcEvmConnector = (config2) => {
618
660
  };
619
661
  };
620
662
  var createWcSolanaConnector = (config2) => {
621
- const walletConfig = WALLETS.find((w) => w.id === config2.walletId);
663
+ const walletConfig2 = WALLETS.find((w) => w.id === config2.walletId);
622
664
  const getDeeplink = createDeeplink(config2.wcDeeplink);
623
665
  const isInWallet = () => isInWalletBrowser(config2.injectedKey);
624
666
  return {
625
- ...walletConfig,
667
+ ...walletConfig2,
626
668
  type: "solana",
627
669
  wallet: {
628
670
  _provider: null,
@@ -662,6 +704,11 @@ var createWcSolanaConnector = (config2) => {
662
704
  var PHANTOM_CONNECT_URL = "https://phantom.app/ul/v1/connect";
663
705
  var PHANTOM_SIGN_MESSAGE_URL = "https://phantom.app/ul/v1/signMessage";
664
706
  var PHANTOM_BROWSE_URL = "https://phantom.app/ul/browse";
707
+ var createPhantomSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
708
+ walletId: "phantom",
709
+ browseUrl: PHANTOM_BROWSE_URL,
710
+ injectedKey: "isPhantom"
711
+ });
665
712
  var PHANTOM_CONFIG = {
666
713
  connectUrl: PHANTOM_CONNECT_URL,
667
714
  storageKeyPrefix: "phantom_mobile",
@@ -758,11 +805,24 @@ var METAMASK_CONFIG = {
758
805
  wcDeeplink: "https://metamask.app.link/wc",
759
806
  injectedKey: "isMetaMask"
760
807
  };
808
+ var METAMASK_BROWSE_URL = "https://metamask.app.link/dapp";
761
809
  var createMetaMaskEvmConnector = () => createWcEvmConnector(METAMASK_CONFIG);
810
+ var createMetaMaskSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
811
+ walletId: "metamask",
812
+ browseUrl: METAMASK_BROWSE_URL,
813
+ injectedKey: "isMetaMask",
814
+ stripProtocol: true
815
+ });
762
816
 
763
817
  // src/lib/connectors/solflare.ts
764
818
  var SOLFLARE_CONNECT_URL = "https://solflare.com/ul/v1/connect";
765
819
  var SOLFLARE_SIGN_MESSAGE_URL = "https://solflare.com/ul/v1/signMessage";
820
+ var SOLFLARE_BROWSE_URL = "https://solflare.com/ul/v1/browse";
821
+ var createSolflareSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
822
+ walletId: "solflare",
823
+ browseUrl: SOLFLARE_BROWSE_URL,
824
+ injectedKey: "isSolflare"
825
+ });
766
826
  var SOLFLARE_CONFIG = {
767
827
  connectUrl: SOLFLARE_CONNECT_URL,
768
828
  storageKeyPrefix: "solflare_mobile",
@@ -832,8 +892,14 @@ var TRUST_CONFIG = {
832
892
  wcDeeplink: "https://link.trustwallet.com/wc",
833
893
  injectedKey: "isTrust"
834
894
  };
895
+ var TRUST_BROWSE_URL = "https://link.trustwallet.com/open_url";
835
896
  var createTrustEvmMobileConnector = () => createWcEvmConnector(TRUST_CONFIG);
836
897
  var createTrustSolanaMobileConnector = () => createWcSolanaConnector(TRUST_CONFIG);
898
+ var createTrustSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
899
+ walletId: "trust",
900
+ browseUrl: TRUST_BROWSE_URL,
901
+ injectedKey: "isTrust"
902
+ });
837
903
 
838
904
  // src/lib/connectors/rainbow.ts
839
905
  var RAINBOW_CONFIG = {
@@ -849,8 +915,14 @@ var EXODUS_CONFIG = {
849
915
  wcDeeplink: "https://exodus.com/wc",
850
916
  injectedKey: "isExodus"
851
917
  };
918
+ var EXODUS_BROWSE_URL = "https://exodus.com/m/browser";
852
919
  var createExodusEvmMobileConnector = () => createWcEvmConnector(EXODUS_CONFIG);
853
920
  var createExodusSolanaMobileConnector = () => createWcSolanaConnector(EXODUS_CONFIG);
921
+ var createExodusSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
922
+ walletId: "exodus",
923
+ browseUrl: EXODUS_BROWSE_URL,
924
+ injectedKey: "isExodus"
925
+ });
854
926
 
855
927
  // src/lib/connectors/binance.ts
856
928
  var BINANCE_CONFIG = {
@@ -858,8 +930,118 @@ var BINANCE_CONFIG = {
858
930
  wcDeeplink: "bnc://app.binance.com/cedefi/wc",
859
931
  injectedKey: "isBinance"
860
932
  };
933
+ var BINANCE_BROWSE_URL = "bnc://app.binance.com/cedefi/dapp/browser";
861
934
  var createBinanceEvmConnector = () => createWcEvmConnector(BINANCE_CONFIG);
862
935
  var createBinanceSolanaConnector = () => createWcSolanaConnector(BINANCE_CONFIG);
936
+ var createBinanceSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
937
+ walletId: "binance",
938
+ browseUrl: BINANCE_BROWSE_URL,
939
+ injectedKey: "isBinance"
940
+ });
941
+
942
+ // src/lib/connectors/okx.ts
943
+ var OKX_BROWSE_URL = "https://www.okx.com/download?deeplink=";
944
+ var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
945
+ walletId: "okx",
946
+ browseUrl: OKX_BROWSE_URL,
947
+ injectedKey: "isOkxWallet"
948
+ });
949
+
950
+ // src/lib/connectors/coinbase.ts
951
+ var COINBASE_BROWSE_URL = "https://go.cb-w.com/dapp";
952
+ var createCoinbaseSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
953
+ walletId: "coinbase",
954
+ browseUrl: COINBASE_BROWSE_URL,
955
+ injectedKey: "isCoinbaseWallet",
956
+ stripProtocol: true
957
+ });
958
+
959
+ // src/lib/connectors/bitget.ts
960
+ var BITGET_BROWSE_URL = "https://bkcode.vip/dapp";
961
+ var createBitgetSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
962
+ walletId: "bitget",
963
+ browseUrl: BITGET_BROWSE_URL,
964
+ injectedKey: "isBitKeep",
965
+ stripProtocol: true
966
+ });
967
+
968
+ // src/lib/connectors/walletconnect.ts
969
+ import bs584 from "bs58";
970
+ var walletConfig = WALLETS.find((w) => w.id === "walletconnect");
971
+ var disconnectWc2 = async () => {
972
+ if (getCurrentSession()) {
973
+ await disconnectWalletConnect();
974
+ }
975
+ };
976
+ var createWalletConnectEvmConnector = () => {
977
+ if (isMobile()) return null;
978
+ return {
979
+ id: walletConfig.id,
980
+ name: walletConfig.name,
981
+ icon: walletConfig.icon,
982
+ type: "evm",
983
+ installed: true,
984
+ wallet: {
985
+ _connector: null,
986
+ connect: async () => {
987
+ return connectViaWalletConnect(EVM_WC_CONFIG, getEvmAccountFromSession);
988
+ },
989
+ disconnect: disconnectWc2,
990
+ signMessage: async (message) => {
991
+ const session = getCurrentSession();
992
+ if (!session) {
993
+ throw new Error("No WalletConnect session");
994
+ }
995
+ const account = session.namespaces.eip155?.accounts?.[0];
996
+ if (!account) {
997
+ throw new Error("No EVM account in session");
998
+ }
999
+ const address = account.split(":")[2];
1000
+ const result = await requestWalletConnect(
1001
+ "personal_sign",
1002
+ [message, address],
1003
+ WC_CHAINS.EVM_MAINNET
1004
+ );
1005
+ return result;
1006
+ }
1007
+ }
1008
+ };
1009
+ };
1010
+ var createWalletConnectSolanaConnector = () => {
1011
+ if (isMobile()) return null;
1012
+ return {
1013
+ id: walletConfig.id,
1014
+ name: walletConfig.name,
1015
+ icon: walletConfig.icon,
1016
+ type: "solana",
1017
+ installed: true,
1018
+ wallet: {
1019
+ _provider: null,
1020
+ connect: async () => {
1021
+ return connectViaWalletConnect(SOLANA_WC_CONFIG, getSolanaAccountFromSession);
1022
+ },
1023
+ disconnect: disconnectWc2,
1024
+ signMessage: async (message) => {
1025
+ const session = getCurrentSession();
1026
+ if (!session) {
1027
+ throw new Error("No WalletConnect session");
1028
+ }
1029
+ const account = session.namespaces.solana?.accounts?.[0];
1030
+ if (!account) {
1031
+ throw new Error("No Solana account in session");
1032
+ }
1033
+ const pubkey = account.split(":")[2];
1034
+ const messageBytes = new TextEncoder().encode(message);
1035
+ const result = await requestWalletConnect(
1036
+ "solana_signMessage",
1037
+ { message: bs584.encode(messageBytes), pubkey },
1038
+ WC_CHAINS.SOLANA_MAINNET
1039
+ );
1040
+ return result.signature;
1041
+ }
1042
+ }
1043
+ };
1044
+ };
863
1045
 
864
1046
  // src/lib/evm/connectors.ts
865
1047
  var EVM_FALLBACK_CONNECTORS = [
@@ -929,7 +1111,7 @@ import {
929
1111
  isWalletAdapterCompatibleStandardWallet
930
1112
  } from "@solana/wallet-adapter-base";
931
1113
  import { getWallets } from "@wallet-standard/app";
932
- import bs584 from "bs58";
1114
+ import bs585 from "bs58";
933
1115
  var createSolanaConnector = (provider) => {
934
1116
  const id = normalizeSolanaWalletId(provider.name.toLowerCase().replace(/\s+/g, "-"));
935
1117
  const connector = {
@@ -973,7 +1155,7 @@ var createSolanaConnector = (provider) => {
973
1155
  const result = await signFeature.signMessage({ message: encodedMessage, account });
974
1156
  const signature = result[0]?.signature;
975
1157
  if (!signature) throw new Error("No signature returned");
976
- return bs584.encode(signature);
1158
+ return bs585.encode(signature);
977
1159
  }
978
1160
  }
979
1161
  };
@@ -990,16 +1172,59 @@ var createSolanaMobileConnector = (connector) => ({
990
1172
  }
991
1173
  }
992
1174
  });
993
- var SOLANA_FALLBACK_CONNECTORS = [
1175
+ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
1176
+ {
1177
+ id: "phantom",
1178
+ create: () => createSolanaMobileConnector(createPhantomSolanaDappBrowserConnector())
1179
+ },
1180
+ {
1181
+ id: "solflare",
1182
+ create: () => createSolanaMobileConnector(createSolflareSolanaDappBrowserConnector())
1183
+ },
1184
+ {
1185
+ id: "metamask",
1186
+ create: () => createSolanaMobileConnector(createMetaMaskSolanaDappBrowserConnector())
1187
+ },
1188
+ {
1189
+ id: "okx",
1190
+ create: () => createSolanaMobileConnector(createOkxSolanaDappBrowserConnector())
1191
+ },
1192
+ {
1193
+ id: "coinbase",
1194
+ create: () => createSolanaMobileConnector(createCoinbaseSolanaDappBrowserConnector())
1195
+ },
1196
+ {
1197
+ id: "bitget",
1198
+ create: () => createSolanaMobileConnector(createBitgetSolanaDappBrowserConnector())
1199
+ },
1200
+ {
1201
+ id: "trust",
1202
+ create: () => createSolanaMobileConnector(createTrustSolanaDappBrowserConnector())
1203
+ },
1204
+ {
1205
+ id: "binance",
1206
+ create: () => createSolanaMobileConnector(createBinanceSolanaDappBrowserConnector())
1207
+ },
1208
+ {
1209
+ id: "exodus",
1210
+ create: () => createSolanaMobileConnector(createExodusSolanaDappBrowserConnector())
1211
+ }
1212
+ ] : [
994
1213
  { id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
995
1214
  // { id: 'metamask', create: () => createSolanaMobileConnector(createMetaMaskSolanaConnector()) },
996
1215
  {
997
1216
  id: "solflare",
998
1217
  create: () => createSolanaMobileConnector(createSolflareSolanaMobileConnector())
999
1218
  },
1000
- { id: "trust", create: () => createSolanaMobileConnector(createTrustSolanaMobileConnector()) },
1219
+ {
1220
+ id: "trust",
1221
+ create: () => createSolanaMobileConnector(createTrustSolanaMobileConnector())
1222
+ },
1001
1223
  { id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
1002
- { id: "exodus", create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector()) }
1224
+ {
1225
+ id: "exodus",
1226
+ create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
1227
+ }
1003
1228
  ];
1004
1229
  var getSolanaWallets = () => {
1005
1230
  const { get } = getWallets();
@@ -1109,7 +1334,12 @@ var useEvmWallet = (options) => {
1109
1334
  const [connectedConnector, setConnectedConnector] = createSignal(null);
1110
1335
  onMount(() => {
1111
1336
  createEvmConfig(options.chains);
1112
- setEvmConnectors(getEvmConnectors());
1337
+ const connectors = getEvmConnectors();
1338
+ const wcConnector = createWalletConnectEvmConnector();
1339
+ if (wcConnector) {
1340
+ connectors.unshift(wcConnector);
1341
+ }
1342
+ setEvmConnectors(connectors);
1113
1343
  const unsubscribe = watchEvmConnections((connections) => {
1114
1344
  const connection = connections[0];
1115
1345
  if (connection && connection.accounts[0]) {
@@ -1158,7 +1388,12 @@ var useSolanaWallet = () => {
1158
1388
  null
1159
1389
  );
1160
1390
  onMount2(() => {
1161
- setSolanaConnectors(getSolanaWallets());
1391
+ const connectors = getSolanaWallets();
1392
+ const wcConnector = createWalletConnectSolanaConnector();
1393
+ if (wcConnector) {
1394
+ connectors.unshift(wcConnector);
1395
+ }
1396
+ setSolanaConnectors(connectors);
1162
1397
  const unsubscribeWallets = onSolanaWalletsChange(setSolanaConnectors);
1163
1398
  const unsubscribeConnection = watchSolanaConnection((state) => {
1164
1399
  setSolanaConnection(state.connection);
@@ -1211,7 +1446,7 @@ var useSolanaWallet = () => {
1211
1446
  };
1212
1447
 
1213
1448
  // src/lib/context/hooks/useWalletConnect.ts
1214
- import bs585 from "bs58";
1449
+ import bs586 from "bs58";
1215
1450
  import { onCleanup as onCleanup3, onMount as onMount3 } from "solid-js";
1216
1451
  var useWalletConnect = (options) => {
1217
1452
  onMount3(async () => {
@@ -1266,7 +1501,7 @@ var useWalletConnect = (options) => {
1266
1501
  const messageBytes = new TextEncoder().encode(message);
1267
1502
  const result = await requestWalletConnect(
1268
1503
  "solana_signMessage",
1269
- { message: bs585.encode(messageBytes), pubkey },
1504
+ { message: bs586.encode(messageBytes), pubkey },
1270
1505
  WC_CHAINS.SOLANA_MAINNET
1271
1506
  );
1272
1507
  return result.signature;
@@ -1373,11 +1608,13 @@ export {
1373
1608
  checkPhantomSignCallback,
1374
1609
  checkSolflareSignCallback,
1375
1610
  createEvmConfig,
1611
+ getCurrentSession,
1376
1612
  getEvmConfig,
1377
1613
  getEvmConnectors,
1378
1614
  getSolanaWallets,
1379
1615
  initWalletConnect,
1380
1616
  onSolanaWalletsChange,
1617
+ onWalletConnectSessionChange,
1381
1618
  reconnectSolana,
1382
1619
  useWallet,
1383
1620
  watchEvmConnections,