@solana/connector 0.1.8 → 0.1.10

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 (58) hide show
  1. package/README.md +97 -0
  2. package/dist/chunk-4JT24DIX.js +466 -0
  3. package/dist/chunk-4JT24DIX.js.map +1 -0
  4. package/dist/chunk-4KD6HQQG.js +69 -0
  5. package/dist/chunk-4KD6HQQG.js.map +1 -0
  6. package/dist/{chunk-DSUCH44G.js → chunk-64LV76OK.js} +2 -67
  7. package/dist/chunk-64LV76OK.js.map +1 -0
  8. package/dist/{chunk-FTXIXM43.js → chunk-6AJJJG5B.js} +614 -138
  9. package/dist/chunk-6AJJJG5B.js.map +1 -0
  10. package/dist/chunk-7XHVZW2L.mjs +460 -0
  11. package/dist/chunk-7XHVZW2L.mjs.map +1 -0
  12. package/dist/{chunk-K3BNIGPX.js → chunk-ATYK5OKR.js} +81 -33
  13. package/dist/chunk-ATYK5OKR.js.map +1 -0
  14. package/dist/{chunk-J7DHGLW6.mjs → chunk-DKCZA2QI.mjs} +3 -61
  15. package/dist/chunk-DKCZA2QI.mjs.map +1 -0
  16. package/dist/chunk-FVA4TUI4.mjs +178 -0
  17. package/dist/chunk-FVA4TUI4.mjs.map +1 -0
  18. package/dist/chunk-HO6QNKFM.mjs +61 -0
  19. package/dist/chunk-HO6QNKFM.mjs.map +1 -0
  20. package/dist/chunk-MN7XNCYI.js +230 -0
  21. package/dist/chunk-MN7XNCYI.js.map +1 -0
  22. package/dist/{chunk-6F6M6L7R.mjs → chunk-QOIQBWMP.mjs} +524 -56
  23. package/dist/chunk-QOIQBWMP.mjs.map +1 -0
  24. package/dist/{chunk-TTOKQAPX.mjs → chunk-WGZYKDXF.mjs} +57 -11
  25. package/dist/chunk-WGZYKDXF.mjs.map +1 -0
  26. package/dist/compat.js +10 -9
  27. package/dist/compat.js.map +1 -1
  28. package/dist/compat.mjs +2 -1
  29. package/dist/compat.mjs.map +1 -1
  30. package/dist/headless.d.mts +217 -100
  31. package/dist/headless.d.ts +217 -100
  32. package/dist/headless.js +190 -168
  33. package/dist/headless.mjs +5 -3
  34. package/dist/index.d.mts +3 -3
  35. package/dist/index.d.ts +3 -3
  36. package/dist/index.js +233 -203
  37. package/dist/index.mjs +6 -4
  38. package/dist/react.d.mts +72 -4
  39. package/dist/react.d.ts +72 -4
  40. package/dist/react.js +52 -36
  41. package/dist/react.mjs +2 -2
  42. package/dist/{standard-shim-CT49DM5l.d.mts → standard-shim-BTUm7cur.d.mts} +280 -1
  43. package/dist/{standard-shim-D9guL5fz.d.ts → standard-shim-LsQ97i9T.d.ts} +280 -1
  44. package/dist/walletconnect-D4JN6H2O.js +28 -0
  45. package/dist/walletconnect-D4JN6H2O.js.map +1 -0
  46. package/dist/walletconnect-I3PZUBTA.mjs +3 -0
  47. package/dist/walletconnect-I3PZUBTA.mjs.map +1 -0
  48. package/package.json +6 -2
  49. package/dist/chunk-6F6M6L7R.mjs.map +0 -1
  50. package/dist/chunk-AOIXHVRH.js +0 -535
  51. package/dist/chunk-AOIXHVRH.js.map +0 -1
  52. package/dist/chunk-DSUCH44G.js.map +0 -1
  53. package/dist/chunk-FTXIXM43.js.map +0 -1
  54. package/dist/chunk-G575OAT4.mjs +0 -476
  55. package/dist/chunk-G575OAT4.mjs.map +0 -1
  56. package/dist/chunk-J7DHGLW6.mjs.map +0 -1
  57. package/dist/chunk-K3BNIGPX.js.map +0 -1
  58. package/dist/chunk-TTOKQAPX.mjs.map +0 -1
@@ -1,10 +1,37 @@
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
- import React, { createContext, useContext, useSyncExternalStore, useMemo, useState, useCallback, useRef, useEffect } from 'react';
1
+ import { installPolyfills, ConnectorErrorBoundary, isMainnetCluster, isDevnetCluster, isTestnetCluster, isLocalCluster, getClusterExplorerUrl, getClusterType, formatAddress, copyAddressToClipboard, createTransactionSigner, createKitTransactionSigner, formatLamportsToSolSafe, getTransactionUrl, ConnectorClient, formatBigIntBalance, formatBigIntUsd } from './chunk-QOIQBWMP.mjs';
2
+ import { createLogger, __publicField, createSolanaClient, NetworkError, prepareTransaction } from './chunk-DKCZA2QI.mjs';
3
+ import React, { createContext, useState, useRef, useEffect, useCallback, useContext, useSyncExternalStore, useMemo } from 'react';
4
4
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
5
5
  import { address } from '@solana/addresses';
6
6
  import { signature } from '@solana/keys';
7
7
 
