@vue-solana/vue 2.0.0 → 2.2.0

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 (186) hide show
  1. package/README.md +210 -21
  2. package/dist/index.cjs +60 -20
  3. package/dist/index.d.cts +26 -5
  4. package/dist/index.d.mts +26 -5
  5. package/dist/index.d.ts +26 -5
  6. package/dist/index.mjs +38 -19
  7. package/dist/shared/vue.5euWd6-V.mjs +59 -0
  8. package/dist/shared/vue.9TPxZPMf.cjs +59 -0
  9. package/dist/shared/vue.B4-LEdSE.cjs +102 -0
  10. package/dist/shared/{vue.CP1DPDX9.cjs → vue.B6ainw2G.cjs} +1 -1
  11. package/dist/shared/vue.B8LptjZP.mjs +32 -0
  12. package/dist/shared/vue.B8VvC8d2.mjs +101 -0
  13. package/dist/shared/{vue.DP7qY8Rk.mjs → vue.BD6Gm1nl.mjs} +2 -2
  14. package/dist/shared/vue.BDNOyiGZ.mjs +109 -0
  15. package/dist/shared/{vue.BAlo-tIh.cjs → vue.BGxz4dru.cjs} +5 -1
  16. package/dist/shared/{vue.stUBDBI9.mjs → vue.BINkrA8h.mjs} +2 -2
  17. package/dist/shared/{vue.k9Q6aN-0.cjs → vue.BIxphCAq.cjs} +1 -1
  18. package/dist/shared/{vue.yQcL1yMv.mjs → vue.BOpgWr43.mjs} +2 -2
  19. package/dist/shared/{vue.dPRo2X5y.mjs → vue.BQRpjwKl.mjs} +2 -2
  20. package/dist/shared/vue.BSfiHqwj.mjs +34 -0
  21. package/dist/shared/{vue.CZwftA0L.cjs → vue.BVaMoz9y.cjs} +1 -1
  22. package/dist/shared/vue.BY0qpgYr.cjs +35 -0
  23. package/dist/shared/vue.Bk5xjlUx.cjs +61 -0
  24. package/dist/shared/{vue.3VLZmw05.mjs → vue.BsGwt78R.mjs} +1 -1
  25. package/dist/shared/{vue.B_LRH8SM.cjs → vue.Bwd1sGAM.cjs} +2 -2
  26. package/dist/shared/vue.ByxbBC3y.mjs +57 -0
  27. package/dist/shared/{vue.BbMPRDeO.mjs → vue.C13umiQi.mjs} +2 -2
  28. package/dist/shared/vue.C5FVoEZT.mjs +99 -0
  29. package/dist/shared/vue.CATOh_9G.mjs +42 -0
  30. package/dist/shared/{vue.XQFqlMId.cjs → vue.CIs8QhCw.cjs} +2 -2
  31. package/dist/shared/vue.CMohL_Cz.mjs +58 -0
  32. package/dist/shared/{vue.CnUlZSe8.mjs → vue.CQh3AUE8.mjs} +2 -5
  33. package/dist/shared/vue.CTqPbvz3.cjs +36 -0
  34. package/dist/shared/{vue.CSJSK0Nq.cjs → vue.CWZSMVnB.cjs} +3 -3
  35. package/dist/shared/{vue.DL-yMCNc.mjs → vue.CXB4NEMA.mjs} +2 -2
  36. package/dist/shared/{vue.D7xFeC2m.mjs → vue.C_4qJDiF.mjs} +1 -1
  37. package/dist/shared/vue.CbJFnho-.mjs +171 -0
  38. package/dist/shared/vue.CoaIWGPT.cjs +38 -0
  39. package/dist/shared/{vue.ChujsB0B.mjs → vue.CpkwC8Th.mjs} +1 -1
  40. package/dist/shared/vue.CrkK_T15.cjs +86 -0
  41. package/dist/shared/{vue.BMencBpI.cjs → vue.D-qi8PSL.cjs} +2 -2
  42. package/dist/shared/{vue.PJjEncbP.mjs → vue.D218Ow7t.mjs} +6 -2
  43. package/dist/shared/{vue.B2sFJ1xI.mjs → vue.D3Y0PWbF.mjs} +1 -1
  44. package/dist/shared/vue.D5U1yLG3.mjs +83 -0
  45. package/dist/shared/{vue.CXHYdyKZ.cjs → vue.DAg5wC1G.cjs} +2 -2
  46. package/dist/shared/vue.DDbVk0Zh.cjs +180 -0
  47. package/dist/shared/{vue.BaR1VPhl.cjs → vue.DE3emjSF.cjs} +2 -6
  48. package/dist/shared/vue.DEHxNvUX.cjs +7 -0
  49. package/dist/shared/vue.DFaMJLAQ.cjs +60 -0
  50. package/dist/shared/{vue.DgCmU1RR.cjs → vue.DKyQ7J67.cjs} +1 -1
  51. package/dist/shared/vue.DXQVIRZA.mjs +174 -0
  52. package/dist/shared/vue.DYk0Xfr3.mjs +36 -0
  53. package/dist/shared/vue.D_P5SqqD.mjs +5 -0
  54. package/dist/shared/{vue.C7yR7Cs0.cjs → vue.Di7yjJ-R.cjs} +2 -2
  55. package/dist/shared/vue.DxM45azl.cjs +173 -0
  56. package/dist/shared/{vue.WugzPOca.mjs → vue.Dyi1OCI1.mjs} +3 -3
  57. package/dist/shared/{vue.CEn2purG.cjs → vue.E_npPFoV.cjs} +2 -2
  58. package/dist/shared/{vue.__r7YYZE.cjs → vue.FiMmnMHr.cjs} +1 -1
  59. package/dist/shared/{vue.CZO8TwJP.mjs → vue.JUWqu6kD.mjs} +1 -1
  60. package/dist/shared/{vue.BaFrF2PF.mjs → vue.Mxc8w6Qk.mjs} +1 -1
  61. package/dist/shared/{vue.C32ozdA1.cjs → vue.Sbbm9JSu.cjs} +1 -1
  62. package/dist/shared/vue.ZuUCEEab.cjs +103 -0
  63. package/dist/shared/vue.g8fnm_ca.cjs +45 -0
  64. package/dist/shared/vue.l3UCdN7z.cjs +111 -0
  65. package/dist/swr.cjs +136 -0
  66. package/dist/swr.d.cts +41 -0
  67. package/dist/swr.d.mts +41 -0
  68. package/dist/swr.d.ts +41 -0
  69. package/dist/swr.mjs +131 -0
  70. package/dist/useAccountInfo.cjs +5 -4
  71. package/dist/useAccountInfo.mjs +5 -4
  72. package/dist/useAction.cjs +9 -0
  73. package/dist/useAction.d.cts +45 -0
  74. package/dist/useAction.d.mts +45 -0
  75. package/dist/useAction.d.ts +45 -0
  76. package/dist/useAction.mjs +3 -0
  77. package/dist/useAirdrop.cjs +14 -0
  78. package/dist/useAirdrop.d.cts +25 -0
  79. package/dist/useAirdrop.d.mts +25 -0
  80. package/dist/useAirdrop.d.ts +25 -0
  81. package/dist/useAirdrop.mjs +8 -0
  82. package/dist/useBalance.cjs +5 -4
  83. package/dist/useBalance.mjs +5 -4
  84. package/dist/useClientCapability.cjs +12 -0
  85. package/dist/useClientCapability.d.cts +39 -0
  86. package/dist/useClientCapability.d.mts +39 -0
  87. package/dist/useClientCapability.d.ts +39 -0
  88. package/dist/useClientCapability.mjs +5 -0
  89. package/dist/useConnection.cjs +4 -3
  90. package/dist/useConnection.d.cts +3 -2
  91. package/dist/useConnection.d.mts +3 -2
  92. package/dist/useConnection.d.ts +3 -2
  93. package/dist/useConnection.mjs +4 -3
  94. package/dist/useIdentity.cjs +12 -0
  95. package/dist/useIdentity.d.cts +3 -0
  96. package/dist/useIdentity.d.mts +3 -0
  97. package/dist/useIdentity.d.ts +3 -0
  98. package/dist/useIdentity.mjs +6 -0
  99. package/dist/usePayer.cjs +13 -0
  100. package/dist/usePayer.d.cts +18 -0
  101. package/dist/usePayer.d.mts +18 -0
  102. package/dist/usePayer.d.ts +18 -0
  103. package/dist/usePayer.mjs +6 -0
  104. package/dist/usePlanTransaction.cjs +14 -0
  105. package/dist/usePlanTransaction.d.cts +37 -0
  106. package/dist/usePlanTransaction.d.mts +37 -0
  107. package/dist/usePlanTransaction.d.ts +37 -0
  108. package/dist/usePlanTransaction.mjs +7 -0
  109. package/dist/usePlanTransactions.cjs +13 -0
  110. package/dist/usePlanTransactions.d.cts +4 -0
  111. package/dist/usePlanTransactions.d.mts +4 -0
  112. package/dist/usePlanTransactions.d.ts +4 -0
  113. package/dist/usePlanTransactions.mjs +7 -0
  114. package/dist/useProgramAccounts.cjs +5 -4
  115. package/dist/useProgramAccounts.mjs +5 -4
  116. package/dist/useRequest.cjs +11 -0
  117. package/dist/useRequest.d.cts +73 -0
  118. package/dist/useRequest.d.mts +73 -0
  119. package/dist/useRequest.d.ts +73 -0
  120. package/dist/useRequest.mjs +5 -0
  121. package/dist/useRpc.cjs +3 -2
  122. package/dist/useRpc.d.cts +3 -2
  123. package/dist/useRpc.d.mts +3 -2
  124. package/dist/useRpc.d.ts +3 -2
  125. package/dist/useRpc.mjs +3 -2
  126. package/dist/useSelectedWalletAccount.cjs +13 -0
  127. package/dist/useSelectedWalletAccount.d.cts +117 -0
  128. package/dist/useSelectedWalletAccount.d.mts +117 -0
  129. package/dist/useSelectedWalletAccount.d.ts +117 -0
  130. package/dist/useSelectedWalletAccount.mjs +3 -0
  131. package/dist/useSignAndSendTransaction.cjs +7 -6
  132. package/dist/useSignAndSendTransaction.mjs +7 -6
  133. package/dist/useSignAndSendTransactions.cjs +15 -0
  134. package/dist/useSignAndSendTransactions.d.cts +35 -0
  135. package/dist/useSignAndSendTransactions.d.mts +35 -0
  136. package/dist/useSignAndSendTransactions.d.ts +35 -0
  137. package/dist/useSignAndSendTransactions.mjs +8 -0
  138. package/dist/useSignIn.cjs +13 -0
  139. package/dist/useSignIn.d.cts +23 -0
  140. package/dist/useSignIn.d.mts +23 -0
  141. package/dist/useSignIn.d.ts +23 -0
  142. package/dist/useSignIn.mjs +7 -0
  143. package/dist/useSignMessage.cjs +4 -3
  144. package/dist/useSignMessage.mjs +4 -3
  145. package/dist/useSignTransactions.cjs +13 -0
  146. package/dist/useSignTransactions.d.cts +24 -0
  147. package/dist/useSignTransactions.d.mts +24 -0
  148. package/dist/useSignTransactions.d.ts +24 -0
  149. package/dist/useSignTransactions.mjs +7 -0
  150. package/dist/useSignatureStatus.cjs +5 -4
  151. package/dist/useSignatureStatus.mjs +5 -4
  152. package/dist/useSolana.cjs +2 -1
  153. package/dist/useSolana.mjs +2 -1
  154. package/dist/useSolanaClient.cjs +3 -2
  155. package/dist/useSolanaClient.d.cts +3 -2
  156. package/dist/useSolanaClient.d.mts +3 -2
  157. package/dist/useSolanaClient.d.ts +3 -2
  158. package/dist/useSolanaClient.mjs +3 -2
  159. package/dist/useSubscription.cjs +9 -0
  160. package/dist/useSubscription.d.cts +70 -0
  161. package/dist/useSubscription.d.mts +70 -0
  162. package/dist/useSubscription.d.ts +70 -0
  163. package/dist/useSubscription.mjs +3 -0
  164. package/dist/useTokenAccounts.cjs +5 -4
  165. package/dist/useTokenAccounts.mjs +5 -4
  166. package/dist/useTokenBalance.cjs +5 -4
  167. package/dist/useTokenBalance.mjs +5 -4
  168. package/dist/useTrackedData.cjs +10 -0
  169. package/dist/useTrackedData.d.cts +98 -0
  170. package/dist/useTrackedData.d.mts +98 -0
  171. package/dist/useTrackedData.d.ts +98 -0
  172. package/dist/useTrackedData.mjs +4 -0
  173. package/dist/useTransaction.cjs +2 -1
  174. package/dist/useTransaction.d.cts +12 -1
  175. package/dist/useTransaction.d.mts +12 -1
  176. package/dist/useTransaction.d.ts +12 -1
  177. package/dist/useTransaction.mjs +2 -1
  178. package/dist/useTransactionConfirmation.cjs +5 -4
  179. package/dist/useTransactionConfirmation.mjs +5 -4
  180. package/dist/useWallet.cjs +3 -2
  181. package/dist/useWallet.mjs +3 -2
  182. package/dist/useWallets.cjs +3 -2
  183. package/dist/useWallets.mjs +3 -2
  184. package/package.json +78 -3
  185. package/dist/shared/vue.C4d2JA8U.mjs +0 -44
  186. package/dist/shared/vue.CE5i8KZZ.cjs +0 -46
