Πριν δημιουργήσετε ροές πληρωμών, πρέπει να συνδεθείτε στο 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?