@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 μόνοι σας.

Συνήθη μοτίβα για προγραμματιστές Solana

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

Is this page helpful?

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

Επεξεργασία Σελίδας

Διαχειρίζεται από

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