Documentation SolanaLiteSVMTypeScriptRéférence API

Transactions

Méthodes pour envoyer, simuler et gérer des transactions.

sendTransaction

sendTransaction(tx: Transaction): TransactionMetadata | FailedTransactionMetadata

Exécute une transaction. Retourne des métadonnées en cas de succès ou des détails sur l'erreur en cas d'échec.

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());

Les propriétés du résultat de transaction comme err(), computeUnitsConsumed(), logs() et signature() sont des fonctions accesseurs, pas des propriétés. Appelez-les toujours avec des parenthèses.

Méthodes de TransactionMetadata

MéthodeRetourneDescription
signature()Uint8ArrayOctets de la signature de transaction
computeUnitsConsumed()bigintUnités de calcul utilisées
logs()string[]Journaux du programme
innerInstructions()InnerInstruction[]Instructions internes (CPI)
returnData()TransactionReturnDataDonnées de retour des programmes
prettyLogs()stringJournaux formatés avec couleurs

simulateTransaction

simulateTransaction(tx: Transaction): SimulatedTransactionInfo | FailedTransactionMetadata

Simule une transaction sans modifier l'état.

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);

La simulation ne modifie pas l'état. Utilisez-la pour vérifier les transactions avant de les envoyer.

Gestion des blockhashes

latestBlockhash

latestBlockhash(): Blockhash

Obtenir le blockhash actuel.

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

getLatestBlockhash (via client.rpc)

Obtenir le blockhash avec les informations de durée de vie pour construire des transactions manuellement. Utilisez le helper RPC car il retourne à la fois blockhash et lastValidBlockHeight.

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

Lorsque vous utilisez des plugins de programme comme systemProgram() ou tokenProgram(), vous n'avez jamais besoin de récupérer le blockhash vous-même — client.sendTransaction() (et le helper .sendTransaction() sur les chaînes d'instructions) s'en chargent pour vous.

expireBlockhash

expireBlockhash(): LiteSVM

Avance vers un nouveau blockhash. Utile pour tester les scénarios d'expiration de 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

Historique des transactions

Activez l'historique des transactions pour récupérer les transactions après leur envoi :

// 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?

Table des matières

Modifier la page
© 2026 Fondation Solana. Tous droits réservés.