@solana/connector 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +83 -5
  2. package/dist/{chunk-APQGEW7S.mjs → chunk-6F6M6L7R.mjs} +73 -165
  3. package/dist/chunk-6F6M6L7R.mjs.map +1 -0
  4. package/dist/{chunk-VZ5Y6DIM.js → chunk-AOIXHVRH.js} +80 -235
  5. package/dist/chunk-AOIXHVRH.js.map +1 -0
  6. package/dist/chunk-DSUCH44G.js +678 -0
  7. package/dist/chunk-DSUCH44G.js.map +1 -0
  8. package/dist/{chunk-VA6LKXCQ.js → chunk-FTXIXM43.js} +157 -263
  9. package/dist/chunk-FTXIXM43.js.map +1 -0
  10. package/dist/{chunk-TQRJYZNK.mjs → chunk-G575OAT4.mjs} +71 -218
  11. package/dist/chunk-G575OAT4.mjs.map +1 -0
  12. package/dist/chunk-J7DHGLW6.mjs +638 -0
  13. package/dist/chunk-J7DHGLW6.mjs.map +1 -0
  14. package/dist/{chunk-Z22V3D4E.js → chunk-K3BNIGPX.js} +95 -37
  15. package/dist/chunk-K3BNIGPX.js.map +1 -0
  16. package/dist/{chunk-JK47EFJT.mjs → chunk-TTOKQAPX.mjs} +65 -14
  17. package/dist/chunk-TTOKQAPX.mjs.map +1 -0
  18. package/dist/compat.d.mts +1 -1
  19. package/dist/compat.d.ts +1 -1
  20. package/dist/compat.js +40 -39
  21. package/dist/compat.js.map +1 -1
  22. package/dist/compat.mjs +39 -38
  23. package/dist/compat.mjs.map +1 -1
  24. package/dist/headless.d.mts +447 -151
  25. package/dist/headless.d.ts +447 -151
  26. package/dist/headless.js +214 -194
  27. package/dist/headless.mjs +3 -3
  28. package/dist/index.d.mts +7 -6
  29. package/dist/index.d.ts +7 -6
  30. package/dist/index.js +268 -224
  31. package/dist/index.mjs +4 -4
  32. package/dist/react.d.mts +108 -7
  33. package/dist/react.d.ts +108 -7
  34. package/dist/react.js +54 -30
  35. package/dist/react.mjs +2 -2
  36. package/dist/{wallet-standard-shim-DiMvGjOk.d.ts → standard-shim-CT49DM5l.d.mts} +38 -247
  37. package/dist/{wallet-standard-shim-D4CYG5sU.d.mts → standard-shim-D9guL5fz.d.ts} +38 -247
  38. package/dist/{transaction-signer-CpGEvp7S.d.mts → transaction-signer-T-KVQFi8.d.mts} +1 -1
  39. package/dist/{transaction-signer-CpGEvp7S.d.ts → transaction-signer-T-KVQFi8.d.ts} +1 -1
  40. package/package.json +3 -3
  41. package/dist/chunk-APQGEW7S.mjs.map +0 -1
  42. package/dist/chunk-I64FD2EH.js +0 -312
  43. package/dist/chunk-I64FD2EH.js.map +0 -1
  44. package/dist/chunk-JK47EFJT.mjs.map +0 -1
  45. package/dist/chunk-QL3IT3TS.mjs +0 -299
  46. package/dist/chunk-QL3IT3TS.mjs.map +0 -1
  47. package/dist/chunk-TQRJYZNK.mjs.map +0 -1
  48. package/dist/chunk-VA6LKXCQ.js.map +0 -1
  49. package/dist/chunk-VZ5Y6DIM.js.map +0 -1
  50. package/dist/chunk-Z22V3D4E.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { installPolyfills, ConnectorErrorBoundary, isMainnetCluster, isDevnetCluster, isTestnetCluster, isLocalCluster, getClusterExplorerUrl, getClusterType, formatAddress, copyAddressToClipboard, createTransactionSigner, createKitTransactionSigner, NetworkError, formatLamportsToSolSafe, getTransactionUrl, ConnectorClient, formatBigIntBalance, formatBigIntUsd } from './chunk-APQGEW7S.mjs';
