Transferência de SOL

A transação Solana mais básica: mover SOL de uma conta para outra. Este é um bom primeiro teste para verificar se a sua configuração do LiteSVM funciona antes de testar lógicas de programa mais complexas.

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

Saída Esperada

Sender initial: 10 SOL
Sender final: 8.999995 SOL
Recipient final: 1 SOL

O saldo final do remetente é ligeiramente inferior a 9 SOL devido às taxas de transação (5.000 lamports por assinatura).

Isso cobre o tipo de transação mais simples. Para testar com programas personalizados, consulte Teste de Programas. Para transferências de tokens (mints, ATAs), consulte Teste de Tokens.

Is this page helpful?

Índice

Editar Página
© 2026 Fundação Solana. Todos os direitos reservados.