@solana/connector 0.2.0 → 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/README.md +11 -11
- 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-RTXUS5KG.mjs → chunk-DFHJYZKZ.mjs} +84 -71
- 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-EM4KNOKG.js → chunk-VVLY6QPI.js} +202 -189
- 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 +18 -6
- package/dist/react.d.ts +18 -6
- 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-BZ2VBJCZ.js.map +0 -1
- package/dist/chunk-EM4KNOKG.js.map +0 -1
- package/dist/chunk-IDTUFDNB.mjs.map +0 -1
- package/dist/chunk-RTXUS5KG.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,17 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunkTRSJSU33_js = require('./chunk-TRSJSU33.js');
|
|
4
|
+
var chunkBF67LVVM_js = require('./chunk-BF67LVVM.js');
|
|
5
|
+
var chunkL5FWMNWO_js = require('./chunk-L5FWMNWO.js');
|
|
6
|
+
var React4 = require('react');
|
|
6
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
8
|
var addresses = require('@solana/addresses');
|
|
8
9
|
var keys = require('@solana/keys');
|
|
9
10
|
|
|
10
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
12
|
|
|
12
|
-
var
|
|
13
|
+
var React4__default = /*#__PURE__*/_interopDefault(React4);
|
|
13
14
|
|
|
14
|
-
var logger =
|
|
15
|
+
var logger = chunkBF67LVVM_js.createLogger("ErrorBoundary");
|
|
15
16
|
var ErrorLogger = class {
|
|
16
17
|
static log(error, errorInfo, context) {
|
|
17
18
|
if (process.env.NODE_ENV === "development" && logger.error(error.message, {
|
|
@@ -31,39 +32,39 @@ var ErrorLogger = class {
|
|
|
31
32
|
}
|
|
32
33
|
};
|
|
33
34
|
function classifyError(error) {
|
|
34
|
-
if (
|
|
35
|
+
if (chunkBF67LVVM_js.isConnectorError(error)) {
|
|
35
36
|
let typeMapping = {
|
|
36
|
-
WALLET_NOT_CONNECTED:
|
|
37
|
-
WALLET_NOT_FOUND:
|
|
38
|
-
CONNECTION_FAILED:
|
|
39
|
-
USER_REJECTED:
|
|
40
|
-
RPC_ERROR:
|
|
41
|
-
NETWORK_TIMEOUT:
|
|
42
|
-
SIGNING_FAILED:
|
|
43
|
-
SEND_FAILED:
|
|
37
|
+
WALLET_NOT_CONNECTED: chunkBF67LVVM_js.WalletErrorType.CONNECTION_FAILED,
|
|
38
|
+
WALLET_NOT_FOUND: chunkBF67LVVM_js.WalletErrorType.WALLET_NOT_FOUND,
|
|
39
|
+
CONNECTION_FAILED: chunkBF67LVVM_js.WalletErrorType.CONNECTION_FAILED,
|
|
40
|
+
USER_REJECTED: chunkBF67LVVM_js.WalletErrorType.USER_REJECTED,
|
|
41
|
+
RPC_ERROR: chunkBF67LVVM_js.WalletErrorType.NETWORK_ERROR,
|
|
42
|
+
NETWORK_TIMEOUT: chunkBF67LVVM_js.WalletErrorType.NETWORK_ERROR,
|
|
43
|
+
SIGNING_FAILED: chunkBF67LVVM_js.WalletErrorType.TRANSACTION_FAILED,
|
|
44
|
+
SEND_FAILED: chunkBF67LVVM_js.WalletErrorType.TRANSACTION_FAILED
|
|
44
45
|
};
|
|
45
46
|
return {
|
|
46
47
|
...error,
|
|
47
|
-
type: typeMapping[error.code] ||
|
|
48
|
+
type: typeMapping[error.code] || chunkBF67LVVM_js.WalletErrorType.UNKNOWN_ERROR,
|
|
48
49
|
recoverable: error.recoverable,
|
|
49
50
|
context: error.context
|
|
50
51
|
};
|
|
51
52
|
}
|
|
52
53
|
let walletError = error;
|
|
53
54
|
if (walletError.type) return walletError;
|
|
54
|
-
let type =
|
|
55
|
-
return error.message.includes("User rejected") || error.message.includes("User denied") ? (type =
|
|
55
|
+
let type = chunkBF67LVVM_js.WalletErrorType.UNKNOWN_ERROR, recoverable = false;
|
|
56
|
+
return error.message.includes("User rejected") || error.message.includes("User denied") ? (type = chunkBF67LVVM_js.WalletErrorType.USER_REJECTED, recoverable = true) : error.message.includes("Insufficient funds") ? (type = chunkBF67LVVM_js.WalletErrorType.INSUFFICIENT_FUNDS, recoverable = false) : error.message.includes("Network") || error.message.includes("fetch") ? (type = chunkBF67LVVM_js.WalletErrorType.NETWORK_ERROR, recoverable = true) : error.message.includes("Wallet not found") || error.message.includes("not installed") ? (type = chunkBF67LVVM_js.WalletErrorType.WALLET_NOT_FOUND, recoverable = true) : (error.message.includes("Failed to connect") || error.message.includes("Connection")) && (type = chunkBF67LVVM_js.WalletErrorType.CONNECTION_FAILED, recoverable = true), {
|
|
56
57
|
...error,
|
|
57
58
|
type,
|
|
58
59
|
recoverable,
|
|
59
60
|
context: { originalMessage: error.message }
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
|
-
var ConnectorErrorBoundary = class extends
|
|
63
|
+
var ConnectorErrorBoundary = class extends React4.Component {
|
|
63
64
|
constructor(props) {
|
|
64
65
|
super(props);
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
chunkL5FWMNWO_js.__publicField(this, "retryTimeouts", /* @__PURE__ */ new Set());
|
|
67
|
+
chunkL5FWMNWO_js.__publicField(this, "retry", () => {
|
|
67
68
|
let { maxRetries = 3 } = this.props;
|
|
68
69
|
this.state.retryCount >= maxRetries || this.setState((prevState) => ({
|
|
69
70
|
hasError: false,
|
|
@@ -106,36 +107,36 @@ var ConnectorErrorBoundary = class extends React2.Component {
|
|
|
106
107
|
}
|
|
107
108
|
};
|
|
108
109
|
function DefaultErrorFallback({ error, onRetry }) {
|
|
109
|
-
let [isPending, startTransition] =
|
|
110
|
+
let [isPending, startTransition] = React4.useTransition(), [isRetrying, setIsRetrying] = React4.useState(false), handleRetry = React4.useCallback(() => {
|
|
110
111
|
setIsRetrying(true), startTransition(() => {
|
|
111
112
|
setTimeout(() => {
|
|
112
113
|
onRetry(), setIsRetrying(false);
|
|
113
114
|
}, 500);
|
|
114
115
|
});
|
|
115
|
-
}, [onRetry]), { title, message, actionText, showRetry } =
|
|
116
|
+
}, [onRetry]), { title, message, actionText, showRetry } = React4.useMemo(() => {
|
|
116
117
|
switch (error.type) {
|
|
117
|
-
case
|
|
118
|
+
case chunkBF67LVVM_js.WalletErrorType.USER_REJECTED:
|
|
118
119
|
return {
|
|
119
120
|
title: "Transaction Cancelled",
|
|
120
121
|
message: "You cancelled the transaction. No problem!",
|
|
121
122
|
actionText: "Try Again",
|
|
122
123
|
showRetry: true
|
|
123
124
|
};
|
|
124
|
-
case
|
|
125
|
+
case chunkBF67LVVM_js.WalletErrorType.WALLET_NOT_FOUND:
|
|
125
126
|
return {
|
|
126
127
|
title: "Wallet Not Found",
|
|
127
128
|
message: "Please install a supported Solana wallet to continue.",
|
|
128
129
|
actionText: "Check Wallets",
|
|
129
130
|
showRetry: true
|
|
130
131
|
};
|
|
131
|
-
case
|
|
132
|
+
case chunkBF67LVVM_js.WalletErrorType.NETWORK_ERROR:
|
|
132
133
|
return {
|
|
133
134
|
title: "Network Error",
|
|
134
135
|
message: "Having trouble connecting. Please check your internet connection.",
|
|
135
136
|
actionText: "Retry",
|
|
136
137
|
showRetry: true
|
|
137
138
|
};
|
|
138
|
-
case
|
|
139
|
+
case chunkBF67LVVM_js.WalletErrorType.INSUFFICIENT_FUNDS:
|
|
139
140
|
return {
|
|
140
141
|
title: "Insufficient Funds",
|
|
141
142
|
message: "You don't have enough SOL for this transaction.",
|
|
@@ -285,25 +286,25 @@ function withErrorBoundary(Component2, errorBoundaryProps) {
|
|
|
285
286
|
let WrappedComponent = (props) => /* @__PURE__ */ jsxRuntime.jsx(ConnectorErrorBoundary, { ...errorBoundaryProps, children: /* @__PURE__ */ jsxRuntime.jsx(Component2, { ...props }) });
|
|
286
287
|
return WrappedComponent.displayName = `withErrorBoundary(${Component2.displayName || Component2.name})`, WrappedComponent;
|
|
287
288
|
}
|
|
288
|
-
var WalletConnectContext =
|
|
289
|
+
var WalletConnectContext = React4.createContext(null);
|
|
289
290
|
function WalletConnectProvider({ children }) {
|
|
290
|
-
let [uri, setUriState] =
|
|
291
|
-
|
|
291
|
+
let [uri, setUriState] = React4.useState(null), isMountedRef = React4.useRef(false), pendingUriRef = React4.useRef(null);
|
|
292
|
+
React4.useEffect(() => (isMountedRef.current = true, pendingUriRef.current !== null && (setUriState(pendingUriRef.current), pendingUriRef.current = null), () => {
|
|
292
293
|
isMountedRef.current = false;
|
|
293
294
|
}), []);
|
|
294
|
-
let setUri =
|
|
295
|
+
let setUri = React4.useCallback((newUri) => {
|
|
295
296
|
if (!isMountedRef.current) {
|
|
296
297
|
pendingUriRef.current = newUri;
|
|
297
298
|
return;
|
|
298
299
|
}
|
|
299
300
|
setUriState(newUri);
|
|
300
|
-
}, []), clearUri =
|
|
301
|
+
}, []), clearUri = React4.useCallback(() => {
|
|
301
302
|
pendingUriRef.current = null, isMountedRef.current && setUriState(null);
|
|
302
303
|
}, []);
|
|
303
304
|
return /* @__PURE__ */ jsxRuntime.jsx(WalletConnectContext.Provider, { value: { uri, setUri, clearUri }, children });
|
|
304
305
|
}
|
|
305
306
|
function useWalletConnectUri() {
|
|
306
|
-
let context =
|
|
307
|
+
let context = React4.useContext(WalletConnectContext);
|
|
307
308
|
return context || {
|
|
308
309
|
uri: null,
|
|
309
310
|
setUri: () => {
|
|
@@ -312,19 +313,19 @@ function useWalletConnectUri() {
|
|
|
312
313
|
}
|
|
313
314
|
};
|
|
314
315
|
}
|
|
315
|
-
var logger2 =
|
|
316
|
-
|
|
317
|
-
var ConnectorContext =
|
|
316
|
+
var logger2 = chunkBF67LVVM_js.createLogger("ConnectorProvider");
|
|
317
|
+
chunkTRSJSU33_js.installPolyfills();
|
|
318
|
+
var ConnectorContext = React4.createContext(null);
|
|
318
319
|
ConnectorContext.displayName = "ConnectorContext";
|
|
319
320
|
function ConnectorProviderInternal({
|
|
320
321
|
children,
|
|
321
322
|
config,
|
|
322
323
|
mobile
|
|
323
324
|
}) {
|
|
324
|
-
let clientRef =
|
|
325
|
+
let clientRef = React4.useRef(null), client = React4__default.default.useCallback(() => {
|
|
325
326
|
if (!clientRef.current)
|
|
326
327
|
try {
|
|
327
|
-
clientRef.current = new
|
|
328
|
+
clientRef.current = new chunkTRSJSU33_js.ConnectorClient(config), typeof window < "u" && (window.__connectorClient = clientRef.current), config?.debug && logger2.info("Client initialized successfully");
|
|
328
329
|
} catch (error) {
|
|
329
330
|
let err = error;
|
|
330
331
|
logger2.error("Failed to initialize client", { error: err });
|
|
@@ -336,7 +337,7 @@ function ConnectorProviderInternal({
|
|
|
336
337
|
}
|
|
337
338
|
return clientRef.current;
|
|
338
339
|
}, [config])();
|
|
339
|
-
return
|
|
340
|
+
return React4__default.default.useEffect(() => {
|
|
340
341
|
let currentClient = clientRef.current;
|
|
341
342
|
if (currentClient) {
|
|
342
343
|
let privateClient = currentClient;
|
|
@@ -345,7 +346,7 @@ function ConnectorProviderInternal({
|
|
|
345
346
|
return () => {
|
|
346
347
|
typeof window < "u" && (window.__connectorClient = void 0), currentClient && typeof currentClient.destroy == "function" && currentClient.destroy();
|
|
347
348
|
};
|
|
348
|
-
}, []),
|
|
349
|
+
}, []), React4__default.default.useEffect(() => {
|
|
349
350
|
if (!mobile) return;
|
|
350
351
|
let cancelled = false;
|
|
351
352
|
return (async () => {
|
|
@@ -394,16 +395,16 @@ function ConnectorProvider({
|
|
|
394
395
|
) : /* @__PURE__ */ jsxRuntime.jsx(ConnectorProviderInternal, { config, mobile, children });
|
|
395
396
|
}
|
|
396
397
|
function useConnector() {
|
|
397
|
-
let client =
|
|
398
|
+
let client = React4.useContext(ConnectorContext);
|
|
398
399
|
if (!client)
|
|
399
400
|
throw new Error(
|
|
400
401
|
"useConnector must be used within ConnectorProvider. Wrap your app with <ConnectorProvider> or <UnifiedProvider> to use connector hooks."
|
|
401
402
|
);
|
|
402
|
-
let { uri: walletConnectUri, clearUri: clearWalletConnectUri } = useWalletConnectUri(), state =
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
), methods =
|
|
403
|
+
let { uri: walletConnectUri, clearUri: clearWalletConnectUri } = useWalletConnectUri(), state = React4.useSyncExternalStore(
|
|
404
|
+
React4__default.default.useCallback((cb) => client.subscribe(cb), [client]),
|
|
405
|
+
React4__default.default.useCallback(() => client.getSnapshot(), [client]),
|
|
406
|
+
React4__default.default.useCallback(() => client.getSnapshot(), [client])
|
|
407
|
+
), methods = React4.useMemo(
|
|
407
408
|
() => ({
|
|
408
409
|
// Legacy (kept for backwards compatibility)
|
|
409
410
|
select: client.select.bind(client),
|
|
@@ -414,7 +415,7 @@ function useConnector() {
|
|
|
414
415
|
disconnectWallet: client.disconnectWallet.bind(client)
|
|
415
416
|
}),
|
|
416
417
|
[client]
|
|
417
|
-
), vNextFields =
|
|
418
|
+
), vNextFields = React4.useMemo(() => {
|
|
418
419
|
let walletStatus = state.wallet, isConnected2 = walletStatus.status === "connected", isConnecting2 = walletStatus.status === "connecting", isError = walletStatus.status === "error", connectorId = null, account = null, sessionAccounts = [], walletError = null;
|
|
419
420
|
walletStatus.status === "connected" ? (connectorId = walletStatus.session.connectorId, account = walletStatus.session.selectedAccount.address, sessionAccounts = walletStatus.session.accounts) : walletStatus.status === "connecting" ? connectorId = walletStatus.connectorId : walletStatus.status === "error" && (walletError = walletStatus.error, connectorId = walletStatus.connectorId ?? null);
|
|
420
421
|
let connector = connectorId ? state.connectors.find((c) => c.id === connectorId) ?? null : null;
|
|
@@ -430,7 +431,7 @@ function useConnector() {
|
|
|
430
431
|
connector
|
|
431
432
|
};
|
|
432
433
|
}, [state.wallet, state.connectors]);
|
|
433
|
-
return
|
|
434
|
+
return React4.useMemo(
|
|
434
435
|
() => ({
|
|
435
436
|
...state,
|
|
436
437
|
...methods,
|
|
@@ -442,10 +443,10 @@ function useConnector() {
|
|
|
442
443
|
);
|
|
443
444
|
}
|
|
444
445
|
function useConnectorClient() {
|
|
445
|
-
return
|
|
446
|
+
return React4.useContext(ConnectorContext);
|
|
446
447
|
}
|
|
447
448
|
function AppProviderInner({ children, connectorConfig, mobile, providers = [] }) {
|
|
448
|
-
let { setUri, clearUri } = useWalletConnectUri(), enhancedConfig =
|
|
449
|
+
let { setUri, clearUri } = useWalletConnectUri(), enhancedConfig = React4.useMemo(() => {
|
|
449
450
|
if (!connectorConfig?.walletConnect?.enabled)
|
|
450
451
|
return connectorConfig;
|
|
451
452
|
let wcConfig = connectorConfig.walletConnect;
|
|
@@ -471,17 +472,17 @@ function AppProvider(props) {
|
|
|
471
472
|
}
|
|
472
473
|
var UnifiedProvider = AppProvider;
|
|
473
474
|
function useWallet() {
|
|
474
|
-
let client =
|
|
475
|
+
let client = React4.useContext(ConnectorContext);
|
|
475
476
|
if (!client)
|
|
476
477
|
throw new Error(
|
|
477
478
|
"useWallet must be used within ConnectorProvider. Wrap your app with <ConnectorProvider> or <UnifiedProvider> to use wallet hooks."
|
|
478
479
|
);
|
|
479
|
-
let walletStatus =
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
480
|
+
let walletStatus = React4.useSyncExternalStore(
|
|
481
|
+
React4.useCallback((cb) => client.subscribe(cb), [client]),
|
|
482
|
+
React4.useCallback(() => client.getSnapshot().wallet, [client]),
|
|
483
|
+
React4.useCallback(() => client.getSnapshot().wallet, [client])
|
|
483
484
|
);
|
|
484
|
-
return
|
|
485
|
+
return React4.useMemo(() => {
|
|
485
486
|
let status = walletStatus.status, isConnected2 = status === "connected", isConnecting2 = status === "connecting", isError = status === "error", connectorId = null, account = null, accounts = [], session = null, error = null;
|
|
486
487
|
return walletStatus.status === "connected" ? (connectorId = walletStatus.session.connectorId, account = walletStatus.session.selectedAccount.address, accounts = walletStatus.session.accounts, session = walletStatus.session) : walletStatus.status === "connecting" ? connectorId = walletStatus.connectorId : walletStatus.status === "error" && (error = walletStatus.error, connectorId = walletStatus.connectorId ?? null), {
|
|
487
488
|
status,
|
|
@@ -498,24 +499,24 @@ function useWallet() {
|
|
|
498
499
|
}, [walletStatus]);
|
|
499
500
|
}
|
|
500
501
|
function useWalletConnectors() {
|
|
501
|
-
let client =
|
|
502
|
+
let client = React4.useContext(ConnectorContext);
|
|
502
503
|
if (!client)
|
|
503
504
|
throw new Error(
|
|
504
505
|
"useWalletConnectors must be used within ConnectorProvider. Wrap your app with <ConnectorProvider> or <UnifiedProvider> to use wallet hooks."
|
|
505
506
|
);
|
|
506
|
-
return
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
507
|
+
return React4.useSyncExternalStore(
|
|
508
|
+
React4.useCallback((cb) => client.subscribe(cb), [client]),
|
|
509
|
+
React4.useCallback(() => client.getSnapshot().connectors, [client]),
|
|
510
|
+
React4.useCallback(() => client.getSnapshot().connectors, [client])
|
|
510
511
|
);
|
|
511
512
|
}
|
|
512
513
|
function useConnectWallet() {
|
|
513
|
-
let client =
|
|
514
|
+
let client = React4.useContext(ConnectorContext), [isConnecting2, setIsConnecting] = React4.useState(false), [error, setError] = React4.useState(null);
|
|
514
515
|
if (!client)
|
|
515
516
|
throw new Error(
|
|
516
517
|
"useConnectWallet must be used within ConnectorProvider. Wrap your app with <ConnectorProvider> or <UnifiedProvider> to use wallet hooks."
|
|
517
518
|
);
|
|
518
|
-
let connect =
|
|
519
|
+
let connect = React4.useCallback(
|
|
519
520
|
async (connectorId, options) => {
|
|
520
521
|
setIsConnecting(true), setError(null);
|
|
521
522
|
try {
|
|
@@ -528,7 +529,7 @@ function useConnectWallet() {
|
|
|
528
529
|
}
|
|
529
530
|
},
|
|
530
531
|
[client]
|
|
531
|
-
), resetError =
|
|
532
|
+
), resetError = React4.useCallback(() => {
|
|
532
533
|
setError(null);
|
|
533
534
|
}, []);
|
|
534
535
|
return {
|
|
@@ -539,13 +540,13 @@ function useConnectWallet() {
|
|
|
539
540
|
};
|
|
540
541
|
}
|
|
541
542
|
function useDisconnectWallet() {
|
|
542
|
-
let client =
|
|
543
|
+
let client = React4.useContext(ConnectorContext), [isDisconnecting, setIsDisconnecting] = React4.useState(false);
|
|
543
544
|
if (!client)
|
|
544
545
|
throw new Error(
|
|
545
546
|
"useDisconnectWallet must be used within ConnectorProvider. Wrap your app with <ConnectorProvider> or <UnifiedProvider> to use wallet hooks."
|
|
546
547
|
);
|
|
547
548
|
return {
|
|
548
|
-
disconnect:
|
|
549
|
+
disconnect: React4.useCallback(async () => {
|
|
549
550
|
setIsDisconnecting(true);
|
|
550
551
|
try {
|
|
551
552
|
await client.disconnectWallet();
|
|
@@ -560,14 +561,14 @@ function useCluster() {
|
|
|
560
561
|
let { cluster, clusters } = useConnector(), client = useConnectorClient();
|
|
561
562
|
if (!client)
|
|
562
563
|
throw new Error("useCluster must be used within ConnectorProvider");
|
|
563
|
-
let setCluster =
|
|
564
|
+
let setCluster = React4.useMemo(
|
|
564
565
|
() => async (id) => {
|
|
565
566
|
await client.setCluster(id);
|
|
566
567
|
},
|
|
567
568
|
[client]
|
|
568
569
|
);
|
|
569
|
-
return
|
|
570
|
-
let isMainnet = cluster ?
|
|
570
|
+
return React4.useMemo(() => {
|
|
571
|
+
let isMainnet = cluster ? chunkTRSJSU33_js.isMainnetCluster(cluster) : false, isDevnet = cluster ? chunkTRSJSU33_js.isDevnetCluster(cluster) : false, isTestnet = cluster ? chunkTRSJSU33_js.isTestnetCluster(cluster) : false, isLocal = cluster ? chunkTRSJSU33_js.isLocalCluster(cluster) : false, explorerUrl = cluster ? chunkTRSJSU33_js.getClusterExplorerUrl(cluster) : "", type = cluster ? chunkTRSJSU33_js.getClusterType(cluster) : null;
|
|
571
572
|
return {
|
|
572
573
|
cluster,
|
|
573
574
|
clusters,
|
|
@@ -582,10 +583,10 @@ function useCluster() {
|
|
|
582
583
|
}, [cluster, clusters, setCluster]);
|
|
583
584
|
}
|
|
584
585
|
function useAccount() {
|
|
585
|
-
let { selectedAccount, accounts, connected, selectAccount } = useConnector(), [copied, setCopied] =
|
|
586
|
+
let { selectedAccount, accounts, connected, selectAccount } = useConnector(), [copied, setCopied] = React4.useState(false), copyTimeoutRef = React4__default.default.useRef(void 0), account = React4.useMemo(
|
|
586
587
|
() => accounts.find((a) => a.address === selectedAccount) ?? null,
|
|
587
588
|
[accounts, selectedAccount]
|
|
588
|
-
), formatted =
|
|
589
|
+
), formatted = React4.useMemo(() => selectedAccount ? chunkTRSJSU33_js.formatAddress(selectedAccount) : "", [selectedAccount]), copy = React4.useCallback(async () => selectedAccount ? (copyTimeoutRef.current && clearTimeout(copyTimeoutRef.current), await chunkTRSJSU33_js.copyAddressToClipboard(selectedAccount, {
|
|
589
590
|
onSuccess: () => {
|
|
590
591
|
setCopied(true), copyTimeoutRef.current = setTimeout(() => setCopied(false), 2e3);
|
|
591
592
|
}
|
|
@@ -594,9 +595,9 @@ function useAccount() {
|
|
|
594
595
|
error: "empty_value" /* EMPTY_VALUE */,
|
|
595
596
|
errorMessage: "No account selected"
|
|
596
597
|
}, [selectedAccount]);
|
|
597
|
-
return
|
|
598
|
+
return React4__default.default.useEffect(() => () => {
|
|
598
599
|
copyTimeoutRef.current && clearTimeout(copyTimeoutRef.current);
|
|
599
|
-
}, []),
|
|
600
|
+
}, []), React4.useMemo(
|
|
600
601
|
() => ({
|
|
601
602
|
address: selectedAccount,
|
|
602
603
|
account,
|
|
@@ -611,18 +612,18 @@ function useAccount() {
|
|
|
611
612
|
);
|
|
612
613
|
}
|
|
613
614
|
function useWalletInfo() {
|
|
614
|
-
let { selectedWallet, wallets, connected, connecting } = useConnector(), mappedWallets =
|
|
615
|
+
let { selectedWallet, wallets, connected, connecting } = useConnector(), mappedWallets = React4.useMemo(
|
|
615
616
|
() => wallets.map(
|
|
616
617
|
(walletInfo) => ({
|
|
617
618
|
name: walletInfo.wallet.name,
|
|
618
|
-
connectorId:
|
|
619
|
+
connectorId: chunkTRSJSU33_js.createConnectorId(walletInfo.wallet.name),
|
|
619
620
|
icon: walletInfo.wallet.icon,
|
|
620
621
|
installed: walletInfo.installed,
|
|
621
622
|
connectable: walletInfo.connectable
|
|
622
623
|
})
|
|
623
624
|
),
|
|
624
625
|
[wallets]
|
|
625
|
-
), selectedWalletInfo =
|
|
626
|
+
), selectedWalletInfo = React4.useMemo(() => {
|
|
626
627
|
if (!selectedWallet)
|
|
627
628
|
return {
|
|
628
629
|
name: null,
|
|
@@ -638,7 +639,7 @@ function useWalletInfo() {
|
|
|
638
639
|
connectable: walletInfo?.connectable ?? false
|
|
639
640
|
};
|
|
640
641
|
}, [selectedWallet, wallets]);
|
|
641
|
-
return
|
|
642
|
+
return React4.useMemo(
|
|
642
643
|
() => ({
|
|
643
644
|
...selectedWalletInfo,
|
|
644
645
|
connected,
|
|
@@ -649,10 +650,10 @@ function useWalletInfo() {
|
|
|
649
650
|
);
|
|
650
651
|
}
|
|
651
652
|
function useTransactionSigner() {
|
|
652
|
-
let { selectedWallet, selectedAccount, accounts, cluster, connected } = useConnector(), client = useConnectorClient(), account =
|
|
653
|
+
let { selectedWallet, selectedAccount, accounts, cluster, connected } = useConnector(), client = useConnectorClient(), account = React4.useMemo(
|
|
653
654
|
() => accounts.find((a) => a.address === selectedAccount)?.raw ?? null,
|
|
654
655
|
[accounts, selectedAccount]
|
|
655
|
-
), signer =
|
|
656
|
+
), signer = React4.useMemo(() => !connected || !selectedWallet || !account ? null : chunkTRSJSU33_js.createTransactionSigner({
|
|
656
657
|
wallet: selectedWallet,
|
|
657
658
|
account,
|
|
658
659
|
cluster: cluster ?? void 0,
|
|
@@ -661,7 +662,7 @@ function useTransactionSigner() {
|
|
|
661
662
|
client.emitEvent(event);
|
|
662
663
|
}
|
|
663
664
|
} : void 0
|
|
664
|
-
}), [connected, selectedWallet, account, cluster, client]), capabilities =
|
|
665
|
+
}), [connected, selectedWallet, account, cluster, client]), capabilities = React4.useMemo(
|
|
665
666
|
() => signer?.getCapabilities() ?? {
|
|
666
667
|
canSign: false,
|
|
667
668
|
canSend: false,
|
|
@@ -680,27 +681,27 @@ function useTransactionSigner() {
|
|
|
680
681
|
function useKitTransactionSigner() {
|
|
681
682
|
let { signer: connectorSigner, ready } = useTransactionSigner();
|
|
682
683
|
return {
|
|
683
|
-
signer:
|
|
684
|
+
signer: React4.useMemo(() => connectorSigner ? chunkTRSJSU33_js.createKitTransactionSigner(connectorSigner) : null, [connectorSigner]),
|
|
684
685
|
ready
|
|
685
686
|
};
|
|
686
687
|
}
|
|
687
688
|
var useGillTransactionSigner = useKitTransactionSigner;
|
|
688
|
-
var logger3 =
|
|
689
|
+
var logger3 = chunkBF67LVVM_js.createLogger("useSolanaClient");
|
|
689
690
|
function useSolanaClient() {
|
|
690
|
-
let { type } = useCluster(), connectorClient = useConnectorClient(), client =
|
|
691
|
+
let { type } = useCluster(), connectorClient = useConnectorClient(), client = React4.useMemo(() => {
|
|
691
692
|
if (!type || !connectorClient) return null;
|
|
692
693
|
try {
|
|
693
694
|
let rpcUrl = connectorClient.getRpcUrl();
|
|
694
|
-
return rpcUrl ?
|
|
695
|
+
return rpcUrl ? chunkBF67LVVM_js.createSolanaClient({
|
|
695
696
|
urlOrMoniker: rpcUrl
|
|
696
|
-
}) : type !== "custom" ?
|
|
697
|
+
}) : type !== "custom" ? chunkBF67LVVM_js.createSolanaClient({
|
|
697
698
|
urlOrMoniker: type
|
|
698
699
|
}) : null;
|
|
699
700
|
} catch (error) {
|
|
700
701
|
return logger3.error("Failed to create Solana client", { error }), null;
|
|
701
702
|
}
|
|
702
703
|
}, [type, connectorClient]);
|
|
703
|
-
return
|
|
704
|
+
return React4.useMemo(
|
|
704
705
|
() => ({
|
|
705
706
|
client,
|
|
706
707
|
ready: !!client,
|
|
@@ -711,11 +712,11 @@ function useSolanaClient() {
|
|
|
711
712
|
}
|
|
712
713
|
var useGillSolanaClient = useSolanaClient;
|
|
713
714
|
function useTransactionPreparer() {
|
|
714
|
-
let { client, ready } = useSolanaClient(), prepare =
|
|
715
|
+
let { client, ready } = useSolanaClient(), prepare = React4.useCallback(
|
|
715
716
|
async (transaction, options = {}) => {
|
|
716
717
|
if (!client)
|
|
717
|
-
throw new
|
|
718
|
-
return
|
|
718
|
+
throw new chunkBF67LVVM_js.NetworkError("RPC_ERROR", "Solana client not available. Cannot prepare transaction.");
|
|
719
|
+
return chunkBF67LVVM_js.prepareTransaction({
|
|
719
720
|
transaction,
|
|
720
721
|
rpc: client.rpc,
|
|
721
722
|
computeUnitLimitMultiplier: options.computeUnitLimitMultiplier,
|
|
@@ -725,7 +726,7 @@ function useTransactionPreparer() {
|
|
|
725
726
|
},
|
|
726
727
|
[client]
|
|
727
728
|
);
|
|
728
|
-
return
|
|
729
|
+
return React4.useMemo(
|
|
729
730
|
() => ({
|
|
730
731
|
prepare,
|
|
731
732
|
ready
|
|
@@ -864,13 +865,13 @@ function useSharedQuery(key, queryFn, options = {}) {
|
|
|
864
865
|
refetchOnMount = "stale",
|
|
865
866
|
refetchIntervalMs = false,
|
|
866
867
|
select
|
|
867
|
-
} = options, queryFnRef =
|
|
868
|
+
} = options, queryFnRef = React4.useRef(queryFn);
|
|
868
869
|
queryFnRef.current = queryFn;
|
|
869
|
-
let stableQueryFn =
|
|
870
|
+
let stableQueryFn = React4.useCallback((signal) => queryFnRef.current(signal), []), subscribe = React4.useCallback(
|
|
870
871
|
(onChange) => key ? subscribeSharedQuery(key, onChange, cacheTimeMs) : () => {
|
|
871
872
|
},
|
|
872
873
|
[key, cacheTimeMs]
|
|
873
|
-
), emptySnapshot =
|
|
874
|
+
), emptySnapshot = React4.useMemo(
|
|
874
875
|
() => ({
|
|
875
876
|
data: void 0,
|
|
876
877
|
error: null,
|
|
@@ -879,8 +880,8 @@ function useSharedQuery(key, queryFn, options = {}) {
|
|
|
879
880
|
isFetching: false
|
|
880
881
|
}),
|
|
881
882
|
[]
|
|
882
|
-
), getSnapshot =
|
|
883
|
-
|
|
883
|
+
), getSnapshot = React4.useCallback(() => key ? getOrCreateEntry(key).snapshot : emptySnapshot, [key, emptySnapshot]), snapshot = React4.useSyncExternalStore(subscribe, getSnapshot, getSnapshot), selectedData = React4.useMemo(() => select ? select(snapshot.data) : snapshot.data, [snapshot.data, select]), prevSelectedRef = React4.useRef(selectedData), stableSelectedData = React4.useMemo(() => Object.is(prevSelectedRef.current, selectedData) ? prevSelectedRef.current : (prevSelectedRef.current = selectedData, selectedData), [selectedData]), fetchedKeyRef = React4.useRef(null);
|
|
884
|
+
React4.useEffect(() => {
|
|
884
885
|
if (!key || !enabled) {
|
|
885
886
|
fetchedKeyRef.current = null;
|
|
886
887
|
return;
|
|
@@ -894,7 +895,7 @@ function useSharedQuery(key, queryFn, options = {}) {
|
|
|
894
895
|
force: refetchOnMount === true
|
|
895
896
|
}).catch(() => {
|
|
896
897
|
})) : fetchedKeyRef.current = key;
|
|
897
|
-
}, [key, enabled, staleTimeMs, refetchOnMount, stableQueryFn]),
|
|
898
|
+
}, [key, enabled, staleTimeMs, refetchOnMount, stableQueryFn]), React4.useEffect(() => {
|
|
898
899
|
if (!key || !enabled || refetchIntervalMs === false) return;
|
|
899
900
|
let entry = getOrCreateEntry(key);
|
|
900
901
|
entry.queryFn = stableQueryFn;
|
|
@@ -904,7 +905,7 @@ function useSharedQuery(key, queryFn, options = {}) {
|
|
|
904
905
|
count <= 1 ? entry.intervalCounts.delete(refetchIntervalMs) : entry.intervalCounts.set(refetchIntervalMs, count - 1), startOrRestartInterval(key, entry);
|
|
905
906
|
};
|
|
906
907
|
}, [key, enabled, refetchIntervalMs, stableQueryFn]);
|
|
907
|
-
let refetch =
|
|
908
|
+
let refetch = React4.useCallback(
|
|
908
909
|
async (refetchOptions) => {
|
|
909
910
|
if (key)
|
|
910
911
|
return fetchSharedQuery(key, stableQueryFn, {
|
|
@@ -913,12 +914,12 @@ function useSharedQuery(key, queryFn, options = {}) {
|
|
|
913
914
|
});
|
|
914
915
|
},
|
|
915
916
|
[key, stableQueryFn]
|
|
916
|
-
), abort =
|
|
917
|
+
), abort = React4.useCallback(() => {
|
|
917
918
|
if (!key) return;
|
|
918
919
|
let entry = store.get(key);
|
|
919
920
|
entry?.abortController && entry.abortController.abort();
|
|
920
921
|
}, [key]);
|
|
921
|
-
return
|
|
922
|
+
return React4.useMemo(
|
|
922
923
|
() => ({
|
|
923
924
|
data: stableSelectedData,
|
|
924
925
|
error: snapshot.error,
|
|
@@ -997,13 +998,13 @@ function useWalletAssets(options = {}) {
|
|
|
997
998
|
refetchIntervalMs = false,
|
|
998
999
|
client: clientOverride,
|
|
999
1000
|
select
|
|
1000
|
-
} = options, {
|
|
1001
|
-
if (!enabled || !
|
|
1001
|
+
} = options, { account, isConnected: isConnected2 } = useWallet(), address = account ? String(account) : null, { client: providerClient } = useSolanaClient(), rpcClient = clientOverride ?? providerClient, key = React4.useMemo(() => {
|
|
1002
|
+
if (!enabled || !isConnected2 || !address || !rpcClient) return null;
|
|
1002
1003
|
let rpcUrl = rpcClient.urlOrMoniker instanceof URL ? rpcClient.urlOrMoniker.toString() : String(rpcClient.urlOrMoniker);
|
|
1003
1004
|
return getWalletAssetsQueryKey(rpcUrl, address);
|
|
1004
|
-
}, [enabled,
|
|
1005
|
+
}, [enabled, isConnected2, address, rpcClient]), queryFn = React4.useCallback(
|
|
1005
1006
|
async (signal) => {
|
|
1006
|
-
if (!
|
|
1007
|
+
if (!isConnected2 || !address || !rpcClient)
|
|
1007
1008
|
return { lamports: 0n, tokenAccounts: [] };
|
|
1008
1009
|
if (signal.aborted)
|
|
1009
1010
|
throw new DOMException("Query aborted", "AbortError");
|
|
@@ -1019,12 +1020,12 @@ function useWalletAssets(options = {}) {
|
|
|
1019
1020
|
if (signal.aborted)
|
|
1020
1021
|
throw new DOMException("Query aborted", "AbortError");
|
|
1021
1022
|
let tokenAccounts = [];
|
|
1022
|
-
for (let
|
|
1023
|
-
let parsed = parseTokenAccount(
|
|
1023
|
+
for (let account2 of tokenAccountsResult.value) {
|
|
1024
|
+
let parsed = parseTokenAccount(account2, "token");
|
|
1024
1025
|
parsed && tokenAccounts.push(parsed);
|
|
1025
1026
|
}
|
|
1026
|
-
for (let
|
|
1027
|
-
let parsed = parseTokenAccount(
|
|
1027
|
+
for (let account2 of token2022AccountsResult.value) {
|
|
1028
|
+
let parsed = parseTokenAccount(account2, "token-2022");
|
|
1028
1029
|
parsed && tokenAccounts.push(parsed);
|
|
1029
1030
|
}
|
|
1030
1031
|
return {
|
|
@@ -1032,7 +1033,7 @@ function useWalletAssets(options = {}) {
|
|
|
1032
1033
|
tokenAccounts
|
|
1033
1034
|
};
|
|
1034
1035
|
},
|
|
1035
|
-
[
|
|
1036
|
+
[isConnected2, address, rpcClient]
|
|
1036
1037
|
), { data, error, status, updatedAt, isFetching, refetch, abort } = useSharedQuery(
|
|
1037
1038
|
key,
|
|
1038
1039
|
queryFn,
|
|
@@ -1045,7 +1046,7 @@ function useWalletAssets(options = {}) {
|
|
|
1045
1046
|
select
|
|
1046
1047
|
}
|
|
1047
1048
|
), isLoading = status === "loading" || status === "idle";
|
|
1048
|
-
return
|
|
1049
|
+
return React4.useMemo(
|
|
1049
1050
|
() => ({
|
|
1050
1051
|
data,
|
|
1051
1052
|
isLoading,
|
|
@@ -1065,7 +1066,7 @@ function getBalanceQueryKey(rpcUrl, address) {
|
|
|
1065
1066
|
}
|
|
1066
1067
|
var LAMPORTS_PER_SOL2 = 1000000000n;
|
|
1067
1068
|
function formatTokenAccount(account) {
|
|
1068
|
-
let formatted =
|
|
1069
|
+
let formatted = chunkTRSJSU33_js.formatBigIntBalance(account.amount, account.decimals, {
|
|
1069
1070
|
maxDecimals: Math.min(account.decimals, 6)
|
|
1070
1071
|
});
|
|
1071
1072
|
return {
|
|
@@ -1109,13 +1110,13 @@ function useBalance(options = {}) {
|
|
|
1109
1110
|
refetchIntervalMs: autoRefresh ? refreshInterval : false,
|
|
1110
1111
|
client: clientOverride,
|
|
1111
1112
|
select: selectBalance
|
|
1112
|
-
}), lamports = data?.lamports ?? 0n, tokens = data?.tokens ?? [], solBalance =
|
|
1113
|
+
}), lamports = data?.lamports ?? 0n, tokens = data?.tokens ?? [], solBalance = React4.useMemo(() => Number(lamports) / Number(LAMPORTS_PER_SOL2), [lamports]), formattedSol = React4.useMemo(() => chunkTRSJSU33_js.formatLamportsToSolSafe(lamports, { maxDecimals: 4, suffix: true }), [lamports]), visibleError = updatedAt ? null : error, refetch = React4.useCallback(
|
|
1113
1114
|
async (opts) => {
|
|
1114
1115
|
await sharedRefetch(opts);
|
|
1115
1116
|
},
|
|
1116
1117
|
[sharedRefetch]
|
|
1117
1118
|
);
|
|
1118
|
-
return
|
|
1119
|
+
return React4.useMemo(
|
|
1119
1120
|
() => ({
|
|
1120
1121
|
solBalance,
|
|
1121
1122
|
lamports,
|
|
@@ -1490,7 +1491,7 @@ function useTransactions(options = {}) {
|
|
|
1490
1491
|
// 5 minutes
|
|
1491
1492
|
refetchOnMount = "stale",
|
|
1492
1493
|
client: clientOverride
|
|
1493
|
-
} = options, {
|
|
1494
|
+
} = options, { account, isConnected: isConnected2 } = useWallet(), address = React4.useMemo(() => account ? String(account) : null, [account]), { cluster } = useCluster(), { client: providerClient } = useSolanaClient(), connectorClient = useConnectorClient(), [paginatedTransactions, setPaginatedTransactions] = React4.useState([]), [isPaginationLoading, setIsPaginationLoading] = React4.useState(false), [hasMore, setHasMore] = React4.useState(true), beforeSignatureRef = React4.useRef(void 0), rpcClient = clientOverride ?? providerClient, connectorConfig = connectorClient?.getConfig(), imageProxy = connectorConfig?.imageProxy, programLabels = connectorConfig?.programLabels, parseTransaction = React4.useCallback(
|
|
1494
1495
|
(tx, walletAddress, sig, blockTime, slot, err, explorerUrl) => {
|
|
1495
1496
|
let { date, time } = formatDate(blockTime), baseInfo = {
|
|
1496
1497
|
signature: sig,
|
|
@@ -1541,15 +1542,15 @@ function useTransactions(options = {}) {
|
|
|
1541
1542
|
}
|
|
1542
1543
|
},
|
|
1543
1544
|
[programLabels]
|
|
1544
|
-
), key =
|
|
1545
|
-
if (!enabled || !
|
|
1545
|
+
), key = React4.useMemo(() => {
|
|
1546
|
+
if (!enabled || !isConnected2 || !address || !rpcClient || !cluster) return null;
|
|
1546
1547
|
let rpcUrl = rpcClient.urlOrMoniker instanceof URL ? rpcClient.urlOrMoniker.toString() : String(rpcClient.urlOrMoniker);
|
|
1547
1548
|
return getTransactionsQueryKey({ rpcUrl, address, clusterId: cluster.id, limit, fetchDetails });
|
|
1548
|
-
}, [enabled,
|
|
1549
|
-
|
|
1549
|
+
}, [enabled, isConnected2, address, rpcClient, cluster, limit, fetchDetails]);
|
|
1550
|
+
React4.useEffect(() => {
|
|
1550
1551
|
beforeSignatureRef.current = void 0, setPaginatedTransactions([]), setIsPaginationLoading(false), setHasMore(true);
|
|
1551
1552
|
}, [key]);
|
|
1552
|
-
let fetchAndEnrichTransactions =
|
|
1553
|
+
let fetchAndEnrichTransactions = React4.useCallback(
|
|
1553
1554
|
async (beforeSignature, currentCluster, signal) => {
|
|
1554
1555
|
if (!rpcClient || !address)
|
|
1555
1556
|
return { transactions: [], hasMore: false };
|
|
@@ -1578,7 +1579,7 @@ function useTransactions(options = {}) {
|
|
|
1578
1579
|
blockTimeNum,
|
|
1579
1580
|
Number(sig.slot),
|
|
1580
1581
|
sig.err,
|
|
1581
|
-
|
|
1582
|
+
chunkTRSJSU33_js.getTransactionUrl(String(sig.signature), currentCluster)
|
|
1582
1583
|
);
|
|
1583
1584
|
});
|
|
1584
1585
|
} else
|
|
@@ -1593,7 +1594,7 @@ function useTransactions(options = {}) {
|
|
|
1593
1594
|
type: "unknown",
|
|
1594
1595
|
formattedDate: date,
|
|
1595
1596
|
formattedTime: time,
|
|
1596
|
-
explorerUrl:
|
|
1597
|
+
explorerUrl: chunkTRSJSU33_js.getTransactionUrl(String(sig.signature), currentCluster)
|
|
1597
1598
|
};
|
|
1598
1599
|
});
|
|
1599
1600
|
let mintsToFetch = [
|
|
@@ -1607,7 +1608,7 @@ function useTransactions(options = {}) {
|
|
|
1607
1608
|
throwIfAborted(signal);
|
|
1608
1609
|
let tokenMetadata = await fetchTransactionTokenMetadata(mintsToFetch, {
|
|
1609
1610
|
signal,
|
|
1610
|
-
cluster:
|
|
1611
|
+
cluster: chunkTRSJSU33_js.getClusterType(currentCluster)
|
|
1611
1612
|
});
|
|
1612
1613
|
tokenMetadata.size > 0 && (newTransactions = newTransactions.map((tx) => {
|
|
1613
1614
|
let enrichedTx = { ...tx };
|
|
@@ -1651,15 +1652,15 @@ function useTransactions(options = {}) {
|
|
|
1651
1652
|
};
|
|
1652
1653
|
},
|
|
1653
1654
|
[rpcClient, address, limit, fetchDetails, detailsConcurrency, parseTransaction, imageProxy]
|
|
1654
|
-
), queryFn =
|
|
1655
|
+
), queryFn = React4.useCallback(
|
|
1655
1656
|
async (signal) => {
|
|
1656
|
-
if (!
|
|
1657
|
+
if (!isConnected2 || !address || !rpcClient || !cluster)
|
|
1657
1658
|
return [];
|
|
1658
1659
|
throwIfAborted(signal);
|
|
1659
1660
|
let result = await fetchAndEnrichTransactions(void 0, cluster, signal);
|
|
1660
1661
|
return throwIfAborted(signal), result.transactions;
|
|
1661
1662
|
},
|
|
1662
|
-
[
|
|
1663
|
+
[isConnected2, address, rpcClient, cluster, fetchAndEnrichTransactions]
|
|
1663
1664
|
), {
|
|
1664
1665
|
data: initialTransactions,
|
|
1665
1666
|
error,
|
|
@@ -1674,10 +1675,10 @@ function useTransactions(options = {}) {
|
|
|
1674
1675
|
refetchOnMount,
|
|
1675
1676
|
refetchIntervalMs: autoRefresh ? refreshInterval : false
|
|
1676
1677
|
});
|
|
1677
|
-
|
|
1678
|
+
React4.useEffect(() => {
|
|
1678
1679
|
initialTransactions && (beforeSignatureRef.current = initialTransactions.length ? initialTransactions[initialTransactions.length - 1].signature : void 0, setHasMore(initialTransactions.length === limit), setPaginatedTransactions((prev) => prev.length ? [] : prev));
|
|
1679
1680
|
}, [initialTransactions, limit]);
|
|
1680
|
-
let loadMoreFn =
|
|
1681
|
+
let loadMoreFn = React4.useCallback(async () => {
|
|
1681
1682
|
if (!(!hasMore || isPaginationLoading || !cluster)) {
|
|
1682
1683
|
setIsPaginationLoading(true);
|
|
1683
1684
|
try {
|
|
@@ -1689,13 +1690,13 @@ function useTransactions(options = {}) {
|
|
|
1689
1690
|
setIsPaginationLoading(false);
|
|
1690
1691
|
}
|
|
1691
1692
|
}
|
|
1692
|
-
}, [hasMore, isPaginationLoading, cluster, fetchAndEnrichTransactions]), refetch =
|
|
1693
|
+
}, [hasMore, isPaginationLoading, cluster, fetchAndEnrichTransactions]), refetch = React4.useCallback(
|
|
1693
1694
|
async (opts) => {
|
|
1694
1695
|
beforeSignatureRef.current = void 0, setPaginatedTransactions([]), setHasMore(true), await sharedRefetch(opts);
|
|
1695
1696
|
},
|
|
1696
1697
|
[sharedRefetch]
|
|
1697
|
-
), transactions =
|
|
1698
|
-
return
|
|
1698
|
+
), transactions = React4.useMemo(() => [...initialTransactions ?? [], ...paginatedTransactions], [initialTransactions, paginatedTransactions]), isLoading = isInitialLoading || isPaginationLoading, visibleError = updatedAt ? null : error;
|
|
1699
|
+
return React4.useMemo(
|
|
1699
1700
|
() => ({
|
|
1700
1701
|
transactions,
|
|
1701
1702
|
isLoading,
|
|
@@ -1714,10 +1715,10 @@ function getTokensQueryKey(rpcUrl, address) {
|
|
|
1714
1715
|
}
|
|
1715
1716
|
var CACHE_MAX_SIZE = 500, PRICE_CACHE_TTL = 6e4, STALE_CLEANUP_INTERVAL = 12e4, COINGECKO_DEFAULT_MAX_RETRIES = 3, COINGECKO_DEFAULT_BASE_DELAY = 1e3, COINGECKO_DEFAULT_MAX_TIMEOUT = 3e4, COINGECKO_API_BASE_URL = "https://api.coingecko.com/api/v3", LRUCache = class {
|
|
1716
1717
|
constructor(maxSize, options) {
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1718
|
+
chunkL5FWMNWO_js.__publicField(this, "cache", /* @__PURE__ */ new Map());
|
|
1719
|
+
chunkL5FWMNWO_js.__publicField(this, "maxSize");
|
|
1720
|
+
chunkL5FWMNWO_js.__publicField(this, "getTtl");
|
|
1721
|
+
chunkL5FWMNWO_js.__publicField(this, "getTimestamp");
|
|
1721
1722
|
this.maxSize = maxSize, this.getTtl = options?.getTtl, this.getTimestamp = options?.getTimestamp;
|
|
1722
1723
|
}
|
|
1723
1724
|
get(key) {
|
|
@@ -1887,12 +1888,12 @@ async function fetchTokenMetadataHybrid(mints, coingeckoConfig, options) {
|
|
|
1887
1888
|
return didUpdatePrices && options?.onUpdate?.(), didUpdate;
|
|
1888
1889
|
}
|
|
1889
1890
|
function formatBalance(amount, decimals) {
|
|
1890
|
-
return
|
|
1891
|
+
return chunkTRSJSU33_js.formatBigIntBalance(amount, decimals, {
|
|
1891
1892
|
maxDecimals: Math.min(decimals, 6)
|
|
1892
1893
|
});
|
|
1893
1894
|
}
|
|
1894
1895
|
function formatUsd(amount, decimals, usdPrice) {
|
|
1895
|
-
return
|
|
1896
|
+
return chunkTRSJSU33_js.formatBigIntUsd(amount, decimals, usdPrice);
|
|
1896
1897
|
}
|
|
1897
1898
|
function selectTokens(assets, address) {
|
|
1898
1899
|
return {
|
|
@@ -1920,7 +1921,7 @@ function useTokens(options = {}) {
|
|
|
1920
1921
|
// 5 minutes
|
|
1921
1922
|
refetchOnMount = "stale",
|
|
1922
1923
|
client: clientOverride
|
|
1923
|
-
} = options, {
|
|
1924
|
+
} = options, { account, isConnected: isConnected2 } = useWallet(), address = React4.useMemo(() => account ? String(account) : null, [account]), { type: clusterType } = useCluster(), connectorConfig = useConnectorClient()?.getConfig(), imageProxy = connectorConfig?.imageProxy, coingeckoConfig = connectorConfig?.coingecko, selectFn = React4.useCallback(
|
|
1924
1925
|
(assets) => selectTokens(assets, address ?? ""),
|
|
1925
1926
|
[address]
|
|
1926
1927
|
), {
|
|
@@ -1938,7 +1939,7 @@ function useTokens(options = {}) {
|
|
|
1938
1939
|
refetchIntervalMs: autoRefresh ? refreshInterval : false,
|
|
1939
1940
|
client: clientOverride,
|
|
1940
1941
|
select: selectFn
|
|
1941
|
-
}), lamports = selection?.lamports ?? 0n, tokenAccounts = selection?.tokenAccounts ?? [], walletAddress = selection?.address ?? "", baseTokens =
|
|
1942
|
+
}), lamports = selection?.lamports ?? 0n, tokenAccounts = selection?.tokenAccounts ?? [], walletAddress = selection?.address ?? "", baseTokens = React4.useMemo(() => {
|
|
1942
1943
|
let result = [];
|
|
1943
1944
|
includeNativeSol && walletAddress && (includeZeroBalance || lamports > 0n) && result.push({
|
|
1944
1945
|
mint: NATIVE_SOL_MINT,
|
|
@@ -1949,25 +1950,25 @@ function useTokens(options = {}) {
|
|
|
1949
1950
|
isFrozen: false,
|
|
1950
1951
|
owner: walletAddress
|
|
1951
1952
|
});
|
|
1952
|
-
for (let
|
|
1953
|
-
!includeZeroBalance &&
|
|
1954
|
-
mint:
|
|
1955
|
-
tokenAccount:
|
|
1956
|
-
amount:
|
|
1957
|
-
decimals:
|
|
1958
|
-
formatted: formatBalance(
|
|
1959
|
-
isFrozen:
|
|
1960
|
-
owner:
|
|
1961
|
-
programId:
|
|
1953
|
+
for (let account2 of tokenAccounts)
|
|
1954
|
+
!includeZeroBalance && account2.amount === 0n || result.push({
|
|
1955
|
+
mint: account2.mint,
|
|
1956
|
+
tokenAccount: account2.pubkey,
|
|
1957
|
+
amount: account2.amount,
|
|
1958
|
+
decimals: account2.decimals,
|
|
1959
|
+
formatted: formatBalance(account2.amount, account2.decimals),
|
|
1960
|
+
isFrozen: account2.isFrozen,
|
|
1961
|
+
owner: account2.owner,
|
|
1962
|
+
programId: account2.programId
|
|
1962
1963
|
});
|
|
1963
1964
|
return result;
|
|
1964
|
-
}, [lamports, tokenAccounts, walletAddress, includeNativeSol, includeZeroBalance]), mints =
|
|
1965
|
+
}, [lamports, tokenAccounts, walletAddress, includeNativeSol, includeZeroBalance]), mints = React4.useMemo(() => {
|
|
1965
1966
|
let unique = /* @__PURE__ */ new Set();
|
|
1966
1967
|
for (let token of baseTokens)
|
|
1967
1968
|
unique.add(token.mint);
|
|
1968
1969
|
return [...unique].sort();
|
|
1969
|
-
}, [baseTokens]), mintsKey =
|
|
1970
|
-
|
|
1970
|
+
}, [baseTokens]), mintsKey = React4.useMemo(() => mints.join(","), [mints]), [metadataVersion, setMetadataVersion] = React4.useState(0);
|
|
1971
|
+
React4.useEffect(() => {
|
|
1971
1972
|
if (!fetchMetadata || !mintsKey) return;
|
|
1972
1973
|
let isMounted = true;
|
|
1973
1974
|
return (async () => {
|
|
@@ -1986,7 +1987,7 @@ function useTokens(options = {}) {
|
|
|
1986
1987
|
isMounted = false;
|
|
1987
1988
|
};
|
|
1988
1989
|
}, [mintsKey, fetchMetadata, coingeckoConfig, clusterType]);
|
|
1989
|
-
let tokens =
|
|
1990
|
+
let tokens = React4.useMemo(() => fetchMetadata ? baseTokens.map((token) => {
|
|
1990
1991
|
let meta = metadataCache.get(token.mint);
|
|
1991
1992
|
if (!meta) return token;
|
|
1992
1993
|
let usdPrice = (meta.coingeckoId ? priceCache.get(meta.coingeckoId) : void 0)?.price ?? meta.usdPrice;
|
|
@@ -1999,18 +2000,18 @@ function useTokens(options = {}) {
|
|
|
1999
2000
|
formattedUsd: usdPrice ? formatUsd(token.amount, token.decimals, usdPrice) : void 0
|
|
2000
2001
|
};
|
|
2001
2002
|
}).sort(sortByValueDesc) : baseTokens.slice().sort(sortByValueDesc), [baseTokens, fetchMetadata, imageProxy, metadataVersion]), totalAccounts = tokenAccounts.length + (includeNativeSol ? 1 : 0);
|
|
2002
|
-
|
|
2003
|
-
let wasConnectedRef =
|
|
2004
|
-
|
|
2005
|
-
wasConnectedRef.current && !
|
|
2006
|
-
}, [
|
|
2007
|
-
let visibleError = updatedAt ? null : error, refetch =
|
|
2003
|
+
React4.useEffect(() => (startCacheCleanup(), () => stopCacheCleanup()), []);
|
|
2004
|
+
let wasConnectedRef = React4.useRef(isConnected2);
|
|
2005
|
+
React4.useEffect(() => {
|
|
2006
|
+
wasConnectedRef.current && !isConnected2 && clearTokenCaches(), wasConnectedRef.current = isConnected2;
|
|
2007
|
+
}, [isConnected2]);
|
|
2008
|
+
let visibleError = updatedAt ? null : error, refetch = React4.useCallback(
|
|
2008
2009
|
async (opts) => {
|
|
2009
2010
|
await sharedRefetch(opts);
|
|
2010
2011
|
},
|
|
2011
2012
|
[sharedRefetch]
|
|
2012
2013
|
);
|
|
2013
|
-
return
|
|
2014
|
+
return React4.useMemo(
|
|
2014
2015
|
() => ({
|
|
2015
2016
|
tokens,
|
|
2016
2017
|
isLoading: isFetching,
|
|
@@ -2032,17 +2033,12 @@ function DisconnectElement({
|
|
|
2032
2033
|
onDisconnect,
|
|
2033
2034
|
render
|
|
2034
2035
|
}) {
|
|
2035
|
-
let {
|
|
2036
|
-
|
|
2037
|
-
try {
|
|
2038
|
-
await disconnect(), onDisconnect?.();
|
|
2039
|
-
} finally {
|
|
2040
|
-
setDisconnecting(false);
|
|
2041
|
-
}
|
|
2036
|
+
let { isConnecting: isConnecting2 } = useWallet(), { disconnect, isDisconnecting } = useDisconnectWallet(), handleDisconnect = async () => {
|
|
2037
|
+
await disconnect(), onDisconnect?.();
|
|
2042
2038
|
};
|
|
2043
2039
|
if (render)
|
|
2044
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: render({ disconnect: handleDisconnect, disconnecting }) });
|
|
2045
|
-
let isDisabled =
|
|
2040
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: render({ disconnect: handleDisconnect, disconnecting: isDisconnecting }) });
|
|
2041
|
+
let isDisabled = isConnecting2 || isDisconnecting, content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2046
2042
|
showIcon && (icon || showIcon && !icon && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2047
2043
|
"svg",
|
|
2048
2044
|
{
|
|
@@ -2074,7 +2070,7 @@ function DisconnectElement({
|
|
|
2074
2070
|
disabled: isDisabled,
|
|
2075
2071
|
"data-slot": "disconnect-element",
|
|
2076
2072
|
"data-variant": "button",
|
|
2077
|
-
"data-disconnecting":
|
|
2073
|
+
"data-disconnecting": isDisconnecting,
|
|
2078
2074
|
children: content
|
|
2079
2075
|
}
|
|
2080
2076
|
) : variant === "link" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2086,7 +2082,7 @@ function DisconnectElement({
|
|
|
2086
2082
|
disabled: isDisabled,
|
|
2087
2083
|
"data-slot": "disconnect-element",
|
|
2088
2084
|
"data-variant": "link",
|
|
2089
|
-
"data-disconnecting":
|
|
2085
|
+
"data-disconnecting": isDisconnecting,
|
|
2090
2086
|
children: content
|
|
2091
2087
|
}
|
|
2092
2088
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2099,7 +2095,7 @@ function DisconnectElement({
|
|
|
2099
2095
|
disabled: isDisabled,
|
|
2100
2096
|
"data-slot": "disconnect-element",
|
|
2101
2097
|
"data-variant": "menuitem",
|
|
2102
|
-
"data-disconnecting":
|
|
2098
|
+
"data-disconnecting": isDisconnecting,
|
|
2103
2099
|
children: content
|
|
2104
2100
|
}
|
|
2105
2101
|
);
|
|
@@ -2114,8 +2110,16 @@ function AccountElement({
|
|
|
2114
2110
|
variant = "compact",
|
|
2115
2111
|
render
|
|
2116
2112
|
}) {
|
|
2117
|
-
let { address, formatted,
|
|
2118
|
-
|
|
2113
|
+
let { account, connectorId } = useWallet(), connectors = useWalletConnectors(), address = React4__default.default.useMemo(() => account ? String(account) : null, [account]), formatted = React4__default.default.useMemo(() => address ? chunkTRSJSU33_js.formatAddress(address) : "", [address]), connector = React4__default.default.useMemo(() => connectorId ? connectors.find((c) => c.id === connectorId) ?? null : null, [connectors, connectorId]), walletName = connector?.name ?? null, walletIcon = connector?.icon ? connector.icon : null, [copied, setCopied] = React4__default.default.useState(false), copyTimeoutRef = React4__default.default.useRef(void 0), copy = React4__default.default.useCallback(async () => address ? (copyTimeoutRef.current && clearTimeout(copyTimeoutRef.current), await chunkTRSJSU33_js.copyAddressToClipboard(address, {
|
|
2114
|
+
onSuccess: () => {
|
|
2115
|
+
setCopied(true), copyTimeoutRef.current = setTimeout(() => setCopied(false), 2e3);
|
|
2116
|
+
}
|
|
2117
|
+
})) : {
|
|
2118
|
+
success: false
|
|
2119
|
+
}, [address]);
|
|
2120
|
+
if (React4__default.default.useEffect(() => () => {
|
|
2121
|
+
copyTimeoutRef.current && clearTimeout(copyTimeoutRef.current);
|
|
2122
|
+
}, []), render)
|
|
2119
2123
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: render({ address, formatted, walletName, walletIcon, copy, copied }) });
|
|
2120
2124
|
if (!address) return null;
|
|
2121
2125
|
let displayAddress = showFullAddress ? address : formatted, handleCopy = async (e) => {
|
|
@@ -2276,7 +2280,7 @@ function ClusterElement({
|
|
|
2276
2280
|
labels = {},
|
|
2277
2281
|
render
|
|
2278
2282
|
}) {
|
|
2279
|
-
let { cluster, clusters, setCluster, isMainnet, isDevnet, isTestnet, isLocal } = useCluster(), [isOpen, setIsOpen] =
|
|
2283
|
+
let { cluster, clusters, setCluster, isMainnet, isDevnet, isTestnet, isLocal } = useCluster(), [isOpen, setIsOpen] = React4__default.default.useState(false);
|
|
2280
2284
|
if (render)
|
|
2281
2285
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: render({ cluster, clusters, setCluster, isMainnet, isDevnet, isTestnet, isLocal }) });
|
|
2282
2286
|
if (!cluster) return null;
|
|
@@ -2487,19 +2491,28 @@ function WalletListElement({
|
|
|
2487
2491
|
render,
|
|
2488
2492
|
renderWallet
|
|
2489
2493
|
}) {
|
|
2490
|
-
let
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
+
let connectors = useWalletConnectors(), { isConnecting: isConnectingGlobal } = useWallet(), { connect, isConnecting: isConnectingLocal } = useConnectWallet(), connecting = isConnectingGlobal || isConnectingLocal, wallets = React4__default.default.useMemo(
|
|
2495
|
+
() => connectors.map((c) => ({
|
|
2496
|
+
name: c.name,
|
|
2497
|
+
connectorId: c.id,
|
|
2498
|
+
icon: c.icon || void 0,
|
|
2499
|
+
installed: c.ready,
|
|
2500
|
+
connectable: c.ready
|
|
2501
|
+
})),
|
|
2502
|
+
[connectors]
|
|
2503
|
+
), installedWallets = wallets.filter((w) => w.installed), displayWallets = installedOnly ? installedWallets : wallets, handleSelect = async (walletName) => {
|
|
2504
|
+
let wallet = wallets.find((w) => w.name === walletName);
|
|
2494
2505
|
if (!wallet) {
|
|
2495
|
-
let
|
|
2506
|
+
let availableWalletNames = wallets.map((w) => w.name);
|
|
2496
2507
|
console.warn(
|
|
2497
|
-
`[WalletListElement] Wallet not found for
|
|
2498
|
-
|
|
2508
|
+
`[WalletListElement] Wallet not found for walletName: ${walletName}. Available wallets (${availableWalletNames.length}):`,
|
|
2509
|
+
availableWalletNames
|
|
2499
2510
|
);
|
|
2500
2511
|
return;
|
|
2501
2512
|
}
|
|
2502
|
-
await
|
|
2513
|
+
await connect(wallet.connectorId), onSelect?.(walletName), onConnect?.(wallet.connectorId);
|
|
2514
|
+
}, handleConnectById = async (connectorId) => {
|
|
2515
|
+
await connect(connectorId), onConnect?.(connectorId);
|
|
2503
2516
|
};
|
|
2504
2517
|
if (render)
|
|
2505
2518
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: render({
|
|
@@ -2568,7 +2581,7 @@ function WalletListElement({
|
|
|
2568
2581
|
"data-variant": "grid",
|
|
2569
2582
|
children: displayWallets.map((wallet) => {
|
|
2570
2583
|
let handleWalletConnect = () => handleConnectById(wallet.connectorId);
|
|
2571
|
-
return renderWallet ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2584
|
+
return renderWallet ? /* @__PURE__ */ jsxRuntime.jsx(React4__default.default.Fragment, { children: renderWallet({
|
|
2572
2585
|
wallet,
|
|
2573
2586
|
select: handleWalletConnect,
|
|
2574
2587
|
connect: handleWalletConnect,
|
|
@@ -2579,7 +2592,7 @@ function WalletListElement({
|
|
|
2579
2592
|
type: "button",
|
|
2580
2593
|
className: "ck-wallet-list-item ck-wallet-list-item--grid",
|
|
2581
2594
|
onClick: handleWalletConnect,
|
|
2582
|
-
disabled: connecting || !wallet.
|
|
2595
|
+
disabled: connecting || !wallet.connectable,
|
|
2583
2596
|
"data-slot": "wallet-list-item",
|
|
2584
2597
|
"data-wallet": wallet.name,
|
|
2585
2598
|
"data-connector-id": wallet.connectorId,
|
|
@@ -2602,7 +2615,7 @@ function WalletListElement({
|
|
|
2602
2615
|
"data-variant": "compact",
|
|
2603
2616
|
children: displayWallets.map((wallet) => {
|
|
2604
2617
|
let handleWalletConnect = () => handleConnectById(wallet.connectorId);
|
|
2605
|
-
return renderWallet ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2618
|
+
return renderWallet ? /* @__PURE__ */ jsxRuntime.jsx(React4__default.default.Fragment, { children: renderWallet({
|
|
2606
2619
|
wallet,
|
|
2607
2620
|
select: handleWalletConnect,
|
|
2608
2621
|
connect: handleWalletConnect,
|
|
@@ -2613,7 +2626,7 @@ function WalletListElement({
|
|
|
2613
2626
|
type: "button",
|
|
2614
2627
|
className: "ck-wallet-list-item ck-wallet-list-item--compact",
|
|
2615
2628
|
onClick: handleWalletConnect,
|
|
2616
|
-
disabled: connecting || !wallet.
|
|
2629
|
+
disabled: connecting || !wallet.connectable,
|
|
2617
2630
|
"data-slot": "wallet-list-item",
|
|
2618
2631
|
"data-wallet": wallet.name,
|
|
2619
2632
|
"data-connector-id": wallet.connectorId,
|
|
@@ -2635,7 +2648,7 @@ function WalletListElement({
|
|
|
2635
2648
|
"data-variant": "list",
|
|
2636
2649
|
children: displayWallets.map((wallet) => {
|
|
2637
2650
|
let handleWalletConnect = () => handleConnectById(wallet.connectorId);
|
|
2638
|
-
return renderWallet ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2651
|
+
return renderWallet ? /* @__PURE__ */ jsxRuntime.jsx(React4__default.default.Fragment, { children: renderWallet({
|
|
2639
2652
|
wallet,
|
|
2640
2653
|
select: handleWalletConnect,
|
|
2641
2654
|
connect: handleWalletConnect,
|
|
@@ -2646,7 +2659,7 @@ function WalletListElement({
|
|
|
2646
2659
|
type: "button",
|
|
2647
2660
|
className: "ck-wallet-list-item ck-wallet-list-item--list",
|
|
2648
2661
|
onClick: handleWalletConnect,
|
|
2649
|
-
disabled: connecting || !wallet.
|
|
2662
|
+
disabled: connecting || !wallet.connectable,
|
|
2650
2663
|
"data-slot": "wallet-list-item",
|
|
2651
2664
|
"data-wallet": wallet.name,
|
|
2652
2665
|
"data-connector-id": wallet.connectorId,
|
|
@@ -2722,7 +2735,7 @@ function injectStyles() {
|
|
|
2722
2735
|
}
|
|
2723
2736
|
}
|
|
2724
2737
|
function SkeletonShine() {
|
|
2725
|
-
return
|
|
2738
|
+
return React4__default.default.useEffect(() => {
|
|
2726
2739
|
injectStyles();
|
|
2727
2740
|
}, []), /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ck-skeleton-shine", "data-slot": "skeleton-shine" });
|
|
2728
2741
|
}
|
|
@@ -3296,5 +3309,5 @@ exports.useWalletConnectUri = useWalletConnectUri;
|
|
|
3296
3309
|
exports.useWalletConnectors = useWalletConnectors;
|
|
3297
3310
|
exports.useWalletInfo = useWalletInfo;
|
|
3298
3311
|
exports.withErrorBoundary = withErrorBoundary;
|
|
3299
|
-
//# sourceMappingURL=chunk-
|
|
3300
|
-
//# sourceMappingURL=chunk-
|
|
3312
|
+
//# sourceMappingURL=chunk-VVLY6QPI.js.map
|
|
3313
|
+
//# sourceMappingURL=chunk-VVLY6QPI.js.map
|