2
- import { createLogger, __publicField, createSolanaClient, prepareTransaction } from './chunk-QL3IT3TS.mjs';
1
+ import { installPolyfills, ConnectorErrorBoundary, isMainnetCluster, isDevnetCluster, isTestnetCluster, isLocalCluster, getClusterExplorerUrl, getClusterType, formatAddress, copyAddressToClipboard, createTransactionSigner, createKitTransactionSigner, formatLamportsToSolSafe, getTransactionUrl, ConnectorClient, formatBigIntBalance, formatBigIntUsd } from './chunk-6F6M6L7R.mjs';
2
+ import { createLogger, __publicField, createSolanaClient, NetworkError, prepareTransaction } from './chunk-J7DHGLW6.mjs';
3
3
  import React, { createContext, useContext, useSyncExternalStore, useMemo, useState, useCallback, useRef, useEffect } from 'react';
4
4
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
5
5
  import { address } from '@solana/addresses';
@@ -115,14 +115,15 @@ function useConnector() {
115
115
  function useConnectorClient() {
116
116
  return useContext(ConnectorContext);
117
117
  }
118
- function UnifiedProvider({ children, config, connectorConfig, mobile, providers = [] }) {
119
- let actualConnectorConfig = config?.connectorConfig ?? connectorConfig, actualMobile = config?.mobile ?? mobile, content = /* @__PURE__ */ jsx(ConnectorProvider, { config: actualConnectorConfig, mobile: actualMobile, children });
118
+ function AppProvider({ children, connectorConfig, mobile, providers = [] }) {
119
+ let content = /* @__PURE__ */ jsx(ConnectorProvider, { config: connectorConfig, mobile, children });
120
120
  for (let i = providers.length - 1; i >= 0; i--) {
121
121
  let { component: Provider, props = {} } = providers[i];
122
122
  content = /* @__PURE__ */ jsx(Provider, { ...props, children: content });
123
123
  }
124
124
  return content;
125
125
  }
126
+ var UnifiedProvider = AppProvider;
126
127
  function useCluster() {
127
128
  let { cluster, clusters } = useConnector(), client = useConnectorClient();
128
129
  if (!client)
@@ -550,6 +551,9 @@ function parseTokenAccount(account, programId) {
550
551
  programId
551
552
  };
552
553
  }
554
+ function getWalletAssetsQueryKey(rpcUrl, address) {
555
+ return !rpcUrl || !address ? null : JSON.stringify(["wallet-assets", rpcUrl, address]);
556
+ }
553
557
  function useWalletAssets(options = {}) {
554
558
  let {
555
559
  enabled = true,
@@ -563,7 +567,7 @@ function useWalletAssets(options = {}) {
563
567
  } = options, { address: address$1, connected } = useAccount(), { client: providerClient } = useSolanaClient(), rpcClient = clientOverride ?? providerClient, key = useMemo(() => {
564
568
  if (!enabled || !connected || !address$1 || !rpcClient) return null;
565
569
  let rpcUrl = rpcClient.urlOrMoniker instanceof URL ? rpcClient.urlOrMoniker.toString() : String(rpcClient.urlOrMoniker);
566
- return JSON.stringify(["wallet-assets", rpcUrl, address$1]);
570
+ return getWalletAssetsQueryKey(rpcUrl, address$1);
567
571
  }, [enabled, connected, address$1, rpcClient]), queryFn = useCallback(
568
572
  async (signal) => {
569
573
  if (!connected || !address$1 || !rpcClient)
@@ -623,6 +627,9 @@ function useWalletAssets(options = {}) {
623
627
  }
624
628
 
625
629
  // src/hooks/use-balance.ts
630
+ function getBalanceQueryKey(rpcUrl, address) {
631
+ return getWalletAssetsQueryKey(rpcUrl, address);
632
+ }
626
633
  var LAMPORTS_PER_SOL2 = 1000000000n;
627
634
  function formatTokenAccount(account) {
628
635
  let formatted = formatBigIntBalance(account.amount, account.decimals, {
@@ -786,6 +793,10 @@ function transformImageUrl(url, imageProxy) {
786
793
  }
787
794
 
788
795
  // src/hooks/use-transactions.ts
796
+ function getTransactionsQueryKey(options) {
797
+ let { rpcUrl, address, clusterId, limit = 20, fetchDetails = false } = options;
798
+ return !rpcUrl || !address || !clusterId ? null : JSON.stringify(["wallet-transactions", rpcUrl, address, clusterId, limit, fetchDetails]);
799
+ }
789
800
  function formatDate(timestamp) {
790
801
  if (!timestamp)
791
802
  return { date: "Unknown", time: "" };
@@ -1100,7 +1111,7 @@ function useTransactions(options = {}) {
1100
1111
  ), key = useMemo(() => {
1101
1112
  if (!enabled || !connected || !address$1 || !rpcClient || !cluster) return null;
1102
1113
  let rpcUrl = rpcClient.urlOrMoniker instanceof URL ? rpcClient.urlOrMoniker.toString() : String(rpcClient.urlOrMoniker);
1103
- return JSON.stringify(["wallet-transactions", rpcUrl, address$1, cluster.id, limit, fetchDetails]);
1114
+ return getTransactionsQueryKey({ rpcUrl, address: address$1, clusterId: cluster.id, limit, fetchDetails });
1104
1115
  }, [enabled, connected, address$1, rpcClient, cluster, limit, fetchDetails]);
1105
1116
  useEffect(() => {
1106
1117
  beforeSignatureRef.current = void 0, setPaginatedTransactions([]), setIsPaginationLoading(false), setHasMore(true);
@@ -1265,6 +1276,9 @@ function useTransactions(options = {}) {
1265
1276
  [transactions, isLoading, visibleError, hasMore, loadMoreFn, refetch, abort, updatedAt]
1266
1277
  );
1267
1278
  }
1279
+ function getTokensQueryKey(rpcUrl, address) {
1280
+ return getWalletAssetsQueryKey(rpcUrl, address);
1281
+ }
1268
1282
  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 {
1269
1283
  constructor(maxSize, options) {
1270
1284
  __publicField(this, "cache", /* @__PURE__ */ new Map());
@@ -2210,6 +2224,43 @@ function WalletListElement({
2210
2224
  );
2211
2225
  }
2212
2226
  WalletListElement.displayName = "WalletListElement";
2227
+ var shineStyles = `
2228
+ .ck-skeleton {
2229
+ position: relative;
2230
+ overflow: hidden;
2231
+ }
2232
+ .ck-skeleton-shine {
2233
+ position: absolute;
2234
+ top: 0;
2235
+ left: 0;
2236
+ width: 500%;
2237
+ height: 500%;
2238
+ background: linear-gradient(135deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.1) 50%, rgba(255,255,255,0) 100%);
2239
+ animation: ck-skeleton-slide 0.5s infinite;
2240
+ z-index: 1;
2241
+ pointer-events: none;
2242
+ }
2243
+ @keyframes ck-skeleton-slide {
2244
+ 0% { transform: translate(-100%, -100%); }
2245
+ 100% { transform: translate(100%, 100%); }
2246
+ }
2247
+ `, stylesInjected = false;
2248
+ function injectStyles() {
2249
+ if (!stylesInjected && typeof document < "u") {
2250
+ let styleId = "ck-skeleton-shine-styles";
2251
+ if (!document.getElementById(styleId)) {
2252
+ let style = document.createElement("style");
2253
+ style.id = styleId, style.textContent = shineStyles, document.head.appendChild(style);
2254
+ }
2255
+ stylesInjected = true;
2256
+ }
2257
+ }
2258
+ function SkeletonShine() {
2259
+ return React.useEffect(() => {
2260
+ injectStyles();
2261
+ }, []), /* @__PURE__ */ jsx("div", { className: "ck-skeleton-shine", "data-slot": "skeleton-shine" });
2262
+ }
2263
+ SkeletonShine.displayName = "SkeletonShine";
2213
2264
  function BalanceElement({
2214
2265
  showSol = true,
2215
2266
  showTokens = false,
@@ -2252,10 +2303,10 @@ function BalanceElement({
2252
2303
  "data-variant": variant,
2253
2304
  "data-loading": "true",
2254
2305
  children: /* @__PURE__ */ jsxs("div", { className: "ck-balance-block-skeleton", "data-slot": "balance-element-skeleton", children: [
2255
- /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--text" }),
2306
+ /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--text", children: /* @__PURE__ */ jsx(SkeletonShine, {}) }),
2256
2307
  showTokens && /* @__PURE__ */ jsxs(Fragment, { children: [
2257
- /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--text ck-skeleton--short" }),
2258
- /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--text ck-skeleton--short" })
2308
+ /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--text ck-skeleton--short", children: /* @__PURE__ */ jsx(SkeletonShine, {}) }),
2309
+ /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--text ck-skeleton--short", children: /* @__PURE__ */ jsx(SkeletonShine, {}) })
2259
2310
  ] })
2260
2311
  ] })
2261
2312
  }
@@ -2482,7 +2533,7 @@ function TransactionHistoryElement({
2482
2533
  "data-slot": "tx-history-element",
2483
2534
  "data-variant": variant,
2484
2535
  "data-loading": "true",
2485
- children: /* @__PURE__ */ jsx("div", { className: "ck-tx-history-skeleton", "data-slot": "tx-history-skeleton", children: Array.from({ length: Math.min(limit, 3) }).map((_, i) => /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--tx" }, i)) })
2536
+ children: /* @__PURE__ */ jsx("div", { className: "ck-tx-history-skeleton", "data-slot": "tx-history-skeleton", children: Array.from({ length: Math.min(limit, 3) }).map((_, i) => /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--tx", children: /* @__PURE__ */ jsx(SkeletonShine, {}) }, i)) })
2486
2537
  }
2487
2538
  );
2488
2539
  if (error)
@@ -2646,7 +2697,7 @@ function TokenListElement({
2646
2697
  "data-slot": "token-list-element",
2647
2698
  "data-variant": variant,
2648
2699
  "data-loading": "true",
2649
- children: /* @__PURE__ */ jsx("div", { className: "ck-token-list-skeleton", "data-slot": "token-list-skeleton", children: Array.from({ length: Math.min(limit, 3) }).map((_, i) => /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--token" }, i)) })
2700
+ children: /* @__PURE__ */ jsx("div", { className: "ck-token-list-skeleton", "data-slot": "token-list-skeleton", children: Array.from({ length: Math.min(limit, 3) }).map((_, i) => /* @__PURE__ */ jsx("div", { className: "ck-skeleton ck-skeleton--token", children: /* @__PURE__ */ jsx(SkeletonShine, {}) }, i)) })
2650
2701
  }
2651
2702
  );
2652
2703
  if (error)
@@ -2739,6 +2790,6 @@ function TokenListElement({
2739
2790
  }
2740
2791
  TokenListElement.displayName = "TokenListElement";
2741
2792
 
2742
- export { AccountElement, BalanceElement, ClusterElement, ConnectorProvider, DisconnectElement, TokenListElement, TransactionHistoryElement, UnifiedProvider, WalletListElement, clearSharedQueryCache, invalidateSharedQuery, useAccount, useBalance, useCluster, useConnector, useConnectorClient, useGillSolanaClient, useGillTransactionSigner, useKitTransactionSigner, useSolanaClient, useTokens, useTransactionPreparer, useTransactionSigner, useTransactions, useWalletInfo };
2743
- //# sourceMappingURL=chunk-JK47EFJT.mjs.map
2744
- //# sourceMappingURL=chunk-JK47EFJT.mjs.map
2793
+ export { AccountElement, AppProvider, BalanceElement, ClusterElement, ConnectorProvider, DisconnectElement, SkeletonShine, TokenListElement, TransactionHistoryElement, UnifiedProvider, WalletListElement, clearSharedQueryCache, clearTokenCaches, getBalanceQueryKey, getTokensQueryKey, getTransactionsQueryKey, getWalletAssetsQueryKey, invalidateSharedQuery, useAccount, useBalance, useCluster, useConnector, useConnectorClient, useGillSolanaClient, useGillTransactionSigner, useKitTransactionSigner, useSolanaClient, useTokens, useTransactionPreparer, useTransactionSigner, useTransactions, useWalletInfo };
2794
+ //# sourceMappingURL=chunk-TTOKQAPX.mjs.map
2795
+ //# sourceMappingURL=chunk-TTOKQAPX.mjs.map