La transacción más básica de Solana: mover SOL de una cuenta a otra. Es una buena primera prueba para verificar que tu configuración de LiteSVM funciona correctamente antes de probar lógica de programa más compleja.
Ejemplo Completo
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");
Salida Esperada
Sender initial: 10 SOLSender final: 8.999995 SOLRecipient final: 1 SOL
El saldo final del remitente es ligeramente inferior a 9 SOL debido a las comisiones de transacción (5,000 lamport por firma).
Esto cubre el tipo de transacción más simple. Para realizar pruebas con programas personalizados, consulta Pruebas de Programas. Para transferencias de tokens (acuñaciones, ATAs), consulta Pruebas de Tokens.
Is this page helpful?