@@ -0,0 +1,4 @@
1
+ export { usePlanTransactions } from './usePlanTransaction.mjs';
2
+ import 'vue';
3
+ import '@vue-solana/core/kit';
4
+ import '@vue-solana/core/errors';
@@ -0,0 +1,4 @@
1
+ export { usePlanTransactions } from './usePlanTransaction.js';
2
+ import 'vue';
3
+ import '@vue-solana/core/kit';
4
+ import '@vue-solana/core/errors';
@@ -0,0 +1,7 @@
1
+ export { a as usePlanTransactions } from './shared/vue.C5FVoEZT.mjs';
2
+ import '@vue-solana/core/errors';
3
+ import 'vue';
4
+ import './shared/vue.B8LptjZP.mjs';
5
+ import './shared/vue.Mxc8w6Qk.mjs';
6
+ import './shared/vue.CQh3AUE8.mjs';
7
+ import './shared/vue.D_P5SqqD.mjs';
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
- const useProgramAccounts = require('./shared/vue.C7yR7Cs0.cjs');
3
+ const useProgramAccounts = require('./shared/vue.Di7yjJ-R.cjs');
4
4
  require('@vue-solana/core/errors');
5
5
  require('vue');
6
6
  require('@vue-solana/core/address');
7
- require('./shared/vue.CZwftA0L.cjs');
8
- require('./shared/vue.k9Q6aN-0.cjs');
9
- require('./shared/vue.BaR1VPhl.cjs');
7
+ require('./shared/vue.BVaMoz9y.cjs');
8
+ require('./shared/vue.BIxphCAq.cjs');
9
+ require('./shared/vue.DE3emjSF.cjs');
10
+ require('./shared/vue.DEHxNvUX.cjs');
10
11
  require('./shared/vue.DNxOpDXz.cjs');
