La transaction Solana la plus basique : déplacer des SOL d'un compte à un autre. C'est un bon premier test pour vérifier que votre configuration LiteSVM fonctionne avant de tester une logique de programme plus complexe.
Exemple complet
import { createClient, generateKeyPairSigner, lamports } from "@solana/kit";import { litesvm } from "@solana/kit-plugin-litesvm";import { signer } from "@solana/kit-plugin-signer";import { systemProgram } from "@solana-program/system";// Payer first, then the LiteSVM transport, then program plugins.const mySigner = await generateKeyPairSigner();const client = createClient().use(signer(mySigner)).use(litesvm()).use(systemProgram());const recipient = await generateKeyPairSigner();// Airdrop SOL to the payerclient.svm.airdrop(client.payer.address, lamports(10_000_000_000n));// Check initial balanceconst senderInitial = client.svm.getBalance(client.payer.address) ?? 0n;console.log("Sender initial:", Number(senderInitial) / 1e9, "SOL");// Build and send the transferawait client.system.instructions.transferSol({source: client.payer,destination: recipient.address,amount: lamports(1_000_000_000n) // 1 SOL}).sendTransaction();// Check final balancesconst senderFinal = client.svm.getBalance(client.payer.address) ?? 0n;const recipientFinal = client.svm.getBalance(recipient.address) ?? 0n;console.log("Sender final:", Number(senderFinal) / 1e9, "SOL");console.log("Recipient final:", Number(recipientFinal) / 1e9, "SOL");
Résultat attendu
Sender initial: 10 SOLSender final: 8.999995 SOLRecipient final: 1 SOL
Le solde final de l'expéditeur est légèrement inférieur à 9 SOL en raison des frais de transaction (5 000 lamports par signature).
Cela couvre le type de transaction le plus simple. Pour tester avec des programmes personnalisés, consultez Tests de programmes. Pour les transferts de tokens (frappes, ATAs), consultez Tests de tokens.
Is this page helpful?