8
+ var WalletConnectContext = createContext(null);
9
+ function WalletConnectProvider({ children }) {
10
+ let [uri, setUriState] = useState(null), isMountedRef = useRef(false), pendingUriRef = useRef(null);
11
+ useEffect(() => (isMountedRef.current = true, pendingUriRef.current !== null && (setUriState(pendingUriRef.current), pendingUriRef.current = null), () => {
12
+ isMountedRef.current = false;
13
+ }), []);
14
+ let setUri = useCallback((newUri) => {
15
+ if (!isMountedRef.current) {
16
+ pendingUriRef.current = newUri;
17
+ return;
18
+ }
19
+ setUriState(newUri);
20
+ }, []), clearUri = useCallback(() => {
21
+ pendingUriRef.current = null, isMountedRef.current && setUriState(null);
22
+ }, []);
23
+ return /* @__PURE__ */ jsx(WalletConnectContext.Provider, { value: { uri, setUri, clearUri }, children });
24
+ }
25
+ function useWalletConnectUri() {
26
+ let context = useContext(WalletConnectContext);
27
+ return context || {
28
+ uri: null,
29
+ setUri: () => {
30
+ },
31
+ clearUri: () => {
32
+ }
33
+ };
34
+ }
8
35
  var logger = createLogger("ConnectorProvider");
9
36
  installPolyfills();
10
37
  var ConnectorContext = createContext(null);
@@ -92,7 +119,7 @@ function useConnector() {
92
119
  throw new Error(
93
120
  "useConnector must be used within ConnectorProvider. Wrap your app with <ConnectorProvider> or <UnifiedProvider> to use connector hooks."
94
121
  );
95
- let state = useSyncExternalStore(
122
+ let { uri: walletConnectUri, clearUri: clearWalletConnectUri } = useWalletConnectUri(), state = useSyncExternalStore(
96
123
  React.useCallback((cb) => client.subscribe(cb), [client]),
97
124
  React.useCallback(() => client.getSnapshot(), [client]),
98
125
  React.useCallback(() => client.getSnapshot(), [client])
@@ -107,22 +134,41 @@ function useConnector() {
107
134
  return useMemo(
108
135
  () => ({
109
136
  ...state,
110
- ...methods
137
+ ...methods,
138
+ walletConnectUri,
139
+ clearWalletConnectUri
111
140
  }),
112
- [state, methods]
141
+ [state, methods, walletConnectUri, clearWalletConnectUri]
113
142
  );
114
143
  }
115
144
  function useConnectorClient() {
116
145
  return useContext(ConnectorContext);
117
146
  }
118
- function AppProvider({ children, connectorConfig, mobile, providers = [] }) {
119
- let content = /* @__PURE__ */ jsx(ConnectorProvider, { config: connectorConfig, mobile, children });
147
+ function AppProviderInner({ children, connectorConfig, mobile, providers = [] }) {
148
+ let { setUri, clearUri } = useWalletConnectUri(), enhancedConfig = useMemo(() => {
149
+ if (!connectorConfig?.walletConnect?.enabled)
150
+ return connectorConfig;
151
+ let wcConfig = connectorConfig.walletConnect;
152
+ return {
153
+ ...connectorConfig,
154
+ walletConnect: {
155
+ ...wcConfig,
156
+ // Auto-wire callbacks - use provided ones or fall back to context-based ones
157
+ onDisplayUri: wcConfig.onDisplayUri ?? setUri,
158
+ onSessionEstablished: wcConfig.onSessionEstablished ?? clearUri,
159
+ onSessionDisconnected: wcConfig.onSessionDisconnected ?? clearUri
160
+ }
161
+ };
162
+ }, [connectorConfig, setUri, clearUri]), content = /* @__PURE__ */ jsx(ConnectorProvider, { config: enhancedConfig, mobile, children });
120
163
  for (let i = providers.length - 1; i >= 0; i--) {
121
164
  let { component: Provider, props = {} } = providers[i];
122
165
  content = /* @__PURE__ */ jsx(Provider, { ...props, children: content });
123
166
  }
124
167
  return content;
125
168
  }
169
+ function AppProvider(props) {
170
+ return props.connectorConfig?.walletConnect?.enabled ? /* @__PURE__ */ jsx(WalletConnectProvider, { children: /* @__PURE__ */ jsx(AppProviderInner, { ...props }) }) : /* @__PURE__ */ jsx(AppProviderInner, { ...props });
171
+ }
126
172
  var UnifiedProvider = AppProvider;
127
173
  function useCluster() {
128
174
  let { cluster, clusters } = useConnector(), client = useConnectorClient();
@@ -2790,6 +2836,6 @@ function TokenListElement({
2790
2836
  }
2791
2837
  TokenListElement.displayName = "TokenListElement";
2792
2838
 
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
2839
+ export { AccountElement, AppProvider, BalanceElement, ClusterElement, ConnectorProvider, DisconnectElement, SkeletonShine, TokenListElement, TransactionHistoryElement, UnifiedProvider, WalletConnectProvider, WalletListElement, clearSharedQueryCache, clearTokenCaches, getBalanceQueryKey, getTokensQueryKey, getTransactionsQueryKey, getWalletAssetsQueryKey, invalidateSharedQuery, useAccount, useBalance, useCluster, useConnector, useConnectorClient, useGillSolanaClient, useGillTransactionSigner, useKitTransactionSigner, useSolanaClient, useTokens, useTransactionPreparer, useTransactionSigner, useTransactions, useWalletConnectUri, useWalletInfo };
2840
+ //# sourceMappingURL=chunk-WGZYKDXF.mjs.map
2841
+ //# sourceMappingURL=chunk-WGZYKDXF.mjs.map