11
12
 
12
13
 
@@ -1,8 +1,9 @@
1
- export { u as useProgramAccounts } from './shared/vue.BbMPRDeO.mjs';
1
+ export { u as useProgramAccounts } from './shared/vue.C13umiQi.mjs';
2
2
  import '@vue-solana/core/errors';
3
3
  import 'vue';
4
4
  import '@vue-solana/core/address';
5
- import './shared/vue.ChujsB0B.mjs';
6
- import './shared/vue.BaFrF2PF.mjs';
7
- import './shared/vue.CnUlZSe8.mjs';
5
+ import './shared/vue.CpkwC8Th.mjs';
6
+ import './shared/vue.Mxc8w6Qk.mjs';
7
+ import './shared/vue.CQh3AUE8.mjs';
8
+ import './shared/vue.D_P5SqqD.mjs';
8
9
  import './shared/vue.Bfu1dCKe.mjs';
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const useRequest = require('./shared/vue.ZuUCEEab.cjs');
4
+ require('@vue-solana/core/action');
5
+ require('@vue-solana/core/kit');
6
+ require('@vue-solana/core/errors');
7
+ require('vue');
8
+
9
+
10
+
11
+ exports.useRequest = useRequest.useRequest;
@@ -0,0 +1,73 @@
1
+ import { SolanaError } from '@vue-solana/core/errors';
2
+ import { ComputedRef, Ref } from 'vue';
3
+
4
+ type UseRequestStatus = "fetching" | "success" | "error" | "disabled";
5
+ type SendFn<TResult> = (options?: {
6
+ abortSignal?: AbortSignal;
7
+ }) => Promise<TResult>;
8
+ type ResolvedSource<TResult> = ((signal: AbortSignal) => Promise<TResult> | {
9
+ send: SendFn<TResult>;
10
+ }) | {
11
+ send: SendFn<TResult>;
12
+ } | null | undefined;
13
+ /**
14
+ * A request source accepted by `useRequest`:
15
+ *
16
+ * - a request function `(signal) => Promise<T>`, called with a fresh composed
17
+ * `AbortSignal` per attempt (it may return a Kit request object, which is
18
+ * sent with the signal automatically),
19
+ * - a Kit reactive store source such as `PendingRpcRequest` (for example
20
+ * `rpc.getBalance(address)`),
21
+ * - a `ref`/`computed` of any of the above, or of `null` to disable, or
22
+ * - `null` to disable outright.
23
+ */
24
+ type UseRequestSource<TResult> = ResolvedSource<TResult> | Ref<ResolvedSource<TResult>>;
25
+ interface UseRequestOptions {
26
+ /**
27
+ * Returns a caller-provided `AbortSignal` per attempt (for example
28
+ * `AbortSignal.timeout(5_000)`), composed with the internal per-attempt
29
+ * signal. Aborting it fails the attempt without touching other state. Read
30
+ * fresh from the latest render, so inline closures need no `useCallback`.
31
+ */
32
+ getAbortSignal?: (attempt: number) => AbortSignal | null | undefined;
33
+ }
34
+ /** Per-call abort overrides for `refresh()`. */
35
+ type UseRequestRefresherOptions = {
36
+ /**
37
+ * Applies only this signal to the attempt, bypassing `getAbortSignal`.
38
+ * Passing `undefined` (or an empty options object) applies no caller signal
39
+ * for that attempt; call `refresh()` with no argument to keep the
40
+ * `getAbortSignal` factory behavior.
41
+ */
42
+ abortSignal?: AbortSignal;
43
+ };
44
+ interface UseRequestReturn<TResult> {
45
+ data: ComputedRef<TResult | undefined>;
46
+ error: ComputedRef<SolanaError | null>;
47
+ /** Re-fires manually. `refresh({ abortSignal })` overrides `getAbortSignal` for that attempt. */
48
+ refresh: (options?: UseRequestRefresherOptions) => Promise<TResult | undefined>;
49
+ status: ComputedRef<UseRequestStatus>;
50
+ }
51
+ /**
52
+ * One-shot async request that re-fires when its source changes identity, with
53
+ * stale-while-revalidate: while a new attempt runs, the previous `data` and
54
+ * `error` stay populated so the UI keeps rendering.
55
+ *
56
+ * Status set: `fetching` | `success` | `error` | `disabled`.
57
+ *
58
+ * - The first attempt fires on mount inside a component (or immediately when
59
+ * called outside one).
60
+ * - Passing a ref/computed source re-fires whenever the source identity
61
+ * changes; a `null` source clears state and reports `disabled`.
62
+ * - `refresh()` re-fires manually and resolves with the attempt result;
63
+ * `refresh({ abortSignal })` overrides the caller signal for that attempt.
64
+ * - `getAbortSignal` (read fresh per render, so inline closures are fine)
65
+ * attaches per-attempt cancellation on top of the internal per-attempt
66
+ * signal.
67
+ * - Passing `null` as the source, or unmounting, cancels in-flight work and
68
+ * reports `disabled`.
69
+ */
70
+ declare function useRequest<TResult>(source: UseRequestSource<TResult>, options?: UseRequestOptions): UseRequestReturn<TResult>;
71
+
72
+ export { useRequest };
73
+ export type { UseRequestOptions, UseRequestRefresherOptions, UseRequestReturn, UseRequestSource, UseRequestStatus };
@@ -0,0 +1,73 @@
1
+ import { SolanaError } from '@vue-solana/core/errors';
2
+ import { ComputedRef, Ref } from 'vue';
3
+
4
+ type UseRequestStatus = "fetching" | "success" | "error" | "disabled";
5
+ type SendFn<TResult> = (options?: {
6
+ abortSignal?: AbortSignal;
7
+ }) => Promise<TResult>;
8
+ type ResolvedSource<TResult> = ((signal: AbortSignal) => Promise<TResult> | {
9
+ send: SendFn<TResult>;
10
+ }) | {
11
+ send: SendFn<TResult>;
12
+ } | null | undefined;
13
+ /**
14
+ * A request source accepted by `useRequest`:
15
+ *
16
+ * - a request function `(signal) => Promise<T>`, called with a fresh composed
17
+ * `AbortSignal` per attempt (it may return a Kit request object, which is
18
+ * sent with the signal automatically),
19
+ * - a Kit reactive store source such as `PendingRpcRequest` (for example
20
+ * `rpc.getBalance(address)`),
21
+ * - a `ref`/`computed` of any of the above, or of `null` to disable, or
22
+ * - `null` to disable outright.
23
+ */
24
+ type UseRequestSource<TResult> = ResolvedSource<TResult> | Ref<ResolvedSource<TResult>>;
25
+ interface UseRequestOptions {
26
+ /**
27
+ * Returns a caller-provided `AbortSignal` per attempt (for example
28
+ * `AbortSignal.timeout(5_000)`), composed with the internal per-attempt
29
+ * signal. Aborting it fails the attempt without touching other state. Read
30
+ * fresh from the latest render, so inline closures need no `useCallback`.
31
+ */
32
+ getAbortSignal?: (attempt: number) => AbortSignal | null | undefined;
33
+ }
34
+ /** Per-call abort overrides for `refresh()`. */
35
+ type UseRequestRefresherOptions = {
36
+ /**
37
+ * Applies only this signal to the attempt, bypassing `getAbortSignal`.
38
+ * Passing `undefined` (or an empty options object) applies no caller signal
39
+ * for that attempt; call `refresh()` with no argument to keep the
40
+ * `getAbortSignal` factory behavior.
41
+ */
42
+ abortSignal?: AbortSignal;
43
+ };
44
+ interface UseRequestReturn<TResult> {
45
+ data: ComputedRef<TResult | undefined>;
46
+ error: ComputedRef<SolanaError | null>;
47
+ /** Re-fires manually. `refresh({ abortSignal })` overrides `getAbortSignal` for that attempt. */
48
+ refresh: (options?: UseRequestRefresherOptions) => Promise<TResult | undefined>;
49
+ status: ComputedRef<UseRequestStatus>;
50
+ }
51
+ /**
52
+ * One-shot async request that re-fires when its source changes identity, with
53
+ * stale-while-revalidate: while a new attempt runs, the previous `data` and
54
+ * `error` stay populated so the UI keeps rendering.
55
+ *
56
+ * Status set: `fetching` | `success` | `error` | `disabled`.
57
+ *
58
+ * - The first attempt fires on mount inside a component (or immediately when
59
+ * called outside one).
60
+ * - Passing a ref/computed source re-fires whenever the source identity
61
+ * changes; a `null` source clears state and reports `disabled`.
62
+ * - `refresh()` re-fires manually and resolves with the attempt result;
63
+ * `refresh({ abortSignal })` overrides the caller signal for that attempt.
64
+ * - `getAbortSignal` (read fresh per render, so inline closures are fine)
65
+ * attaches per-attempt cancellation on top of the internal per-attempt
66
+ * signal.
67
+ * - Passing `null` as the source, or unmounting, cancels in-flight work and
68
+ * reports `disabled`.
69
+ */
70
+ declare function useRequest<TResult>(source: UseRequestSource<TResult>, options?: UseRequestOptions): UseRequestReturn<TResult>;
71
+
72
+ export { useRequest };
73
+ export type { UseRequestOptions, UseRequestRefresherOptions, UseRequestReturn, UseRequestSource, UseRequestStatus };
@@ -0,0 +1,73 @@
1
+ import { SolanaError } from '@vue-solana/core/errors';
2
+ import { ComputedRef, Ref } from 'vue';
3
+
4
+ type UseRequestStatus = "fetching" | "success" | "error" | "disabled";
5
+ type SendFn<TResult> = (options?: {
6
+ abortSignal?: AbortSignal;
7
+ }) => Promise<TResult>;
8
+ type ResolvedSource<TResult> = ((signal: AbortSignal) => Promise<TResult> | {
9
+ send: SendFn<TResult>;
10
+ }) | {
11
+ send: SendFn<TResult>;
12
+ } | null | undefined;
13
+ /**
14
+ * A request source accepted by `useRequest`:
15
+ *
16
+ * - a request function `(signal) => Promise<T>`, called with a fresh composed
17
+ * `AbortSignal` per attempt (it may return a Kit request object, which is
18
+ * sent with the signal automatically),
19
+ * - a Kit reactive store source such as `PendingRpcRequest` (for example
20
+ * `rpc.getBalance(address)`),
21
+ * - a `ref`/`computed` of any of the above, or of `null` to disable, or
22
+ * - `null` to disable outright.
23
+ */
24
+ type UseRequestSource<TResult> = ResolvedSource<TResult> | Ref<ResolvedSource<TResult>>;
25
+ interface UseRequestOptions {
26
+ /**
27
+ * Returns a caller-provided `AbortSignal` per attempt (for example
28
+ * `AbortSignal.timeout(5_000)`), composed with the internal per-attempt
29
+ * signal. Aborting it fails the attempt without touching other state. Read
30
+ * fresh from the latest render, so inline closures need no `useCallback`.
31
+ */
32
+ getAbortSignal?: (attempt: number) => AbortSignal | null | undefined;
33
+ }
34
+ /** Per-call abort overrides for `refresh()`. */
35
+ type UseRequestRefresherOptions = {
36
+ /**
37
+ * Applies only this signal to the attempt, bypassing `getAbortSignal`.
38
+ * Passing `undefined` (or an empty options object) applies no caller signal
39
+ * for that attempt; call `refresh()` with no argument to keep the
40
+ * `getAbortSignal` factory behavior.
41
+ */
42
+ abortSignal?: AbortSignal;
43
+ };
44
+ interface UseRequestReturn<TResult> {
45
+ data: ComputedRef<TResult | undefined>;
46
+ error: ComputedRef<SolanaError | null>;
47
+ /** Re-fires manually. `refresh({ abortSignal })` overrides `getAbortSignal` for that attempt. */
48
+ refresh: (options?: UseRequestRefresherOptions) => Promise<TResult | undefined>;
49
+ status: ComputedRef<UseRequestStatus>;
50
+ }
51
+ /**
52
+ * One-shot async request that re-fires when its source changes identity, with
53
+ * stale-while-revalidate: while a new attempt runs, the previous `data` and
54
+ * `error` stay populated so the UI keeps rendering.
55
+ *
56
+ * Status set: `fetching` | `success` | `error` | `disabled`.
57
+ *
58
+ * - The first attempt fires on mount inside a component (or immediately when
59
+ * called outside one).
60
+ * - Passing a ref/computed source re-fires whenever the source identity
61
+ * changes; a `null` source clears state and reports `disabled`.
62
+ * - `refresh()` re-fires manually and resolves with the attempt result;
63
+ * `refresh({ abortSignal })` overrides the caller signal for that attempt.
64
+ * - `getAbortSignal` (read fresh per render, so inline closures are fine)
65
+ * attaches per-attempt cancellation on top of the internal per-attempt
66
+ * signal.
67
+ * - Passing `null` as the source, or unmounting, cancels in-flight work and
68
+ * reports `disabled`.
69
+ */
70
+ declare function useRequest<TResult>(source: UseRequestSource<TResult>, options?: UseRequestOptions): UseRequestReturn<TResult>;
71
+
72
+ export { useRequest };
73
+ export type { UseRequestOptions, UseRequestRefresherOptions, UseRequestReturn, UseRequestSource, UseRequestStatus };
@@ -0,0 +1,5 @@
1
+ export { u as useRequest } from './shared/vue.B8VvC8d2.mjs';
2
+ import '@vue-solana/core/action';
3
+ import '@vue-solana/core/kit';
4
+ import '@vue-solana/core/errors';
5
+ import 'vue';
package/dist/useRpc.cjs CHANGED
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- const useRpc = require('./shared/vue.__r7YYZE.cjs');
3
+ const useRpc = require('./shared/vue.FiMmnMHr.cjs');
4
4
  require('vue');
