@solana/connector 0.1.3 → 0.1.4

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 (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +460 -1082
  3. package/dist/{chunk-TIW3EQPC.js → chunk-CLXM6UEE.js} +120 -103
  4. package/dist/chunk-CLXM6UEE.js.map +1 -0
  5. package/dist/{chunk-7CKCRY25.js → chunk-D6PZY5G6.js} +69 -77
  6. package/dist/chunk-D6PZY5G6.js.map +1 -0
  7. package/dist/chunk-LUZWUZ5N.js +2012 -0
  8. package/dist/chunk-LUZWUZ5N.js.map +1 -0
  9. package/dist/{chunk-HPENTIPE.mjs → chunk-N3Q2J2FG.mjs} +51 -55
  10. package/dist/chunk-N3Q2J2FG.mjs.map +1 -0
  11. package/dist/chunk-P5MWBDFG.mjs +298 -0
  12. package/dist/chunk-P5MWBDFG.mjs.map +1 -0
  13. package/dist/chunk-RIQH5W7D.js +311 -0
  14. package/dist/chunk-RIQH5W7D.js.map +1 -0
  15. package/dist/chunk-U64YZRJL.mjs +1984 -0
  16. package/dist/chunk-U64YZRJL.mjs.map +1 -0
  17. package/dist/{chunk-TKJSKXSA.mjs → chunk-YTCSTE3Q.mjs} +35 -19
  18. package/dist/chunk-YTCSTE3Q.mjs.map +1 -0
  19. package/dist/compat.d.mts +4 -2
  20. package/dist/compat.d.ts +4 -2
  21. package/dist/compat.js +3 -3
  22. package/dist/compat.mjs +1 -1
  23. package/dist/headless.d.mts +146 -18
  24. package/dist/headless.d.ts +146 -18
  25. package/dist/headless.js +144 -111
  26. package/dist/headless.mjs +3 -2
  27. package/dist/index.d.mts +6 -5
  28. package/dist/index.d.ts +6 -5
  29. package/dist/index.js +207 -126
  30. package/dist/index.mjs +4 -3
  31. package/dist/react.d.mts +707 -67
  32. package/dist/react.d.ts +707 -67
  33. package/dist/react.js +64 -16
  34. package/dist/react.mjs +2 -2
  35. package/dist/{transaction-signer-D3csM_Mf.d.mts → transaction-signer-D9d8nxwb.d.mts} +3 -1
  36. package/dist/{transaction-signer-D3csM_Mf.d.ts → transaction-signer-D9d8nxwb.d.ts} +3 -1
  37. package/dist/{wallet-standard-shim-C1tisl9S.d.ts → wallet-standard-shim-Cp4vF4oo.d.mts} +133 -6
  38. package/dist/{wallet-standard-shim-Cg0GVGwu.d.mts → wallet-standard-shim-DC_Z7DS-.d.ts} +133 -6
  39. package/package.json +16 -12
  40. package/dist/chunk-5ZUVZZWU.mjs +0 -180
  41. package/dist/chunk-5ZUVZZWU.mjs.map +0 -1
  42. package/dist/chunk-7CKCRY25.js.map +0 -1
  43. package/dist/chunk-FTD7F7CS.js +0 -314
  44. package/dist/chunk-FTD7F7CS.js.map +0 -1
  45. package/dist/chunk-HPENTIPE.mjs.map +0 -1
  46. package/dist/chunk-MPZFJEJK.mjs +0 -298
  47. package/dist/chunk-MPZFJEJK.mjs.map +0 -1
  48. package/dist/chunk-SMUUAKC3.js +0 -186
  49. package/dist/chunk-SMUUAKC3.js.map +0 -1
  50. package/dist/chunk-TIW3EQPC.js.map +0 -1
  51. package/dist/chunk-TKJSKXSA.mjs.map +0 -1
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkSMUUAKC3_js = require('./chunk-SMUUAKC3.js');
4
- var gill = require('gill');
3
+ var chunkRIQH5W7D_js = require('./chunk-RIQH5W7D.js');
5
4
  var react = require('react');
6
5
  var jsxRuntime = require('react/jsx-runtime');
7
6
  var webcryptoEd25519Polyfill = require('@solana/webcrypto-ed25519-polyfill');
7
+ var addresses = require('@solana/addresses');
8
+ var transactions = require('@solana/transactions');
9
+ var codecs = require('@solana/codecs');
8
10
 
9
11
  // src/lib/adapters/wallet-standard-shim.ts
10
12
  var registry = null;
@@ -53,9 +55,9 @@ function getWalletsRegistry() {
53
55
  var ConnectorError = class extends Error {
54
56
  constructor(message, context, originalError) {
55
57
  super(message);
56
- chunkSMUUAKC3_js.__publicField(this, "context");
57
- chunkSMUUAKC3_js.__publicField(this, "originalError");
58
- chunkSMUUAKC3_js.__publicField(this, "timestamp");
58
+ chunkRIQH5W7D_js.__publicField(this, "context");
59
+ chunkRIQH5W7D_js.__publicField(this, "originalError");
60
+ chunkRIQH5W7D_js.__publicField(this, "timestamp");
59
61
  this.name = this.constructor.name, this.context = context, this.originalError = originalError, this.timestamp = (/* @__PURE__ */ new Date()).toISOString(), Error.captureStackTrace && Error.captureStackTrace(this, this.constructor);
60
62
  }
61
63
  toJSON() {
@@ -72,36 +74,36 @@ var ConnectorError = class extends Error {
72
74
  }, ConnectionError = class extends ConnectorError {
73
75
  constructor(code, message, context, originalError) {
74
76
  super(message, context, originalError);
75
- chunkSMUUAKC3_js.__publicField(this, "code");
76
- chunkSMUUAKC3_js.__publicField(this, "recoverable", true);
77
+ chunkRIQH5W7D_js.__publicField(this, "code");
78
+ chunkRIQH5W7D_js.__publicField(this, "recoverable", true);
77
79
  this.code = code;
78
80
  }
79
81
  }, ValidationError = class extends ConnectorError {
80
82
  constructor(code, message, context, originalError) {
81
83
  super(message, context, originalError);
82
- chunkSMUUAKC3_js.__publicField(this, "code");
83
- chunkSMUUAKC3_js.__publicField(this, "recoverable", false);
84
+ chunkRIQH5W7D_js.__publicField(this, "code");
85
+ chunkRIQH5W7D_js.__publicField(this, "recoverable", false);
84
86
  this.code = code;
85
87
  }
86
88
  }, ConfigurationError = class extends ConnectorError {
87
89
  constructor(code, message, context, originalError) {
88
90
  super(message, context, originalError);
89
- chunkSMUUAKC3_js.__publicField(this, "code");
90
- chunkSMUUAKC3_js.__publicField(this, "recoverable", false);
91
+ chunkRIQH5W7D_js.__publicField(this, "code");
92
+ chunkRIQH5W7D_js.__publicField(this, "recoverable", false);
91
93
  this.code = code;
92
94
  }
93
95
  }, NetworkError = class extends ConnectorError {
94
96
  constructor(code, message, context, originalError) {
95
97
  super(message, context, originalError);
96
- chunkSMUUAKC3_js.__publicField(this, "code");
97
- chunkSMUUAKC3_js.__publicField(this, "recoverable", true);
98
+ chunkRIQH5W7D_js.__publicField(this, "code");
99
+ chunkRIQH5W7D_js.__publicField(this, "recoverable", true);
98
100
  this.code = code;
99
101
  }
100
102
  }, TransactionError = class extends ConnectorError {
101
103
  constructor(code, message, context, originalError) {
102
104
  super(message, context, originalError);
103
- chunkSMUUAKC3_js.__publicField(this, "code");
104
- chunkSMUUAKC3_js.__publicField(this, "recoverable");
105
+ chunkRIQH5W7D_js.__publicField(this, "code");
106
+ chunkRIQH5W7D_js.__publicField(this, "recoverable");
105
107
  this.code = code, this.recoverable = ["USER_REJECTED", "SEND_FAILED", "SIMULATION_FAILED"].includes(code);
106
108
  }
107
109
  };
@@ -125,11 +127,16 @@ function isTransactionError(error) {
125
127
  }
126
128
  var Errors = {
127
129
  walletNotConnected: (context) => new ConnectionError("WALLET_NOT_CONNECTED", "No wallet connected", context),
128
- walletNotFound: (walletName) => new ConnectionError("WALLET_NOT_FOUND", `Wallet not found${walletName ? `: ${walletName}` : ""}`, { walletName }),
130
+ walletNotFound: (walletName) => new ConnectionError("WALLET_NOT_FOUND", `Wallet not found${walletName ? `: ${walletName}` : ""}`, {
131
+ walletName
132
+ }),
129
133
  connectionFailed: (originalError) => new ConnectionError("CONNECTION_FAILED", "Failed to connect to wallet", void 0, originalError),
130
134
  accountNotAvailable: (address) => new ConnectionError("ACCOUNT_NOT_AVAILABLE", "Requested account not available", { address }),
131
135
  invalidTransaction: (reason, context) => new ValidationError("INVALID_TRANSACTION", `Invalid transaction: ${reason}`, context),
132
- invalidFormat: (expectedFormat, actualFormat) => new ValidationError("INVALID_FORMAT", `Invalid format: expected ${expectedFormat}`, { expectedFormat, actualFormat }),
136
+ invalidFormat: (expectedFormat, actualFormat) => new ValidationError("INVALID_FORMAT", `Invalid format: expected ${expectedFormat}`, {
137
+ expectedFormat,
138
+ actualFormat
139
+ }),
133
140
  unsupportedFormat: (format) => new ValidationError("UNSUPPORTED_FORMAT", `Unsupported format: ${format}`, { format }),
134
141
  missingProvider: (hookName) => new ConfigurationError(
135
142
  "MISSING_PROVIDER",
@@ -172,6 +179,8 @@ function getUserFriendlyMessage(error) {
172
179
  NETWORK_TIMEOUT: "Request timed out. Please try again."
173
180
  }[error.code] || error.message || "An error occurred." : "An unexpected error occurred. Please try again.";
174
181
  }
182
+
183
+ // src/utils/network.ts
175
184
  var PUBLIC_RPC_ENDPOINTS = {
176
185
  mainnet: "https://api.mainnet-beta.solana.com",
177
186
  devnet: "https://api.devnet.solana.com",
@@ -198,7 +207,7 @@ function toClusterId(network) {
198
207
  function getDefaultRpcUrl(network) {
199
208
  let normalized = normalizeNetwork(network);
200
209
  try {
201
- return gill.getPublicSolanaRpcUrl(normalized);
210
+ return chunkRIQH5W7D_js.getPublicSolanaRpcUrl(normalized);
202
211
  } catch {
203
212
  return PUBLIC_RPC_ENDPOINTS[normalized] ?? PUBLIC_RPC_ENDPOINTS.localnet;
204
213
  }
@@ -219,6 +228,8 @@ function getNetworkDisplayName(network) {
219
228
  let normalized = normalizeNetwork(network);
220
229
  return normalized.charAt(0).toUpperCase() + normalized.slice(1);
221
230
  }
231
+
232
+ // src/utils/cluster.ts
222
233
  function getClusterRpcUrl(cluster) {
223
234
  if (typeof cluster == "string") {
224
235
  let presets2 = {
@@ -246,14 +257,14 @@ function getClusterExplorerUrl(cluster, path) {
246
257
  }
247
258
  function getTransactionUrl(signature, cluster) {
248
259
  let clusterType = getClusterType(cluster), explorerCluster = clusterType === "custom" || clusterType === "localnet" ? "devnet" : clusterType;
249
- return gill.getExplorerLink({
260
+ return chunkRIQH5W7D_js.getExplorerLink({
250
261
  transaction: signature,
251
262
  cluster: explorerCluster === "mainnet" ? "mainnet" : explorerCluster
252
263
  });
253
264
  }
254
265
  function getAddressUrl(address, cluster) {
255
266
  let clusterType = getClusterType(cluster), explorerCluster = clusterType === "custom" || clusterType === "localnet" ? "devnet" : clusterType;
256
- return gill.getExplorerLink({
267
+ return chunkRIQH5W7D_js.getExplorerLink({
257
268
  address,
258
269
  cluster: explorerCluster === "mainnet" ? "mainnet" : explorerCluster
259
270
  });
@@ -315,9 +326,9 @@ var POLL_INTERVALS_MS = [1e3, 2e3, 3e3, 5e3, 5e3], DEFAULT_MAX_RETRIES = 3, DEFA
315
326
  // src/lib/core/state-manager.ts
316
327
  var StateManager = class {
317
328
  constructor(initialState) {
318
- chunkSMUUAKC3_js.__publicField(this, "state");
319
- chunkSMUUAKC3_js.__publicField(this, "listeners", /* @__PURE__ */ new Set());
320
- chunkSMUUAKC3_js.__publicField(this, "notifyTimeout");
329
+ chunkRIQH5W7D_js.__publicField(this, "state");
330
+ chunkRIQH5W7D_js.__publicField(this, "listeners", /* @__PURE__ */ new Set());
331
+ chunkRIQH5W7D_js.__publicField(this, "notifyTimeout");
321
332
  this.state = initialState;
322
333
  }
323
334
  /**
@@ -336,7 +347,7 @@ var StateManager = class {
336
347
  * Fast array equality check for wallet/account arrays
337
348
  */
338
349
  arraysEqual(a, b) {
339
- return a.length !== b.length ? false : a[0] && typeof a[0] == "object" && "name" in a[0] && b[0] && typeof b[0] == "object" && "name" in b[0] ? a.every((item, i) => {
350
+ return a.length !== b.length ? false : a.length === 0 ? true : a[0] && typeof a[0] == "object" && "name" in a[0] && b[0] && typeof b[0] == "object" && "name" in b[0] ? a.every((item, i) => {
340
351
  let aItem = item, bItem = b[i];
341
352
  if (!bItem || typeof bItem != "object") return false;
342
353
  let keysA = Object.keys(aItem), keysB = Object.keys(bItem);
@@ -376,10 +387,10 @@ var StateManager = class {
376
387
  };
377
388
 
378
389
  // src/lib/core/event-emitter.ts
379
- var logger = chunkSMUUAKC3_js.createLogger("EventEmitter"), EventEmitter = class {
390
+ var logger = chunkRIQH5W7D_js.createLogger("EventEmitter"), EventEmitter = class {
380
391
  constructor(debug = false) {
381
- chunkSMUUAKC3_js.__publicField(this, "listeners", /* @__PURE__ */ new Set());
382
- chunkSMUUAKC3_js.__publicField(this, "debug");
392
+ chunkRIQH5W7D_js.__publicField(this, "listeners", /* @__PURE__ */ new Set());
393
+ chunkRIQH5W7D_js.__publicField(this, "debug");
383
394
  this.debug = debug;
384
395
  }
385
396
  /**
@@ -435,12 +446,12 @@ var logger = chunkSMUUAKC3_js.createLogger("EventEmitter"), EventEmitter = class
435
446
  // src/lib/core/debug-metrics.ts
436
447
  var DebugMetrics = class {
437
448
  constructor() {
438
- chunkSMUUAKC3_js.__publicField(this, "stateUpdates", 0);
439
- chunkSMUUAKC3_js.__publicField(this, "noopUpdates", 0);
440
- chunkSMUUAKC3_js.__publicField(this, "updateTimes", []);
441
- chunkSMUUAKC3_js.__publicField(this, "lastUpdateTime", 0);
442
- chunkSMUUAKC3_js.__publicField(this, "eventListenerCount", 0);
443
- chunkSMUUAKC3_js.__publicField(this, "subscriptionCount", 0);
449
+ chunkRIQH5W7D_js.__publicField(this, "stateUpdates", 0);
450
+ chunkRIQH5W7D_js.__publicField(this, "noopUpdates", 0);
451
+ chunkRIQH5W7D_js.__publicField(this, "updateTimes", []);
452
+ chunkRIQH5W7D_js.__publicField(this, "lastUpdateTime", 0);
453
+ chunkRIQH5W7D_js.__publicField(this, "eventListenerCount", 0);
454
+ chunkRIQH5W7D_js.__publicField(this, "subscriptionCount", 0);
444
455
  }
445
456
  /**
446
457
  * Record a state update attempt
@@ -480,11 +491,11 @@ var DebugMetrics = class {
480
491
  // src/lib/core/base-collaborator.ts
481
492
  var BaseCollaborator = class {
482
493
  constructor(config, loggerPrefix) {
483
- chunkSMUUAKC3_js.__publicField(this, "stateManager");
484
- chunkSMUUAKC3_js.__publicField(this, "eventEmitter");
485
- chunkSMUUAKC3_js.__publicField(this, "debug");
486
- chunkSMUUAKC3_js.__publicField(this, "logger");
487
- this.stateManager = config.stateManager, this.eventEmitter = config.eventEmitter, this.debug = config.debug ?? false, this.logger = chunkSMUUAKC3_js.createLogger(loggerPrefix);
494
+ chunkRIQH5W7D_js.__publicField(this, "stateManager");
495
+ chunkRIQH5W7D_js.__publicField(this, "eventEmitter");
496
+ chunkRIQH5W7D_js.__publicField(this, "debug");
497
+ chunkRIQH5W7D_js.__publicField(this, "logger");
498
+ this.stateManager = config.stateManager, this.eventEmitter = config.eventEmitter, this.debug = config.debug ?? false, this.logger = chunkRIQH5W7D_js.createLogger(loggerPrefix);
488
499
  }
489
500
  /**
490
501
  * Log debug message if debug mode is enabled
@@ -507,7 +518,7 @@ var BaseCollaborator = class {
507
518
  };
508
519
 
509
520
  // src/lib/connection/wallet-authenticity-verifier.ts
510
- var logger2 = chunkSMUUAKC3_js.createLogger("WalletAuthenticity"), WalletAuthenticityVerifier = class {
521
+ var logger2 = chunkRIQH5W7D_js.createLogger("WalletAuthenticity"), WalletAuthenticityVerifier = class {
511
522
  /**
512
523
  * Verify a wallet's authenticity using dynamic heuristics
513
524
  *
@@ -717,7 +728,7 @@ var logger2 = chunkSMUUAKC3_js.createLogger("WalletAuthenticity"), WalletAuthent
717
728
  };
718
729
 
719
730
  // src/lib/connection/wallet-detector.ts
720
- var logger3 = chunkSMUUAKC3_js.createLogger("WalletDetector");
731
+ var logger3 = chunkRIQH5W7D_js.createLogger("WalletDetector");
721
732
  function hasFeature(wallet, featureName) {
722
733
  return wallet.features != null && wallet.features[featureName] !== void 0;
723
734
  }
@@ -739,7 +750,7 @@ function verifyWalletName(wallet, requestedName) {
739
750
  var WalletDetector = class extends BaseCollaborator {
740
751
  constructor(stateManager, eventEmitter, debug = false) {
741
752
  super({ stateManager, eventEmitter, debug }, "WalletDetector");
742
- chunkSMUUAKC3_js.__publicField(this, "unsubscribers", []);
753
+ chunkRIQH5W7D_js.__publicField(this, "unsubscribers", []);
743
754
  }
744
755
  /**
745
756
  * Initialize wallet detection
@@ -864,10 +875,10 @@ function getEventsFeature(wallet) {
864
875
  var ConnectionManager = class extends BaseCollaborator {
865
876
  constructor(stateManager, eventEmitter, walletStorage, debug = false) {
866
877
  super({ stateManager, eventEmitter, debug }, "ConnectionManager");
867
- chunkSMUUAKC3_js.__publicField(this, "walletStorage");
868
- chunkSMUUAKC3_js.__publicField(this, "walletChangeUnsub", null);
869
- chunkSMUUAKC3_js.__publicField(this, "pollTimer", null);
870
- chunkSMUUAKC3_js.__publicField(this, "pollAttempts", 0);
878
+ chunkRIQH5W7D_js.__publicField(this, "walletStorage");
879
+ chunkRIQH5W7D_js.__publicField(this, "walletChangeUnsub", null);
880
+ chunkRIQH5W7D_js.__publicField(this, "pollTimer", null);
881
+ chunkRIQH5W7D_js.__publicField(this, "pollAttempts", 0);
871
882
  this.walletStorage = walletStorage;
872
883
  }
873
884
  /**
@@ -1062,13 +1073,13 @@ var ConnectionManager = class extends BaseCollaborator {
1062
1073
  };
1063
1074
 
1064
1075
  // src/lib/connection/auto-connector.ts
1065
- var logger4 = chunkSMUUAKC3_js.createLogger("AutoConnector"), MIN_ADDRESS_LENGTH = 30, AutoConnector = class {
1076
+ var logger4 = chunkRIQH5W7D_js.createLogger("AutoConnector"), MIN_ADDRESS_LENGTH = 30, AutoConnector = class {
1066
1077
  constructor(walletDetector, connectionManager, stateManager, walletStorage, debug = false) {
1067
- chunkSMUUAKC3_js.__publicField(this, "walletDetector");
1068
- chunkSMUUAKC3_js.__publicField(this, "connectionManager");
1069
- chunkSMUUAKC3_js.__publicField(this, "stateManager");
1070
- chunkSMUUAKC3_js.__publicField(this, "walletStorage");
1071
- chunkSMUUAKC3_js.__publicField(this, "debug");
1078
+ chunkRIQH5W7D_js.__publicField(this, "walletDetector");
1079
+ chunkRIQH5W7D_js.__publicField(this, "connectionManager");
1080
+ chunkRIQH5W7D_js.__publicField(this, "stateManager");
1081
+ chunkRIQH5W7D_js.__publicField(this, "walletStorage");
1082
+ chunkRIQH5W7D_js.__publicField(this, "debug");
1072
1083
  this.walletDetector = walletDetector, this.connectionManager = connectionManager, this.stateManager = stateManager, this.walletStorage = walletStorage, this.debug = debug;
1073
1084
  }
1074
1085
  async attemptAutoConnect() {
@@ -1222,7 +1233,7 @@ var logger4 = chunkSMUUAKC3_js.createLogger("AutoConnector"), MIN_ADDRESS_LENGTH
1222
1233
  var ClusterManager = class extends BaseCollaborator {
1223
1234
  constructor(stateManager, eventEmitter, clusterStorage, config, debug = false) {
1224
1235
  super({ stateManager, eventEmitter, debug }, "ClusterManager");
1225
- chunkSMUUAKC3_js.__publicField(this, "clusterStorage");
1236
+ chunkRIQH5W7D_js.__publicField(this, "clusterStorage");
1226
1237
  if (this.clusterStorage = clusterStorage, config) {
1227
1238
  let clusters = config.clusters ?? [], initialClusterId = this.clusterStorage?.get() ?? config.initialCluster ?? "solana:mainnet", initialCluster = clusters.find((c) => c.id === initialClusterId) ?? clusters[0] ?? null;
1228
1239
  this.stateManager.updateState({
@@ -1266,9 +1277,9 @@ var ClusterManager = class extends BaseCollaborator {
1266
1277
  var TransactionTracker = class extends BaseCollaborator {
1267
1278
  constructor(stateManager, eventEmitter, maxTransactions = 20, debug = false) {
1268
1279
  super({ stateManager, eventEmitter, debug }, "TransactionTracker");
1269
- chunkSMUUAKC3_js.__publicField(this, "transactions", []);
1270
- chunkSMUUAKC3_js.__publicField(this, "totalTransactions", 0);
1271
- chunkSMUUAKC3_js.__publicField(this, "maxTransactions");
1280
+ chunkRIQH5W7D_js.__publicField(this, "transactions", []);
1281
+ chunkRIQH5W7D_js.__publicField(this, "totalTransactions", 0);
1282
+ chunkRIQH5W7D_js.__publicField(this, "maxTransactions");
1272
1283
  this.maxTransactions = maxTransactions;
1273
1284
  }
1274
1285
  /**
@@ -1322,10 +1333,10 @@ var TransactionTracker = class extends BaseCollaborator {
1322
1333
  // src/lib/health/health-monitor.ts
1323
1334
  var HealthMonitor = class {
1324
1335
  constructor(stateManager, walletStorage, clusterStorage, isInitialized) {
1325
- chunkSMUUAKC3_js.__publicField(this, "stateManager");
1326
- chunkSMUUAKC3_js.__publicField(this, "walletStorage");
1327
- chunkSMUUAKC3_js.__publicField(this, "clusterStorage");
1328
- chunkSMUUAKC3_js.__publicField(this, "isInitialized");
1336
+ chunkRIQH5W7D_js.__publicField(this, "stateManager");
1337
+ chunkRIQH5W7D_js.__publicField(this, "walletStorage");
1338
+ chunkRIQH5W7D_js.__publicField(this, "clusterStorage");
1339
+ chunkRIQH5W7D_js.__publicField(this, "isInitialized");
1329
1340
  this.stateManager = stateManager, this.walletStorage = walletStorage, this.clusterStorage = clusterStorage, this.isInitialized = isInitialized ?? (() => true);
1330
1341
  }
1331
1342
  /**
@@ -1377,19 +1388,19 @@ var HealthMonitor = class {
1377
1388
  };
1378
1389
 
1379
1390
  // src/lib/core/connector-client.ts
1380
- var logger5 = chunkSMUUAKC3_js.createLogger("ConnectorClient"), ConnectorClient = class {
1391
+ var logger5 = chunkRIQH5W7D_js.createLogger("ConnectorClient"), ConnectorClient = class {
1381
1392
  constructor(config = {}) {
1382
- chunkSMUUAKC3_js.__publicField(this, "stateManager");
1383
- chunkSMUUAKC3_js.__publicField(this, "eventEmitter");
1384
- chunkSMUUAKC3_js.__publicField(this, "walletDetector");
1385
- chunkSMUUAKC3_js.__publicField(this, "connectionManager");
1386
- chunkSMUUAKC3_js.__publicField(this, "autoConnector");
1387
- chunkSMUUAKC3_js.__publicField(this, "clusterManager");
1388
- chunkSMUUAKC3_js.__publicField(this, "transactionTracker");
1389
- chunkSMUUAKC3_js.__publicField(this, "debugMetrics");
1390
- chunkSMUUAKC3_js.__publicField(this, "healthMonitor");
1391
- chunkSMUUAKC3_js.__publicField(this, "initialized", false);
1392
- chunkSMUUAKC3_js.__publicField(this, "config");
1393
+ chunkRIQH5W7D_js.__publicField(this, "stateManager");
1394
+ chunkRIQH5W7D_js.__publicField(this, "eventEmitter");
1395
+ chunkRIQH5W7D_js.__publicField(this, "walletDetector");
1396
+ chunkRIQH5W7D_js.__publicField(this, "connectionManager");
1397
+ chunkRIQH5W7D_js.__publicField(this, "autoConnector");
1398
+ chunkRIQH5W7D_js.__publicField(this, "clusterManager");
1399
+ chunkRIQH5W7D_js.__publicField(this, "transactionTracker");
1400
+ chunkRIQH5W7D_js.__publicField(this, "debugMetrics");
1401
+ chunkRIQH5W7D_js.__publicField(this, "healthMonitor");
1402
+ chunkRIQH5W7D_js.__publicField(this, "initialized", false);
1403
+ chunkRIQH5W7D_js.__publicField(this, "config");
1393
1404
  this.config = config;
1394
1405
  let initialState = {
1395
1406
  wallets: [],
@@ -1537,7 +1548,7 @@ var logger5 = chunkSMUUAKC3_js.createLogger("ConnectorClient"), ConnectorClient
1537
1548
  }), this.walletDetector.destroy(), this.eventEmitter.offAll(), this.stateManager.clear();
1538
1549
  }
1539
1550
  };
1540
- var logger6 = chunkSMUUAKC3_js.createLogger("ErrorBoundary"), WalletErrorType = /* @__PURE__ */ ((WalletErrorType2) => (WalletErrorType2.CONNECTION_FAILED = "CONNECTION_FAILED", WalletErrorType2.TRANSACTION_FAILED = "TRANSACTION_FAILED", WalletErrorType2.NETWORK_ERROR = "NETWORK_ERROR", WalletErrorType2.WALLET_NOT_FOUND = "WALLET_NOT_FOUND", WalletErrorType2.USER_REJECTED = "USER_REJECTED", WalletErrorType2.INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS", WalletErrorType2.UNKNOWN_ERROR = "UNKNOWN_ERROR", WalletErrorType2))(WalletErrorType || {}), ErrorLogger = class {
1551
+ var logger6 = chunkRIQH5W7D_js.createLogger("ErrorBoundary"), WalletErrorType = /* @__PURE__ */ ((WalletErrorType2) => (WalletErrorType2.CONNECTION_FAILED = "CONNECTION_FAILED", WalletErrorType2.TRANSACTION_FAILED = "TRANSACTION_FAILED", WalletErrorType2.NETWORK_ERROR = "NETWORK_ERROR", WalletErrorType2.WALLET_NOT_FOUND = "WALLET_NOT_FOUND", WalletErrorType2.USER_REJECTED = "USER_REJECTED", WalletErrorType2.INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS", WalletErrorType2.UNKNOWN_ERROR = "UNKNOWN_ERROR", WalletErrorType2))(WalletErrorType || {}), ErrorLogger = class {
1541
1552
  static log(error, errorInfo, context) {
1542
1553
  if (process.env.NODE_ENV === "development" && logger6.error(error.message, {
1543
1554
  error,
@@ -1585,8 +1596,8 @@ function classifyError(error) {
1585
1596
  var ConnectorErrorBoundary = class extends react.Component {
1586
1597
  constructor(props) {
1587
1598
  super(props);
1588
- chunkSMUUAKC3_js.__publicField(this, "retryTimeouts", /* @__PURE__ */ new Set());
1589
- chunkSMUUAKC3_js.__publicField(this, "retry", () => {
1599
+ chunkRIQH5W7D_js.__publicField(this, "retryTimeouts", /* @__PURE__ */ new Set());
1600
+ chunkRIQH5W7D_js.__publicField(this, "retry", () => {
1590
1601
  let { maxRetries = 3 } = this.props;
1591
1602
  this.state.retryCount >= maxRetries || this.setState((prevState) => ({
1592
1603
  hasError: false,
@@ -1808,7 +1819,7 @@ function withErrorBoundary(Component2, errorBoundaryProps) {
1808
1819
  let WrappedComponent = (props) => /* @__PURE__ */ jsxRuntime.jsx(ConnectorErrorBoundary, { ...errorBoundaryProps, children: /* @__PURE__ */ jsxRuntime.jsx(Component2, { ...props }) });
1809
1820
  return WrappedComponent.displayName = `withErrorBoundary(${Component2.displayName || Component2.name})`, WrappedComponent;
1810
1821
  }
1811
- var logger7 = chunkSMUUAKC3_js.createLogger("Polyfills"), installed = false;
1822
+ var logger7 = chunkRIQH5W7D_js.createLogger("Polyfills"), installed = false;
1812
1823
  function installPolyfills() {
1813
1824
  if (!(installed || typeof window > "u"))
1814
1825
  try {
@@ -1835,6 +1846,8 @@ function getPolyfillStatus() {
1835
1846
  environment: typeof window < "u" ? "browser" : "server"
1836
1847
  };
1837
1848
  }
1849
+
1850
+ // src/utils/formatting.ts
1838
1851
  function formatAddress(address, options = {}) {
1839
1852
  let { length = 4, separator = "..." } = options;
1840
1853
  return !address || address.length <= length * 2 + separator.length ? address : `${address.slice(0, length)}${separator}${address.slice(-length)}`;
@@ -1842,10 +1855,10 @@ function formatAddress(address, options = {}) {
1842
1855
  function formatSOL(lamports, options = {}) {
1843
1856
  let { decimals = 4, suffix = true, fast = false } = options;
1844
1857
  if (fast && typeof lamports == "number") {
1845
- let formatted2 = (lamports / gill.LAMPORTS_PER_SOL).toFixed(decimals);
1858
+ let formatted2 = (lamports / 1e9).toFixed(decimals);
1846
1859
  return suffix ? `${formatted2} SOL` : formatted2;
1847
1860
  }
1848
- let lamportsBigInt = typeof lamports == "bigint" ? lamports : BigInt(lamports), formatted = (Number(lamportsBigInt) / gill.LAMPORTS_PER_SOL).toFixed(decimals);
1861
+ let lamportsBigInt = typeof lamports == "bigint" ? lamports : BigInt(lamports), formatted = (Number(lamportsBigInt) / 1e9).toFixed(decimals);
1849
1862
  return suffix ? `${formatted} SOL` : formatted;
1850
1863
  }
1851
1864
  function formatNumber(value, options = {}) {
@@ -1882,7 +1895,7 @@ function isClipboardAvailable() {
1882
1895
  }
1883
1896
  function validateAddress(address) {
1884
1897
  try {
1885
- return gill.isAddress(address);
1898
+ return addresses.isAddress(address);
1886
1899
  } catch {
1887
1900
  return false;
1888
1901
  }
@@ -1979,7 +1992,7 @@ async function copySignatureToClipboard(signature, options) {
1979
1992
  }
1980
1993
 
1981
1994
  // src/lib/transaction/transaction-validator.ts
1982
- var logger8 = chunkSMUUAKC3_js.createLogger("TransactionValidator"), MAX_TRANSACTION_SIZE = 1232, MIN_TRANSACTION_SIZE = 64, TransactionValidator = class {
1995
+ var logger8 = chunkRIQH5W7D_js.createLogger("TransactionValidator"), MAX_TRANSACTION_SIZE = 1232, MIN_TRANSACTION_SIZE = 64, TransactionValidator = class {
1983
1996
  /**
1984
1997
  * Validate a transaction before signing
1985
1998
  *
@@ -2084,7 +2097,7 @@ var logger8 = chunkSMUUAKC3_js.createLogger("TransactionValidator"), MAX_TRANSAC
2084
2097
  };
2085
2098
 
2086
2099
  // src/lib/transaction/transaction-signer.ts
2087
- var logger9 = chunkSMUUAKC3_js.createLogger("TransactionSigner");
2100
+ var logger9 = chunkRIQH5W7D_js.createLogger("TransactionSigner");
2088
2101
  function createTransactionSigner(config) {
2089
2102
  let { wallet, account, cluster, eventEmitter } = config;
2090
2103
  if (!wallet || !account)
@@ -2104,7 +2117,7 @@ function createTransactionSigner(config) {
2104
2117
  throw logger9.error("Transaction validation failed", { errors: validation.errors }), Errors.invalidTransaction(validation.errors.join(", "));
2105
2118
  validation.warnings.length > 0 && logger9.warn("Transaction validation warnings", { warnings: validation.warnings });
2106
2119
  try {
2107
- let signFeature = features["solana:signTransaction"], { serialized, wasWeb3js } = chunkSMUUAKC3_js.prepareTransactionForWallet(transaction);
2120
+ let signFeature = features["solana:signTransaction"], { serialized, wasWeb3js } = chunkRIQH5W7D_js.prepareTransactionForWallet(transaction);
2108
2121
  logger9.debug("Signing transaction", {
2109
2122
  wasWeb3js,
2110
2123
  serializedLength: serialized.length,
@@ -2157,10 +2170,10 @@ function createTransactionSigner(config) {
2157
2170
  logger9.debug("Found signedTransaction property");
2158
2171
  let bytes = signedTx.signedTransaction;
2159
2172
  if (bytes instanceof Uint8Array)
2160
- return await chunkSMUUAKC3_js.convertSignedTransaction(bytes, wasWeb3js);
2173
+ return await chunkRIQH5W7D_js.convertSignedTransaction(bytes, wasWeb3js);
2161
2174
  }
2162
2175
  if (signedTx instanceof Uint8Array)
2163
- return await chunkSMUUAKC3_js.convertSignedTransaction(signedTx, wasWeb3js);
2176
+ return await chunkRIQH5W7D_js.convertSignedTransaction(signedTx, wasWeb3js);
2164
2177
  throw logger9.error("Unexpected wallet response format", {
2165
2178
  type: typeof signedTx,
2166
2179
  constructor: signedTx?.constructor?.name
@@ -2177,14 +2190,14 @@ function createTransactionSigner(config) {
2177
2190
  return [];
2178
2191
  if (capabilities.supportsBatchSigning)
2179
2192
  try {
2180
- let signFeature = features["solana:signAllTransactions"], prepared = transactions.map((tx) => chunkSMUUAKC3_js.prepareTransactionForWallet(tx)), serializedTxs = prepared.map((p) => p.serialized), wasWeb3js = prepared[0].wasWeb3js, result = await signFeature.signAllTransactions({
2193
+ let signFeature = features["solana:signAllTransactions"], prepared = transactions.map((tx) => chunkRIQH5W7D_js.prepareTransactionForWallet(tx)), serializedTxs = prepared.map((p) => p.serialized), wasWeb3js = prepared[0].wasWeb3js, result = await signFeature.signAllTransactions({
2181
2194
  account,
2182
2195
  transactions: serializedTxs,
2183
2196
  ...cluster ? { chain: cluster.id } : {}
2184
2197
  });
2185
2198
  return await Promise.all(
2186
2199
  result.signedTransactions.map(
2187
- (signedBytes) => chunkSMUUAKC3_js.convertSignedTransaction(signedBytes, wasWeb3js)
2200
+ (signedBytes) => chunkRIQH5W7D_js.convertSignedTransaction(signedBytes, wasWeb3js)
2188
2201
  )
2189
2202
  );
2190
2203
  } catch (error) {
@@ -2216,7 +2229,7 @@ function createTransactionSigner(config) {
2216
2229
  if (!capabilities.canSend)
2217
2230
  throw Errors.featureNotSupported("sending transactions");
2218
2231
  try {
2219
- let sendFeature = features["solana:signAndSendTransaction"], { serialized } = chunkSMUUAKC3_js.prepareTransactionForWallet(transaction);
2232
+ let sendFeature = features["solana:signAndSendTransaction"], { serialized } = chunkRIQH5W7D_js.prepareTransactionForWallet(transaction);
2220
2233
  eventEmitter && eventEmitter.emit({
2221
2234
  type: "transaction:preparing",
2222
2235
  transaction: serialized,
@@ -2302,7 +2315,7 @@ var TransactionSignerError = class extends TransactionError {
2302
2315
  function isTransactionSignerError(error) {
2303
2316
  return error instanceof TransactionSignerError || error instanceof TransactionError;
2304
2317
  }
2305
- var logger10 = chunkSMUUAKC3_js.createLogger("GillTransactionSigner");
2318
+ var logger10 = chunkRIQH5W7D_js.createLogger("KitTransactionSigner");
2306
2319
  function encodeShortVecLength(value) {
2307
2320
  let bytes = [], remaining = value;
2308
2321
  for (; remaining >= 128; )
@@ -2334,7 +2347,7 @@ function extractSignature(signedTx) {
2334
2347
  let signatureStart = bytesConsumed;
2335
2348
  return signedTx.slice(signatureStart, signatureStart + 64);
2336
2349
  }
2337
- if (chunkSMUUAKC3_js.isWeb3jsTransaction(signedTx)) {
2350
+ if (chunkRIQH5W7D_js.isWeb3jsTransaction(signedTx)) {
2338
2351
  let signatures = signedTx.signatures;
2339
2352
  if (!signatures || signatures.length === 0)
2340
2353
  throw new Error("No signatures found in web3.js transaction");
@@ -2347,12 +2360,12 @@ function extractSignature(signedTx) {
2347
2360
  }
2348
2361
  throw new Error("Cannot extract signature from transaction format");
2349
2362
  }
2350
- function createGillTransactionSigner(connectorSigner) {
2351
- let signerAddress = gill.address(connectorSigner.address);
2363
+ function createKitTransactionSigner(connectorSigner) {
2364
+ let signerAddress = addresses.address(connectorSigner.address);
2352
2365
  return {
2353
2366
  address: signerAddress,
2354
- async modifyAndSignTransactions(transactions) {
2355
- let transactionData = transactions.map((tx) => {
2367
+ async modifyAndSignTransactions(transactions$1) {
2368
+ let transactionData = transactions$1.map((tx) => {
2356
2369
  let messageBytes = new Uint8Array(tx.messageBytes), numSigners = Object.keys(tx.signatures).length, wireFormat = createTransactionBytesForSigning(messageBytes, numSigners);
2357
2370
  return logger10.debug("Preparing wire format for wallet", {
2358
2371
  signerAddress,
@@ -2375,7 +2388,7 @@ function createGillTransactionSigner(connectorSigner) {
2375
2388
  let signedTxBytes;
2376
2389
  if (signedTx instanceof Uint8Array)
2377
2390
  signedTxBytes = signedTx;
2378
- else if (chunkSMUUAKC3_js.isWeb3jsTransaction(signedTx)) {
2391
+ else if (chunkRIQH5W7D_js.isWeb3jsTransaction(signedTx)) {
2379
2392
  let txObj = signedTx;
2380
2393
  if (typeof txObj.serialize == "function")
2381
2394
  signedTxBytes = txObj.serialize();
@@ -2395,7 +2408,7 @@ function createGillTransactionSigner(connectorSigner) {
2395
2408
  modifiedLength: signedTxBytes.length,
2396
2409
  difference: signedTxBytes.length - wireFormat.length
2397
2410
  });
2398
- let walletTransaction = gill.getTransactionDecoder().decode(signedTxBytes), originalWithLifetime = originalTransaction, result = {
2411
+ let walletTransaction = transactions.getTransactionDecoder().decode(signedTxBytes), originalWithLifetime = originalTransaction, result = {
2399
2412
  ...walletTransaction,
2400
2413
  ...originalWithLifetime.lifetimeConstraint ? {
2401
2414
  lifetimeConstraint: originalWithLifetime.lifetimeConstraint
@@ -2404,28 +2417,31 @@ function createGillTransactionSigner(connectorSigner) {
2404
2417
  return logger10.debug("Using modified transaction from wallet", {
2405
2418
  modifiedMessageBytesLength: walletTransaction.messageBytes.length,
2406
2419
  signatures: Object.keys(walletTransaction.signatures)
2407
- }), result;
2420
+ }), transactions.assertIsTransactionWithinSizeLimit(result), result;
2408
2421
  }
2409
- let signatureBytes = extractSignature(signedTxBytes), signatureBase58 = gill.getSignatureFromBytes(signatureBytes);
2410
- return logger10.debug("Extracted signature from wallet (unmodified)", {
2422
+ let extractedSignatureBytes = extractSignature(signedTxBytes), signatureBase58 = codecs.getBase58Decoder().decode(extractedSignatureBytes);
2423
+ logger10.debug("Extracted signature from wallet (unmodified)", {
2411
2424
  signerAddress,
2412
- signatureLength: signatureBytes.length,
2425
+ signatureLength: extractedSignatureBytes.length,
2413
2426
  signatureBase58
2414
2427
  // Human-readable signature for debugging/logging
2415
- }), {
2428
+ });
2429
+ let typedSignatureBytes = extractedSignatureBytes, signedTransaction = {
2416
2430
  ...originalTransaction,
2417
2431
  signatures: Object.freeze({
2418
2432
  ...originalTransaction.signatures,
2419
- [signerAddress]: signatureBytes
2433
+ [signerAddress]: typedSignatureBytes
2420
2434
  })
2421
2435
  };
2436
+ return transactions.assertIsTransactionWithinSizeLimit(signedTransaction), signedTransaction;
2422
2437
  } catch (error) {
2423
- return logger10.error("Failed to decode signed transaction", { error }), originalTransaction;
2438
+ return logger10.error("Failed to decode signed transaction", { error }), transactions.assertIsTransactionWithinSizeLimit(originalTransaction), originalTransaction;
2424
2439
  }
2425
2440
  });
2426
2441
  }
2427
2442
  };
2428
2443
  }
2444
+ var createGillTransactionSigner = createKitTransactionSigner;
2429
2445
 
2430
2446
  exports.ClipboardErrorType = ClipboardErrorType;
2431
2447
  exports.ConfigurationError = ConfigurationError;
@@ -2445,6 +2461,7 @@ exports.copyAddressToClipboard = copyAddressToClipboard;
2445
2461
  exports.copySignatureToClipboard = copySignatureToClipboard;
2446
2462
  exports.copyToClipboard = copyToClipboard;
2447
2463
  exports.createGillTransactionSigner = createGillTransactionSigner;
2464
+ exports.createKitTransactionSigner = createKitTransactionSigner;
2448
2465
  exports.createTransactionSigner = createTransactionSigner;
2449
2466
  exports.formatAddress = formatAddress;
2450
2467
  exports.formatNumber = formatNumber;
@@ -2489,5 +2506,5 @@ exports.toClusterId = toClusterId;
2489
2506
  exports.toConnectorError = toConnectorError;
2490
2507
  exports.truncate = truncate;
2491
2508
  exports.withErrorBoundary = withErrorBoundary;
2492
- //# sourceMappingURL=chunk-TIW3EQPC.js.map
2493
- //# sourceMappingURL=chunk-TIW3EQPC.js.map
2509
+ //# sourceMappingURL=chunk-CLXM6UEE.js.map
2510
+ //# sourceMappingURL=chunk-CLXM6UEE.js.map