Βασική πληρωμή

Το Solana επιτρέπει άμεσες, παγκόσμιες μεταφορές token με χρεώσεις κάτω από $0.001. Είτε δημιουργείτε διασυνοριακά εμβάσματα, καταβολές μισθοδοσίας ή λειτουργίες ταμείου, μια βασική πληρωμή σε stablecoin διακανονίζεται σε λιγότερο από ένα δευτερόλεπτο και κοστίζει ένα κλάσμα του σεντ.

Πώς λειτουργεί

Μια πληρωμή μεταφέρει stablecoins από το token account του αποστολέα στο token account του παραλήπτη. Εάν ο παραλήπτης λαμβάνει αυτό το token για πρώτη φορά, το token account του μπορεί να δημιουργηθεί ως μέρος της ίδιας συναλλαγής.

Δείτε το How Payments Work on Solana για βασικές έννοιες πληρωμών.

Το splToken helper από το @solana/client χειρίζεται αυτόματα την παραγωγή ATA, τη μετατροπή δεκαδικών και τη δημιουργία συναλλαγών. Αυτό είναι ιδανικό για μεμονωμένες μεταφορές πληρωμών.

Τα παρακάτω βήματα δείχνουν τη βασική ροή. Δείτε το Demo για πλήρη εκτελέσιμο κώδικα.

Δημιουργήστε το Token Helper

Διαμορφώστε το splToken() helper καλώντας το client.splToken() με τη διεύθυνση mint. Το helper παρέχει μεθόδους για κοινές λειτουργίες token.

Ορίζοντας το tokenProgram: "auto" ανιχνεύεται αυτόματα εάν το mint account ανήκει στο πρόγραμμα Token ή Token-2022.

Στείλτε την πληρωμή

Χρησιμοποιήστε το sendTransfer() για να μεταφέρετε tokens μεταξύ πορτοφολιών. Η μέθοδος χειρίζεται:

  • Επίλυση ATA: Παράγει αυτόματα Associated Token Accounts (ATAs) για τον αποστολέα και τον παραλήπτη. Εάν το ATA του παραλήπτη δεν υπάρχει, η εντολή για τη δημιουργία του λογαριασμού προστίθεται αυτόματα στην ίδια συναλλαγή.
  • Μετατροπή δεκαδικών: Δέχεται ποσά token και τα μετατρέπει αυτόματα σε βασικές μονάδες με βάση τα δεκαδικά του mint (π.χ. 0.25 tokens -> 250000 βασικές μονάδες, εάν το mint έχει 6 δεκαδικά)
  • Δημιουργία συναλλαγής: Δημιουργεί, υπογράφει και στέλνει τη συναλλαγή με την εντολή μεταφοράς
Basic Payment
const client = createClient({
endpoint: "http://localhost:8899",
websocketEndpoint: "ws://localhost:8900",
commitment: "confirmed"
});
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});
const signature = await splToken.sendTransfer({
amount: 0.25,
authority: sender,
destinationOwner: recipient.address
});

Επαλήθευση υπολοίπων

Μετά την ολοκλήρωση της μεταφοράς, χρησιμοποιήστε fetchBalance() για να επαληθεύσετε τα υπόλοιπα των tokens. Αυτή η μέθοδος δέχεται μια διεύθυνση πορτοφολιού και αυτόματα εξάγει το αντίστοιχο ATA για να ανακτήσει το υπόλοιπο.

Basic Payment
const client = createClient({
endpoint: "http://localhost:8899",
websocketEndpoint: "ws://localhost:8900",
commitment: "confirmed"
});
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});
const signature = await splToken.sendTransfer({
amount: 0.25,
authority: sender,
destinationOwner: recipient.address
});
const senderBalance = await splToken.fetchBalance(sender.address);
const recipientBalance = await splToken.fetchBalance(recipient.address);

Δημιουργήστε το Token Helper

Διαμορφώστε το splToken() helper καλώντας το client.splToken() με τη διεύθυνση mint. Το helper παρέχει μεθόδους για κοινές λειτουργίες token.

Ορίζοντας το tokenProgram: "auto" ανιχνεύεται αυτόματα εάν το mint account ανήκει στο πρόγραμμα Token ή Token-2022.

Στείλτε την πληρωμή

Χρησιμοποιήστε το sendTransfer() για να μεταφέρετε tokens μεταξύ πορτοφολιών. Η μέθοδος χειρίζεται:

  • Επίλυση ATA: Παράγει αυτόματα Associated Token Accounts (ATAs) για τον αποστολέα και τον παραλήπτη. Εάν το ATA του παραλήπτη δεν υπάρχει, η εντολή για τη δημιουργία του λογαριασμού προστίθεται αυτόματα στην ίδια συναλλαγή.
  • Μετατροπή δεκαδικών: Δέχεται ποσά token και τα μετατρέπει αυτόματα σε βασικές μονάδες με βάση τα δεκαδικά του mint (π.χ. 0.25 tokens -> 250000 βασικές μονάδες, εάν το mint έχει 6 δεκαδικά)
  • Δημιουργία συναλλαγής: Δημιουργεί, υπογράφει και στέλνει τη συναλλαγή με την εντολή μεταφοράς

Επαλήθευση υπολοίπων

Μετά την ολοκλήρωση της μεταφοράς, χρησιμοποιήστε fetchBalance() για να επαληθεύσετε τα υπόλοιπα των tokens. Αυτή η μέθοδος δέχεται μια διεύθυνση πορτοφολιού και αυτόματα εξάγει το αντίστοιχο ATA για να ανακτήσει το υπόλοιπο.

Basic Payment
const client = createClient({
endpoint: "http://localhost:8899",
websocketEndpoint: "ws://localhost:8900",
commitment: "confirmed"
});
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});

Επίδειξη

Demo
// Generate keypairs for sender and recipient
const sender = (await generateKeypair()).signer;
const recipient = (await generateKeypair()).signer;
console.log("Sender Address:", sender.address);
console.log("Recipient Address:", recipient.address);
// Demo Setup: Create client, mint account, token accounts, and fund with initial tokens
const { client, mint } = await demoSetup(sender, recipient);
console.log("\nMint Address:", mint.address);
// =============================================================================
// Basic Token Payment Demo
// =============================================================================
// Create splToken helper for this mint using @solana/client
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});
// Transfer tokens from sender to recipient (ATA and decimals handled automatically)
const signature = await splToken.sendTransfer({
amount: 0.25,
authority: sender,
destinationOwner: recipient.address
});
console.log("\n=== Token Payment Complete ===");
console.log("Transaction Signature:", signature.toString());
// Fetch final token account balances using splToken helper
const senderBalance = await splToken.fetchBalance(sender.address);
const recipientBalance = await splToken.fetchBalance(recipient.address);
console.log("\nSender Token Account Balance:", senderBalance);
console.log("Recipient Token Account Balance:", recipientBalance);
// =============================================================================
// Demo Setup Helper Function
// =============================================================================
Console
Click to execute the code.

Is this page helpful?

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

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

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

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