5
- require('./shared/vue.BaR1VPhl.cjs');
5
+ require('./shared/vue.DE3emjSF.cjs');
6
+ require('./shared/vue.DEHxNvUX.cjs');
6
7
 
7
8
 
8
9
 
package/dist/useRpc.d.cts CHANGED
@@ -12,10 +12,11 @@ declare function useRpc(): {
12
12
  error: vue.Ref<_vue_solana_core_errors.SolanaError | null, _vue_solana_core_errors.SolanaError | null>;
13
13
  latestBlockhash: vue.Ref<string | null, string | null>;
14
14
  checkConnection: () => Promise<void>;
15
- client: _solana_kit.Client<_solana_kit.ExtendedClient<object, {
15
+ client: _solana_kit.Client<{
16
16
  rpc: _solana_kit.Rpc<_solana_kit.RequestAirdropApi & _solana_kit.GetAccountInfoApi & _solana_kit.GetAgGenesisCertApi & _solana_kit.GetBalanceApi & _solana_kit.GetBlockApi & _solana_kit.GetBlockCommitmentApi & _solana_kit.GetBlockHeightApi & _solana_kit.GetBlockProductionApi & _solana_kit.GetBlocksApi & _solana_kit.GetBlocksWithLimitApi & _solana_kit.GetBlockTimeApi & _solana_kit.GetClusterNodesApi & _solana_kit.GetEpochInfoApi & _solana_kit.GetEpochScheduleApi & _solana_kit.GetFeeForMessageApi & _solana_kit.GetFirstAvailableBlockApi & _solana_kit.GetGenesisHashApi & _solana_kit.GetHealthApi & _solana_kit.GetHighestSnapshotSlotApi & _solana_kit.GetIdentityApi & _solana_kit.GetInflationGovernorApi & _solana_kit.GetInflationRateApi & _solana_kit.GetInflationRewardApi & _solana_kit.GetLargestAccountsApi & _solana_kit.GetLatestBlockhashApi & _solana_kit.GetLeaderScheduleApi & _solana_kit.GetMaxRetransmitSlotApi & _solana_kit.GetMaxShredInsertSlotApi & _solana_kit.GetMinimumBalanceForRentExemptionApi & _solana_kit.GetMultipleAccountsApi & _solana_kit.GetProgramAccountsApi & _solana_kit.GetRecentPerformanceSamplesApi & _solana_kit.GetRecentPrioritizationFeesApi & _solana_kit.GetSignaturesForAddressApi & _solana_kit.GetSignatureStatusesApi & _solana_kit.GetSlotApi & _solana_kit.GetSlotLeaderApi & _solana_kit.GetSlotLeadersApi & _solana_kit.GetStakeMinimumDelegationApi & _solana_kit.GetSupplyApi & _solana_kit.GetTokenAccountBalanceApi & _solana_kit.GetTokenAccountsByDelegateApi & _solana_kit.GetTokenAccountsByOwnerApi & _solana_kit.GetTokenLargestAccountsApi & _solana_kit.GetTokenSupplyApi & _solana_kit.GetTransactionApi & _solana_kit.GetTransactionCountApi & _solana_kit.GetTransactionsForAddressApi & _solana_kit.GetVersionApi & _solana_kit.GetVoteAccountsApi & _solana_kit.IsBlockhashValidApi & _solana_kit.MinimumLedgerSlotApi & _solana_kit.SendTransactionApi & _solana_kit.SimulateTransactionApi>;
17
17
  rpcSubscriptions: _solana_kit.RpcSubscriptions<_solana_kit.SolanaRpcSubscriptionsApi>;
18
- }>>;
18
+ airdrop: (address: _solana_kit.Address, amount: _solana_kit.Lamports, abortSignal?: AbortSignal) => Promise<_solana_kit.Signature | undefined>;
19
+ }>;
19
20
  };
