@vue-solana/vue 4.1.1 → 4.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -78,6 +78,8 @@ New to Solana? Start with the official docs and the project concepts guide:
78
78
  | Solana client | Provided through `@vue-solana/core` |
79
79
  | Clusters | `mainnet` (alias `mainnet-beta`), `devnet`, `testnet`, `localnet` |
80
80
 
81
+ <br>
82
+
81
83
  ## Install
82
84
 
83
85
  ```sh
@@ -150,6 +152,8 @@ Supported clusters are `mainnet` (legacy alias `mainnet-beta`), `devnet`, `testn
150
152
  | `mobileWallet` | `MobileWalletOptions \| false` | Enabled on supported Android clients | Configures or disables Android Mobile Wallet Adapter registration. |
151
153
  | `iosWallet` | `iOSWalletOptions \| false` | Enabled on iOS browsers | Configures or disables iOS browser wallet universal links (Phantom, Solflare, Backpack). |
152
154
 
155
+ <br>
156
+
153
157
  The root export remains supported. For composables, prefer direct subpath imports in new code so bundlers can avoid evaluating unrelated package entry code:
154
158
 
155
159
  ```ts
@@ -315,7 +319,7 @@ Browser extension wallets are discovered through the Solana Wallet Standard. And
315
319
 
316
320
  Connecting a wallet also disconnects every other discovered wallet through its `standard:disconnect` feature, so only one wallet stays authorized for the app. An extension the user authorized in an earlier page session can otherwise keep answering signing requests, which is the usual cause of the wrong wallet prompting for a `signMessage` confirmation. A wallet that fails or never answers its disconnect is ignored after a 2 second timeout, and `connect()` resolves only after the sweep finishes.
317
321
 
318
- Selected discovered wallets are persisted under `localStorage["vue-solana:selected-wallet"]` as non-sensitive identity metadata: `name`, and `platform`/`source` when available. On reload, Vue Solana restores the selected wallet if the same wallet is discovered again. Pass `autoConnect: true` to opt into calling `connect()` for that restored wallet; arbitrary installed wallets are never auto-connected. Calling `selectWallet(null)` or `setWallet(customWallet)` clears the stored selection.
322
+ Selected discovered wallets are persisted under `localStorage["vue-solana:selected-wallet"]` as non-sensitive identity metadata: `name`, `platform`/`source` when available, and `connected: true` while the wallet is connected. On reload, Vue Solana restores the selected wallet if the same wallet is discovered again. A wallet the user left connected is restored after a reload even without `autoConnect`, through a silent connect (`connect({ silent: true })`) that does not prompt or launch a wallet app for wallets that honour the Wallet Standard `silent` hint (a wallet that ignores it can prompt on page load); an explicit `disconnect()` forgets that session. Pass `autoConnect: true` to also connect a restored wallet that was only selected; arbitrary installed wallets are never auto-connected. Calling `selectWallet(null)` or `setWallet(customWallet)` clears the stored selection.
319
323
 
320
324
  Desktop native app wallet adapters are planned but not implemented yet.
321
325
 
@@ -403,6 +407,8 @@ await execute(transaction);
403
407
  | `minContextSlot` | Slot at which any blockhash or nonce in the transaction is known to exist; sending before it can be rejected. |
404
408
  | `preflightCommitment` | Commitment used for preflight simulation. |
405
409
 
410
+ <br>
411
+
406
412
  Return shapes:
407
413
 
408
414
  - `useSignMessage().execute(bytes)` resolves to `{ signedMessage, signature }`, both `Uint8Array`.
@@ -431,6 +437,8 @@ Configure a direct client with `payer` or `payerSecretKey`. `payerSecretKey` is
431
437
  | Input | Instructions, instruction plans, transaction messages, plans | Raw transaction bytes (`Uint8Array`) |
432
438
  | Multiple transactions | Yes, as a batch in one call | Yes, one or more wallet requests |
433
439
 
440
+ <br>
441
+
434
442
  Use the client flow for automated or server-backed signing (airdrop faucet, cron jobs, relayer fees paid by your keypair), and the wallet flow when the end user must own and approve each transaction.
435
443
 
436
444
  **Default client composition.** `createSolanaPlugin()` and `createSolanaClient()` compose `solanaRpc()` followed by `rpcAirdrop()` by default; `solanaRpc()` installs `rpcTransactionPlanner()`, `rpcTransactionPlanSigningExecutor()`, and `rpcTransactionPlanSendingExecutor()` itself. The old custom fallback sender is not used, so `useSendTransaction()` and `useSendTransactions()` do not need a second manual plugin installation. The official executor waits for `confirmed` commitment before `execute()` resolves and the composable reports `sent`. A custom client must still provide the planner and sending executor and a `payer`.
@@ -682,6 +690,8 @@ Docs: [Vue Solana Agent Skill](https://vue-solana-docs.vercel.app/agent-skill)
682
690
  | `useSendTransaction()` | Uses the official client transaction-sending capability to plan, sign, submit, and wait for `confirmed` commitment (no wallet). |
683
691
  | `useSendTransactions()` | Sends a batch through the same official capability, waiting for `confirmed` commitment. |
684
692
 
693
+ <br>
694
+
685
695
  Direct composable subpaths:
686
696
 
687
697
  - `@vue-solana/vue/useSolana`
package/dist/index.d.ts CHANGED
@@ -14,7 +14,7 @@ export { SendTransactionConfig, SendTransactionInput, SendTransactionStatus, Sen
14
14
  export { SignMessageStatus, useSignMessage } from './useSignMessage.js';
15
15
  export { SignAndSendTransactionOptions, SignAndSendTransactionStatus, useSignAndSendTransaction } from './useSignAndSendTransaction.js';
16
16
  export { SignTransactionsStatus, useSignTransactions } from './useSignTransactions.js';
17
- export { PartialSignAndSendError, SignAndSendTransactionsStatus, useSignAndSendTransactions } from './useSignAndSendTransactions.js';
17
+ export { SignAndSendTransactionsStatus, useSignAndSendTransactions } from './useSignAndSendTransactions.js';
18
18
  export { SignatureStatus, UseSignatureStatusOptions, useSignatureStatus } from './useSignatureStatus.js';
19
19
  export { SignInStatus, useSignIn } from './useSignIn.js';
20
20
  export { tryUseSolana, useSolana } from './useSolana.js';
@@ -39,7 +39,7 @@ import { SolanaConfig, SolanaWallet } from '@vue-solana/core/types';
39
39
  export * from '@vue-solana/core/types';
40
40
  export { TransactionStatus } from '@vue-solana/core/types';
41
41
  import { App } from 'vue';
42
- export { SolanaError, SolanaErrorCode, isSolanaError } from '@vue-solana/core/errors';
42
+ export { PartialSignAndSendError, SolanaError, SolanaErrorCode, isSolanaError } from '@vue-solana/core/errors';
43
43
  export * from '@vue-solana/core/kit';
44
44
  import '@vue-solana/core';
45
45
  import '@solana/kit-plugin-rpc';
package/dist/index.mjs CHANGED
@@ -14,7 +14,7 @@ export { u as useSendTransaction, a as useSendTransactions } from './shared/vue.
14
14
  export { u as useSignMessage } from './shared/vue.Ddf_Cdjx.mjs';
15
15
  export { u as useSignAndSendTransaction } from './shared/vue.BTD4usyi.mjs';
16
16
  export { u as useSignTransactions } from './shared/vue.BHBifdbc.mjs';
17
- export { P as PartialSignAndSendError, u as useSignAndSendTransactions } from './shared/vue.C-7v1l8q.mjs';
17
+ export { u as useSignAndSendTransactions } from './shared/vue.sPcsjyKU.mjs';
18
18
  export { u as useSignatureStatus } from './shared/vue.Bu2cQ690.mjs';
19
19
  export { u as useSignIn } from './shared/vue.SeuJipQ8.mjs';
20
20
  export { t as tryUseSolana, u as useSolana } from './shared/vue.CcOZ9858.mjs';
@@ -33,13 +33,14 @@ export { u as useWallet } from './shared/vue.Bc_Kbwr5.mjs';
33
33
  export { u as useWallets } from './shared/vue.DyLgoSbX.mjs';
34
34
  import { s as solanaInjectionKey } from './shared/vue.D_P5SqqD.mjs';
35
35
  import { createSolanaError, normalizeSolanaError } from '@vue-solana/core/errors';
36
- export { SolanaError, isSolanaError } from '@vue-solana/core/errors';
36
+ export { PartialSignAndSendError, SolanaError, isSolanaError } from '@vue-solana/core/errors';
37
37
  import { isSolanaMobileWalletSupported } from '@vue-solana/core/mobile-wallet-support';
38
38
  import { createSolanaContext } from '@vue-solana/core/rpc';
39
39
  import { withTimeout } from '@vue-solana/core/timeout';
40
40
  import { getRegisteredSolanaWallets, getSolanaChain, adaptSolanaStandardWallet, disconnectSolanaStandardWallet, subscribeSolanaWallets } from '@vue-solana/core/wallet-standard';
41
41
  import { shallowRef, ref, triggerRef } from 'vue';
42
42
  import { handleSolanaIosWalletCallback, getSolanaIosWallets, isSolanaIosWalletInfo, adaptSolanaIosWallet } from '@vue-solana/core/ios-wallet';
43
+ import { sendSignedTransaction } from '@vue-solana/core/transaction';
43
44
  export * from '@vue-solana/core/types';
44
45
  export * from '@vue-solana/core/kit';
45
46
 
@@ -47,39 +48,47 @@ const SELECTED_WALLET_STORAGE_KEY = "vue-solana:selected-wallet";
47
48
  function readSelectedWallet() {
48
49
  const { storage, error } = getLocalStorage();
49
50
  if (error || !storage) {
50
- return { wallet: null, error };
51
+ return { wallet: null, connected: false, error };
51
52
  }
52
53
  try {
53
54
  const value = storage.getItem(SELECTED_WALLET_STORAGE_KEY);
54
55
  if (!value) {
55
- return { wallet: null, error: null };
56
+ return { wallet: null, connected: false, error: null };
56
57
  }
57
58
  const wallet = JSON.parse(value);
59
+ const hasName = typeof wallet.name === "string";
58
60
  return {
59
- wallet: typeof wallet.name === "string" ? {
61
+ wallet: hasName ? {
60
62
  name: wallet.name,
61
63
  platform: wallet.platform,
62
64
  source: wallet.source
63
65
  } : null,
66
+ connected: hasName && wallet.connected === true,
64
67
  error: null
65
68
  };
66
69
  } catch (cause) {
67
70
  return {
68
71
  wallet: null,
72
+ connected: false,
69
73
  error: createSolanaError("STORAGE_FAILURE", "Unable to read the selected Solana wallet", {
70
74
  cause
71
75
  })
72
76
  };
73
77
  }
74
78
  }
75
- function writeSelectedWallet(wallet) {
79
+ function writeSelectedWallet(wallet, connected = false) {
76
80
  const { storage, error } = getLocalStorage();
77
81
  if (error || !storage) {
78
82
  return error;
79
83
  }
80
84
  try {
81
85
  if (wallet) {
82
- storage.setItem(SELECTED_WALLET_STORAGE_KEY, stringifySelectedWallet(wallet));
86
+ storage.setItem(
87
+ SELECTED_WALLET_STORAGE_KEY,
88
+ JSON.stringify(
89
+ connected ? { ...toPersistedSelectedWallet(wallet), connected: true } : toPersistedSelectedWallet(wallet)
90
+ )
91
+ );
83
92
  } else {
84
93
  storage.removeItem(SELECTED_WALLET_STORAGE_KEY);
85
94
  }
@@ -91,6 +100,9 @@ function writeSelectedWallet(wallet) {
91
100
  }
92
101
  }
93
102
  function stringifySelectedWallet(wallet) {
103
+ return JSON.stringify(toPersistedSelectedWallet(wallet));
104
+ }
105
+ function toPersistedSelectedWallet(wallet) {
94
106
  const value = { name: wallet.name };
95
107
  if (wallet.platform) {
96
108
  value.platform = wallet.platform;
@@ -98,7 +110,7 @@ function stringifySelectedWallet(wallet) {
98
110
  if (wallet.source) {
99
111
  value.source = wallet.source;
100
112
  }
101
- return JSON.stringify(value);
113
+ return value;
102
114
  }
103
115
  function getLocalStorage() {
104
116
  if (typeof window === "undefined") {
@@ -121,6 +133,7 @@ function createSolanaWalletRegistry(options) {
121
133
  const adaptedWallets = /* @__PURE__ */ new WeakMap();
122
134
  const adaptedPrimitiveWallets = /* @__PURE__ */ new Map();
123
135
  const trackedAdapters = /* @__PURE__ */ new Set();
136
+ const sendTransaction = (signedTransaction, sendOptions) => sendSignedTransaction(options.client, signedTransaction, sendOptions);
124
137
  function trackAdapter(adapter) {
125
138
  trackedAdapters.add(adapter);
126
139
  return adapter;
@@ -131,7 +144,7 @@ function createSolanaWalletRegistry(options) {
131
144
  if (cachedIosWallet) {
132
145
  return cachedIosWallet;
133
146
  }
134
- const iosAdapter = makeConnectExclusive(
147
+ const iosAdapter = decorateAdapter(
135
148
  adaptSolanaIosWallet(walletInfo, {
136
149
  chain: getSolanaChain(options.cluster),
137
150
  cluster: options.cluster,
@@ -149,10 +162,11 @@ function createSolanaWalletRegistry(options) {
149
162
  if (cachedPrimitiveWallet) {
150
163
  return cachedPrimitiveWallet;
151
164
  }
152
- const primitiveAdapter = makeConnectExclusive(
165
+ const primitiveAdapter = decorateAdapter(
153
166
  adaptSolanaStandardWallet(walletInfo, {
154
167
  chain: getSolanaChain(options.cluster),
155
- onChange: options.onWalletChange
168
+ onChange: options.onWalletChange,
169
+ sendTransaction
156
170
  }),
157
171
  walletInfo
158
172
  );
@@ -163,10 +177,11 @@ function createSolanaWalletRegistry(options) {
163
177
  if (cachedWallet) {
164
178
  return cachedWallet;
165
179
  }
166
- const cachedAdapter = makeConnectExclusive(
180
+ const cachedAdapter = decorateAdapter(
167
181
  adaptSolanaStandardWallet(walletInfo, {
168
182
  chain: getSolanaChain(options.cluster),
169
- onChange: options.onWalletChange
183
+ onChange: options.onWalletChange,
184
+ sendTransaction
170
185
  }),
171
186
  walletInfo
172
187
  );
@@ -193,14 +208,50 @@ function createSolanaWalletRegistry(options) {
193
208
  options.onError?.(cause);
194
209
  }
195
210
  }
211
+ function decorateAdapter(adapter, walletInfo) {
212
+ return reportConnectionChanges(makeConnectExclusive(adapter, walletInfo), walletInfo);
213
+ }
196
214
  function makeConnectExclusive(adapter, walletInfo) {
197
215
  const connect = adapter.connect.bind(adapter);
198
- adapter.connect = async () => {
199
- await connect();
216
+ adapter.connect = async (connectOptions) => {
217
+ await connect(connectOptions);
218
+ if (connectOptions?.silent && !adapter.connected) {
219
+ return;
220
+ }
200
221
  await disconnectOtherWallets(walletInfo, adapter);
201
222
  };
202
223
  return adapter;
203
224
  }
225
+ function reportConnectionChanges(adapter, walletInfo) {
226
+ const connect = adapter.connect.bind(adapter);
227
+ const disconnect = adapter.disconnect.bind(adapter);
228
+ const signIn = adapter.signIn?.bind(adapter);
229
+ const report = () => options.onConnectionChange?.(walletInfo, adapter.connected);
230
+ adapter.connect = async (connectOptions) => {
231
+ await connect(connectOptions);
232
+ report();
233
+ };
234
+ adapter.disconnect = async () => {
235
+ try {
236
+ await disconnect();
237
+ } finally {
238
+ report();
239
+ }
240
+ };
241
+ if (signIn) {
242
+ adapter.signIn = async (input) => {
243
+ const wasConnected = adapter.connected;
244
+ try {
245
+ return await signIn(input);
246
+ } finally {
247
+ if (adapter.connected !== wasConnected) {
248
+ report();
249
+ }
250
+ }
251
+ };
252
+ }
253
+ return adapter;
254
+ }
204
255
  async function disconnectOtherWallets(currentWallet, currentAdapter) {
205
256
  await Promise.all(
206
257
  options.getWalletInfos().map(async (walletInfo) => {
@@ -263,9 +314,15 @@ function createSolanaPlugin(options = {}) {
263
314
  const latestBlockhash = ref(null);
264
315
  const walletRegistry = createSolanaWalletRegistry({
265
316
  cluster: context.cluster,
317
+ client: context.client,
266
318
  iosWallet: options.iosWallet,
267
319
  getWalletInfos: () => wallets.value,
268
320
  onWalletChange: () => triggerRef(wallet),
321
+ onConnectionChange: (walletInfo, connected) => {
322
+ if (selectedWallet.value && isSameWallet(walletInfo, selectedWallet.value)) {
323
+ persistSelectedWallet(selectedWallet.value, connected);
324
+ }
325
+ },
269
326
  onError: (cause) => {
270
327
  error.value = normalizeSolanaError(cause, "WALLET_FAILURE");
271
328
  logDevError("Failed to handle Solana iOS wallet callback", cause);
@@ -312,6 +369,7 @@ function createSolanaPlugin(options = {}) {
312
369
  walletRegistry.handleIosWalletCallback();
313
370
  wallets.value = walletRegistry.getDiscoveredWallets();
314
371
  let restoredWallet = null;
372
+ let restoreConnection = false;
315
373
  if (selectedWallet.value) {
316
374
  selectedWallet.value = wallets.value.find((nextWallet) => isSameWallet(nextWallet, selectedWallet.value)) ?? null;
317
375
  if (!selectedWallet.value) {
@@ -319,6 +377,7 @@ function createSolanaPlugin(options = {}) {
319
377
  }
320
378
  } else if (!options.wallet) {
321
379
  const persistedWallet = readSelectedWallet();
380
+ restoreConnection = persistedWallet.connected;
322
381
  if (persistedWallet.error) {
323
382
  error.value = persistedWallet.error;
324
383
  logDevError("Failed to read the persisted Solana wallet", persistedWallet.error);
@@ -335,7 +394,7 @@ function createSolanaPlugin(options = {}) {
335
394
  registerMobileWallets();
336
395
  }
337
396
  if (restoredWallet) {
338
- autoConnectWallet(restoredWallet);
397
+ autoConnectWallet(restoredWallet, restoreConnection);
339
398
  }
340
399
  }
341
400
  function registerMobileWallets() {
@@ -361,14 +420,17 @@ function createSolanaPlugin(options = {}) {
361
420
  function selectWallet(nextWallet) {
362
421
  selectedWallet.value = nextWallet;
363
422
  wallet.value = nextWallet ? walletRegistry.getAdaptedWallet(nextWallet) : options.wallet ?? null;
364
- const storageError = writeSelectedWallet(nextWallet);
423
+ persistSelectedWallet(nextWallet, Boolean(nextWallet && wallet.value?.connected));
424
+ }
425
+ function persistSelectedWallet(walletInfo, connected) {
426
+ const storageError = writeSelectedWallet(walletInfo, connected);
365
427
  if (storageError) {
366
428
  error.value = storageError;
367
429
  logDevError("Failed to persist the selected Solana wallet", storageError);
368
430
  }
369
431
  }
370
- function autoConnectWallet(walletInfo) {
371
- if (!options.autoConnect) {
432
+ function autoConnectWallet(walletInfo, wasConnected) {
433
+ if (!options.autoConnect && !wasConnected) {
372
434
  return;
373
435
  }
374
436
  const activeWallet = wallet.value;
@@ -377,8 +439,10 @@ function createSolanaPlugin(options = {}) {
377
439
  return;
378
440
  }
379
441
  attemptedAutoConnectWallet = storageValue;
380
- void activeWallet.connect().catch((cause) => {
381
- error.value = normalizeSolanaError(cause, "WALLET_FAILURE");
442
+ void activeWallet.connect({ silent: true }).catch((cause) => {
443
+ if (options.autoConnect) {
444
+ error.value = normalizeSolanaError(cause, "WALLET_FAILURE");
445
+ }
382
446
  logDevError("Failed to auto-connect Solana wallet", cause);
383
447
  }).finally(() => {
384
448
  triggerRef(wallet);
@@ -1,4 +1,4 @@
1
- import { SolanaError, normalizeSolanaError } from '@vue-solana/core/errors';
1
+ import { PartialSignAndSendError, normalizeSolanaError } from '@vue-solana/core/errors';
2
2
  import { withSolanaTimeout } from '@vue-solana/core/timeout';
3
3
  import { createNoWalletSelectedError, assertWalletCanSignAndSendTransactions } from '@vue-solana/core/wallet';
4
4
  import { shallowRef } from 'vue';
@@ -6,13 +6,6 @@ import { u as useExecution } from './vue.BiKE9Xuv.mjs';
6
6
  import { u as useWallet } from './vue.Bc_Kbwr5.mjs';
7
7
 
8
8
  const SIGN_AND_SEND_TIMEOUT_MS = 12e4;
9
- class PartialSignAndSendError extends SolanaError {
10
- constructor(cause, signatures) {
11
- super(cause.code, cause.message, { cause: cause.cause, feature: cause.feature });
12
- this.signatures = signatures;
13
- this.name = "PartialSignAndSendError";
14
- }
15
- }
16
9
  function useSignAndSendTransactions() {
17
10
  const { wallet } = useWallet();
18
11
  const signatures = shallowRef(null);
@@ -63,4 +56,4 @@ function useSignAndSendTransactions() {
63
56
  };
64
57
  }
65
58
 
66
- export { PartialSignAndSendError as P, useSignAndSendTransactions as u };
59
+ export { useSignAndSendTransactions as u };
@@ -1,18 +1,11 @@
1
+ import * as _vue_solana_core from '@vue-solana/core';
1
2
  import * as vue from 'vue';
2
3
  import { Signature } from '@vue-solana/core/kit';
3
4
  import { SolanaTransaction, SendTransactionOptions } from '@vue-solana/core/types';
4
- import { SolanaError } from '@vue-solana/core/errors';
5
+ export { PartialSignAndSendError } from '@vue-solana/core/errors';
5
6
 
6
7
  type SignAndSendTransactionsStatus = "idle" | "sending" | "sent" | "error";
7
- /**
8
- * Thrown when the singular fallback path fails partway through: the earlier
9
- * transactions in the batch have already been sent, and their signatures are
10
- * exposed here so callers can avoid resubmitting them.
11
- */
12
- declare class PartialSignAndSendError extends SolanaError {
13
- readonly signatures: Signature[];
14
- constructor(cause: SolanaError, signatures: Signature[]);
15
- }
8
+
16
9
  /**
17
10
  * Sign and send multiple serialized transactions in a single wallet request,
18
11
  * returning one signature per transaction.
@@ -27,9 +20,9 @@ declare function useSignAndSendTransactions(): {
27
20
  signatures: vue.ShallowRef<Signature[] | null, Signature[] | null>;
28
21
  status: vue.ShallowRef<SignAndSendTransactionsStatus>;
29
22
  loading: vue.ComputedRef<boolean>;
30
- error: vue.Ref<SolanaError | null, SolanaError | null>;
23
+ error: vue.Ref<_vue_solana_core.SolanaError | null, _vue_solana_core.SolanaError | null>;
31
24
  execute: (transactions: SolanaTransaction[], options?: SendTransactionOptions) => Promise<Signature[]>;
32
25
  };
33
26
 
34
- export { PartialSignAndSendError, useSignAndSendTransactions };
27
+ export { useSignAndSendTransactions };
35
28
  export type { SignAndSendTransactionsStatus };
@@ -1 +1,2 @@
1
- export { P as PartialSignAndSendError, u as useSignAndSendTransactions } from './shared/vue.C-7v1l8q.mjs';
1
+ export { u as useSignAndSendTransactions } from './shared/vue.sPcsjyKU.mjs';
2
+ export { PartialSignAndSendError } from '@vue-solana/core/errors';
@@ -6,7 +6,7 @@ declare function useSolanaPay(): {
6
6
  requestUrl: vue.ShallowRef<string | null, string | null>;
7
7
  parsedRequest: vue.ShallowRef<unknown, unknown>;
8
8
  reference: vue.ShallowRef<unknown, unknown>;
9
- status: vue.ShallowRef<"idle" | "confirmed" | "finalized" | "error" | "pending" | "found" | "expired", "idle" | "confirmed" | "finalized" | "error" | "pending" | "found" | "expired">;
9
+ status: vue.ShallowRef<"confirmed" | "finalized" | "error" | "idle" | "pending" | "found" | "expired", "confirmed" | "finalized" | "error" | "idle" | "pending" | "found" | "expired">;
10
10
  loading: vue.ShallowRef<boolean, boolean>;
11
11
  error: vue.ShallowRef<unknown, unknown>;
12
12
  createTransferRequest: (input: Record<string, unknown>) => Promise<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue-solana/vue",
3
- "version": "4.1.1",
3
+ "version": "4.1.3",
4
4
  "description": "Vue plugin and composables for Solana applications.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -194,7 +194,7 @@
194
194
  "access": "public"
195
195
  },
196
196
  "dependencies": {
197
- "@vue-solana/core": "4.1.1"
197
+ "@vue-solana/core": "4.1.3"
198
198
  },
199
199
  "peerDependencies": {
200
200
  "vue": "^3.5.0"