@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.
@@ -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 setCluster(endpoint, config) {
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(setCluster, "setCluster");
357
- async function connectWallet(connectorId, options = {}) {
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(connectWallet, "connectWallet");
397
- async function disconnectWallet2() {
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(disconnectWallet2, "disconnectWallet");
420
- async function fetchBalance(address4, commitment) {
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(fetchBalance, "fetchBalance");
484
- async function fetchAccount(address4, commitment) {
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(fetchAccount, "fetchAccount");
549
- async function sendTransaction(transaction, commitment) {
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(sendTransaction, "sendTransaction");
621
- async function requestAirdrop(address4, lamports2) {
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(requestAirdrop, "requestAirdrop");
677
+ __name(requestAirdrop2, "requestAirdrop");
648
678
  return {
649
- connectWallet,
650
- disconnectWallet: disconnectWallet2,
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 sendTransaction = session.sendTransaction.bind(session);
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 sendTransaction(
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 fetchBalance(owner, commitment) {
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(fetchBalance, "fetchBalance");
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 disconnectWallet(wallet) {
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(disconnectWallet, "disconnectWallet");
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 sendTransaction = signAndSendFeature ? async (transaction, config) => {
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 disconnectWallet(wallet);
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 disconnectWallet(wallet);
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
- export { LAMPORTS_PER_SOL, SIGNATURE_STATUS_TIMEOUT_MS, applyRatio, applySerializableState, assertDecimals, assertNonNegative, bigintFromJson, bigintToJson, checkedAdd, checkedDivide, checkedMultiply, checkedSubtract, confirmationMeetsCommitment, createAsyncState, createClient, createClientStore, createDefaultClientStore, createInitialAsyncState, createInitialClientState, createRatio, createSolTransferController, createSolTransferHelper, createSolanaRpcClient, createSplTokenHelper, createSplTransferController, createTokenAmount, createTransactionHelper, createTransactionPoolController, createTransactionRecipe, createWalletRegistry, createWalletStandardConnector, deriveConfirmationStatus, deserializeSolanaState, getInitialSerializableState, getWalletStandardConnectors, insertReferenceKey, insertReferenceKeys, lamports, lamportsFromJson, lamportsFromSol, lamportsMath, lamportsToJson, lamportsToSolString, normalizeSignature, pow10, prepareTransaction, resolveCluster, serializeSolanaState, stableStringify, subscribeSolanaState, toAddress2 as toAddress, toAddressString, toBigint2 as toBigint, transactionToBase64, transactionToBase64WithSigners, watchWalletStandardConnectors };
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