20
21
 
21
22
  export { useRpc };
package/dist/useRpc.d.mts CHANGED
@@ -12,10 +12,11 @@ declare function useRpc(): {
12
12
  error: vue.Ref<_vue_solana_core_errors.SolanaError | null, _vue_solana_core_errors.SolanaError | null>;
13
13
  latestBlockhash: vue.Ref<string | null, string | null>;
14
14
  checkConnection: () => Promise<void>;
15
- client: _solana_kit.Client<_solana_kit.ExtendedClient<object, {
15
+ client: _solana_kit.Client<{
16
16
  rpc: _solana_kit.Rpc<_solana_kit.RequestAirdropApi & _solana_kit.GetAccountInfoApi & _solana_kit.GetAgGenesisCertApi & _solana_kit.GetBalanceApi & _solana_kit.GetBlockApi & _solana_kit.GetBlockCommitmentApi & _solana_kit.GetBlockHeightApi & _solana_kit.GetBlockProductionApi & _solana_kit.GetBlocksApi & _solana_kit.GetBlocksWithLimitApi & _solana_kit.GetBlockTimeApi & _solana_kit.GetClusterNodesApi & _solana_kit.GetEpochInfoApi & _solana_kit.GetEpochScheduleApi & _solana_kit.GetFeeForMessageApi & _solana_kit.GetFirstAvailableBlockApi & _solana_kit.GetGenesisHashApi & _solana_kit.GetHealthApi & _solana_kit.GetHighestSnapshotSlotApi & _solana_kit.GetIdentityApi & _solana_kit.GetInflationGovernorApi & _solana_kit.GetInflationRateApi & _solana_kit.GetInflationRewardApi & _solana_kit.GetLargestAccountsApi & _solana_kit.GetLatestBlockhashApi & _solana_kit.GetLeaderScheduleApi & _solana_kit.GetMaxRetransmitSlotApi & _solana_kit.GetMaxShredInsertSlotApi & _solana_kit.GetMinimumBalanceForRentExemptionApi & _solana_kit.GetMultipleAccountsApi & _solana_kit.GetProgramAccountsApi & _solana_kit.GetRecentPerformanceSamplesApi & _solana_kit.GetRecentPrioritizationFeesApi & _solana_kit.GetSignaturesForAddressApi & _solana_kit.GetSignatureStatusesApi & _solana_kit.GetSlotApi & _solana_kit.GetSlotLeaderApi & _solana_kit.GetSlotLeadersApi & _solana_kit.GetStakeMinimumDelegationApi & _solana_kit.GetSupplyApi & _solana_kit.GetTokenAccountBalanceApi & _solana_kit.GetTokenAccountsByDelegateApi & _solana_kit.GetTokenAccountsByOwnerApi & _solana_kit.GetTokenLargestAccountsApi & _solana_kit.GetTokenSupplyApi & _solana_kit.GetTransactionApi & _solana_kit.GetTransactionCountApi & _solana_kit.GetTransactionsForAddressApi & _solana_kit.GetVersionApi & _solana_kit.GetVoteAccountsApi & _solana_kit.IsBlockhashValidApi & _solana_kit.MinimumLedgerSlotApi & _solana_kit.SendTransactionApi & _solana_kit.SimulateTransactionApi>;
17
17
  rpcSubscriptions: _solana_kit.RpcSubscriptions<_solana_kit.SolanaRpcSubscriptionsApi>;
18
- }>>;
18
+ airdrop: (address: _solana_kit.Address, amount: _solana_kit.Lamports, abortSignal?: AbortSignal) => Promise<_solana_kit.Signature | undefined>;
19
+ }>;
19
20
  };
