Αλληλεπίδραση με το Solana

Πριν δημιουργήσετε ροές πληρωμών, πρέπει να συνδεθείτε στο Solana και να κατανοήσετε πώς να υποβάλλετε ερωτήματα για δεδομένα δικτύου. Αυτός ο οδηγός καλύπτει τα βασικά: τη δημιουργία σύνδεσης και τη χρήση των μεθόδων RPC που θα χρειαστείτε για πληρωμές χρησιμοποιώντας το @solana/kit TypeScript SDK και το Solana CLI. Επιπλέον, θα καλύψουμε τα βασικά της χρήσης του Solana Explorer για χειροκίνητη επαλήθευση πληρωμών, επιθεώρηση λογαριασμών και αποσφαλμάτωση προβλημάτων.

Σύνδεση στο Solana

Το RPC API του Solana είναι ο κύριος τρόπος για να αλληλεπιδράσετε προγραμματιστικά με το δίκτυο. Το RPC URL σας είναι ουσιαστικά ένα API key για το δίκτυο.

Μην χρησιμοποιείτε δημόσιο RPC για παραγωγή

Τα δημόσια endpoints (api.mainnet-beta.solana.com, api.devnet.solana.com) έχουν περιορισμό ρυθμού, δεν διαθέτουν SLA και δεν είναι κατάλληλα για ροές πληρωμών παραγωγής. Χρησιμοποιήστε έναν πάροχο RPC για να εξασφαλίσετε ένα ιδιωτικό RPC endpoint για αναπτύξεις παραγωγής.

Για ανάπτυξη και δοκιμές, μπορείτε να χρησιμοποιήσετε δημόσια endpoints με περιορισμό ρυθμού.

Δημιουργήστε έναν RPC client για να αλληλεπιδράσετε με το δίκτυο:

import { createSolanaRpc, createSolanaRpcSubscriptions } from "@solana/kit";
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
const rpcSubscriptions = createSolanaRpcSubscriptions(
"wss://api.mainnet-beta.solana.com"
);

Για ανάπτυξη, χρησιμοποιήστε το devnet (https://api.devnet.solana.com) ή έναν τοπικό validator όπως το Surfpool.

Συνήθεις μέθοδοι RPC

Το JSON-RPC API του Solana εκθέτει μεθόδους για υποβολή ερωτημάτων στο δίκτυο. Εδώ είναι αυτές που θα χρησιμοποιήσετε περισσότερο για ροές πληρωμών.

Λήψη πληροφοριών λογαριασμού

Όλοι οι λογαριασμοί στο Solana είναι προσβάσιμοι μέσω του δημόσιου κλειδιού τους. Χρησιμοποιήστε τη μέθοδο RPC getAccountInfo για να ανακτήσετε πληροφορίες σχετικά με οποιονδήποτε λογαριασμό. Η μέθοδος getAccountInfo επιστρέφει ένα αντικείμενο AccountInfo, το οποίο περιέχει το δημόσιο κλειδί του λογαριασμού, το υπόλοιπο SOL, δεδομένα και κάποια άλλα μεταδεδομένα.

Το πεδίο data είναι ένα base64 κωδικοποιημένο string των δεδομένων του λογαριασμού. Μπορείτε να το κωδικοποιήσετε σε bytes χρησιμοποιώντας τη μέθοδο getBase64Codec από το πακέτο @solana/kit και στη συνέχεια να το αποκωδικοποιήσετε σε ένα αναγνώσιμο αντικείμενο χρησιμοποιώντας τον αναμενόμενο codec (εάν είναι γνωστός) για τα δεδομένα του λογαριασμού (π.χ., getTokenCodec για token accounts).

const accountInfo = await rpc
.getAccountInfo(address("7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV"), {
encoding: "base64"
})
.send();
const dataBytes = getBase64Codec().encode(accountInfo.value.data);
const parsedTokenData = getTokenCodec().decode(dataBytes);
console.log(parsedTokenData);

Λήψη υπολοίπων token

Ελέγξτε το υπόλοιπο ενός token account χρησιμοποιώντας τη μέθοδο RPC getTokenAccountBalance:

const balance = await rpc.getTokenAccountBalance(tokenAccountAddress).send();
console.log(balance.value.uiAmount); // Human-readable (e.g., 100.50)
console.log(balance.value.amount); // Base units (e.g., "100500000")

Δημιουργία συναλλαγών

Κάθε συναλλαγή χρειάζεται ένα πρόσφατο blockhash για να διασφαλιστεί ότι είναι έγκυρη (και όχι ξεπερασμένη). Λάβετε ένα πριν δημιουργήσετε μια συναλλαγή πληρωμής χρησιμοποιώντας τη μέθοδο RPC getLatestBlockhash:

const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();

Τα blockhashes λήγουν μετά από ~60 δευτερόλεπτα. Λάβετε ένα φρέσκο αμέσως πριν την υπογραφή και την αποστολή.

Έλεγχος κατάστασης συναλλαγής

Επαληθεύστε ότι μια συναλλαγή ολοκληρώθηκε χρησιμοποιώντας τη μέθοδο RPC getSignatureStatuses:

const status = await rpc.getSignatureStatuses([signature]).send();
const result = status.value[0];
// result.confirmationStatus: "processed" | "confirmed" | "finalized"

Λήψη λεπτομερειών συναλλαγής

Ανακτήστε τις πλήρεις λεπτομέρειες μιας επιβεβαιωμένης συναλλαγής χρησιμοποιώντας τη μέθοδο RPC getTransaction:

const transaction = await rpc
.getTransaction(signature, { maxSupportedTransactionVersion: 0 })
.send();

Ιστορικό συναλλαγών

Λάβετε τις πρόσφατες συναλλαγές για μια διεύθυνση χρησιμοποιώντας τη μέθοδο RPC getSignaturesForAddress:

const signatures = await rpc
.getSignaturesForAddress(walletAddress, { limit: 10 })
.send();

Για ολοκληρωμένη παρακολούθηση πληρωμών, δείτε το Αποδοχή πληρωμών που καλύπτει webhooks και ανίχνευση συναλλαγών σε πραγματικό χρόνο.

Εξερεύνηση δημόσιων δεδομένων

Το δημόσιο καθολικό της Solana σημαίνει ότι κάθε συναλλαγή, token account και mint είναι πλήρως ελέγξιμα. Οι block explorers σας επιτρέπουν να επαληθεύετε χειροκίνητα πληρωμές, να επιθεωρείτε λογαριασμούς και να εντοπίζετε προβλήματα χωρίς να γράφετε κώδικα.

Τι μπορείτε να αναζητήσετε:

  • Επαλήθευση ότι μια πληρωμή ολοκληρώθηκε
  • Επιθεώρηση υπολοίπων token account
  • Εντοπισμός αποτυχημένων συναλλαγών
  • Αναζήτηση λεπτομερειών mint (προσφορά, δεκαδικά, εξουσιοδότηση)

Συνήθεις explorers: Solana Explorer, SolanaFM, Solscan, Orb

Παραδείγματα συνδέσμων:

  • USDC Token Mint — Προσφορά, αγορές, κάτοχοι και συναλλαγές για το USDC
  • USDC Token Transfer — Λεπτομέρειες μιας συναλλαγής πληρωμής USDC
  • USDG Token Account — Το υπόλοιπο USDG ενός χρήστη και το ιστορικό συναλλαγών

Is this page helpful?

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

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