Τεκμηρίωση SolanaLiteSVMTypeScriptΑναφορά API

Συναλλαγές

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

sendTransaction

sendTransaction(tx: Transaction): TransactionMetadata | FailedTransactionMetadata

Εκτέλεση μιας συναλλαγής. Επιστρέφει μεταδεδομένα σε περίπτωση επιτυχίας ή λεπτομέρειες σφάλματος σε περίπτωση αποτυχίας.

const result = client.svm.sendTransaction(signedTx);
// Check for errors
if ("err" in result && result.err()) {
console.error("Transaction failed:", result.err());
return;
}
// Access result properties (note: these are getter functions)
console.log("Signature:", result.signature());
console.log("Compute units:", result.computeUnitsConsumed());
console.log("Logs:", result.logs());

Οι ιδιότητες αποτελέσματος συναλλαγής όπως err(), computeUnitsConsumed(), logs() και signature() είναι συναρτήσεις getter, όχι ιδιότητες. Να τις καλείτε πάντα με παρενθέσεις.

Μέθοδοι TransactionMetadata

ΜέθοδοςΕπιστρέφειΠεριγραφή
signature()Uint8ArrayBytes υπογραφής συναλλαγής
computeUnitsConsumed()bigintΜονάδες υπολογισμού που χρησιμοποιήθηκαν
logs()string[]Αρχεία καταγραφής προγράμματος
innerInstructions()InnerInstruction[]Εσωτερικές οδηγίες (CPI)
returnData()TransactionReturnDataΔεδομένα επιστροφής από προγράμματα
prettyLogs()stringΜορφοποιημένα αρχεία καταγραφής με χρώματα

simulateTransaction

simulateTransaction(tx: Transaction): SimulatedTransactionInfo | FailedTransactionMetadata

Προσομοίωση μιας συναλλαγής χωρίς τροποποίηση της κατάστασης.

const simResult = client.svm.simulateTransaction(signedTx);
if ("err" in simResult && simResult.err()) {
console.error("Simulation failed:", simResult.err());
return;
}
// Use .meta() to get TransactionMetadata
const meta = simResult.meta();
console.log("Would use", meta.computeUnitsConsumed(), "compute units");
console.log("Logs:", meta.logs());
// Get post-execution account states
const postAccounts = simResult.postAccounts();
console.log("Post-state accounts:", postAccounts);

Η προσομοίωση δεν αλλάζει την κατάσταση. Χρησιμοποιήστε την για να ελέγξετε τις συναλλαγές πριν τις στείλετε.

Διαχείριση Blockhash

latestBlockhash

latestBlockhash(): Blockhash

Λήψη του τρέχοντος blockhash.

const blockhash = client.svm.latestBlockhash();
console.log("Blockhash:", blockhash);

getLatestBlockhash (μέσω client.rpc)

Λήψη του blockhash με πληροφορίες διάρκειας ζωής για τη δημιουργία συναλλαγών με μη αυτόματο τρόπο. Χρησιμοποιήστε το βοηθητικό RPC καθώς επιστρέφει τόσο το blockhash όσο και το lastValidBlockHeight.

import {
createTransactionMessage,
setTransactionMessageLifetimeUsingBlockhash
} from "@solana/kit";
const { value: blockhashLifetime } = await client.rpc
.getLatestBlockhash()
.send();
const tx = setTransactionMessageLifetimeUsingBlockhash(
blockhashLifetime,
createTransactionMessage({ version: 0 })
);

Όταν χρησιμοποιείτε plugins προγράμματος όπως systemProgram() ή tokenProgram(), δεν χρειάζεται ποτέ να ανακτήσετε το blockhash μόνοι σας — το client.sendTransaction() (και το βοηθητικό .sendTransaction() στις αλυσίδες οδηγιών) το διαχειρίζονται αυτόματα.

expireBlockhash

expireBlockhash(): LiteSVM

Προώθηση σε νέο blockhash. Χρήσιμο για δοκιμή σεναρίων λήξης blockhash.

const oldBlockhash = client.svm.latestBlockhash();
client.svm.expireBlockhash();
const newBlockhash = client.svm.latestBlockhash();
console.log("Old:", oldBlockhash);
console.log("New:", newBlockhash);
// Blockhashes will be different

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

Ενεργοποιήστε το ιστορικό συναλλαγών για να ανακτάτε συναλλαγές μετά την αποστολή:

// Enable history storage (stores last N transactions)
client.svm.withTransactionHistory(100n);
// Send a transaction
const result = client.svm.sendTransaction(signedTx);
// Later, retrieve it by signature (base58 string)
// Note: getTransaction expects a base58-encoded signature string

Is this page helpful?

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

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