20
21
 
21
22
  export { useRpc };
package/dist/useRpc.d.ts CHANGED
@@ -12,10 +12,11 @@ declare function useRpc(): {
12
12
  error: vue.Ref<_vue_solana_core_errors.SolanaError | null, _vue_solana_core_errors.SolanaError | null>;
13
13
  latestBlockhash: vue.Ref<string | null, string | null>;
14
14
  checkConnection: () => Promise<void>;
15
- client: _solana_kit.Client<_solana_kit.ExtendedClient<object, {
15
+ client: _solana_kit.Client<{
16
16
  rpc: _solana_kit.Rpc<_solana_kit.RequestAirdropApi & _solana_kit.GetAccountInfoApi & _solana_kit.GetAgGenesisCertApi & _solana_kit.GetBalanceApi & _solana_kit.GetBlockApi & _solana_kit.GetBlockCommitmentApi & _solana_kit.GetBlockHeightApi & _solana_kit.GetBlockProductionApi & _solana_kit.GetBlocksApi & _solana_kit.GetBlocksWithLimitApi & _solana_kit.GetBlockTimeApi & _solana_kit.GetClusterNodesApi & _solana_kit.GetEpochInfoApi & _solana_kit.GetEpochScheduleApi & _solana_kit.GetFeeForMessageApi & _solana_kit.GetFirstAvailableBlockApi & _solana_kit.GetGenesisHashApi & _solana_kit.GetHealthApi & _solana_kit.GetHighestSnapshotSlotApi & _solana_kit.GetIdentityApi & _solana_kit.GetInflationGovernorApi & _solana_kit.GetInflationRateApi & _solana_kit.GetInflationRewardApi & _solana_kit.GetLargestAccountsApi & _solana_kit.GetLatestBlockhashApi & _solana_kit.GetLeaderScheduleApi & _solana_kit.GetMaxRetransmitSlotApi & _solana_kit.GetMaxShredInsertSlotApi & _solana_kit.GetMinimumBalanceForRentExemptionApi & _solana_kit.GetMultipleAccountsApi & _solana_kit.GetProgramAccountsApi & _solana_kit.GetRecentPerformanceSamplesApi & _solana_kit.GetRecentPrioritizationFeesApi & _solana_kit.GetSignaturesForAddressApi & _solana_kit.GetSignatureStatusesApi & _solana_kit.GetSlotApi & _solana_kit.GetSlotLeaderApi & _solana_kit.GetSlotLeadersApi & _solana_kit.GetStakeMinimumDelegationApi & _solana_kit.GetSupplyApi & _solana_kit.GetTokenAccountBalanceApi & _solana_kit.GetTokenAccountsByDelegateApi & _solana_kit.GetTokenAccountsByOwnerApi & _solana_kit.GetTokenLargestAccountsApi & _solana_kit.GetTokenSupplyApi & _solana_kit.GetTransactionApi & _solana_kit.GetTransactionCountApi & _solana_kit.GetTransactionsForAddressApi & _solana_kit.GetVersionApi & _solana_kit.GetVoteAccountsApi & _solana_kit.IsBlockhashValidApi & _solana_kit.MinimumLedgerSlotApi & _solana_kit.SendTransactionApi & _solana_kit.SimulateTransactionApi>;
17
17
  rpcSubscriptions: _solana_kit.RpcSubscriptions<_solana_kit.SolanaRpcSubscriptionsApi>;
18
- }>>;
18
+ airdrop: (address: _solana_kit.Address, amount: _solana_kit.Lamports, abortSignal?: AbortSignal) => Promise<_solana_kit.Signature | undefined>;
19
+ }>;
19
20
  };
