Transferencia de SOL

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 payer
client.svm.airdrop(client.payer.address, lamports(10_000_000_000n));
// Check initial balance
const senderInitial = client.svm.getBalance(client.payer.address) ?? 0n;
console.log("Sender initial:", Number(senderInitial) / 1e9, "SOL");
// Build and send the transfer
await client.system.instructions
.transferSol({
source: client.payer,
destination: recipient.address,
amount: lamports(1_000_000_000n) // 1 SOL
})
.sendTransaction();
// Check final balances
const 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 SOL
Sender final: 8.999995 SOL
Recipient 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?

Tabla de Contenidos

Editar Página