@vue-solana/vue 2.1.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.
- package/README.md +51 -0
- package/dist/index.cjs +5 -3
- package/dist/index.d.cts +4 -3
- package/dist/index.d.mts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.mjs +4 -3
- package/dist/shared/{vue.DImwKTwJ.mjs → vue.B8VvC8d2.mjs} +18 -20
- package/dist/shared/{vue.B8ub540p.mjs → vue.BDNOyiGZ.mjs} +7 -7
- package/dist/shared/vue.BSfiHqwj.mjs +34 -0
- package/dist/shared/vue.CTqPbvz3.cjs +36 -0
- package/dist/shared/{vue.CogzzQXM.mjs → vue.CbJFnho-.mjs} +4 -4
- package/dist/shared/{vue.DtCbCcPd.cjs → vue.DxM45azl.cjs} +4 -4
- package/dist/shared/{vue.B8pLQ8P4.cjs → vue.ZuUCEEab.cjs} +18 -20
- package/dist/shared/{vue.BVj9lWBK.cjs → vue.l3UCdN7z.cjs} +7 -7
- package/dist/swr.cjs +3 -3
- package/dist/swr.mjs +3 -3
- package/dist/useAirdrop.cjs +14 -0
- package/dist/useAirdrop.d.cts +25 -0
- package/dist/useAirdrop.d.mts +25 -0
- package/dist/useAirdrop.d.ts +25 -0
- package/dist/useAirdrop.mjs +8 -0
- package/dist/useConnection.d.cts +3 -2
- package/dist/useConnection.d.mts +3 -2
- package/dist/useConnection.d.ts +3 -2
- package/dist/useRequest.cjs +1 -1
- package/dist/useRequest.d.cts +22 -6
- package/dist/useRequest.d.mts +22 -6
- package/dist/useRequest.d.ts +22 -6
- package/dist/useRequest.mjs +1 -1
- package/dist/useRpc.d.cts +3 -2
- package/dist/useRpc.d.mts +3 -2
- package/dist/useRpc.d.ts +3 -2
- package/dist/useSolanaClient.d.cts +3 -2
- package/dist/useSolanaClient.d.mts +3 -2
- package/dist/useSolanaClient.d.ts +3 -2
- package/dist/useSubscription.cjs +1 -1
- package/dist/useSubscription.d.cts +15 -3
- package/dist/useSubscription.d.mts +15 -3
- package/dist/useSubscription.d.ts +15 -3
- package/dist/useSubscription.mjs +1 -1
- package/dist/useTrackedData.cjs +1 -1
- package/dist/useTrackedData.d.cts +15 -3
- package/dist/useTrackedData.d.mts +15 -3
- package/dist/useTrackedData.d.ts +15 -3
- package/dist/useTrackedData.mjs +1 -1
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -164,6 +164,22 @@ const { balance, loading, error, refresh } = useBalance(address);
|
|
|
164
164
|
</template>
|
|
165
165
|
```
|
|
166
166
|
|
|
167
|
+
### Airdrop on Test Networks
|
|
168
|
+
|
|
169
|
+
`useAirdrop()` sends SOL to an account on devnet, testnet, or a local validator. It requires an airdrop capability on the Kit client, installed with `createClient().use(solanaRpcConnection({ ... })).use(rpcAirdrop())` from `@solana/kit-plugin-rpc`.
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
import { lamports } from "@solana/kit";
|
|
173
|
+
import { useAirdrop } from "@vue-solana/vue/useAirdrop";
|
|
174
|
+
|
|
175
|
+
const { data, status, error, dispatch } = useAirdrop();
|
|
176
|
+
await dispatch(address, lamports(1_000_000_000)); // 1 SOL
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Each `dispatch(address, amount)` runs a fresh airdrop and aborts the previous in-flight call. `data` resolves to the transaction `Signature`, or to `undefined` when the network applies the airdrop without a transaction (some local validators, e.g. LiteSVM).
|
|
180
|
+
|
|
181
|
+
Airdrops to a single address are rate-limited (public devnets commonly return HTTP 429, and 1 SOL requires enough devnet balance); wait before dispatching again or use a fresh address. Errors surface through `error` / the `error` state.
|
|
182
|
+
|
|
167
183
|
## Read Account Data
|
|
168
184
|
|
|
169
185
|
```ts
|
|
@@ -341,6 +357,39 @@ import { useRequestSwr } from "@vue-solana/vue/swr";
|
|
|
341
357
|
const balance = useRequestSwr(["balance", address], () => client.rpc.getBalance(address).send());
|
|
342
358
|
```
|
|
343
359
|
|
|
360
|
+
### Cancellation & Timeouts
|
|
361
|
+
|
|
362
|
+
`useRequest()`, `useSubscription()`, and `useTrackedData()` accept a `getAbortSignal` option — a factory called once per attempt (request) or connection (subscription/tracked data). It is the natural place for a timeout:
|
|
363
|
+
|
|
364
|
+
```ts
|
|
365
|
+
const { data, refresh } = useRequest(source, {
|
|
366
|
+
getAbortSignal: (attempt) => AbortSignal.timeout(10_000),
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
await refresh({ abortSignal: AbortSignal.timeout(2_000) });
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
The factory is read fresh from the latest render on every attempt, so inline closures work without `useCallback`-style wrapping. Each manual refresh or reconnect can instead pass a single `{ abortSignal }` override that replaces the factory for that attempt; pass `AbortSignal` explicitly as `undefined` to skip caller cancellation entirely. Aborting the composed signal fails only that attempt — previous `data` is kept and `status` drops back to `error`.
|
|
373
|
+
|
|
374
|
+
To kill the data hook entirely, set its source to `null` (status becomes `disabled` and in-flight work is cancelled) or unmount the component that owns it.
|
|
375
|
+
|
|
376
|
+
### Actions with `useAction`
|
|
377
|
+
|
|
378
|
+
`useAction()` and its derivatives (`useAirdrop()`, `useSignAndSendTransaction()` themes) manage one async action at a time:
|
|
379
|
+
|
|
380
|
+
```ts
|
|
381
|
+
const { data, status, error, dispatch } = useAction(async (signal, input) => {
|
|
382
|
+
/* ... */
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
dispatch(inputA); // runs
|
|
386
|
+
await dispatch(inputB); // aborts dispatch(inputA) before starting
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
- `useAction` keeps the handler in a ref — every `dispatch` runs the latest closure, so there is no deps array to keep in sync. In-flight calls keep running with the closure they started with.
|
|
390
|
+
- `dispatch` returns a `Promise<TResult>`. If a newer dispatch supersedes it, the older promise rejects with an abort error; awaiters should treat that as "superseded", not a failure, and fresh awaits win.
|
|
391
|
+
- Calling `dispatch` again aborts the prior in-flight call with a fresh `AbortSignal`, and resets state to `idle` before the new run starts.
|
|
392
|
+
|
|
344
393
|
### Sign In With Solana
|
|
345
394
|
|
|
346
395
|
`useSignIn()` triggers the SIWS flow when the connected wallet supports the `solana:signIn` feature:
|
|
@@ -420,6 +469,7 @@ Docs: [Vue Solana Agent Skill](https://vue-solana-docs.vercel.app/agent-skill)
|
|
|
420
469
|
| `useWallets()` | Returns discovered browser extension wallets, Android MWA wallets, iOS browser wallet links, and wallet selection actions. |
|
|
421
470
|
| `useSignMessage()` | Signs arbitrary message bytes through the connected wallet when message signing is supported. |
|
|
422
471
|
| `useBalance(address, commitment?)` | Loads lamport balance for an address string. |
|
|
472
|
+
| `useAirdrop()` | Airdrops SOL on devnet/testnet/localnets; `data` is the `Signature`, or `undefined` when applied directly. |
|
|
423
473
|
| `useAccountInfo(address, options?)` | Loads normalized account info (executable, lamports, owner, space, data bytes). |
|
|
424
474
|
| `useProgramAccounts(programId, config?)` | Loads accounts owned by a program with optional filters, commitment, and `dataSlice`. |
|
|
425
475
|
| `useTransaction(handler, options?)` | Generic async transaction state helper with optional timeout settings. |
|
|
@@ -452,6 +502,7 @@ Direct composable subpaths:
|
|
|
452
502
|
- `@vue-solana/vue/useRpc`
|
|
453
503
|
- `@vue-solana/vue/useConnection`
|
|
454
504
|
- `@vue-solana/vue/useAccountInfo`
|
|
505
|
+
- `@vue-solana/vue/useAirdrop`
|
|
455
506
|
- `@vue-solana/vue/useBalance`
|
|
456
507
|
- `@vue-solana/vue/useProgramAccounts`
|
|
457
508
|
- `@vue-solana/vue/useWallet`
|
package/dist/index.cjs
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
const useAccountInfo = require('./shared/vue.D-qi8PSL.cjs');
|
|
4
4
|
const useAction = require('./shared/vue.CoaIWGPT.cjs');
|
|
5
|
+
const useAirdrop = require('./shared/vue.CTqPbvz3.cjs');
|
|
5
6
|
const useBalance = require('./shared/vue.E_npPFoV.cjs');
|
|
6
7
|
const useClientCapability = require('./shared/vue.BY0qpgYr.cjs');
|
|
7
8
|
const useConnection = require('./shared/vue.BVaMoz9y.cjs');
|
|
8
9
|
const usePlanTransaction = require('./shared/vue.B4-LEdSE.cjs');
|
|
9
10
|
const useProgramAccounts = require('./shared/vue.Di7yjJ-R.cjs');
|
|
10
11
|
const usePayer = require('./shared/vue.g8fnm_ca.cjs');
|
|
11
|
-
const useRequest = require('./shared/vue.
|
|
12
|
+
const useRequest = require('./shared/vue.ZuUCEEab.cjs');
|
|
12
13
|
const useRpc = require('./shared/vue.FiMmnMHr.cjs');
|
|
13
14
|
const SelectedWalletAccountProvider = require('./shared/vue.DDbVk0Zh.cjs');
|
|
14
15
|
const useSignMessage = require('./shared/vue.B6ainw2G.cjs');
|
|
@@ -19,10 +20,10 @@ const useSignatureStatus = require('./shared/vue.CIs8QhCw.cjs');
|
|
|
19
20
|
const useSignIn = require('./shared/vue.9TPxZPMf.cjs');
|
|
20
21
|
const useSolana = require('./shared/vue.DE3emjSF.cjs');
|
|
21
22
|
const useSolanaClient = require('./shared/vue.BIxphCAq.cjs');
|
|
22
|
-
const useSubscription = require('./shared/vue.
|
|
23
|
+
const useSubscription = require('./shared/vue.l3UCdN7z.cjs');
|
|
23
24
|
const useTokenAccounts = require('./shared/vue.Bwd1sGAM.cjs');
|
|
24
25
|
const useTokenBalance = require('./shared/vue.DAg5wC1G.cjs');
|
|
25
|
-
const useTrackedData = require('./shared/vue.
|
|
26
|
+
const useTrackedData = require('./shared/vue.DxM45azl.cjs');
|
|
26
27
|
const useTransaction = require('./shared/vue.Bk5xjlUx.cjs');
|
|
27
28
|
const useTransactionConfirmation = require('./shared/vue.Sbbm9JSu.cjs');
|
|
28
29
|
const useWallet = require('./shared/vue.BGxz4dru.cjs');
|
|
@@ -386,6 +387,7 @@ const VueSolana = createSolanaPlugin;
|
|
|
386
387
|
|
|
387
388
|
exports.useAccountInfo = useAccountInfo.useAccountInfo;
|
|
388
389
|
exports.useAction = useAction.useAction;
|
|
390
|
+
exports.useAirdrop = useAirdrop.useAirdrop;
|
|
389
391
|
exports.useBalance = useBalance.useBalance;
|
|
390
392
|
exports.MissingClientCapabilityError = useClientCapability.MissingClientCapabilityError;
|
|
391
393
|
exports.useClientCapability = useClientCapability.useClientCapability;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export { AccountInfo, UseAccountInfoOptions, useAccountInfo } from './useAccountInfo.cjs';
|
|
2
2
|
export { UseActionOptions, UseActionReturn, UseActionStatus, useAction } from './useAction.cjs';
|
|
3
|
+
export { useAirdrop } from './useAirdrop.cjs';
|
|
3
4
|
export { BalanceInput, useBalance } from './useBalance.cjs';
|
|
4
5
|
export { MissingClientCapabilityError, UseClientCapabilityOptions, useClientCapability } from './useClientCapability.cjs';
|
|
5
6
|
export { useConnection } from './useConnection.cjs';
|
|
6
7
|
export { PlanTransactionConfig, PlanTransactionStatus, usePlanTransaction, usePlanTransactions } from './usePlanTransaction.cjs';
|
|
7
8
|
export { ProgramAccount, ProgramAccountDataSizeFilter, ProgramAccountDataSlice, ProgramAccountFilter, ProgramAccountMemcmpEncoding, ProgramAccountMemcmpFilter, UseProgramAccountsOptions, useProgramAccounts } from './useProgramAccounts.cjs';
|
|
8
9
|
export { useIdentity, usePayer } from './usePayer.cjs';
|
|
9
|
-
export { UseRequestOptions, UseRequestReturn, UseRequestSource, UseRequestStatus, useRequest } from './useRequest.cjs';
|
|
10
|
+
export { UseRequestOptions, UseRequestRefresherOptions, UseRequestReturn, UseRequestSource, UseRequestStatus, useRequest } from './useRequest.cjs';
|
|
10
11
|
export { useRpc } from './useRpc.cjs';
|
|
11
12
|
export { SelectedWalletAccount, SelectedWalletAccountContext, SelectedWalletAccountOptions, SelectedWalletAccountProvider, WalletAccountFilter, createSelectedWalletAccountContext, provideSelectedWalletAccount, selectedWalletAccountInjectionKey, useSelectedWalletAccount } from './useSelectedWalletAccount.cjs';
|
|
12
13
|
export { SignMessageStatus, useSignMessage } from './useSignMessage.cjs';
|
|
@@ -17,10 +18,10 @@ export { SignatureStatus, UseSignatureStatusOptions, useSignatureStatus } from '
|
|
|
17
18
|
export { SignInStatus, useSignIn } from './useSignIn.cjs';
|
|
18
19
|
export { tryUseSolana, useSolana } from './useSolana.cjs';
|
|
19
20
|
export { useSolanaClient } from './useSolanaClient.cjs';
|
|
20
|
-
export { UseSubscriptionOptions, UseSubscriptionReturn, UseSubscriptionSource, UseSubscriptionStatus, useSubscription } from './useSubscription.cjs';
|
|
21
|
+
export { UseSubscriptionOptions, UseSubscriptionReconnectOptions, UseSubscriptionReturn, UseSubscriptionSource, UseSubscriptionStatus, useSubscription } from './useSubscription.cjs';
|
|
21
22
|
export { UseTokenAccountsOptions, useTokenAccounts } from './useTokenAccounts.cjs';
|
|
22
23
|
export { useTokenBalance } from './useTokenBalance.cjs';
|
|
23
|
-
export { UseTrackedDataInitialSource, UseTrackedDataOptions, UseTrackedDataReturn, UseTrackedDataSource, UseTrackedDataStatus, UseTrackedDataStreamSource, useTrackedData } from './useTrackedData.cjs';
|
|
24
|
+
export { UseTrackedDataInitialSource, UseTrackedDataOptions, UseTrackedDataRefresherOptions, UseTrackedDataReturn, UseTrackedDataSource, UseTrackedDataStatus, UseTrackedDataStreamSource, useTrackedData } from './useTrackedData.cjs';
|
|
24
25
|
export { UseTransactionOptions, useTransaction } from './useTransaction.cjs';
|
|
25
26
|
export { TransactionConfirmationStatus, getConfirmedTransactionStatus, useTransactionConfirmation } from './useTransactionConfirmation.cjs';
|
|
26
27
|
export { useWallet } from './useWallet.cjs';
|
package/dist/index.d.mts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export { AccountInfo, UseAccountInfoOptions, useAccountInfo } from './useAccountInfo.mjs';
|
|
2
2
|
export { UseActionOptions, UseActionReturn, UseActionStatus, useAction } from './useAction.mjs';
|
|
3
|
+
export { useAirdrop } from './useAirdrop.mjs';
|
|
3
4
|
export { BalanceInput, useBalance } from './useBalance.mjs';
|
|
4
5
|
export { MissingClientCapabilityError, UseClientCapabilityOptions, useClientCapability } from './useClientCapability.mjs';
|
|
5
6
|
export { useConnection } from './useConnection.mjs';
|
|
6
7
|
export { PlanTransactionConfig, PlanTransactionStatus, usePlanTransaction, usePlanTransactions } from './usePlanTransaction.mjs';
|
|
7
8
|
export { ProgramAccount, ProgramAccountDataSizeFilter, ProgramAccountDataSlice, ProgramAccountFilter, ProgramAccountMemcmpEncoding, ProgramAccountMemcmpFilter, UseProgramAccountsOptions, useProgramAccounts } from './useProgramAccounts.mjs';
|
|
8
9
|
export { useIdentity, usePayer } from './usePayer.mjs';
|
|
9
|
-
export { UseRequestOptions, UseRequestReturn, UseRequestSource, UseRequestStatus, useRequest } from './useRequest.mjs';
|
|
10
|
+
export { UseRequestOptions, UseRequestRefresherOptions, UseRequestReturn, UseRequestSource, UseRequestStatus, useRequest } from './useRequest.mjs';
|
|
10
11
|
export { useRpc } from './useRpc.mjs';
|
|
11
12
|
export { SelectedWalletAccount, SelectedWalletAccountContext, SelectedWalletAccountOptions, SelectedWalletAccountProvider, WalletAccountFilter, createSelectedWalletAccountContext, provideSelectedWalletAccount, selectedWalletAccountInjectionKey, useSelectedWalletAccount } from './useSelectedWalletAccount.mjs';
|
|
12
13
|
export { SignMessageStatus, useSignMessage } from './useSignMessage.mjs';
|
|
@@ -17,10 +18,10 @@ export { SignatureStatus, UseSignatureStatusOptions, useSignatureStatus } from '
|
|
|
17
18
|
export { SignInStatus, useSignIn } from './useSignIn.mjs';
|
|
18
19
|
export { tryUseSolana, useSolana } from './useSolana.mjs';
|
|
19
20
|
export { useSolanaClient } from './useSolanaClient.mjs';
|
|
20
|
-
export { UseSubscriptionOptions, UseSubscriptionReturn, UseSubscriptionSource, UseSubscriptionStatus, useSubscription } from './useSubscription.mjs';
|
|
21
|
+
export { UseSubscriptionOptions, UseSubscriptionReconnectOptions, UseSubscriptionReturn, UseSubscriptionSource, UseSubscriptionStatus, useSubscription } from './useSubscription.mjs';
|
|
21
22
|
export { UseTokenAccountsOptions, useTokenAccounts } from './useTokenAccounts.mjs';
|
|
22
23
|
export { useTokenBalance } from './useTokenBalance.mjs';
|
|
23
|
-
export { UseTrackedDataInitialSource, UseTrackedDataOptions, UseTrackedDataReturn, UseTrackedDataSource, UseTrackedDataStatus, UseTrackedDataStreamSource, useTrackedData } from './useTrackedData.mjs';
|
|
24
|
+
export { UseTrackedDataInitialSource, UseTrackedDataOptions, UseTrackedDataRefresherOptions, UseTrackedDataReturn, UseTrackedDataSource, UseTrackedDataStatus, UseTrackedDataStreamSource, useTrackedData } from './useTrackedData.mjs';
|
|
24
25
|
export { UseTransactionOptions, useTransaction } from './useTransaction.mjs';
|
|
25
26
|
export { TransactionConfirmationStatus, getConfirmedTransactionStatus, useTransactionConfirmation } from './useTransactionConfirmation.mjs';
|
|
26
27
|
export { useWallet } from './useWallet.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export { AccountInfo, UseAccountInfoOptions, useAccountInfo } from './useAccountInfo.js';
|
|
2
2
|
export { UseActionOptions, UseActionReturn, UseActionStatus, useAction } from './useAction.js';
|
|
3
|
+
export { useAirdrop } from './useAirdrop.js';
|
|
3
4
|
export { BalanceInput, useBalance } from './useBalance.js';
|
|
4
5
|
export { MissingClientCapabilityError, UseClientCapabilityOptions, useClientCapability } from './useClientCapability.js';
|
|
5
6
|
export { useConnection } from './useConnection.js';
|
|
6
7
|
export { PlanTransactionConfig, PlanTransactionStatus, usePlanTransaction, usePlanTransactions } from './usePlanTransaction.js';
|
|
7
8
|
export { ProgramAccount, ProgramAccountDataSizeFilter, ProgramAccountDataSlice, ProgramAccountFilter, ProgramAccountMemcmpEncoding, ProgramAccountMemcmpFilter, UseProgramAccountsOptions, useProgramAccounts } from './useProgramAccounts.js';
|
|
8
9
|
export { useIdentity, usePayer } from './usePayer.js';
|
|
9
|
-
export { UseRequestOptions, UseRequestReturn, UseRequestSource, UseRequestStatus, useRequest } from './useRequest.js';
|
|
10
|
+
export { UseRequestOptions, UseRequestRefresherOptions, UseRequestReturn, UseRequestSource, UseRequestStatus, useRequest } from './useRequest.js';
|
|
10
11
|
export { useRpc } from './useRpc.js';
|
|
11
12
|
export { SelectedWalletAccount, SelectedWalletAccountContext, SelectedWalletAccountOptions, SelectedWalletAccountProvider, WalletAccountFilter, createSelectedWalletAccountContext, provideSelectedWalletAccount, selectedWalletAccountInjectionKey, useSelectedWalletAccount } from './useSelectedWalletAccount.js';
|
|
12
13
|
export { SignMessageStatus, useSignMessage } from './useSignMessage.js';
|
|
@@ -17,10 +18,10 @@ export { SignatureStatus, UseSignatureStatusOptions, useSignatureStatus } from '
|
|
|
17
18
|
export { SignInStatus, useSignIn } from './useSignIn.js';
|
|
18
19
|
export { tryUseSolana, useSolana } from './useSolana.js';
|
|
19
20
|
export { useSolanaClient } from './useSolanaClient.js';
|
|
20
|
-
export { UseSubscriptionOptions, UseSubscriptionReturn, UseSubscriptionSource, UseSubscriptionStatus, useSubscription } from './useSubscription.js';
|
|
21
|
+
export { UseSubscriptionOptions, UseSubscriptionReconnectOptions, UseSubscriptionReturn, UseSubscriptionSource, UseSubscriptionStatus, useSubscription } from './useSubscription.js';
|
|
21
22
|
export { UseTokenAccountsOptions, useTokenAccounts } from './useTokenAccounts.js';
|
|
22
23
|
export { useTokenBalance } from './useTokenBalance.js';
|
|
23
|
-
export { UseTrackedDataInitialSource, UseTrackedDataOptions, UseTrackedDataReturn, UseTrackedDataSource, UseTrackedDataStatus, UseTrackedDataStreamSource, useTrackedData } from './useTrackedData.js';
|
|
24
|
+
export { UseTrackedDataInitialSource, UseTrackedDataOptions, UseTrackedDataRefresherOptions, UseTrackedDataReturn, UseTrackedDataSource, UseTrackedDataStatus, UseTrackedDataStreamSource, useTrackedData } from './useTrackedData.js';
|
|
24
25
|
export { UseTransactionOptions, useTransaction } from './useTransaction.js';
|
|
25
26
|
export { TransactionConfirmationStatus, getConfirmedTransactionStatus, useTransactionConfirmation } from './useTransactionConfirmation.js';
|
|
26
27
|
export { useWallet } from './useWallet.js';
|
package/dist/index.mjs
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export { u as useAccountInfo } from './shared/vue.BQRpjwKl.mjs';
|
|
2
2
|
export { u as useAction } from './shared/vue.DYk0Xfr3.mjs';
|
|
3
|
+
export { u as useAirdrop } from './shared/vue.BSfiHqwj.mjs';
|
|
3
4
|
export { u as useBalance } from './shared/vue.BINkrA8h.mjs';
|
|
4
5
|
export { M as MissingClientCapabilityError, u as useClientCapability } from './shared/vue.B8LptjZP.mjs';
|
|
5
6
|
export { u as useConnection } from './shared/vue.CpkwC8Th.mjs';
|
|
6
7
|
export { u as usePlanTransaction, a as usePlanTransactions } from './shared/vue.C5FVoEZT.mjs';
|
|
7
8
|
export { u as useProgramAccounts } from './shared/vue.C13umiQi.mjs';
|
|
8
9
|
export { u as useIdentity, a as usePayer } from './shared/vue.CATOh_9G.mjs';
|
|
9
|
-
export { u as useRequest } from './shared/vue.
|
|
10
|
+
export { u as useRequest } from './shared/vue.B8VvC8d2.mjs';
|
|
10
11
|
export { u as useRpc } from './shared/vue.BsGwt78R.mjs';
|
|
11
12
|
export { S as SelectedWalletAccountProvider, c as createSelectedWalletAccountContext, p as provideSelectedWalletAccount, s as selectedWalletAccountInjectionKey, u as useSelectedWalletAccount } from './shared/vue.DXQVIRZA.mjs';
|
|
12
13
|
export { u as useSignMessage } from './shared/vue.JUWqu6kD.mjs';
|
|
@@ -17,10 +18,10 @@ export { u as useSignatureStatus } from './shared/vue.CXB4NEMA.mjs';
|
|
|
17
18
|
export { u as useSignIn } from './shared/vue.ByxbBC3y.mjs';
|
|
18
19
|
export { t as tryUseSolana, u as useSolana } from './shared/vue.CQh3AUE8.mjs';
|
|
19
20
|
export { u as useSolanaClient } from './shared/vue.Mxc8w6Qk.mjs';
|
|
20
|
-
export { u as useSubscription } from './shared/vue.
|
|
21
|
+
export { u as useSubscription } from './shared/vue.BDNOyiGZ.mjs';
|
|
21
22
|
export { u as useTokenAccounts } from './shared/vue.BOpgWr43.mjs';
|
|
22
23
|
export { u as useTokenBalance } from './shared/vue.BD6Gm1nl.mjs';
|
|
23
|
-
export { u as useTrackedData } from './shared/vue.
|
|
24
|
+
export { u as useTrackedData } from './shared/vue.CbJFnho-.mjs';
|
|
24
25
|
export { u as useTransaction } from './shared/vue.5euWd6-V.mjs';
|
|
25
26
|
export { g as getConfirmedTransactionStatus, u as useTransactionConfirmation } from './shared/vue.D3Y0PWbF.mjs';
|
|
26
27
|
export { u as useWallet } from './shared/vue.D218Ow7t.mjs';
|
|
@@ -9,24 +9,22 @@ function useRequest(source, options = {}) {
|
|
|
9
9
|
const status = shallowRef("fetching");
|
|
10
10
|
let disposed = false;
|
|
11
11
|
let attempt = 0;
|
|
12
|
-
const store = createSolanaActionStore(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
throw new Error("useRequest source did not resolve to a request function");
|
|
26
|
-
}
|
|
27
|
-
return getAbortablePromise(pending, composedSignal);
|
|
12
|
+
const store = createSolanaActionStore(async (signal, resolved, override) => {
|
|
13
|
+
attempt += 1;
|
|
14
|
+
const callerSignal = override ? override.abortSignal : options.getAbortSignal?.(attempt);
|
|
15
|
+
const composedSignal = callerSignal ? AbortSignal.any([signal, callerSignal]) : signal;
|
|
16
|
+
let pending;
|
|
17
|
+
if (isSendSource(resolved)) {
|
|
18
|
+
pending = Promise.resolve(resolved.send({ abortSignal: composedSignal }));
|
|
19
|
+
} else if (typeof resolved === "function") {
|
|
20
|
+
pending = Promise.resolve(resolved(composedSignal)).then(
|
|
21
|
+
(result) => isSendSource(result) ? result.send({ abortSignal: composedSignal }) : result
|
|
22
|
+
);
|
|
23
|
+
} else {
|
|
24
|
+
throw new Error("useRequest source did not resolve to a request function");
|
|
28
25
|
}
|
|
29
|
-
|
|
26
|
+
return getAbortablePromise(pending, composedSignal);
|
|
27
|
+
});
|
|
30
28
|
const unsubscribe = store.subscribe(() => {
|
|
31
29
|
const next = store.getState();
|
|
32
30
|
if (next.status === "success") {
|
|
@@ -51,7 +49,7 @@ function useRequest(source, options = {}) {
|
|
|
51
49
|
}
|
|
52
50
|
return source;
|
|
53
51
|
}
|
|
54
|
-
async function run() {
|
|
52
|
+
async function run(override) {
|
|
55
53
|
if (disposed) {
|
|
56
54
|
return void 0;
|
|
57
55
|
}
|
|
@@ -65,7 +63,7 @@ function useRequest(source, options = {}) {
|
|
|
65
63
|
}
|
|
66
64
|
status.value = "fetching";
|
|
67
65
|
try {
|
|
68
|
-
return await store.dispatchAsync(resolved);
|
|
66
|
+
return await store.dispatchAsync(resolved, override);
|
|
69
67
|
} catch (cause) {
|
|
70
68
|
if (store.getState().status !== "error") {
|
|
71
69
|
return void 0;
|
|
@@ -73,7 +71,7 @@ function useRequest(source, options = {}) {
|
|
|
73
71
|
throw normalizeSolanaError(cause, "RPC_FAILURE");
|
|
74
72
|
}
|
|
75
73
|
}
|
|
76
|
-
const refresh = () => run();
|
|
74
|
+
const refresh = (options2) => run(options2);
|
|
77
75
|
watch(
|
|
78
76
|
() => isRef(source) ? source.value : source,
|
|
79
77
|
() => {
|
|
@@ -27,11 +27,11 @@ function useSubscription(source, options = {}) {
|
|
|
27
27
|
status.value = "loading";
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
function openConnection(store) {
|
|
30
|
+
function openConnection(store, override) {
|
|
31
31
|
activeStore = store;
|
|
32
32
|
connectionCount += 1;
|
|
33
33
|
const connection = connectionCount;
|
|
34
|
-
const callerSignal = options.getAbortSignal?.(connection);
|
|
34
|
+
const callerSignal = override ? override.abortSignal : options.getAbortSignal?.(connection);
|
|
35
35
|
applyState(store.getState());
|
|
36
36
|
disposables.push(
|
|
37
37
|
store.subscribe(() => {
|
|
@@ -59,7 +59,7 @@ function useSubscription(source, options = {}) {
|
|
|
59
59
|
}
|
|
60
60
|
activeSource = void 0;
|
|
61
61
|
}
|
|
62
|
-
function connectCurrent() {
|
|
62
|
+
function connectCurrent(override) {
|
|
63
63
|
if (disposed) {
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
@@ -72,12 +72,12 @@ function useSubscription(source, options = {}) {
|
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
74
|
if (activeSource === resolved && activeStore) {
|
|
75
|
-
openConnection(activeStore);
|
|
75
|
+
openConnection(activeStore, override);
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
78
|
disconnect();
|
|
79
79
|
activeSource = resolved;
|
|
80
|
-
openConnection(resolved.reactiveStore());
|
|
80
|
+
openConnection(resolved.reactiveStore(), override);
|
|
81
81
|
}
|
|
82
82
|
watch(
|
|
83
83
|
() => isRef(source) ? source.value : source,
|
|
@@ -99,8 +99,8 @@ function useSubscription(source, options = {}) {
|
|
|
99
99
|
return {
|
|
100
100
|
data: computed(() => data.value),
|
|
101
101
|
error: computed(() => error.value),
|
|
102
|
-
reconnect: () => {
|
|
103
|
-
connectCurrent();
|
|
102
|
+
reconnect: (options2) => {
|
|
103
|
+
connectCurrent(options2);
|
|
104
104
|
},
|
|
105
105
|
status: computed(() => status.value)
|
|
106
106
|
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { u as useAction } from './vue.DYk0Xfr3.mjs';
|
|
2
|
+
import { u as useClientCapability } from './vue.B8LptjZP.mjs';
|
|
3
|
+
import { u as useSolanaClient } from './vue.Mxc8w6Qk.mjs';
|
|
4
|
+
|
|
5
|
+
function toReadableAirdropError(error) {
|
|
6
|
+
if (error instanceof Error) {
|
|
7
|
+
const httpStatus = error.context?.statusCode;
|
|
8
|
+
const isThrottled = httpStatus === 429 || error.message.startsWith("JSON-RPC error: Internal JSON-RPC error (Internal error)");
|
|
9
|
+
if (!isThrottled) {
|
|
10
|
+
throw error;
|
|
11
|
+
}
|
|
12
|
+
throw new Error(
|
|
13
|
+
`${error.message} This likely means the network's airdrop faucet is rate-limited or out of test SOL. Retry later, use https://faucet.solana.com, or point the client at a local validator.`,
|
|
14
|
+
{ cause: error }
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
throw new Error(`Airdrop failed: ${String(error)}`);
|
|
18
|
+
}
|
|
19
|
+
function useAirdrop() {
|
|
20
|
+
useClientCapability("airdrop", {
|
|
21
|
+
hookName: "useAirdrop",
|
|
22
|
+
providerHint: "Install it by adding the airdrop capability with `createClient().use(solanaRpcConnection({ ... })).use(rpcAirdrop())` from `@solana/kit-plugin-rpc`."
|
|
23
|
+
});
|
|
24
|
+
const { client } = useSolanaClient();
|
|
25
|
+
return useAction((abortSignal, address, amount) => {
|
|
26
|
+
const airdrop = client.airdrop;
|
|
27
|
+
if (!airdrop) {
|
|
28
|
+
throw new Error("useAirdrop requires the `airdrop` capability on the Solana client.");
|
|
29
|
+
}
|
|
30
|
+
return airdrop(address, amount, abortSignal).catch(toReadableAirdropError);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { useAirdrop as u };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const useAction = require('./vue.CoaIWGPT.cjs');
|
|
4
|
+
const useClientCapability = require('./vue.BY0qpgYr.cjs');
|
|
5
|
+
const useSolanaClient = require('./vue.BIxphCAq.cjs');
|
|
6
|
+
|
|
7
|
+
function toReadableAirdropError(error) {
|
|
8
|
+
if (error instanceof Error) {
|
|
9
|
+
const httpStatus = error.context?.statusCode;
|
|
10
|
+
const isThrottled = httpStatus === 429 || error.message.startsWith("JSON-RPC error: Internal JSON-RPC error (Internal error)");
|
|
11
|
+
if (!isThrottled) {
|
|
12
|
+
throw error;
|
|
13
|
+
}
|
|
14
|
+
throw new Error(
|
|
15
|
+
`${error.message} This likely means the network's airdrop faucet is rate-limited or out of test SOL. Retry later, use https://faucet.solana.com, or point the client at a local validator.`,
|
|
16
|
+
{ cause: error }
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
throw new Error(`Airdrop failed: ${String(error)}`);
|
|
20
|
+
}
|
|
21
|
+
function useAirdrop() {
|
|
22
|
+
useClientCapability.useClientCapability("airdrop", {
|
|
23
|
+
hookName: "useAirdrop",
|
|
24
|
+
providerHint: "Install it by adding the airdrop capability with `createClient().use(solanaRpcConnection({ ... })).use(rpcAirdrop())` from `@solana/kit-plugin-rpc`."
|
|
25
|
+
});
|
|
26
|
+
const { client } = useSolanaClient.useSolanaClient();
|
|
27
|
+
return useAction.useAction((abortSignal, address, amount) => {
|
|
28
|
+
const airdrop = client.airdrop;
|
|
29
|
+
if (!airdrop) {
|
|
30
|
+
throw new Error("useAirdrop requires the `airdrop` capability on the Solana client.");
|
|
31
|
+
}
|
|
32
|
+
return airdrop(address, amount, abortSignal).catch(toReadableAirdropError);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.useAirdrop = useAirdrop;
|
|
@@ -28,7 +28,7 @@ function useTrackedData(source, options = {}) {
|
|
|
28
28
|
error.value = null;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
function buildAndConnect() {
|
|
31
|
+
function buildAndConnect(override) {
|
|
32
32
|
if (disposed) {
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
@@ -104,7 +104,7 @@ function useTrackedData(source, options = {}) {
|
|
|
104
104
|
}
|
|
105
105
|
connectionCount += 1;
|
|
106
106
|
const connection = connectionCount;
|
|
107
|
-
const callerSignal = options.getAbortSignal?.(connection);
|
|
107
|
+
const callerSignal = override ? override.abortSignal : options.getAbortSignal?.(connection);
|
|
108
108
|
const store = createReactiveStoreWithInitialValueAndSlotTracking({
|
|
109
109
|
initialValueMapper: source.rpcValueMapper,
|
|
110
110
|
initialValueSource: rpcRequest,
|
|
@@ -158,8 +158,8 @@ function useTrackedData(source, options = {}) {
|
|
|
158
158
|
return {
|
|
159
159
|
data: computed(() => data.value),
|
|
160
160
|
error: computed(() => error.value),
|
|
161
|
-
refresh: () => {
|
|
162
|
-
buildAndConnect();
|
|
161
|
+
refresh: (options2) => {
|
|
162
|
+
buildAndConnect(options2);
|
|
163
163
|
},
|
|
164
164
|
status: computed(() => status.value)
|
|
165
165
|
};
|
|
@@ -30,7 +30,7 @@ function useTrackedData(source, options = {}) {
|
|
|
30
30
|
error.value = null;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
function buildAndConnect() {
|
|
33
|
+
function buildAndConnect(override) {
|
|
34
34
|
if (disposed) {
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
@@ -106,7 +106,7 @@ function useTrackedData(source, options = {}) {
|
|
|
106
106
|
}
|
|
107
107
|
connectionCount += 1;
|
|
108
108
|
const connection = connectionCount;
|
|
109
|
-
const callerSignal = options.getAbortSignal?.(connection);
|
|
109
|
+
const callerSignal = override ? override.abortSignal : options.getAbortSignal?.(connection);
|
|
110
110
|
const store = kit.createReactiveStoreWithInitialValueAndSlotTracking({
|
|
111
111
|
initialValueMapper: source.rpcValueMapper,
|
|
112
112
|
initialValueSource: rpcRequest,
|
|
@@ -160,8 +160,8 @@ function useTrackedData(source, options = {}) {
|
|
|
160
160
|
return {
|
|
161
161
|
data: vue.computed(() => data.value),
|
|
162
162
|
error: vue.computed(() => error.value),
|
|
163
|
-
refresh: () => {
|
|
164
|
-
buildAndConnect();
|
|
163
|
+
refresh: (options2) => {
|
|
164
|
+
buildAndConnect(options2);
|
|
165
165
|
},
|
|
166
166
|
status: vue.computed(() => status.value)
|
|
167
167
|
};
|
|
@@ -11,24 +11,22 @@ function useRequest(source, options = {}) {
|
|
|
11
11
|
const status = vue.shallowRef("fetching");
|
|
12
12
|
let disposed = false;
|
|
13
13
|
let attempt = 0;
|
|
14
|
-
const store = action.createSolanaActionStore(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
throw new Error("useRequest source did not resolve to a request function");
|
|
28
|
-
}
|
|
29
|
-
return kit.getAbortablePromise(pending, composedSignal);
|
|
14
|
+
const store = action.createSolanaActionStore(async (signal, resolved, override) => {
|
|
15
|
+
attempt += 1;
|
|
16
|
+
const callerSignal = override ? override.abortSignal : options.getAbortSignal?.(attempt);
|
|
17
|
+
const composedSignal = callerSignal ? AbortSignal.any([signal, callerSignal]) : signal;
|
|
18
|
+
let pending;
|
|
19
|
+
if (isSendSource(resolved)) {
|
|
20
|
+
pending = Promise.resolve(resolved.send({ abortSignal: composedSignal }));
|
|
21
|
+
} else if (typeof resolved === "function") {
|
|
22
|
+
pending = Promise.resolve(resolved(composedSignal)).then(
|
|
23
|
+
(result) => isSendSource(result) ? result.send({ abortSignal: composedSignal }) : result
|
|
24
|
+
);
|
|
25
|
+
} else {
|
|
26
|
+
throw new Error("useRequest source did not resolve to a request function");
|
|
30
27
|
}
|
|
31
|
-
|
|
28
|
+
return kit.getAbortablePromise(pending, composedSignal);
|
|
29
|
+
});
|
|
32
30
|
const unsubscribe = store.subscribe(() => {
|
|
33
31
|
const next = store.getState();
|
|
34
32
|
if (next.status === "success") {
|
|
@@ -53,7 +51,7 @@ function useRequest(source, options = {}) {
|
|
|
53
51
|
}
|
|
54
52
|
return source;
|
|
55
53
|
}
|
|
56
|
-
async function run() {
|
|
54
|
+
async function run(override) {
|
|
57
55
|
if (disposed) {
|
|
58
56
|
return void 0;
|
|
59
57
|
}
|
|
@@ -67,7 +65,7 @@ function useRequest(source, options = {}) {
|
|
|
67
65
|
}
|
|
68
66
|
status.value = "fetching";
|
|
69
67
|
try {
|
|
70
|
-
return await store.dispatchAsync(resolved);
|
|
68
|
+
return await store.dispatchAsync(resolved, override);
|
|
71
69
|
} catch (cause) {
|
|
72
70
|
if (store.getState().status !== "error") {
|
|
73
71
|
return void 0;
|
|
@@ -75,7 +73,7 @@ function useRequest(source, options = {}) {
|
|
|
75
73
|
throw errors.normalizeSolanaError(cause, "RPC_FAILURE");
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
|
-
const refresh = () => run();
|
|
76
|
+
const refresh = (options2) => run(options2);
|
|
79
77
|
vue.watch(
|
|
80
78
|
() => vue.isRef(source) ? source.value : source,
|
|
81
79
|
() => {
|
|
@@ -29,11 +29,11 @@ function useSubscription(source, options = {}) {
|
|
|
29
29
|
status.value = "loading";
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
function openConnection(store) {
|
|
32
|
+
function openConnection(store, override) {
|
|
33
33
|
activeStore = store;
|
|
34
34
|
connectionCount += 1;
|
|
35
35
|
const connection = connectionCount;
|
|
36
|
-
const callerSignal = options.getAbortSignal?.(connection);
|
|
36
|
+
const callerSignal = override ? override.abortSignal : options.getAbortSignal?.(connection);
|
|
37
37
|
applyState(store.getState());
|
|
38
38
|
disposables.push(
|
|
39
39
|
store.subscribe(() => {
|
|
@@ -61,7 +61,7 @@ function useSubscription(source, options = {}) {
|
|
|
61
61
|
}
|
|
62
62
|
activeSource = void 0;
|
|
63
63
|
}
|
|
64
|
-
function connectCurrent() {
|
|
64
|
+
function connectCurrent(override) {
|
|
65
65
|
if (disposed) {
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
@@ -74,12 +74,12 @@ function useSubscription(source, options = {}) {
|
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
76
|
if (activeSource === resolved && activeStore) {
|
|
77
|
-
openConnection(activeStore);
|
|
77
|
+
openConnection(activeStore, override);
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
80
|
disconnect();
|
|
81
81
|
activeSource = resolved;
|
|
82
|
-
openConnection(resolved.reactiveStore());
|
|
82
|
+
openConnection(resolved.reactiveStore(), override);
|
|
83
83
|
}
|
|
84
84
|
vue.watch(
|
|
85
85
|
() => vue.isRef(source) ? source.value : source,
|
|
@@ -101,8 +101,8 @@ function useSubscription(source, options = {}) {
|
|
|
101
101
|
return {
|
|
102
102
|
data: vue.computed(() => data.value),
|
|
103
103
|
error: vue.computed(() => error.value),
|
|
104
|
-
reconnect: () => {
|
|
105
|
-
connectCurrent();
|
|
104
|
+
reconnect: (options2) => {
|
|
105
|
+
connectCurrent(options2);
|
|
106
106
|
},
|
|
107
107
|
status: vue.computed(() => status.value)
|
|
108
108
|
};
|
package/dist/swr.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const vue = require('vue');
|
|
4
|
-
const useRequest = require('./shared/vue.
|
|
5
|
-
const useSubscription = require('./shared/vue.
|
|
6
|
-
const useTrackedData = require('./shared/vue.
|
|
4
|
+
const useRequest = require('./shared/vue.ZuUCEEab.cjs');
|
|
5
|
+
const useSubscription = require('./shared/vue.l3UCdN7z.cjs');
|
|
6
|
+
const useTrackedData = require('./shared/vue.DxM45azl.cjs');
|
|
7
7
|
require('@vue-solana/core/action');
|
|
8
8
|
require('@vue-solana/core/kit');
|
|
9
9
|
require('@vue-solana/core/errors');
|
package/dist/swr.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { watch, computed } from 'vue';
|
|
2
|
-
import { u as useRequest } from './shared/vue.
|
|
3
|
-
import { u as useSubscription } from './shared/vue.
|
|
4
|
-
import { u as useTrackedData } from './shared/vue.
|
|
2
|
+
import { u as useRequest } from './shared/vue.B8VvC8d2.mjs';
|
|
3
|
+
import { u as useSubscription } from './shared/vue.BDNOyiGZ.mjs';
|
|
4
|
+
import { u as useTrackedData } from './shared/vue.CbJFnho-.mjs';
|
|
5
5
|
import '@vue-solana/core/action';
|
|
6
6
|
import '@vue-solana/core/kit';
|
|
7
7
|
import '@vue-solana/core/errors';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const useAirdrop = require('./shared/vue.CTqPbvz3.cjs');
|
|
4
|
+
require('./shared/vue.CoaIWGPT.cjs');
|
|
5
|
+
require('@vue-solana/core/action');
|
|
6
|
+
require('vue');
|
|
7
|
+
require('./shared/vue.BY0qpgYr.cjs');
|
|
8
|
+
require('./shared/vue.BIxphCAq.cjs');
|
|
9
|
+
require('./shared/vue.DE3emjSF.cjs');
|
|
10
|
+
require('./shared/vue.DEHxNvUX.cjs');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
exports.useAirdrop = useAirdrop.useAirdrop;
|