@solana/connector 0.2.2 → 0.2.3
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 +17 -0
- package/dist/{chunk-VVLY6QPI.js → chunk-B6YBZB6H.js} +18 -18
- package/dist/{chunk-VVLY6QPI.js.map → chunk-B6YBZB6H.js.map} +1 -1
- package/dist/{chunk-SQ2JEA2M.mjs → chunk-DFKGCW7K.mjs} +53 -14
- package/dist/chunk-DFKGCW7K.mjs.map +1 -0
- package/dist/{chunk-TRSJSU33.js → chunk-ULEPN4NL.js} +53 -14
- package/dist/chunk-ULEPN4NL.js.map +1 -0
- package/dist/{chunk-3623Z2QL.mjs → chunk-UOML5ULB.mjs} +3 -3
- package/dist/{chunk-3623Z2QL.mjs.map → chunk-UOML5ULB.mjs.map} +1 -1
- package/dist/{chunk-DFHJYZKZ.mjs → chunk-WPDCSFX2.mjs} +3 -3
- package/dist/{chunk-DFHJYZKZ.mjs.map → chunk-WPDCSFX2.mjs.map} +1 -1
- package/dist/{chunk-I2XX5FUG.js → chunk-X2X5TFXS.js} +4 -4
- package/dist/{chunk-I2XX5FUG.js.map → chunk-X2X5TFXS.js.map} +1 -1
- package/dist/headless.d.mts +7 -2
- package/dist/headless.d.ts +7 -2
- package/dist/headless.js +107 -107
- package/dist/headless.mjs +2 -2
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +148 -148
- package/dist/index.mjs +3 -3
- package/dist/react.d.mts +2 -2
- package/dist/react.d.ts +2 -2
- package/dist/react.js +49 -49
- package/dist/react.mjs +2 -2
- package/dist/{standard-shim-Cg6fmjK_.d.ts → standard-shim-BB0Lkg_C.d.ts} +34 -1
- package/dist/{standard-shim-Cz4UNS7t.d.mts → standard-shim-n5phZB1d.d.mts} +34 -1
- package/package.json +1 -1
- package/dist/chunk-SQ2JEA2M.mjs.map +0 -1
- package/dist/chunk-TRSJSU33.js.map +0 -1
package/README.md
CHANGED
|
@@ -70,6 +70,12 @@ export function Providers({ children }: { children: React.ReactNode }) {
|
|
|
70
70
|
autoConnect: true,
|
|
71
71
|
enableMobile: true,
|
|
72
72
|
clusters,
|
|
73
|
+
// Optional: Control which detected wallets are shown/available (Wallet Standard auto-discovery)
|
|
74
|
+
wallets: {
|
|
75
|
+
allowList: ['Phantom', 'Solflare', 'Backpack'],
|
|
76
|
+
denyList: ['Keplr', 'MetaMask'],
|
|
77
|
+
featured: ['Phantom', 'Solflare'],
|
|
78
|
+
},
|
|
73
79
|
});
|
|
74
80
|
}, []);
|
|
75
81
|
|
|
@@ -90,6 +96,16 @@ export function Providers({ children }: { children: React.ReactNode }) {
|
|
|
90
96
|
}
|
|
91
97
|
```
|
|
92
98
|
|
|
99
|
+
**Optional: Wallet filtering & ordering**
|
|
100
|
+
|
|
101
|
+
ConnectorKit auto-detects wallets via Wallet Standard. To improve UX for users with many installed wallets, you can filter/prioritize the detected list using `wallets`.
|
|
102
|
+
|
|
103
|
+
- `allowList`: only expose these wallet names
|
|
104
|
+
- `denyList`: hide these wallet names (deny wins)
|
|
105
|
+
- `featured`: show these wallets first
|
|
106
|
+
|
|
107
|
+
This is **full-scope** filtering: hidden wallets are removed from `connectors` and cannot be selected or auto-connected.
|
|
108
|
+
|
|
93
109
|
### 3. Use Hooks (in any component)
|
|
94
110
|
|
|
95
111
|
```typescript
|
|
@@ -1467,6 +1483,7 @@ import { AppProvider, useConnector, useWallet, useConnectWallet } from '@solana/
|
|
|
1467
1483
|
import type {
|
|
1468
1484
|
// Configuration
|
|
1469
1485
|
ConnectorConfig,
|
|
1486
|
+
WalletDisplayConfig,
|
|
1470
1487
|
DefaultConfigOptions,
|
|
1471
1488
|
ExtendedConnectorConfig,
|
|
1472
1489
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkULEPN4NL_js = require('./chunk-ULEPN4NL.js');
|
|
4
4
|
var chunkBF67LVVM_js = require('./chunk-BF67LVVM.js');
|
|
5
5
|
var chunkL5FWMNWO_js = require('./chunk-L5FWMNWO.js');
|
|
6
6
|
var React4 = require('react');
|
|
@@ -314,7 +314,7 @@ function useWalletConnectUri() {
|
|
|
314
314
|
};
|
|
315
315
|
}
|
|
316
316
|
var logger2 = chunkBF67LVVM_js.createLogger("ConnectorProvider");
|
|
317
|
-
|
|
317
|
+
chunkULEPN4NL_js.installPolyfills();
|
|
318
318
|
var ConnectorContext = React4.createContext(null);
|
|
319
319
|
ConnectorContext.displayName = "ConnectorContext";
|
|
320
320
|
function ConnectorProviderInternal({
|
|
@@ -325,7 +325,7 @@ function ConnectorProviderInternal({
|
|
|
325
325
|
let clientRef = React4.useRef(null), client = React4__default.default.useCallback(() => {
|
|
326
326
|
if (!clientRef.current)
|
|
327
327
|
try {
|
|
328
|
-
clientRef.current = new
|
|
328
|
+
clientRef.current = new chunkULEPN4NL_js.ConnectorClient(config), typeof window < "u" && (window.__connectorClient = clientRef.current), config?.debug && logger2.info("Client initialized successfully");
|
|
329
329
|
} catch (error) {
|
|
330
330
|
let err = error;
|
|
331
331
|
logger2.error("Failed to initialize client", { error: err });
|
|
@@ -568,7 +568,7 @@ function useCluster() {
|
|
|
568
568
|
[client]
|
|
569
569
|
);
|
|
570
570
|
return React4.useMemo(() => {
|
|
571
|
-
let isMainnet = cluster ?
|
|
571
|
+
let isMainnet = cluster ? chunkULEPN4NL_js.isMainnetCluster(cluster) : false, isDevnet = cluster ? chunkULEPN4NL_js.isDevnetCluster(cluster) : false, isTestnet = cluster ? chunkULEPN4NL_js.isTestnetCluster(cluster) : false, isLocal = cluster ? chunkULEPN4NL_js.isLocalCluster(cluster) : false, explorerUrl = cluster ? chunkULEPN4NL_js.getClusterExplorerUrl(cluster) : "", type = cluster ? chunkULEPN4NL_js.getClusterType(cluster) : null;
|
|
572
572
|
return {
|
|
573
573
|
cluster,
|
|
574
574
|
clusters,
|
|
@@ -586,7 +586,7 @@ function useAccount() {
|
|
|
586
586
|
let { selectedAccount, accounts, connected, selectAccount } = useConnector(), [copied, setCopied] = React4.useState(false), copyTimeoutRef = React4__default.default.useRef(void 0), account = React4.useMemo(
|
|
587
587
|
() => accounts.find((a) => a.address === selectedAccount) ?? null,
|
|
588
588
|
[accounts, selectedAccount]
|
|
589
|
-
), formatted = React4.useMemo(() => selectedAccount ?
|
|
589
|
+
), formatted = React4.useMemo(() => selectedAccount ? chunkULEPN4NL_js.formatAddress(selectedAccount) : "", [selectedAccount]), copy = React4.useCallback(async () => selectedAccount ? (copyTimeoutRef.current && clearTimeout(copyTimeoutRef.current), await chunkULEPN4NL_js.copyAddressToClipboard(selectedAccount, {
|
|
590
590
|
onSuccess: () => {
|
|
591
591
|
setCopied(true), copyTimeoutRef.current = setTimeout(() => setCopied(false), 2e3);
|
|
592
592
|
}
|
|
@@ -616,7 +616,7 @@ function useWalletInfo() {
|
|
|
616
616
|
() => wallets.map(
|
|
617
617
|
(walletInfo) => ({
|
|
618
618
|
name: walletInfo.wallet.name,
|
|
619
|
-
connectorId:
|
|
619
|
+
connectorId: chunkULEPN4NL_js.createConnectorId(walletInfo.wallet.name),
|
|
620
620
|
icon: walletInfo.wallet.icon,
|
|
621
621
|
installed: walletInfo.installed,
|
|
622
622
|
connectable: walletInfo.connectable
|
|
@@ -653,7 +653,7 @@ function useTransactionSigner() {
|
|
|
653
653
|
let { selectedWallet, selectedAccount, accounts, cluster, connected } = useConnector(), client = useConnectorClient(), account = React4.useMemo(
|
|
654
654
|
() => accounts.find((a) => a.address === selectedAccount)?.raw ?? null,
|
|
655
655
|
[accounts, selectedAccount]
|
|
656
|
-
), signer = React4.useMemo(() => !connected || !selectedWallet || !account ? null :
|
|
656
|
+
), signer = React4.useMemo(() => !connected || !selectedWallet || !account ? null : chunkULEPN4NL_js.createTransactionSigner({
|
|
657
657
|
wallet: selectedWallet,
|
|
658
658
|
account,
|
|
659
659
|
cluster: cluster ?? void 0,
|
|
@@ -681,7 +681,7 @@ function useTransactionSigner() {
|
|
|
681
681
|
function useKitTransactionSigner() {
|
|
682
682
|
let { signer: connectorSigner, ready } = useTransactionSigner();
|
|
683
683
|
return {
|
|
684
|
-
signer: React4.useMemo(() => connectorSigner ?
|
|
684
|
+
signer: React4.useMemo(() => connectorSigner ? chunkULEPN4NL_js.createKitTransactionSigner(connectorSigner) : null, [connectorSigner]),
|
|
685
685
|
ready
|
|
686
686
|
};
|
|
687
687
|
}
|
|
@@ -1066,7 +1066,7 @@ function getBalanceQueryKey(rpcUrl, address) {
|
|
|
1066
1066
|
}
|
|
1067
1067
|
var LAMPORTS_PER_SOL2 = 1000000000n;
|
|
1068
1068
|
function formatTokenAccount(account) {
|
|
1069
|
-
let formatted =
|
|
1069
|
+
let formatted = chunkULEPN4NL_js.formatBigIntBalance(account.amount, account.decimals, {
|
|
1070
1070
|
maxDecimals: Math.min(account.decimals, 6)
|
|
1071
1071
|
});
|
|
1072
1072
|
return {
|
|
@@ -1110,7 +1110,7 @@ function useBalance(options = {}) {
|
|
|
1110
1110
|
refetchIntervalMs: autoRefresh ? refreshInterval : false,
|
|
1111
1111
|
client: clientOverride,
|
|
1112
1112
|
select: selectBalance
|
|
1113
|
-
}), lamports = data?.lamports ?? 0n, tokens = data?.tokens ?? [], solBalance = React4.useMemo(() => Number(lamports) / Number(LAMPORTS_PER_SOL2), [lamports]), formattedSol = React4.useMemo(() =>
|
|
1113
|
+
}), lamports = data?.lamports ?? 0n, tokens = data?.tokens ?? [], solBalance = React4.useMemo(() => Number(lamports) / Number(LAMPORTS_PER_SOL2), [lamports]), formattedSol = React4.useMemo(() => chunkULEPN4NL_js.formatLamportsToSolSafe(lamports, { maxDecimals: 4, suffix: true }), [lamports]), visibleError = updatedAt ? null : error, refetch = React4.useCallback(
|
|
1114
1114
|
async (opts) => {
|
|
1115
1115
|
await sharedRefetch(opts);
|
|
1116
1116
|
},
|
|
@@ -1579,7 +1579,7 @@ function useTransactions(options = {}) {
|
|
|
1579
1579
|
blockTimeNum,
|
|
1580
1580
|
Number(sig.slot),
|
|
1581
1581
|
sig.err,
|
|
1582
|
-
|
|
1582
|
+
chunkULEPN4NL_js.getTransactionUrl(String(sig.signature), currentCluster)
|
|
1583
1583
|
);
|
|
1584
1584
|
});
|
|
1585
1585
|
} else
|
|
@@ -1594,7 +1594,7 @@ function useTransactions(options = {}) {
|
|
|
1594
1594
|
type: "unknown",
|
|
1595
1595
|
formattedDate: date,
|
|
1596
1596
|
formattedTime: time,
|
|
1597
|
-
explorerUrl:
|
|
1597
|
+
explorerUrl: chunkULEPN4NL_js.getTransactionUrl(String(sig.signature), currentCluster)
|
|
1598
1598
|
};
|
|
1599
1599
|
});
|
|
1600
1600
|
let mintsToFetch = [
|
|
@@ -1608,7 +1608,7 @@ function useTransactions(options = {}) {
|
|
|
1608
1608
|
throwIfAborted(signal);
|
|
1609
1609
|
let tokenMetadata = await fetchTransactionTokenMetadata(mintsToFetch, {
|
|
1610
1610
|
signal,
|
|
1611
|
-
cluster:
|
|
1611
|
+
cluster: chunkULEPN4NL_js.getClusterType(currentCluster)
|
|
1612
1612
|
});
|
|
1613
1613
|
tokenMetadata.size > 0 && (newTransactions = newTransactions.map((tx) => {
|
|
1614
1614
|
let enrichedTx = { ...tx };
|
|
@@ -1888,12 +1888,12 @@ async function fetchTokenMetadataHybrid(mints, coingeckoConfig, options) {
|
|
|
1888
1888
|
return didUpdatePrices && options?.onUpdate?.(), didUpdate;
|
|
1889
1889
|
}
|
|
1890
1890
|
function formatBalance(amount, decimals) {
|
|
1891
|
-
return
|
|
1891
|
+
return chunkULEPN4NL_js.formatBigIntBalance(amount, decimals, {
|
|
1892
1892
|
maxDecimals: Math.min(decimals, 6)
|
|
1893
1893
|
});
|
|
1894
1894
|
}
|
|
1895
1895
|
function formatUsd(amount, decimals, usdPrice) {
|
|
1896
|
-
return
|
|
1896
|
+
return chunkULEPN4NL_js.formatBigIntUsd(amount, decimals, usdPrice);
|
|
1897
1897
|
}
|
|
1898
1898
|
function selectTokens(assets, address) {
|
|
1899
1899
|
return {
|
|
@@ -2110,7 +2110,7 @@ function AccountElement({
|
|
|
2110
2110
|
variant = "compact",
|
|
2111
2111
|
render
|
|
2112
2112
|
}) {
|
|
2113
|
-
let { account, connectorId } = useWallet(), connectors = useWalletConnectors(), address = React4__default.default.useMemo(() => account ? String(account) : null, [account]), formatted = React4__default.default.useMemo(() => address ?
|
|
2113
|
+
let { account, connectorId } = useWallet(), connectors = useWalletConnectors(), address = React4__default.default.useMemo(() => account ? String(account) : null, [account]), formatted = React4__default.default.useMemo(() => address ? chunkULEPN4NL_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 chunkULEPN4NL_js.copyAddressToClipboard(address, {
|
|
2114
2114
|
onSuccess: () => {
|
|
2115
2115
|
setCopied(true), copyTimeoutRef.current = setTimeout(() => setCopied(false), 2e3);
|
|
2116
2116
|
}
|
|
@@ -3309,5 +3309,5 @@ exports.useWalletConnectUri = useWalletConnectUri;
|
|
|
3309
3309
|
exports.useWalletConnectors = useWalletConnectors;
|
|
3310
3310
|
exports.useWalletInfo = useWalletInfo;
|
|
3311
3311
|
exports.withErrorBoundary = withErrorBoundary;
|
|
3312
|
-
//# sourceMappingURL=chunk-
|
|
3313
|
-
//# sourceMappingURL=chunk-
|
|
3312
|
+
//# sourceMappingURL=chunk-B6YBZB6H.js.map
|
|
3313
|
+
//# sourceMappingURL=chunk-B6YBZB6H.js.map
|