@solana/connector 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/{chunk-HPQ5T32K.mjs → chunk-3623Z2QL.mjs} +4 -4
  2. package/dist/{chunk-HPQ5T32K.mjs.map → chunk-3623Z2QL.mjs.map} +1 -1
  3. package/dist/{chunk-UCISIAOG.mjs → chunk-A7WQ3K75.mjs} +3 -3
  4. package/dist/{chunk-UCISIAOG.mjs.map → chunk-A7WQ3K75.mjs.map} +1 -1
  5. package/dist/{chunk-SITQ4JWM.js → chunk-BF67LVVM.js} +17 -21
  6. package/dist/chunk-BF67LVVM.js.map +1 -0
  7. package/dist/{chunk-MDR4Y37Z.mjs → chunk-DFHJYZKZ.mjs} +5 -4
  8. package/dist/chunk-DFHJYZKZ.mjs.map +1 -0
  9. package/dist/chunk-E3DAIOYS.mjs +22 -0
  10. package/dist/chunk-E3DAIOYS.mjs.map +1 -0
  11. package/dist/chunk-FG7HTQTV.mjs +7 -0
  12. package/dist/chunk-FG7HTQTV.mjs.map +1 -0
  13. package/dist/{chunk-BJAVJQLK.js → chunk-I2XX5FUG.js} +6 -6
  14. package/dist/{chunk-BJAVJQLK.js.map → chunk-I2XX5FUG.js.map} +1 -1
  15. package/dist/chunk-L5FWMNWO.js +9 -0
  16. package/dist/chunk-L5FWMNWO.js.map +1 -0
  17. package/dist/{chunk-HN5AJF7F.js → chunk-NLPEO5GT.js} +5 -5
  18. package/dist/{chunk-HN5AJF7F.js.map → chunk-NLPEO5GT.js.map} +1 -1
  19. package/dist/chunk-QST7XLMB.js +26 -0
  20. package/dist/chunk-QST7XLMB.js.map +1 -0
  21. package/dist/{chunk-ZZTY3O4N.mjs → chunk-SJCQ3KZE.mjs} +4 -7
  22. package/dist/chunk-SJCQ3KZE.mjs.map +1 -0
  23. package/dist/{chunk-IDTUFDNB.mjs → chunk-SQ2JEA2M.mjs} +58 -11
  24. package/dist/chunk-SQ2JEA2M.mjs.map +1 -0
  25. package/dist/{chunk-BZ2VBJCZ.js → chunk-TRSJSU33.js} +141 -94
  26. package/dist/chunk-TRSJSU33.js.map +1 -0
  27. package/dist/{chunk-4Z2F6ERB.js → chunk-VVLY6QPI.js} +49 -48
  28. package/dist/chunk-VVLY6QPI.js.map +1 -0
  29. package/dist/compat.js +2 -2
  30. package/dist/compat.mjs +1 -1
  31. package/dist/fireblocks-FLKRTJU3.js +67 -0
  32. package/dist/fireblocks-FLKRTJU3.js.map +1 -0
  33. package/dist/fireblocks-KCJV3GEK.mjs +65 -0
  34. package/dist/fireblocks-KCJV3GEK.mjs.map +1 -0
  35. package/dist/headless.d.mts +6 -11
  36. package/dist/headless.d.ts +6 -11
  37. package/dist/headless.js +147 -147
  38. package/dist/headless.mjs +4 -4
  39. package/dist/index.d.mts +1 -1
  40. package/dist/index.d.ts +1 -1
  41. package/dist/index.js +188 -188
  42. package/dist/index.mjs +5 -5
  43. package/dist/privy-6LYDE24Z.mjs +64 -0
  44. package/dist/privy-6LYDE24Z.mjs.map +1 -0
  45. package/dist/privy-ID4YFTKR.js +66 -0
  46. package/dist/privy-ID4YFTKR.js.map +1 -0
  47. package/dist/protocol-G-z1lRqo.d.mts +166 -0
  48. package/dist/protocol-G-z1lRqo.d.ts +166 -0
  49. package/dist/react.d.mts +3 -3
  50. package/dist/react.d.ts +3 -3
  51. package/dist/react.js +49 -49
  52. package/dist/react.mjs +2 -2
  53. package/dist/remote.d.mts +46 -0
  54. package/dist/remote.d.ts +46 -0
  55. package/dist/remote.js +212 -0
  56. package/dist/remote.js.map +1 -0
  57. package/dist/remote.mjs +198 -0
  58. package/dist/remote.mjs.map +1 -0
  59. package/dist/server.d.mts +141 -0
  60. package/dist/server.d.ts +141 -0
  61. package/dist/server.js +189 -0
  62. package/dist/server.js.map +1 -0
  63. package/dist/server.mjs +187 -0
  64. package/dist/server.mjs.map +1 -0
  65. package/dist/{standard-shim-tmnQelaJ.d.ts → standard-shim-Cg6fmjK_.d.ts} +10 -0
  66. package/dist/{standard-shim-CGB88PPO.d.mts → standard-shim-Cz4UNS7t.d.mts} +10 -0
  67. package/dist/{walletconnect-447EY3OJ.js → walletconnect-F2M3PAAN.js} +8 -8
  68. package/dist/{walletconnect-447EY3OJ.js.map → walletconnect-F2M3PAAN.js.map} +1 -1
  69. package/dist/walletconnect-Z6LPGALR.mjs +3 -0
  70. package/dist/{walletconnect-U455PO4I.mjs.map → walletconnect-Z6LPGALR.mjs.map} +1 -1
  71. package/package.json +27 -2
  72. package/dist/chunk-4Z2F6ERB.js.map +0 -1
  73. package/dist/chunk-BZ2VBJCZ.js.map +0 -1
  74. package/dist/chunk-IDTUFDNB.mjs.map +0 -1
  75. package/dist/chunk-MDR4Y37Z.mjs.map +0 -1
  76. package/dist/chunk-SITQ4JWM.js.map +0 -1
  77. package/dist/chunk-ZZTY3O4N.mjs.map +0 -1
  78. package/dist/walletconnect-U455PO4I.mjs +0 -3
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk4KD6HQQG_js = require('./chunk-4KD6HQQG.js');
4
- var chunkSITQ4JWM_js = require('./chunk-SITQ4JWM.js');
4
+ var chunkBF67LVVM_js = require('./chunk-BF67LVVM.js');
5
+ var chunkL5FWMNWO_js = require('./chunk-L5FWMNWO.js');
5
6
  var webcryptoEd25519Polyfill = require('@solana/webcrypto-ed25519-polyfill');
