@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.
- package/dist/{chunk-HPQ5T32K.mjs → chunk-3623Z2QL.mjs} +4 -4
- package/dist/{chunk-HPQ5T32K.mjs.map → chunk-3623Z2QL.mjs.map} +1 -1
- package/dist/{chunk-UCISIAOG.mjs → chunk-A7WQ3K75.mjs} +3 -3
- package/dist/{chunk-UCISIAOG.mjs.map → chunk-A7WQ3K75.mjs.map} +1 -1
- package/dist/{chunk-SITQ4JWM.js → chunk-BF67LVVM.js} +17 -21
- package/dist/chunk-BF67LVVM.js.map +1 -0
- package/dist/{chunk-MDR4Y37Z.mjs → chunk-DFHJYZKZ.mjs} +5 -4
- package/dist/chunk-DFHJYZKZ.mjs.map +1 -0
- package/dist/chunk-E3DAIOYS.mjs +22 -0
- package/dist/chunk-E3DAIOYS.mjs.map +1 -0
- package/dist/chunk-FG7HTQTV.mjs +7 -0
- package/dist/chunk-FG7HTQTV.mjs.map +1 -0
- package/dist/{chunk-BJAVJQLK.js → chunk-I2XX5FUG.js} +6 -6
- package/dist/{chunk-BJAVJQLK.js.map → chunk-I2XX5FUG.js.map} +1 -1
- package/dist/chunk-L5FWMNWO.js +9 -0
- package/dist/chunk-L5FWMNWO.js.map +1 -0
- package/dist/{chunk-HN5AJF7F.js → chunk-NLPEO5GT.js} +5 -5
- package/dist/{chunk-HN5AJF7F.js.map → chunk-NLPEO5GT.js.map} +1 -1
- package/dist/chunk-QST7XLMB.js +26 -0
- package/dist/chunk-QST7XLMB.js.map +1 -0
- package/dist/{chunk-ZZTY3O4N.mjs → chunk-SJCQ3KZE.mjs} +4 -7
- package/dist/chunk-SJCQ3KZE.mjs.map +1 -0
- package/dist/{chunk-IDTUFDNB.mjs → chunk-SQ2JEA2M.mjs} +58 -11
- package/dist/chunk-SQ2JEA2M.mjs.map +1 -0
- package/dist/{chunk-BZ2VBJCZ.js → chunk-TRSJSU33.js} +141 -94
- package/dist/chunk-TRSJSU33.js.map +1 -0
- package/dist/{chunk-4Z2F6ERB.js → chunk-VVLY6QPI.js} +49 -48
- package/dist/chunk-VVLY6QPI.js.map +1 -0
- package/dist/compat.js +2 -2
- package/dist/compat.mjs +1 -1
- package/dist/fireblocks-FLKRTJU3.js +67 -0
- package/dist/fireblocks-FLKRTJU3.js.map +1 -0
- package/dist/fireblocks-KCJV3GEK.mjs +65 -0
- package/dist/fireblocks-KCJV3GEK.mjs.map +1 -0
- package/dist/headless.d.mts +6 -11
- package/dist/headless.d.ts +6 -11
- package/dist/headless.js +147 -147
- package/dist/headless.mjs +4 -4
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +188 -188
- package/dist/index.mjs +5 -5
- package/dist/privy-6LYDE24Z.mjs +64 -0
- package/dist/privy-6LYDE24Z.mjs.map +1 -0
- package/dist/privy-ID4YFTKR.js +66 -0
- package/dist/privy-ID4YFTKR.js.map +1 -0
- package/dist/protocol-G-z1lRqo.d.mts +166 -0
- package/dist/protocol-G-z1lRqo.d.ts +166 -0
- package/dist/react.d.mts +3 -3
- package/dist/react.d.ts +3 -3
- package/dist/react.js +49 -49
- package/dist/react.mjs +2 -2
- package/dist/remote.d.mts +46 -0
- package/dist/remote.d.ts +46 -0
- package/dist/remote.js +212 -0
- package/dist/remote.js.map +1 -0
- package/dist/remote.mjs +198 -0
- package/dist/remote.mjs.map +1 -0
- package/dist/server.d.mts +141 -0
- package/dist/server.d.ts +141 -0
- package/dist/server.js +189 -0
- package/dist/server.js.map +1 -0
- package/dist/server.mjs +187 -0
- package/dist/server.mjs.map +1 -0
- package/dist/{standard-shim-tmnQelaJ.d.ts → standard-shim-Cg6fmjK_.d.ts} +10 -0
- package/dist/{standard-shim-CGB88PPO.d.mts → standard-shim-Cz4UNS7t.d.mts} +10 -0
- package/dist/{walletconnect-447EY3OJ.js → walletconnect-F2M3PAAN.js} +8 -8
- package/dist/{walletconnect-447EY3OJ.js.map → walletconnect-F2M3PAAN.js.map} +1 -1
- package/dist/walletconnect-Z6LPGALR.mjs +3 -0
- package/dist/{walletconnect-U455PO4I.mjs.map → walletconnect-Z6LPGALR.mjs.map} +1 -1
- package/package.json +27 -2
- package/dist/chunk-4Z2F6ERB.js.map +0 -1
- package/dist/chunk-BZ2VBJCZ.js.map +0 -1
- package/dist/chunk-IDTUFDNB.mjs.map +0 -1
- package/dist/chunk-MDR4Y37Z.mjs.map +0 -1
- package/dist/chunk-SITQ4JWM.js.map +0 -1
- package/dist/chunk-ZZTY3O4N.mjs.map +0 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
269
|
-
|
|
270
|
-
|
|
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 =
|
|
330
|
+
var logger = chunkBF67LVVM_js.createLogger("EventEmitter"), EventEmitter = class {
|
|
330
331
|
constructor(debug = false) {
|
|
331
|
-
|
|
332
|
-
|
|
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
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
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
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
this.stateManager = config.stateManager, this.eventEmitter = config.eventEmitter, this.debug = config.debug ?? false, this.logger =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
746
|
-
newCount !== previousCount && this.log("\u{1F50D} WalletDetector: found wallets:",
|
|
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
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
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 =
|
|
1404
|
+
var logger4 = chunkBF67LVVM_js.createLogger("AutoConnector"), MIN_ADDRESS_LENGTH = 30, AutoConnector = class {
|
|
1366
1405
|
constructor(walletDetector, connectionManager, stateManager, walletStorage, debug = false, walletStateStorage) {
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
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
|
-
|
|
1410
|
+
chunkL5FWMNWO_js.__publicField(this, "walletStorage");
|
|
1372
1411
|
/** vNext wallet state storage (connector ID + account) */
|
|
1373
|
-
|
|
1374
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
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
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
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 =
|
|
1752
|
+
var logger5 = chunkBF67LVVM_js.createLogger("ConnectorClient"), ConnectorClient = class {
|
|
1714
1753
|
constructor(config = {}) {
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
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-
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
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 =
|
|
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(),
|
|
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 =
|
|
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 =
|
|
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
|
|
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 }),
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2985
|
+
return error instanceof TransactionSignerError || error instanceof chunkBF67LVVM_js.TransactionError;
|
|
2939
2986
|
}
|
|
2940
|
-
var logger11 =
|
|
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-
|
|
3164
|
-
//# sourceMappingURL=chunk-
|
|
3210
|
+
//# sourceMappingURL=chunk-TRSJSU33.js.map
|
|
3211
|
+
//# sourceMappingURL=chunk-TRSJSU33.js.map
|