@vue-solana/core 0.3.1 → 0.3.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 +12 -1
- package/dist/transaction.cjs +11 -1
- package/dist/transaction.mjs +10 -0
- package/dist/types.d.cts +2 -0
- package/dist/types.d.mts +2 -0
- package/dist/types.d.ts +2 -0
- package/dist/wallet-standard.cjs +2 -0
- package/dist/wallet-standard.mjs +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@ Full Vue Solana docs:
|
|
|
17
17
|
- [`@vue-solana/core`](https://vue-solana-docs.vercel.app/packages/core)
|
|
18
18
|
- [Live demo](https://vue-solana-docs.vercel.app/demo)
|
|
19
19
|
- [Getting Started](https://vue-solana-docs.vercel.app/getting-started)
|
|
20
|
+
- [Agent Skill](https://vue-solana-docs.vercel.app/agent-skill)
|
|
20
21
|
- [Troubleshooting](https://vue-solana-docs.vercel.app/troubleshooting)
|
|
21
22
|
|
|
22
23
|
## Install
|
|
@@ -95,7 +96,7 @@ Direct subpaths:
|
|
|
95
96
|
- `isWalletConnected(wallet)`: checks whether a wallet is connected and has a public key.
|
|
96
97
|
- `assertWalletConnected(wallet)`: throws if the wallet is not connected.
|
|
97
98
|
- `assertWalletCanSign(wallet)`: throws if the wallet cannot sign transactions.
|
|
98
|
-
- `signAndSendTransaction(connection, wallet, transaction, options?)`: signs and sends a transaction using a configured wallet.
|
|
99
|
+
- `signAndSendTransaction(connection, wallet, transaction, options?)`: signs and sends a transaction using a configured wallet. Android Mobile Wallet Adapter wallets prefer `signTransaction` plus app-side RPC submission when available so the app can reliably return the submitted signature.
|
|
99
100
|
|
|
100
101
|
## Wallet Interface
|
|
101
102
|
|
|
@@ -132,6 +133,16 @@ For complete runnable Vue and Nuxt examples that use this package through the fr
|
|
|
132
133
|
- <a href="https://vue-solana-docs.vercel.app/examples/vue-vite" target="_blank" rel="noopener noreferrer"><code>examples/vue-vite</code></a>
|
|
133
134
|
- <a href="https://vue-solana-docs.vercel.app/examples/nuxt" target="_blank" rel="noopener noreferrer"><code>examples/nuxt</code></a>
|
|
134
135
|
|
|
136
|
+
## AI Agent Skill
|
|
137
|
+
|
|
138
|
+
If you use an AI coding agent, install the Vue Solana Agent Skill for package selection, setup patterns, wallet flow guidance, Solana-specific gotchas, and verification commands:
|
|
139
|
+
|
|
140
|
+
```sh
|
|
141
|
+
npx skills add vue-solana/vue-solana --skill vue-solana
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Docs: [Vue Solana Agent Skill](https://vue-solana-docs.vercel.app/agent-skill)
|
|
145
|
+
|
|
135
146
|
## Known TypeScript Issue
|
|
136
147
|
|
|
137
148
|
`@solana/web3-compat@0.0.21` currently has broken TypeScript metadata. Runtime imports still use the real package, but TypeScript consumers may need a local declaration shim.
|
package/dist/transaction.cjs
CHANGED
|
@@ -4,14 +4,24 @@ const wallet = require('./wallet.cjs');
|
|
|
4
4
|
|
|
5
5
|
async function signAndSendTransaction(connection, wallet$1, transaction, options) {
|
|
6
6
|
wallet.assertWalletConnected(wallet$1);
|
|
7
|
+
if (isMobileWalletAdapterWallet(wallet$1) && wallet$1.signTransaction) {
|
|
8
|
+
wallet.assertWalletCanSign(wallet$1);
|
|
9
|
+
return signAndSendRawTransaction(connection, wallet$1, transaction, options);
|
|
10
|
+
}
|
|
7
11
|
if (wallet$1.signAndSendTransaction) {
|
|
8
12
|
const result = await wallet$1.signAndSendTransaction(transaction, options);
|
|
9
13
|
return result.signature;
|
|
10
14
|
}
|
|
11
15
|
wallet.assertWalletCanSign(wallet$1);
|
|
12
|
-
|
|
16
|
+
return signAndSendRawTransaction(connection, wallet$1, transaction, options);
|
|
17
|
+
}
|
|
18
|
+
async function signAndSendRawTransaction(connection, wallet, transaction, options) {
|
|
19
|
+
const signedTransaction = await wallet.signTransaction(transaction);
|
|
13
20
|
const rawTransaction = signedTransaction.serialize();
|
|
14
21
|
return connection.sendRawTransaction(rawTransaction, options);
|
|
15
22
|
}
|
|
23
|
+
function isMobileWalletAdapterWallet(wallet) {
|
|
24
|
+
return wallet.source === "mobile-wallet-adapter";
|
|
25
|
+
}
|
|
16
26
|
|
|
17
27
|
exports.signAndSendTransaction = signAndSendTransaction;
|
package/dist/transaction.mjs
CHANGED
|
@@ -2,14 +2,24 @@ import { assertWalletConnected, assertWalletCanSign } from './wallet.mjs';
|
|
|
2
2
|
|
|
3
3
|
async function signAndSendTransaction(connection, wallet, transaction, options) {
|
|
4
4
|
assertWalletConnected(wallet);
|
|
5
|
+
if (isMobileWalletAdapterWallet(wallet) && wallet.signTransaction) {
|
|
6
|
+
assertWalletCanSign(wallet);
|
|
7
|
+
return signAndSendRawTransaction(connection, wallet, transaction, options);
|
|
8
|
+
}
|
|
5
9
|
if (wallet.signAndSendTransaction) {
|
|
6
10
|
const result = await wallet.signAndSendTransaction(transaction, options);
|
|
7
11
|
return result.signature;
|
|
8
12
|
}
|
|
9
13
|
assertWalletCanSign(wallet);
|
|
14
|
+
return signAndSendRawTransaction(connection, wallet, transaction, options);
|
|
15
|
+
}
|
|
16
|
+
async function signAndSendRawTransaction(connection, wallet, transaction, options) {
|
|
10
17
|
const signedTransaction = await wallet.signTransaction(transaction);
|
|
11
18
|
const rawTransaction = signedTransaction.serialize();
|
|
12
19
|
return connection.sendRawTransaction(rawTransaction, options);
|
|
13
20
|
}
|
|
21
|
+
function isMobileWalletAdapterWallet(wallet) {
|
|
22
|
+
return wallet.source === "mobile-wallet-adapter";
|
|
23
|
+
}
|
|
14
24
|
|
|
15
25
|
export { signAndSendTransaction };
|
package/dist/types.d.cts
CHANGED
|
@@ -21,6 +21,8 @@ interface SolanaWallet {
|
|
|
21
21
|
connected: boolean;
|
|
22
22
|
connecting?: boolean;
|
|
23
23
|
disconnecting?: boolean;
|
|
24
|
+
platform?: SolanaWalletInfo["platform"];
|
|
25
|
+
source?: SolanaWalletInfo["source"];
|
|
24
26
|
connect: () => Promise<void>;
|
|
25
27
|
disconnect: () => Promise<void>;
|
|
26
28
|
signTransaction?: <T extends SolanaTransaction>(transaction: T) => Promise<T>;
|
package/dist/types.d.mts
CHANGED
|
@@ -21,6 +21,8 @@ interface SolanaWallet {
|
|
|
21
21
|
connected: boolean;
|
|
22
22
|
connecting?: boolean;
|
|
23
23
|
disconnecting?: boolean;
|
|
24
|
+
platform?: SolanaWalletInfo["platform"];
|
|
25
|
+
source?: SolanaWalletInfo["source"];
|
|
24
26
|
connect: () => Promise<void>;
|
|
25
27
|
disconnect: () => Promise<void>;
|
|
26
28
|
signTransaction?: <T extends SolanaTransaction>(transaction: T) => Promise<T>;
|
package/dist/types.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ interface SolanaWallet {
|
|
|
21
21
|
connected: boolean;
|
|
22
22
|
connecting?: boolean;
|
|
23
23
|
disconnecting?: boolean;
|
|
24
|
+
platform?: SolanaWalletInfo["platform"];
|
|
25
|
+
source?: SolanaWalletInfo["source"];
|
|
24
26
|
connect: () => Promise<void>;
|
|
25
27
|
disconnect: () => Promise<void>;
|
|
26
28
|
signTransaction?: <T extends SolanaTransaction>(transaction: T) => Promise<T>;
|
package/dist/wallet-standard.cjs
CHANGED
package/dist/wallet-standard.mjs
CHANGED