20
21
 
21
22
  export { useRpc };
package/dist/useRpc.mjs CHANGED
@@ -1,3 +1,4 @@
1
- export { u as useRpc } from './shared/vue.3VLZmw05.mjs';
1
+ export { u as useRpc } from './shared/vue.BsGwt78R.mjs';
2
2
  import 'vue';
3
- import './shared/vue.CnUlZSe8.mjs';
3
+ import './shared/vue.CQh3AUE8.mjs';
4
+ import './shared/vue.D_P5SqqD.mjs';
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ const SelectedWalletAccountProvider = require('./shared/vue.DDbVk0Zh.cjs');
4
+ require('vue');
5
+ require('./shared/vue.DEHxNvUX.cjs');
6
+
7
+
8
+
9
+ exports.SelectedWalletAccountProvider = SelectedWalletAccountProvider.SelectedWalletAccountProvider;
10
+ exports.createSelectedWalletAccountContext = SelectedWalletAccountProvider.createSelectedWalletAccountContext;
11
+ exports.provideSelectedWalletAccount = SelectedWalletAccountProvider.provideSelectedWalletAccount;
12
+ exports.selectedWalletAccountInjectionKey = SelectedWalletAccountProvider.selectedWalletAccountInjectionKey;
13
+ exports.useSelectedWalletAccount = SelectedWalletAccountProvider.useSelectedWalletAccount;
@@ -0,0 +1,117 @@
1
+ import { SolanaWalletInfo } from '@vue-solana/core/types';
2
+ import * as vue from 'vue';
3
+ import { Ref, ComputedRef, InjectionKey, PropType } from 'vue';
4
+
5
+ /**
6
+ * Storage adapter used by `SelectedWalletAccountProvider`'s `stateSync`
7
+ * option. The persisted value is the selected wallet's
8
+ * `${walletName}:${accountAddress}` key.
9
+ */
10
+ interface SelectedWalletAccountStorage {
11
+ storeSelectedWallet(key: string): void | Promise<void>;
12
+ getSelectedWallet(): string | null | Promise<string | null>;
13
+ deleteSelectedWallet(): void | Promise<void>;
14
+ }
15
+
16
+ type SelectedWalletAccount = SolanaWalletInfo["accounts"][number] & {
17
+ /** The wallet that owns this account. */
18
+ walletName: string;
19
+ };
20
+ type WalletAccountFilter = (walletName: string, account: SolanaWalletInfo["accounts"][number]) => boolean;
21
+ interface SelectedWalletAccountContext {
22
+ selectedWalletAccount: Ref<SelectedWalletAccount | null>;
23
+ setSelectedWalletAccount: (account: SelectedWalletAccount | null) => void;
24
+ filteredWallets: ComputedRef<SolanaWalletInfo[]>;
25
+ }
26
+ declare const selectedWalletAccountInjectionKey: InjectionKey<SelectedWalletAccountContext>;
27
+ interface SelectedWalletAccountOptions {
28
+ /**
29
+ * Restricts the wallets exposed through `filteredWallets` and the accounts
30
+ * that can be selected. Receives the wallet name and each of its accounts;
31
+ * return `false` to hide the account (a wallet with no remaining accounts
32
+ * is hidden entirely).
33
+ */
34
+ filterWallet?: WalletAccountFilter;
35
+ /**
36
+ * Persists the selection as `${walletName}:${accountAddress}`. Defaults to
37
+ * `localStorage`; pass `null` to disable persistence.
38
+ */
39
+ stateSync?: SelectedWalletAccountStorage | null;
40
+ }
41
+ /**
42
+ * App-wide selected wallet account state, mirroring `@solana/react`'s
43
+ * `SelectedWalletAccountContextProvider`.
44
+ *
45
+ * Call once near the root of your app, then read state anywhere with
46
+ * {@link useSelectedWalletAccount}. The selection persists as
47
+ * `${walletName}:${accountAddress}` through `stateSync` and is restored on
48
+ * the next mount when the wallet and account are available again.
49
+ */
50
+ declare function provideSelectedWalletAccount(options?: SelectedWalletAccountOptions): SelectedWalletAccountContext;
51
+ /**
52
+ * Build the selected wallet account context without providing it. Used by
53
+ * the Nuxt runtime plugin, which installs the context app-wide via
54
+ * `app.provide` rather than inside a component setup.
55
+ *
56
+ * When called outside a component setup (as the Nuxt plugin does), `inject`
57
+ * cannot resolve the Solana context, so pass it explicitly through
58
+ * {@link solanaContextOverride}.
59
+ */
60
+ declare function createSelectedWalletAccountContext(options?: SelectedWalletAccountOptions, solanaContextOverride?: SolanaContextLike | null): SelectedWalletAccountContext;
61
+ /**
62
+ * Read the app-wide selected wallet account provided by
63
+ * {@link provideSelectedWalletAccount}.
64
+ *
65
+ * Returns `[selectedAccount, setSelectedAccount, filteredWallets]`. The
66
+ * setter accepts `null` to clear the selection. Throws when called outside a
67
+ * provider — mount `SelectedWalletAccountProvider` (or call
68
+ * `provideSelectedWalletAccount`) first.
69
+ */
70
+ declare function useSelectedWalletAccount(): [
71
+ Ref<SelectedWalletAccount | null>,
72
+ (account: SelectedWalletAccount | null) => void,
73
+ ComputedRef<SolanaWalletInfo[]>
74
+ ];
75
+ /**
76
+ * The minimal Solana context surface this composable reads. Structural so the
77
+ * full `VueSolanaContext` (or the raw RPC context) satisfies it without an
78
+ * import cycle from the plugin to its composables.
79
+ */
80
+ interface SolanaContextLike {
81
+ wallets: Ref<SolanaWalletInfo[]>;
82
+ }
83
+
84
+ /**
85
+ * App-wide selected wallet account provider, mirroring `@solana/react`'s
86
+ * `SelectedWalletAccountContextProvider`.
87
+ *
88
+ * Wraps `provideSelectedWalletAccount`; children read state via
89
+ * `useSelectedWalletAccount()`.
90
+ */
91
+ declare const SelectedWalletAccountProvider: vue.DefineComponent<vue.ExtractPropTypes<{
92
+ filterWallet: {
93
+ type: PropType<SelectedWalletAccountOptions["filterWallet"]>;
94
+ default: undefined;
95
+ };
96
+ stateSync: {
97
+ type: PropType<SelectedWalletAccountOptions["stateSync"]>;
98
+ default: undefined;
99
+ };
100
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
101
+ [key: string]: any;
102
+ }>[] | undefined, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
103
+ filterWallet: {
104
+ type: PropType<SelectedWalletAccountOptions["filterWallet"]>;
105
+ default: undefined;
106
+ };
107
+ stateSync: {
108
+ type: PropType<SelectedWalletAccountOptions["stateSync"]>;
109
+ default: undefined;
110
+ };
111
+ }>> & Readonly<{}>, {
112
+ filterWallet: WalletAccountFilter | undefined;
113
+ stateSync: SelectedWalletAccountStorage | null | undefined;
114
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
115
+
116
+ export { SelectedWalletAccountProvider, createSelectedWalletAccountContext, provideSelectedWalletAccount, selectedWalletAccountInjectionKey, useSelectedWalletAccount };
117
+ export type { SelectedWalletAccount, SelectedWalletAccountContext, SelectedWalletAccountOptions, WalletAccountFilter };
@@ -0,0 +1,117 @@
1
+ import { SolanaWalletInfo } from '@vue-solana/core/types';
2
+ import * as vue from 'vue';
3
+ import { Ref, ComputedRef, InjectionKey, PropType } from 'vue';
4
+
5
+ /**
6
+ * Storage adapter used by `SelectedWalletAccountProvider`'s `stateSync`
7
+ * option. The persisted value is the selected wallet's
8
+ * `${walletName}:${accountAddress}` key.
9
+ */
10
+ interface SelectedWalletAccountStorage {
11
+ storeSelectedWallet(key: string): void | Promise<void>;
12
+ getSelectedWallet(): string | null | Promise<string | null>;
13
+ deleteSelectedWallet(): void | Promise<void>;
14
+ }
15
+
16
+ type SelectedWalletAccount = SolanaWalletInfo["accounts"][number] & {
17
+ /** The wallet that owns this account. */
18
+ walletName: string;
19
+ };
20
+ type WalletAccountFilter = (walletName: string, account: SolanaWalletInfo["accounts"][number]) => boolean;
21
+ interface SelectedWalletAccountContext {
22
+ selectedWalletAccount: Ref<SelectedWalletAccount | null>;
23
+ setSelectedWalletAccount: (account: SelectedWalletAccount | null) => void;
24
+ filteredWallets: ComputedRef<SolanaWalletInfo[]>;
25
+ }
26
+ declare const selectedWalletAccountInjectionKey: InjectionKey<SelectedWalletAccountContext>;
27
+ interface SelectedWalletAccountOptions {
28
+ /**
29
+ * Restricts the wallets exposed through `filteredWallets` and the accounts
30
+ * that can be selected. Receives the wallet name and each of its accounts;
31
+ * return `false` to hide the account (a wallet with no remaining accounts
32
+ * is hidden entirely).
33
+ */
34
+ filterWallet?: WalletAccountFilter;
35
+ /**
36
+ * Persists the selection as `${walletName}:${accountAddress}`. Defaults to
37
+ * `localStorage`; pass `null` to disable persistence.
38
+ */
39
+ stateSync?: SelectedWalletAccountStorage | null;
40
+ }
41
+ /**
42
+ * App-wide selected wallet account state, mirroring `@solana/react`'s
43
+ * `SelectedWalletAccountContextProvider`.
44
+ *
45
+ * Call once near the root of your app, then read state anywhere with
46
+ * {@link useSelectedWalletAccount}. The selection persists as
47
+ * `${walletName}:${accountAddress}` through `stateSync` and is restored on
48
+ * the next mount when the wallet and account are available again.
49
+ */
50
+ declare function provideSelectedWalletAccount(options?: SelectedWalletAccountOptions): SelectedWalletAccountContext;
51
+ /**
52
+ * Build the selected wallet account context without providing it. Used by
53
+ * the Nuxt runtime plugin, which installs the context app-wide via
54
+ * `app.provide` rather than inside a component setup.
55
+ *
56
+ * When called outside a component setup (as the Nuxt plugin does), `inject`
57
+ * cannot resolve the Solana context, so pass it explicitly through
58
+ * {@link solanaContextOverride}.
59
+ */
60
+ declare function createSelectedWalletAccountContext(options?: SelectedWalletAccountOptions, solanaContextOverride?: SolanaContextLike | null): SelectedWalletAccountContext;
61
+ /**
62
+ * Read the app-wide selected wallet account provided by
63
+ * {@link provideSelectedWalletAccount}.
64
+ *
65
+ * Returns `[selectedAccount, setSelectedAccount, filteredWallets]`. The
66
+ * setter accepts `null` to clear the selection. Throws when called outside a
67
+ * provider — mount `SelectedWalletAccountProvider` (or call
68
+ * `provideSelectedWalletAccount`) first.
69
+ */
70
+ declare function useSelectedWalletAccount(): [
71
+ Ref<SelectedWalletAccount | null>,
72
+ (account: SelectedWalletAccount | null) => void,
73
+ ComputedRef<SolanaWalletInfo[]>
74
+ ];
75
+ /**
76
+ * The minimal Solana context surface this composable reads. Structural so the
77
+ * full `VueSolanaContext` (or the raw RPC context) satisfies it without an
78
+ * import cycle from the plugin to its composables.
79
+ */
80
+ interface SolanaContextLike {
81
+ wallets: Ref<SolanaWalletInfo[]>;
82
+ }
83
+
84
+ /**
85
+ * App-wide selected wallet account provider, mirroring `@solana/react`'s
86
+ * `SelectedWalletAccountContextProvider`.
87
+ *
88
+ * Wraps `provideSelectedWalletAccount`; children read state via
89
+ * `useSelectedWalletAccount()`.
90
+ */
91
+ declare const SelectedWalletAccountProvider: vue.DefineComponent<vue.ExtractPropTypes<{
92
+ filterWallet: {
93
+ type: PropType<SelectedWalletAccountOptions["filterWallet"]>;
94
+ default: undefined;
95
+ };
96
+ stateSync: {
97
+ type: PropType<SelectedWalletAccountOptions["stateSync"]>;
98
+ default: undefined;
99
+ };
100
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
101
+ [key: string]: any;
102
+ }>[] | undefined, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
103
+ filterWallet: {
104
+ type: PropType<SelectedWalletAccountOptions["filterWallet"]>;
105
+ default: undefined;
106
+ };
107
+ stateSync: {
108
+ type: PropType<SelectedWalletAccountOptions["stateSync"]>;
109
+ default: undefined;
110
+ };
111
+ }>> & Readonly<{}>, {
112
+ filterWallet: WalletAccountFilter | undefined;
113
+ stateSync: SelectedWalletAccountStorage | null | undefined;
114
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
115
+
116
+ export { SelectedWalletAccountProvider, createSelectedWalletAccountContext, provideSelectedWalletAccount, selectedWalletAccountInjectionKey, useSelectedWalletAccount };
117
+ export type { SelectedWalletAccount, SelectedWalletAccountContext, SelectedWalletAccountOptions, WalletAccountFilter };