@solana/client

@solana/client διατηρεί την επιφάνεια του runtime ελαφριά. Ένα store, ένα RPC stack και ένα wallet registry τροφοδοτούν τα διάφορα helpers ώστε το ίδιο instance να μπορεί να υποστηρίζει CLIs, scripts ή πλήρη UIs. Τα actions, watchers και helpers μοιράζονται cache, subscriptions και wallet sessions μέσω αυτού του μοναδικού client.

Όταν δημιουργείτε μια καθαρά React εμπειρία, είναι συνήθως πιο γρήγορο να ξεκινήσετε με το @solana/react-hooks. Το πακέτο hooks περιτυλίγει το ίδιο client runtime και εκθέτει έτοιμα hooks ώστε να χρησιμοποιείτε το headless client μόνο όταν χρειάζεστε επιπλέον έλεγχο.

Εγκατάσταση

Terminal
$
npm install @solana/client

Χρησιμοποιήστε οποιονδήποτε package manager· το client εκτελείται σε browsers, workers, React, Svelte ή server-side runtimes.

Δημιουργήστε έναν client μία φορά

Επιλέξτε Wallet Standard connectors (η αυτόματη ανακάλυψη είναι ο πιο γρήγορος τρόπος για να ξεκινήσετε), στη συνέχεια δημιουργήστε τον client. Αυτό το μοναδικό object εκθέτει το store, actions, watchers και helpers.

import { autoDiscover, createClient } from "@solana/client";
const client = createClient({
endpoint: "https://api.devnet.solana.com",
websocketEndpoint: "wss://api.devnet.solana.com",
walletConnectors: autoDiscover()
});
await client.actions.connectWallet("wallet-standard:phantom");
const balance = await client.actions.fetchBalance("Fke...address");
console.log(balance.lamports?.toString());

Το client store παρακολουθεί τη διαμόρφωση του cluster, subscriptions, εκκρεμείς συναλλαγές και wallet sessions. Μπορείτε να παρέχετε το δικό σας Zustand store αν χρειάζεστε persistence ή συντονισμό πολλαπλών tabs.

Ενορχήστρωση wallet

Τα connectors ενσωματώνουν Wallet Standard metadata συν τη λογική connect/disconnect. Καταχωρίστε τα ενσωματωμένα phantom(), solflare(), backpack() ή autoDiscover() helpers, ή περιτυλίξτε custom providers με το createWalletStandardConnector. Όλα τα wallet actions (connect, disconnect, sign, send) διέρχονται μέσω του client registry ώστε κάθε consumer να παραμένει συγχρονισμένος.

Actions, watchers και helpers

  • Τα actions περιτυλίγουν κοινές RPC αναγνώσεις και εγγραφές ενώ ενημερώνουν το store (π.χ., fetchAccount, requestAirdrop, setCluster).
  • Τα watchers πολυπλέκουν websocket subscriptions, μεταδίδουν ενημερώσεις στο store και σας δίνουν abort handles για καθαρισμό.
  • Τα helpers εκθέτουν ροές υψηλότερου επιπέδου όπως μεταφορές SOL, SPL token helpers, polling υπογραφών και transaction pools.
const abortWatcher = client.watchers.watchBalance(
{ address: "Fke...address" },
(lamports) => {
console.log("live balance", lamports.toString());
}
);
// Later when the component unmounts or the flow ends
abortWatcher.abort();

Μοτίβο βοηθού συναλλαγών

Ο βοηθός συναλλαγών διαχειρίζεται την ανανέωση του blockhash, την επίλυση του πληρωτή τελών και την υπογραφή. Μπορείτε να προετοιμάσετε, να επιθεωρήσετε και να στείλετε με όποια εμπειρία χρήστη προτιμάτε.

const prepared = await client.helpers.transaction.prepare({
authority: client.store.getState().wallet.session!,
instructions: [instructionA, instructionB]
});
await client.helpers.transaction.simulate(prepared, {
commitment: "processed"
});
const signature = await client.helpers.transaction.send(prepared);
console.log("submitted", signature.toString());

Χρησιμοποιήστε το prepareAndSend για μια προκατασκευασμένη ροή (προσομοίωση συν καταγραφή) ή καλέστε τα sign / toWire για να συλλέξετε υπογραφές χειροκίνητα πριν μεταδώσετε τη μορφή wire μόνοι σας.

Εκτέλεση χωρίς περιβάλλον εργασίας — σε ένα API route, worker ή script χωρίς πορτοφόλι περιηγητή; Υπογράψτε με μια υπηρεσία διαχείρισης κλειδιών backend αντί για ένα ακατέργαστο keypair. Δείτε Keychain και Signing in Production.

Κοινά μοτίβα για προγραμματιστές Solana

  • Μηχανές κατάστασης χωρίς περιβάλλον εργασίας: Εκτελέστε τον client εντός API routes, scripts ή workers για να επαναχρησιμοποιήσετε την ίδια λογική ενορχήστρωσης wallet + RPC που τροφοδοτεί το UI σας.
  • Dashboards σε πραγματικό χρόνο: Συνδυάστε watchers (υπόλοιπα, λογαριασμοί, υπογραφές) με την προτιμώμενη βιβλιοθήκη UI σας· ο client διαχειρίζεται την κατανομή websocket και την ακύρωση cache.
  • Προσαρμοσμένα stores: Εισάγετε το δικό σας Zustand store για ενυδάτωση από IndexedDB/localStorage, αντιγραφή κατάστασης σε server sessions ή συντονισμό μεταξύ καρτελών περιηγητή.
  • Σύνδεση με React hooks: Περάστε μια διαμορφωμένη παρουσία client στο @solana/react-hooks όταν θέλετε εργονομικά hooks πάνω στο ίδιο runtime.
  • Δυνατότητα δοκιμών: Η ενιαία διεπαφή client μπορεί να προσομοιωθεί σε unit tests, καθιστώντας εύκολη την προσομοίωση αποκρίσεων RPC ή sessions πορτοφολιού χωρίς παρόν πορτοφόλι περιηγητή.

Is this page helpful?

Πίνακας Περιεχομένων

Επεξεργασία Σελίδας
© 2026 Ίδρυμα Solana. Με επιφύλαξη παντός δικαιώματος.