@solana/client 0.1.4 → 0.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/dist/index.browser.cjs +140 -34
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.mjs +129 -35
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.native.mjs +129 -35
- package/dist/index.native.mjs.map +1 -1
- package/dist/index.node.cjs +140 -34
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +129 -35
- package/dist/index.node.mjs.map +1 -1
- package/dist/types/actions.d.ts +9 -0
- package/dist/types/actions.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +42 -10
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/wallet/connectors.d.ts +29 -0
- package/dist/types/wallet/connectors.d.ts.map +1 -0
- package/package.json +7 -1
package/dist/index.node.mjs
CHANGED
|
@@ -5,14 +5,44 @@ import { getTransferSolInstruction } from '@solana-program/system';
|
|
|
5
5
|
import { TOKEN_PROGRAM_ADDRESS, fetchMint, findAssociatedTokenPda, getCreateAssociatedTokenInstruction, getTransferCheckedInstruction } from '@solana-program/token';
|
|
6
6
|
import { getSetComputeUnitLimitInstruction, getSetComputeUnitPriceInstruction, COMPUTE_BUDGET_PROGRAM_ADDRESS, ComputeBudgetInstruction } from '@solana-program/compute-budget';
|
|
7
7
|
import { createStore } from 'zustand/vanilla';
|
|
8
|
-
import { getTransactionDecoder, getTransactionEncoder } from '@solana/transactions';
|
|
9
|
-
import { SolanaSignMessage, SolanaSignTransaction, SolanaSignAndSendTransaction } from '@solana/wallet-standard-features';
|
|
10
8
|
import { getWallets } from '@wallet-standard/app';
|
|
11
9
|
import { StandardConnect, StandardDisconnect } from '@wallet-standard/features';
|
|
10
|
+
import { getTransactionDecoder, getTransactionEncoder } from '@solana/transactions';
|
|
11
|
+
import { SolanaSignMessage, SolanaSignTransaction, SolanaSignAndSendTransaction } from '@solana/wallet-standard-features';
|
|
12
12
|
|
|
13
13
|
var __defProp = Object.defineProperty;
|
|
14
14
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
15
15
|
|
|
16
|
+
// src/actions.ts
|
|
17
|
+
function connectWallet(client, params) {
|
|
18
|
+
return client.actions.connectWallet(params.connectorId, params.options);
|
|
19
|
+
}
|
|
20
|
+
__name(connectWallet, "connectWallet");
|
|
21
|
+
function disconnectWallet(client, _params) {
|
|
22
|
+
return client.actions.disconnectWallet();
|
|
23
|
+
}
|
|
24
|
+
__name(disconnectWallet, "disconnectWallet");
|
|
25
|
+
function fetchAccount(client, params) {
|
|
26
|
+
return client.actions.fetchAccount(params.address, params.commitment);
|
|
27
|
+
}
|
|
28
|
+
__name(fetchAccount, "fetchAccount");
|
|
29
|
+
function fetchBalance(client, params) {
|
|
30
|
+
return client.actions.fetchBalance(params.address, params.commitment);
|
|
31
|
+
}
|
|
32
|
+
__name(fetchBalance, "fetchBalance");
|
|
33
|
+
function requestAirdrop(client, params) {
|
|
34
|
+
return client.actions.requestAirdrop(params.address, params.lamports);
|
|
35
|
+
}
|
|
36
|
+
__name(requestAirdrop, "requestAirdrop");
|
|
37
|
+
function sendTransaction(client, params) {
|
|
38
|
+
return client.actions.sendTransaction(params.transaction, params.commitment);
|
|
39
|
+
}
|
|
40
|
+
__name(sendTransaction, "sendTransaction");
|
|
41
|
+
function setCluster(client, params) {
|
|
42
|
+
return client.actions.setCluster(params.endpoint, params.config);
|
|
43
|
+
}
|
|
44
|
+
__name(setCluster, "setCluster");
|
|
45
|
+
|
|
16
46
|
// src/utils.ts
|
|
17
47
|
function deepFreeze(value) {
|
|
18
48
|
if (typeof value !== "object" || value === null) {
|
|
@@ -302,7 +332,7 @@ function createActions({ connectors, logger: inputLogger, runtime, store }) {
|
|
|
302
332
|
}
|
|
303
333
|
}
|
|
304
334
|
__name(warmupCluster, "warmupCluster");
|
|
305
|
-
async function
|
|
335
|
+
async function setCluster2(endpoint, config) {
|
|
306
336
|
const nextCommitment = config?.commitment ?? store.getState().cluster.commitment;
|
|
307
337
|
const websocketEndpoint = config?.websocketEndpoint ?? endpoint;
|
|
308
338
|
store.setState((state) => ({
|
|
@@ -353,8 +383,8 @@ function createActions({ connectors, logger: inputLogger, runtime, store }) {
|
|
|
353
383
|
throw error;
|
|
354
384
|
}
|
|
355
385
|
}
|
|
356
|
-
__name(
|
|
357
|
-
async function
|
|
386
|
+
__name(setCluster2, "setCluster");
|
|
387
|
+
async function connectWallet2(connectorId, options = {}) {
|
|
358
388
|
const connector = connectors.get(connectorId);
|
|
359
389
|
if (!connector) {
|
|
360
390
|
throw new Error(`No wallet connector registered for id "${connectorId}".`);
|
|
@@ -393,8 +423,8 @@ function createActions({ connectors, logger: inputLogger, runtime, store }) {
|
|
|
393
423
|
throw error;
|
|
394
424
|
}
|
|
395
425
|
}
|
|
396
|
-
__name(
|
|
397
|
-
async function
|
|
426
|
+
__name(connectWallet2, "connectWallet");
|
|
427
|
+
async function disconnectWallet3() {
|
|
398
428
|
const wallet = store.getState().wallet;
|
|
399
429
|
if (wallet.status === "disconnected") {
|
|
400
430
|
return;
|
|
@@ -416,8 +446,8 @@ function createActions({ connectors, logger: inputLogger, runtime, store }) {
|
|
|
416
446
|
updateState(store, { wallet: { status: "disconnected" } });
|
|
417
447
|
}
|
|
418
448
|
}
|
|
419
|
-
__name(
|
|
420
|
-
async function
|
|
449
|
+
__name(disconnectWallet3, "disconnectWallet");
|
|
450
|
+
async function fetchBalance2(address4, commitment) {
|
|
421
451
|
const key = address4.toString();
|
|
422
452
|
store.setState((state) => ({
|
|
423
453
|
...state,
|
|
@@ -480,8 +510,8 @@ function createActions({ connectors, logger: inputLogger, runtime, store }) {
|
|
|
480
510
|
throw error;
|
|
481
511
|
}
|
|
482
512
|
}
|
|
483
|
-
__name(
|
|
484
|
-
async function
|
|
513
|
+
__name(fetchBalance2, "fetchBalance");
|
|
514
|
+
async function fetchAccount2(address4, commitment) {
|
|
485
515
|
const key = address4.toString();
|
|
486
516
|
store.setState((state) => ({
|
|
487
517
|
...state,
|
|
@@ -545,8 +575,8 @@ function createActions({ connectors, logger: inputLogger, runtime, store }) {
|
|
|
545
575
|
throw error;
|
|
546
576
|
}
|
|
547
577
|
}
|
|
548
|
-
__name(
|
|
549
|
-
async function
|
|
578
|
+
__name(fetchAccount2, "fetchAccount");
|
|
579
|
+
async function sendTransaction2(transaction, commitment) {
|
|
550
580
|
const targetCommitment = getCommitment(commitment);
|
|
551
581
|
const abortController = new AbortController();
|
|
552
582
|
const signature4 = await runtime.rpc.sendTransaction(getBase64EncodedWireTransaction(transaction), {
|
|
@@ -617,8 +647,8 @@ function createActions({ connectors, logger: inputLogger, runtime, store }) {
|
|
|
617
647
|
throw error;
|
|
618
648
|
}
|
|
619
649
|
}
|
|
620
|
-
__name(
|
|
621
|
-
async function
|
|
650
|
+
__name(sendTransaction2, "sendTransaction");
|
|
651
|
+
async function requestAirdrop2(address4, lamports2) {
|
|
622
652
|
try {
|
|
623
653
|
const factory = airdropFactory({
|
|
624
654
|
rpc: runtime.rpc,
|
|
@@ -644,15 +674,15 @@ function createActions({ connectors, logger: inputLogger, runtime, store }) {
|
|
|
644
674
|
throw error;
|
|
645
675
|
}
|
|
646
676
|
}
|
|
647
|
-
__name(
|
|
677
|
+
__name(requestAirdrop2, "requestAirdrop");
|
|
648
678
|
return {
|
|
649
|
-
connectWallet,
|
|
650
|
-
disconnectWallet:
|
|
651
|
-
fetchAccount,
|
|
652
|
-
fetchBalance,
|
|
653
|
-
requestAirdrop,
|
|
654
|
-
sendTransaction,
|
|
655
|
-
setCluster
|
|
679
|
+
connectWallet: connectWallet2,
|
|
680
|
+
disconnectWallet: disconnectWallet3,
|
|
681
|
+
fetchAccount: fetchAccount2,
|
|
682
|
+
fetchBalance: fetchBalance2,
|
|
683
|
+
requestAirdrop: requestAirdrop2,
|
|
684
|
+
sendTransaction: sendTransaction2,
|
|
685
|
+
setCluster: setCluster2
|
|
656
686
|
};
|
|
657
687
|
}
|
|
658
688
|
__name(createActions, "createActions");
|
|
@@ -1086,13 +1116,13 @@ function createWalletTransactionSigner(session, config = {}) {
|
|
|
1086
1116
|
}
|
|
1087
1117
|
if (session.sendTransaction) {
|
|
1088
1118
|
const base58Encoder = getBase58Encoder();
|
|
1089
|
-
const
|
|
1119
|
+
const sendTransaction2 = session.sendTransaction.bind(session);
|
|
1090
1120
|
const sendingSigner = Object.freeze({
|
|
1091
1121
|
address: address4,
|
|
1092
1122
|
async signAndSendTransactions(transactions) {
|
|
1093
1123
|
const signatures = [];
|
|
1094
1124
|
for (const transaction of transactions) {
|
|
1095
|
-
const signatureString = await
|
|
1125
|
+
const signatureString = await sendTransaction2(
|
|
1096
1126
|
transaction,
|
|
1097
1127
|
commitment ? { commitment } : void 0
|
|
1098
1128
|
);
|
|
@@ -1278,7 +1308,7 @@ function createSplTokenHelper(runtime, config) {
|
|
|
1278
1308
|
return ata;
|
|
1279
1309
|
}
|
|
1280
1310
|
__name(deriveAssociatedTokenAddress, "deriveAssociatedTokenAddress");
|
|
1281
|
-
async function
|
|
1311
|
+
async function fetchBalance2(owner, commitment) {
|
|
1282
1312
|
const ataAddress = await deriveAssociatedTokenAddress(owner);
|
|
1283
1313
|
const decimals = await resolveDecimals(commitment);
|
|
1284
1314
|
try {
|
|
@@ -1303,7 +1333,7 @@ function createSplTokenHelper(runtime, config) {
|
|
|
1303
1333
|
};
|
|
1304
1334
|
}
|
|
1305
1335
|
}
|
|
1306
|
-
__name(
|
|
1336
|
+
__name(fetchBalance2, "fetchBalance");
|
|
1307
1337
|
async function prepareTransfer(config2) {
|
|
1308
1338
|
const commitment = config2.commitment;
|
|
1309
1339
|
const lifetime = await resolveLifetime2(runtime, commitment, config2.lifetime);
|
|
@@ -1420,7 +1450,7 @@ function createSplTokenHelper(runtime, config) {
|
|
|
1420
1450
|
__name(sendTransfer, "sendTransfer");
|
|
1421
1451
|
return {
|
|
1422
1452
|
deriveAssociatedTokenAddress,
|
|
1423
|
-
fetchBalance,
|
|
1453
|
+
fetchBalance: fetchBalance2,
|
|
1424
1454
|
prepareTransfer,
|
|
1425
1455
|
sendPreparedTransfer,
|
|
1426
1456
|
sendTransfer
|
|
@@ -2745,13 +2775,13 @@ function getChain(account) {
|
|
|
2745
2775
|
return preferred;
|
|
2746
2776
|
}
|
|
2747
2777
|
__name(getChain, "getChain");
|
|
2748
|
-
async function
|
|
2778
|
+
async function disconnectWallet2(wallet) {
|
|
2749
2779
|
const disconnectFeature = wallet.features[StandardDisconnect];
|
|
2750
2780
|
if (disconnectFeature) {
|
|
2751
2781
|
await disconnectFeature.disconnect();
|
|
2752
2782
|
}
|
|
2753
2783
|
}
|
|
2754
|
-
__name(
|
|
2784
|
+
__name(disconnectWallet2, "disconnectWallet");
|
|
2755
2785
|
function createWalletStandardConnector(wallet, options = {}) {
|
|
2756
2786
|
const metadata = {
|
|
2757
2787
|
canAutoConnect: options.canAutoConnect ?? Boolean(wallet.features[StandardConnect]),
|
|
@@ -2799,7 +2829,7 @@ function createWalletStandardConnector(wallet, options = {}) {
|
|
|
2799
2829
|
const [output] = await signTransactionFeature.signTransaction(request);
|
|
2800
2830
|
return transactionDecoder.decode(output.signedTransaction);
|
|
2801
2831
|
} : void 0;
|
|
2802
|
-
const
|
|
2832
|
+
const sendTransaction2 = signAndSendFeature ? async (transaction, config) => {
|
|
2803
2833
|
const wireBytes = new Uint8Array(transactionEncoder.encode(transaction));
|
|
2804
2834
|
const chain = options.defaultChain ?? getChain(primaryAccount) ?? "solana:mainnet-beta";
|
|
2805
2835
|
const [output] = await signAndSendFeature.signAndSendTransaction({
|
|
@@ -2813,21 +2843,21 @@ function createWalletStandardConnector(wallet, options = {}) {
|
|
|
2813
2843
|
return base58Decoder.decode(output.signature);
|
|
2814
2844
|
} : void 0;
|
|
2815
2845
|
async function disconnectSession() {
|
|
2816
|
-
await
|
|
2846
|
+
await disconnectWallet2(wallet);
|
|
2817
2847
|
}
|
|
2818
2848
|
__name(disconnectSession, "disconnectSession");
|
|
2819
2849
|
return {
|
|
2820
2850
|
account: sessionAccount,
|
|
2821
2851
|
connector: metadata,
|
|
2822
2852
|
disconnect: disconnectSession,
|
|
2823
|
-
sendTransaction,
|
|
2853
|
+
sendTransaction: sendTransaction2,
|
|
2824
2854
|
signMessage,
|
|
2825
2855
|
signTransaction
|
|
2826
2856
|
};
|
|
2827
2857
|
}
|
|
2828
2858
|
__name(connect, "connect");
|
|
2829
2859
|
async function disconnect() {
|
|
2830
|
-
await
|
|
2860
|
+
await disconnectWallet2(wallet);
|
|
2831
2861
|
}
|
|
2832
2862
|
__name(disconnect, "disconnect");
|
|
2833
2863
|
function isSupported() {
|
|
@@ -2883,6 +2913,70 @@ function watchWalletStandardConnectors(onChange, options = {}) {
|
|
|
2883
2913
|
}
|
|
2884
2914
|
__name(watchWalletStandardConnectors, "watchWalletStandardConnectors");
|
|
2885
2915
|
|
|
2886
|
-
|
|
2916
|
+
// src/wallet/connectors.ts
|
|
2917
|
+
function autoDiscover(options = {}) {
|
|
2918
|
+
const { get } = getWallets();
|
|
2919
|
+
const wallets = get().filter((wallet) => options.filter ? options.filter(wallet) : true);
|
|
2920
|
+
const connectors = wallets.map((wallet) => createWalletStandardConnector(wallet, options.overrides?.(wallet)));
|
|
2921
|
+
const seen = /* @__PURE__ */ new Set();
|
|
2922
|
+
return connectors.filter((connector) => {
|
|
2923
|
+
if (seen.has(connector.id)) return false;
|
|
2924
|
+
seen.add(connector.id);
|
|
2925
|
+
return true;
|
|
2926
|
+
});
|
|
2927
|
+
}
|
|
2928
|
+
__name(autoDiscover, "autoDiscover");
|
|
2929
|
+
function injected(options) {
|
|
2930
|
+
const connector = {
|
|
2931
|
+
canAutoConnect: true,
|
|
2932
|
+
id: "wallet-standard:injected",
|
|
2933
|
+
kind: "wallet-standard",
|
|
2934
|
+
name: "Injected Wallet",
|
|
2935
|
+
ready: typeof window !== "undefined",
|
|
2936
|
+
async connect() {
|
|
2937
|
+
const wallets = getWallets().get();
|
|
2938
|
+
const first = wallets.find((wallet) => StandardConnect in wallet.features);
|
|
2939
|
+
if (!first) {
|
|
2940
|
+
throw new Error("No Wallet Standard wallets available.");
|
|
2941
|
+
}
|
|
2942
|
+
return createWalletStandardConnector(first, options).connect();
|
|
2943
|
+
},
|
|
2944
|
+
async disconnect() {
|
|
2945
|
+
},
|
|
2946
|
+
isSupported() {
|
|
2947
|
+
return typeof window !== "undefined";
|
|
2948
|
+
}
|
|
2949
|
+
};
|
|
2950
|
+
return connector;
|
|
2951
|
+
}
|
|
2952
|
+
__name(injected, "injected");
|
|
2953
|
+
function filterByName(name) {
|
|
2954
|
+
const lower = name.toLowerCase();
|
|
2955
|
+
return (wallet) => wallet.name.toLowerCase().includes(lower);
|
|
2956
|
+
}
|
|
2957
|
+
__name(filterByName, "filterByName");
|
|
2958
|
+
function phantom(options) {
|
|
2959
|
+
return autoDiscover({
|
|
2960
|
+
filter: filterByName("phantom"),
|
|
2961
|
+
overrides: /* @__PURE__ */ __name(() => ({ ...options, id: "wallet-standard:phantom" }), "overrides")
|
|
2962
|
+
});
|
|
2963
|
+
}
|
|
2964
|
+
__name(phantom, "phantom");
|
|
2965
|
+
function solflare(options) {
|
|
2966
|
+
return autoDiscover({
|
|
2967
|
+
filter: filterByName("solflare"),
|
|
2968
|
+
overrides: /* @__PURE__ */ __name(() => ({ ...options, id: "wallet-standard:solflare" }), "overrides")
|
|
2969
|
+
});
|
|
2970
|
+
}
|
|
2971
|
+
__name(solflare, "solflare");
|
|
2972
|
+
function backpack(options) {
|
|
2973
|
+
return autoDiscover({
|
|
2974
|
+
filter: filterByName("backpack"),
|
|
2975
|
+
overrides: /* @__PURE__ */ __name(() => ({ ...options, id: "wallet-standard:backpack" }), "overrides")
|
|
2976
|
+
});
|
|
2977
|
+
}
|
|
2978
|
+
__name(backpack, "backpack");
|
|
2979
|
+
|
|
2980
|
+
export { LAMPORTS_PER_SOL, SIGNATURE_STATUS_TIMEOUT_MS, applyRatio, applySerializableState, assertDecimals, assertNonNegative, autoDiscover, backpack, bigintFromJson, bigintToJson, checkedAdd, checkedDivide, checkedMultiply, checkedSubtract, confirmationMeetsCommitment, connectWallet, createAsyncState, createClient, createClientStore, createDefaultClientStore, createInitialAsyncState, createInitialClientState, createRatio, createSolTransferController, createSolTransferHelper, createSolanaRpcClient, createSplTokenHelper, createSplTransferController, createTokenAmount, createTransactionHelper, createTransactionPoolController, createTransactionRecipe, createWalletRegistry, createWalletStandardConnector, deriveConfirmationStatus, deserializeSolanaState, disconnectWallet, fetchAccount, fetchBalance, getInitialSerializableState, getWalletStandardConnectors, injected, insertReferenceKey, insertReferenceKeys, lamports, lamportsFromJson, lamportsFromSol, lamportsMath, lamportsToJson, lamportsToSolString, normalizeSignature, phantom, pow10, prepareTransaction, requestAirdrop, resolveCluster, sendTransaction, serializeSolanaState, setCluster, solflare, stableStringify, subscribeSolanaState, toAddress2 as toAddress, toAddressString, toBigint2 as toBigint, transactionToBase64, transactionToBase64WithSigners, watchWalletStandardConnectors };
|
|
2887
2981
|
//# sourceMappingURL=index.node.mjs.map
|
|
2888
2982
|
//# sourceMappingURL=index.node.mjs.map
|