6
7
  var core = require('@wallet-ui/core');
7
8
  var addresses = require('@solana/addresses');
@@ -140,7 +141,7 @@ function toClusterId(network) {
140
141
  function getDefaultRpcUrl(network) {
141
142
  let normalized = normalizeNetwork(network);
142
143
  try {
143
- return chunkSITQ4JWM_js.getPublicSolanaRpcUrl(normalized);
144
+ return chunkBF67LVVM_js.getPublicSolanaRpcUrl(normalized);
144
145
  } catch {
145
146
  return PUBLIC_RPC_ENDPOINTS[normalized] ?? PUBLIC_RPC_ENDPOINTS.localnet;
146
147
  }
@@ -195,14 +196,14 @@ function getClusterExplorerUrl(cluster, path) {
195
196
  }
196
197
  function getTransactionUrl(signature, cluster) {
197
198
  let clusterType = getClusterType(cluster), explorerCluster = clusterType === "custom" || clusterType === "localnet" ? "devnet" : clusterType;
198
- return chunkSITQ4JWM_js.getExplorerLink({
199
+ return chunkBF67LVVM_js.getExplorerLink({
199
200
  transaction: signature,
200
201
  cluster: explorerCluster === "mainnet" ? "mainnet" : explorerCluster
201
202
  });
202
203
  }
203
204
  function getAddressUrl(address, cluster) {
204
205
  let clusterType = getClusterType(cluster), explorerCluster = clusterType === "custom" || clusterType === "localnet" ? "devnet" : clusterType;
205
- return chunkSITQ4JWM_js.getExplorerLink({
206
+ return chunkBF67LVVM_js.getExplorerLink({
206
207
  address,
207
208
  cluster: explorerCluster === "mainnet" ? "mainnet" : explorerCluster
208
209
  });
@@ -265,9 +266,9 @@ var POLL_INTERVALS_MS = [1e3, 2e3, 3e3, 5e3, 5e3], DEFAULT_MAX_RETRIES = 3, DEFA
265
266
  // src/lib/core/state-manager.ts
266
267
  var StateManager = class {
267
268
  constructor(initialState) {
268
- chunkSITQ4JWM_js.__publicField(this, "state");
269
- chunkSITQ4JWM_js.__publicField(this, "listeners", /* @__PURE__ */ new Set());
270
- chunkSITQ4JWM_js.__publicField(this, "notifyTimeout");
269
+ chunkL5FWMNWO_js.__publicField(this, "state");
270
+ chunkL5FWMNWO_js.__publicField(this, "listeners", /* @__PURE__ */ new Set());
271
+ chunkL5FWMNWO_js.__publicField(this, "notifyTimeout");
271
272
  this.state = initialState;
272
273
  }
273
274
  /**
@@ -326,10 +327,10 @@ var StateManager = class {
326
327
  };
327
328
 
328
329
  // src/lib/core/event-emitter.ts
329
- var logger = chunkSITQ4JWM_js.createLogger("EventEmitter"), EventEmitter = class {
330
+ var logger = chunkBF67LVVM_js.createLogger("EventEmitter"), EventEmitter = class {
330
331
  constructor(debug = false) {
331
- chunkSITQ4JWM_js.__publicField(this, "listeners", /* @__PURE__ */ new Set());
332
- chunkSITQ4JWM_js.__publicField(this, "debug");
332
+ chunkL5FWMNWO_js.__publicField(this, "listeners", /* @__PURE__ */ new Set());
333
+ chunkL5FWMNWO_js.__publicField(this, "debug");
333
334
  this.debug = debug;
334
335
  }
335
336
  /**
@@ -385,12 +386,12 @@ var logger = chunkSITQ4JWM_js.createLogger("EventEmitter"), EventEmitter = class
385
386
  // src/lib/core/debug-metrics.ts
386
387
  var DebugMetrics = class {
387
388
  constructor() {
388
- chunkSITQ4JWM_js.__publicField(this, "stateUpdates", 0);
389
- chunkSITQ4JWM_js.__publicField(this, "noopUpdates", 0);
390
- chunkSITQ4JWM_js.__publicField(this, "updateTimes", []);
391
- chunkSITQ4JWM_js.__publicField(this, "lastUpdateTime", 0);
392
- chunkSITQ4JWM_js.__publicField(this, "eventListenerCount", 0);
393
- chunkSITQ4JWM_js.__publicField(this, "subscriptionCount", 0);
389
+ chunkL5FWMNWO_js.__publicField(this, "stateUpdates", 0);
390
+ chunkL5FWMNWO_js.__publicField(this, "noopUpdates", 0);
391
+ chunkL5FWMNWO_js.__publicField(this, "updateTimes", []);
392
+ chunkL5FWMNWO_js.__publicField(this, "lastUpdateTime", 0);
393
+ chunkL5FWMNWO_js.__publicField(this, "eventListenerCount", 0);
394
+ chunkL5FWMNWO_js.__publicField(this, "subscriptionCount", 0);
394
395
  }
395
396
  /**
396
397
  * Record a state update attempt
@@ -430,11 +431,11 @@ var DebugMetrics = class {
430
431
  // src/lib/core/base-collaborator.ts
431
432
  var BaseCollaborator = class {
432
433
  constructor(config, loggerPrefix) {
433
- chunkSITQ4JWM_js.__publicField(this, "stateManager");
434
- chunkSITQ4JWM_js.__publicField(this, "eventEmitter");
435
- chunkSITQ4JWM_js.__publicField(this, "debug");
436
- chunkSITQ4JWM_js.__publicField(this, "logger");
437
- this.stateManager = config.stateManager, this.eventEmitter = config.eventEmitter, this.debug = config.debug ?? false, this.logger = chunkSITQ4JWM_js.createLogger(loggerPrefix);
434
+ chunkL5FWMNWO_js.__publicField(this, "stateManager");
435
+ chunkL5FWMNWO_js.__publicField(this, "eventEmitter");
436
+ chunkL5FWMNWO_js.__publicField(this, "debug");
437
+ chunkL5FWMNWO_js.__publicField(this, "logger");
438
+ this.stateManager = config.stateManager, this.eventEmitter = config.eventEmitter, this.debug = config.debug ?? false, this.logger = chunkBF67LVVM_js.createLogger(loggerPrefix);
438
439
  }
439
440
  /**
440
441
  * Log debug message if debug mode is enabled
@@ -457,7 +458,7 @@ var BaseCollaborator = class {
457
458
  };
458
459
 
459
460
  // src/lib/wallet/authenticity-verifier.ts
460
- var logger2 = chunkSITQ4JWM_js.createLogger("WalletAuthenticity"), WalletAuthenticityVerifier = class {
461
+ var logger2 = chunkBF67LVVM_js.createLogger("WalletAuthenticity"), WalletAuthenticityVerifier = class {
461
462
  /**
462
463
  * Verify a wallet's authenticity using dynamic heuristics
463
464
  *
@@ -699,7 +700,7 @@ function applyWalletIconOverride(wallet) {
699
700
  }
700
701
 
701
702
  // src/lib/wallet/detector.ts
702
- var logger3 = chunkSITQ4JWM_js.createLogger("WalletDetector");
703
+ var logger3 = chunkBF67LVVM_js.createLogger("WalletDetector");
703
704
  function isSolanaWallet(wallet) {
704
705
  return Array.isArray(wallet.chains) && wallet.chains.some((chain) => typeof chain == "string" && chain.startsWith("solana:"));
705
706
  }
@@ -724,9 +725,43 @@ function verifyWalletName(wallet, requestedName) {
724
725
  var WalletDetector = class extends BaseCollaborator {
725
726
  constructor(stateManager, eventEmitter, debug = false) {
726
727
  super({ stateManager, eventEmitter, debug }, "WalletDetector");
727
- chunkSITQ4JWM_js.__publicField(this, "unsubscribers", []);
728
+ chunkL5FWMNWO_js.__publicField(this, "unsubscribers", []);
729
+ chunkL5FWMNWO_js.__publicField(this, "additionalWallets", []);
728
730
  /** Map from stable connector ID to Wallet reference (not stored in state) */
729
- chunkSITQ4JWM_js.__publicField(this, "connectorRegistry", /* @__PURE__ */ new Map());
731
+ chunkL5FWMNWO_js.__publicField(this, "connectorRegistry", /* @__PURE__ */ new Map());
732
+ }
733
+ /**
734
+ * Set additional wallets to include alongside Wallet Standard wallets.
735
+ * These wallets (e.g., remote signers) will be merged with detected wallets.
736
+ *
737
+ * @param wallets - Array of Wallet Standard compatible wallets
738
+ */
739
+ setAdditionalWallets(wallets) {
740
+ this.additionalWallets = wallets, this.refreshWallets();
741
+ }
742
+ /**
743
+ * Get additional wallets that have been configured
744
+ */
745
+ getAdditionalWallets() {
746
+ return this.additionalWallets;
747
+ }
748
+ /**
749
+ * Refresh wallet list (re-detect and merge)
750
+ */
751
+ refreshWallets() {
752
+ if (!(typeof window > "u"))
753
+ try {
754
+ let registryWallets = getWalletsRegistry().get().filter(isSolanaWallet), additionalWallets = this.additionalWallets.filter(isSolanaWallet), unique = this.deduplicateWallets([...registryWallets, ...additionalWallets]);
755
+ this.updateConnectorRegistry(unique), this.stateManager.updateState({
756
+ wallets: unique.map((w) => this.mapToWalletInfo(w)),
757
+ connectors: unique.map((w) => this.mapToConnectorMetadata(w))
758
+ }), this.log("\u{1F50D} WalletDetector: refreshed wallets", {
759
+ registry: registryWallets.length,
760
+ additional: additionalWallets.length,
761
+ total: unique.length
762
+ });
763
+ } catch {
764
+ }
730
765
  }
731
766
  /**
732
767
  * Initialize wallet detection (synchronous)
@@ -742,8 +777,12 @@ var WalletDetector = class extends BaseCollaborator {
742
777
  if (!(typeof window > "u"))
743
778
  try {
744
779
  let walletsApi = getWalletsRegistry(), update = () => {
745
- let solanaWallets = walletsApi.get().filter(isSolanaWallet), unique = this.deduplicateWallets(solanaWallets), previousCount = this.getState().wallets.length, newCount = unique.length;
746
- newCount !== previousCount && this.log("\u{1F50D} WalletDetector: found wallets:", newCount), this.updateConnectorRegistry(unique), this.stateManager.updateState({
780
+ let ws = walletsApi.get(), previousCount = this.getState().wallets.length, registryWallets = ws.filter(isSolanaWallet), additionalWallets = this.additionalWallets.filter(isSolanaWallet), unique = this.deduplicateWallets([...registryWallets, ...additionalWallets]), newCount = unique.length;
781
+ newCount !== previousCount && this.log("\u{1F50D} WalletDetector: found wallets:", {
782
+ registry: registryWallets.length,
783
+ additional: additionalWallets.length,
784
+ total: newCount
785
+ }), this.updateConnectorRegistry(unique), this.stateManager.updateState({
747
786
  wallets: unique.map((w) => this.mapToWalletInfo(w)),
748
787
  connectors: unique.map((w) => this.mapToConnectorMetadata(w))
749
788
  }), newCount !== previousCount && newCount > 0 && this.eventEmitter.emit({
@@ -919,13 +958,13 @@ function getEventsFeature(wallet) {
919
958
  var ConnectionManager = class extends BaseCollaborator {
920
959
  constructor(stateManager, eventEmitter, walletStorage, debug = false) {
921
960
  super({ stateManager, eventEmitter, debug }, "ConnectionManager");
922
- chunkSITQ4JWM_js.__publicField(this, "walletStorage");
923
- chunkSITQ4JWM_js.__publicField(this, "walletChangeUnsub", null);
924
- chunkSITQ4JWM_js.__publicField(this, "pollTimer", null);
925
- chunkSITQ4JWM_js.__publicField(this, "pollAttempts", 0);
926
- chunkSITQ4JWM_js.__publicField(this, "connectAttemptId", 0);
927
- chunkSITQ4JWM_js.__publicField(this, "pendingWallet", null);
928
- chunkSITQ4JWM_js.__publicField(this, "pendingWalletName", null);
961
+ chunkL5FWMNWO_js.__publicField(this, "walletStorage");
962
+ chunkL5FWMNWO_js.__publicField(this, "walletChangeUnsub", null);
963
+ chunkL5FWMNWO_js.__publicField(this, "pollTimer", null);
964
+ chunkL5FWMNWO_js.__publicField(this, "pollAttempts", 0);
965
+ chunkL5FWMNWO_js.__publicField(this, "connectAttemptId", 0);
966
+ chunkL5FWMNWO_js.__publicField(this, "pendingWallet", null);
967
+ chunkL5FWMNWO_js.__publicField(this, "pendingWalletName", null);
929
968
  this.walletStorage = walletStorage;
930
969
  }
931
970
  // ========================================================================
@@ -1362,16 +1401,16 @@ var ConnectionManager = class extends BaseCollaborator {
1362
1401
  };
1363
1402
 
1364
1403
  // src/lib/wallet/auto-connector.ts
1365
- var logger4 = chunkSITQ4JWM_js.createLogger("AutoConnector"), MIN_ADDRESS_LENGTH = 30, AutoConnector = class {
1404
+ var logger4 = chunkBF67LVVM_js.createLogger("AutoConnector"), MIN_ADDRESS_LENGTH = 30, AutoConnector = class {
1366
1405
  constructor(walletDetector, connectionManager, stateManager, walletStorage, debug = false, walletStateStorage) {
1367
- chunkSITQ4JWM_js.__publicField(this, "walletDetector");
1368
- chunkSITQ4JWM_js.__publicField(this, "connectionManager");
1369
- chunkSITQ4JWM_js.__publicField(this, "stateManager");
1406
+ chunkL5FWMNWO_js.__publicField(this, "walletDetector");
1407
+ chunkL5FWMNWO_js.__publicField(this, "connectionManager");
1408
+ chunkL5FWMNWO_js.__publicField(this, "stateManager");
1370
1409
  /** Legacy wallet name storage */
1371
- chunkSITQ4JWM_js.__publicField(this, "walletStorage");
1410
+ chunkL5FWMNWO_js.__publicField(this, "walletStorage");
1372
1411
  /** vNext wallet state storage (connector ID + account) */
1373
- chunkSITQ4JWM_js.__publicField(this, "walletStateStorage");
1374
- chunkSITQ4JWM_js.__publicField(this, "debug");
1412
+ chunkL5FWMNWO_js.__publicField(this, "walletStateStorage");
1413
+ chunkL5FWMNWO_js.__publicField(this, "debug");
1375
1414
  this.walletDetector = walletDetector, this.connectionManager = connectionManager, this.stateManager = stateManager, this.walletStorage = walletStorage, this.walletStateStorage = walletStateStorage, this.debug = debug;
1376
1415
  }
1377
1416
  async attemptAutoConnect() {
@@ -1555,7 +1594,7 @@ var logger4 = chunkSITQ4JWM_js.createLogger("AutoConnector"), MIN_ADDRESS_LENGTH
1555
1594
  var ClusterManager = class extends BaseCollaborator {
1556
1595
  constructor(stateManager, eventEmitter, clusterStorage, config, debug = false) {
1557
1596
  super({ stateManager, eventEmitter, debug }, "ClusterManager");
1558
- chunkSITQ4JWM_js.__publicField(this, "clusterStorage");
1597
+ chunkL5FWMNWO_js.__publicField(this, "clusterStorage");
1559
1598
  if (this.clusterStorage = clusterStorage, config) {
1560
1599
  let clusters = config.clusters ?? [], initialClusterId = this.clusterStorage?.get() ?? config.initialCluster ?? "solana:mainnet", initialCluster = clusters.find((c) => c.id === initialClusterId) ?? clusters[0] ?? null;
1561
1600
  this.stateManager.updateState({
@@ -1570,7 +1609,7 @@ var ClusterManager = class extends BaseCollaborator {
1570
1609
  async setCluster(clusterId) {
1571
1610
  let state = this.getState(), previousClusterId = state.cluster?.id || null, cluster = state.clusters.find((c) => c.id === clusterId);
1572
1611
  if (!cluster)
1573
- throw chunkSITQ4JWM_js.Errors.clusterNotFound(
1612
+ throw chunkBF67LVVM_js.Errors.clusterNotFound(
1574
1613
  clusterId,
1575
1614
  state.clusters.map((c) => c.id)
1576
1615
  );
@@ -1599,9 +1638,9 @@ var ClusterManager = class extends BaseCollaborator {
1599
1638
  var TransactionTracker = class extends BaseCollaborator {
1600
1639
  constructor(stateManager, eventEmitter, maxTransactions = 20, debug = false) {
1601
1640
  super({ stateManager, eventEmitter, debug }, "TransactionTracker");
1602
- chunkSITQ4JWM_js.__publicField(this, "transactions", []);
1603
- chunkSITQ4JWM_js.__publicField(this, "totalTransactions", 0);
1604
- chunkSITQ4JWM_js.__publicField(this, "maxTransactions");
1641
+ chunkL5FWMNWO_js.__publicField(this, "transactions", []);
1642
+ chunkL5FWMNWO_js.__publicField(this, "totalTransactions", 0);
1643
+ chunkL5FWMNWO_js.__publicField(this, "maxTransactions");
1605
1644
  this.maxTransactions = maxTransactions;
1606
1645
  }
1607
1646
  /**
@@ -1655,10 +1694,10 @@ var TransactionTracker = class extends BaseCollaborator {
1655
1694
  // src/lib/health/health-monitor.ts
1656
1695
  var HealthMonitor = class {
1657
1696
  constructor(stateManager, walletStorage, clusterStorage, isInitialized) {
1658
- chunkSITQ4JWM_js.__publicField(this, "stateManager");
1659
- chunkSITQ4JWM_js.__publicField(this, "walletStorage");
1660
- chunkSITQ4JWM_js.__publicField(this, "clusterStorage");
1661
- chunkSITQ4JWM_js.__publicField(this, "isInitialized");
1697
+ chunkL5FWMNWO_js.__publicField(this, "stateManager");
1698
+ chunkL5FWMNWO_js.__publicField(this, "walletStorage");
1699
+ chunkL5FWMNWO_js.__publicField(this, "clusterStorage");
1700
+ chunkL5FWMNWO_js.__publicField(this, "isInitialized");
1662
1701
  this.stateManager = stateManager, this.walletStorage = walletStorage, this.clusterStorage = clusterStorage, this.isInitialized = isInitialized ?? (() => true);
1663
1702
  }
1664
1703
  /**
@@ -1710,20 +1749,20 @@ var HealthMonitor = class {
1710
1749
  };
1711
1750
 
1712
1751
  // src/lib/core/connector-client.ts
1713
- var logger5 = chunkSITQ4JWM_js.createLogger("ConnectorClient"), ConnectorClient = class {
1752
+ var logger5 = chunkBF67LVVM_js.createLogger("ConnectorClient"), ConnectorClient = class {
1714
1753
  constructor(config = {}) {
1715
- chunkSITQ4JWM_js.__publicField(this, "stateManager");
1716
- chunkSITQ4JWM_js.__publicField(this, "eventEmitter");
1717
- chunkSITQ4JWM_js.__publicField(this, "walletDetector");
1718
- chunkSITQ4JWM_js.__publicField(this, "connectionManager");
1719
- chunkSITQ4JWM_js.__publicField(this, "autoConnector");
1720
- chunkSITQ4JWM_js.__publicField(this, "clusterManager");
1721
- chunkSITQ4JWM_js.__publicField(this, "transactionTracker");
1722
- chunkSITQ4JWM_js.__publicField(this, "debugMetrics");
1723
- chunkSITQ4JWM_js.__publicField(this, "healthMonitor");
1724
- chunkSITQ4JWM_js.__publicField(this, "initialized", false);
1725
- chunkSITQ4JWM_js.__publicField(this, "config");
1726
- chunkSITQ4JWM_js.__publicField(this, "walletConnectRegistration", null);
1754
+ chunkL5FWMNWO_js.__publicField(this, "stateManager");
1755
+ chunkL5FWMNWO_js.__publicField(this, "eventEmitter");
1756
+ chunkL5FWMNWO_js.__publicField(this, "walletDetector");
1757
+ chunkL5FWMNWO_js.__publicField(this, "connectionManager");
1758
+ chunkL5FWMNWO_js.__publicField(this, "autoConnector");
1759
+ chunkL5FWMNWO_js.__publicField(this, "clusterManager");
1760
+ chunkL5FWMNWO_js.__publicField(this, "transactionTracker");
1761
+ chunkL5FWMNWO_js.__publicField(this, "debugMetrics");
1762
+ chunkL5FWMNWO_js.__publicField(this, "healthMonitor");
1763
+ chunkL5FWMNWO_js.__publicField(this, "initialized", false);
1764
+ chunkL5FWMNWO_js.__publicField(this, "config");
1765
+ chunkL5FWMNWO_js.__publicField(this, "walletConnectRegistration", null);
1727
1766
  this.config = config;
1728
1767
  let initialState = {
1729
1768
  // vNext wallet status
@@ -1771,7 +1810,7 @@ var logger5 = chunkSITQ4JWM_js.createLogger("ConnectorClient"), ConnectorClient
1771
1810
  initialize() {
1772
1811
  if (typeof window > "u" || this.initialized) return;
1773
1812
  let { error } = chunk4KD6HQQG_js.tryCatchSync(() => {
1774
- this.walletDetector.initialize(), this.config.walletConnect?.enabled && this.initializeWalletConnect().catch((err) => {
1813
+ this.config.additionalWallets && this.config.additionalWallets.length > 0 && this.walletDetector.setAdditionalWallets(this.config.additionalWallets), this.walletDetector.initialize(), this.config.walletConnect?.enabled && this.initializeWalletConnect().catch((err) => {
1775
1814
  this.config.debug && logger5.error("WalletConnect initialization failed", { error: err });
1776
1815
  }), this.config.autoConnect && setTimeout(() => {
1777
1816
  this.autoConnector.attemptAutoConnect().catch((err) => {
@@ -1788,7 +1827,7 @@ var logger5 = chunkSITQ4JWM_js.createLogger("ConnectorClient"), ConnectorClient
1788
1827
  async initializeWalletConnect() {
1789
1828
  if (this.config.walletConnect?.enabled)
1790
1829
  try {
1791
- let { registerWalletConnectWallet } = await import('./walletconnect-447EY3OJ.js');
1830
+ let { registerWalletConnectWallet } = await import('./walletconnect-F2M3PAAN.js');
1792
1831
  this.walletConnectRegistration = await registerWalletConnectWallet(this.config.walletConnect), this.config.debug && logger5.info("WalletConnect wallet registered successfully");
1793
1832
  } catch (error) {
1794
1833
  this.config.debug && logger5.error("Failed to register WalletConnect wallet", { error });
@@ -1934,7 +1973,7 @@ var logger5 = chunkSITQ4JWM_js.createLogger("ConnectorClient"), ConnectorClient
1934
1973
  }), this.walletDetector.destroy(), this.eventEmitter.offAll(), this.stateManager.clear();
1935
1974
  }
1936
1975
  };
1937
- var logger6 = chunkSITQ4JWM_js.createLogger("Polyfills"), installed = false;
1976
+ var logger6 = chunkBF67LVVM_js.createLogger("Polyfills"), installed = false;
1938
1977
  function installPolyfills() {
1939
1978
  if (!(installed || typeof window > "u"))
1940
1979
  try {
@@ -1961,13 +2000,13 @@ function getPolyfillStatus() {
1961
2000
  environment: typeof window < "u" ? "browser" : "server"
1962
2001
  };
1963
2002
  }
1964
- var logger7 = chunkSITQ4JWM_js.createLogger("EnhancedStorage"), STORAGE_VERSION = "v1", EnhancedStorage = class extends core.Storage {
2003
+ var logger7 = chunkBF67LVVM_js.createLogger("EnhancedStorage"), STORAGE_VERSION = "v1", EnhancedStorage = class extends core.Storage {
1965
2004
  constructor(key, initial, options) {
1966
2005
  super(key, initial);
1967
2006
  this.options = options;
1968
- chunkSITQ4JWM_js.__publicField(this, "errorHandlers", /* @__PURE__ */ new Set());
1969
- chunkSITQ4JWM_js.__publicField(this, "validators", []);
1970
- chunkSITQ4JWM_js.__publicField(this, "memoryFallback");
2007
+ chunkL5FWMNWO_js.__publicField(this, "errorHandlers", /* @__PURE__ */ new Set());
2008
+ chunkL5FWMNWO_js.__publicField(this, "validators", []);
2009
+ chunkL5FWMNWO_js.__publicField(this, "memoryFallback");
1971
2010
  this.memoryFallback = initial, options?.onError && this.errorHandlers.add(options.onError), options?.validator && this.validators.push(options.validator);
1972
2011
  }
1973
2012
  set(value) {
@@ -2143,7 +2182,7 @@ var EnhancedStorageAdapter = class {
2143
2182
  return this.storage.onError(handler), this;
2144
2183
  }
2145
2184
  };
2146
- var logger8 = chunkSITQ4JWM_js.createLogger("DefaultConfig");
2185
+ var logger8 = chunkBF67LVVM_js.createLogger("DefaultConfig");
2147
2186
  function getDefaultConfig(options) {
2148
2187
  let {
2149
2188
  appName,
@@ -2163,7 +2202,8 @@ function getDefaultConfig(options) {
2163
2202
  imageProxy,
2164
2203
  programLabels,
2165
2204
  coingecko,
2166
- walletConnect
2205
+ walletConnect,
2206
+ additionalWallets
2167
2207
  } = options, defaultClusters = clusters ?? [
2168
2208
  core.createSolanaMainnet(),
2169
2209
  core.createSolanaDevnet(),
@@ -2223,7 +2263,8 @@ function getDefaultConfig(options) {
2223
2263
  imageProxy,
2224
2264
  programLabels,
2225
2265
  coingecko,
2226
- walletConnect: walletConnectConfig
2266
+ walletConnect: walletConnectConfig,
2267
+ additionalWallets
2227
2268
  };
2228
2269
  }
2229
2270
  function buildWalletConnectConfig(walletConnect, appName, appUrl, clusterStorageKey) {
@@ -2317,7 +2358,10 @@ var solanaNetworkSchema = v4.z.enum(["mainnet", "mainnet-beta", "devnet", "testn
2317
2358
  clusters: v4.z.array(solanaClusterSchema).optional(),
2318
2359
  persistSelection: v4.z.boolean().optional(),
2319
2360
  initialCluster: solanaClusterIdSchema.optional()
2320
- }).optional(), defaultConfigOptionsSchema = v4.z.object({
2361
+ }).optional(), walletSchema = v4.z.custom(
2362
+ (val) => typeof val == "object" && val !== null && "name" in val && "version" in val && "features" in val && "chains" in val,
2363
+ { message: "Invalid Wallet Standard wallet object" }
2364
+ ), defaultConfigOptionsSchema = v4.z.object({
2321
2365
  // Required
2322
2366
  appName: v4.z.string().min(1, "Application name is required"),
2323
2367
  // Optional strings
@@ -2341,6 +2385,8 @@ var solanaNetworkSchema = v4.z.enum(["mainnet", "mainnet-beta", "devnet", "testn
2341
2385
  programLabels: v4.z.record(v4.z.string(), v4.z.string()).optional(),
2342
2386
  coingecko: coinGeckoConfigSchema,
2343
2387
  walletConnect: walletConnectConfigSchema,
2388
+ // Additional wallets (remote signers, etc.)
2389
+ additionalWallets: v4.z.array(walletSchema).optional(),
2344
2390
  // Functions (can't validate implementation, just existence)
2345
2391
  onError: v4.z.custom((val) => typeof val == "function").optional()
2346
2392
  }); v4.z.strictObject({
@@ -2351,7 +2397,8 @@ var solanaNetworkSchema = v4.z.enum(["mainnet", "mainnet-beta", "devnet", "testn
2351
2397
  imageProxy: v4.z.string().optional(),
2352
2398
  programLabels: v4.z.record(v4.z.string(), v4.z.string()).optional(),
2353
2399
  coingecko: coinGeckoConfigSchema,
2354
- walletConnect: walletConnectConfigSchema
2400
+ walletConnect: walletConnectConfigSchema,
2401
+ additionalWallets: v4.z.array(walletSchema).optional()
2355
2402
  }).optional();
2356
2403
  function validateConfigOptions(options) {
2357
2404
  return defaultConfigOptionsSchema.safeParse(options);
@@ -2570,7 +2617,7 @@ async function copySignatureToClipboard(signature, options) {
2570
2617
  }
2571
2618
 
2572
2619
  // src/lib/transaction/transaction-validator.ts
2573
- var logger9 = chunkSITQ4JWM_js.createLogger("TransactionValidator"), MAX_TRANSACTION_SIZE = 1232, MIN_TRANSACTION_SIZE = 64, TransactionValidator = class {
2620
+ var logger9 = chunkBF67LVVM_js.createLogger("TransactionValidator"), MAX_TRANSACTION_SIZE = 1232, MIN_TRANSACTION_SIZE = 64, TransactionValidator = class {
2574
2621
  /**
2575
2622
  * Validate a transaction before signing
2576
2623
  *
@@ -2673,7 +2720,7 @@ var logger9 = chunkSITQ4JWM_js.createLogger("TransactionValidator"), MAX_TRANSAC
2673
2720
  return transactions.map((tx, index) => (logger9.debug(`Validating transaction ${index + 1}/${transactions.length}`), this.validate(tx, options)));
2674
2721
  }
2675
2722
  };
2676
- var logger10 = chunkSITQ4JWM_js.createLogger("TransactionSigner");
2723
+ var logger10 = chunkBF67LVVM_js.createLogger("TransactionSigner");
2677
2724
  function signatureBytesToBase58(bytes) {
2678
2725
  if (bytes.length !== 64)
2679
2726
  throw new Error(`Invalid signature length: expected 64 bytes, got ${bytes.length}`);
@@ -2726,10 +2773,10 @@ function createTransactionSigner(config) {
2726
2773
  address,
2727
2774
  async signTransaction(transaction) {
2728
2775
  if (!capabilities.canSign)
2729
- throw chunkSITQ4JWM_js.Errors.featureNotSupported("transaction signing");
2776
+ throw chunkBF67LVVM_js.Errors.featureNotSupported("transaction signing");
2730
2777
  let validation = TransactionValidator.validate(transaction);
2731
2778
  if (!validation.valid)
2732
- throw logger10.error("Transaction validation failed", { errors: validation.errors }), chunkSITQ4JWM_js.Errors.invalidTransaction(validation.errors.join(", "));
2779
+ throw logger10.error("Transaction validation failed", { errors: validation.errors }), chunkBF67LVVM_js.Errors.invalidTransaction(validation.errors.join(", "));
2733
2780
  validation.warnings.length > 0 && logger10.warn("Transaction validation warnings", { warnings: validation.warnings });
2734
2781
  try {
2735
2782
  let signFeature = features["solana:signTransaction"], { serialized, wasWeb3js } = chunk4KD6HQQG_js.prepareTransactionForWallet(transaction);
@@ -2792,12 +2839,12 @@ function createTransactionSigner(config) {
2792
2839
  throw logger10.error("Unexpected wallet response format", {
2793
2840
  type: typeof signedTx,
2794
2841
  constructor: signedTx?.constructor?.name
2795
- }), new chunkSITQ4JWM_js.ValidationError(
2842
+ }), new chunkBF67LVVM_js.ValidationError(
2796
2843
  "INVALID_FORMAT",
2797
2844
  "Wallet returned unexpected format - not a Transaction or Uint8Array"
2798
2845
  );
2799
2846
  } catch (error) {
2800
- throw chunkSITQ4JWM_js.Errors.signingFailed(error);
2847
+ throw chunkBF67LVVM_js.Errors.signingFailed(error);
2801
2848
  }
2802
2849
  },
2803
2850
  async signAllTransactions(transactions) {
@@ -2822,7 +2869,7 @@ function createTransactionSigner(config) {
2822
2869
  )
2823
2870
  );
2824
2871
  } catch (error) {
2825
- throw new chunkSITQ4JWM_js.TransactionError(
2872
+ throw new chunkBF67LVVM_js.TransactionError(
2826
2873
  "SIGNING_FAILED",
2827
2874
  "Failed to sign transactions in batch",
2828
2875
  { count: transactions.length },
@@ -2830,14 +2877,14 @@ function createTransactionSigner(config) {
2830
2877
  );
2831
2878
  }
2832
2879
  if (!capabilities.canSign)
2833
- throw chunkSITQ4JWM_js.Errors.featureNotSupported("transaction signing");
2880
+ throw chunkBF67LVVM_js.Errors.featureNotSupported("transaction signing");
2834
2881
  let signed = [];
2835
2882
  for (let i = 0; i < transactions.length; i++)
2836
2883
  try {
2837
2884
  let signedTx = await signer.signTransaction(transactions[i]);
2838
2885
  signed.push(signedTx);
2839
2886
  } catch (error) {
2840
- throw new chunkSITQ4JWM_js.TransactionError(
2887
+ throw new chunkBF67LVVM_js.TransactionError(
2841
2888
  "SIGNING_FAILED",
2842
2889
  `Failed to sign transaction ${i + 1} of ${transactions.length}`,
2843
2890
  { index: i, total: transactions.length },
@@ -2848,7 +2895,7 @@ function createTransactionSigner(config) {
2848
2895
  },
2849
2896
  async signAndSendTransaction(transaction, options) {
2850
2897
  if (!capabilities.canSend)
2851
- throw chunkSITQ4JWM_js.Errors.featureNotSupported("sending transactions");
2898
+ throw chunkBF67LVVM_js.Errors.featureNotSupported("sending transactions");
2852
2899
  try {
2853
2900
  let sendFeature = features["solana:signAndSendTransaction"], { serialized } = chunk4KD6HQQG_js.prepareTransactionForWallet(transaction);
2854
2901
  eventEmitter && eventEmitter.emit({
@@ -2885,21 +2932,21 @@ function createTransactionSigner(config) {
2885
2932
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
2886
2933
  }), signature;
2887
2934
  } catch (error) {
2888
- throw new chunkSITQ4JWM_js.TransactionError("SEND_FAILED", "Failed to send transaction", void 0, error);
2935
+ throw new chunkBF67LVVM_js.TransactionError("SEND_FAILED", "Failed to send transaction", void 0, error);
2889
2936
  }
2890
2937
  },
2891
2938
  async signAndSendTransactions(transactions, options) {
2892
2939
  if (transactions.length === 0)
2893
2940
  return [];
2894
2941
  if (!capabilities.canSend)
2895
- throw chunkSITQ4JWM_js.Errors.featureNotSupported("sending transactions");
2942
+ throw chunkBF67LVVM_js.Errors.featureNotSupported("sending transactions");
2896
2943
  let signatures = [];
2897
2944
  for (let i = 0; i < transactions.length; i++)
2898
2945
  try {
2899
2946
  let sig = await signer.signAndSendTransaction(transactions[i], options);
2900
2947
  signatures.push(sig);
2901
2948
  } catch (error) {
2902
- throw new chunkSITQ4JWM_js.TransactionError(
2949
+ throw new chunkBF67LVVM_js.TransactionError(
2903
2950
  "SEND_FAILED",
2904
2951
  `Failed to send transaction ${i + 1} of ${transactions.length}`,
2905
2952
  { index: i, total: transactions.length },
@@ -2918,7 +2965,7 @@ function createTransactionSigner(config) {
2918
2965
  });
2919
2966
  return extractSignatureBytes(result);
2920
2967
  } catch (error) {
2921
- throw new chunkSITQ4JWM_js.TransactionError("SIGNING_FAILED", "Failed to sign message", void 0, error);
2968
+ throw new chunkBF67LVVM_js.TransactionError("SIGNING_FAILED", "Failed to sign message", void 0, error);
2922
2969
  }
2923
2970
  }
2924
2971
  },
@@ -2928,16 +2975,16 @@ function createTransactionSigner(config) {
2928
2975
  };
2929
2976
  return signer;
2930
2977
  }
2931
- var TransactionSignerError = class extends chunkSITQ4JWM_js.TransactionError {
2978
+ var TransactionSignerError = class extends chunkBF67LVVM_js.TransactionError {
2932
2979
  constructor(message, code, originalError) {
2933
2980
  let newCode = code === "WALLET_NOT_CONNECTED" ? "FEATURE_NOT_SUPPORTED" : code;
2934
2981
  super(newCode, message, void 0, originalError), this.name = "TransactionSignerError";
2935
2982
  }
2936
2983
  };
2937
2984
  function isTransactionSignerError(error) {
2938
- return error instanceof TransactionSignerError || error instanceof chunkSITQ4JWM_js.TransactionError;
2985
+ return error instanceof TransactionSignerError || error instanceof chunkBF67LVVM_js.TransactionError;
2939
2986
  }
2940
- var logger11 = chunkSITQ4JWM_js.createLogger("KitTransactionSigner");
2987
+ var logger11 = chunkBF67LVVM_js.createLogger("KitTransactionSigner");
2941
2988
  function encodeShortVecLength(value) {
2942
2989
  let bytes = [], remaining = value;
2943
2990
  for (; remaining >= 128; )
@@ -3160,5 +3207,5 @@ exports.toClusterId = toClusterId;
3160
3207
  exports.toLegacyWalletState = toLegacyWalletState;
3161
3208
  exports.truncate = truncate;
3162
3209
  exports.validateConfigOptions = validateConfigOptions;
3163
- //# sourceMappingURL=chunk-BZ2VBJCZ.js.map
3164
- //# sourceMappingURL=chunk-BZ2VBJCZ.js.map
3210
+ //# sourceMappingURL=chunk-TRSJSU33.js.map
3211
+ //# sourceMappingURL=chunk-TRSJSU33.js.map