Documentação SolanaLiteSVMTypeScriptReferência da API

Gerenciamento de Contas

Métodos para gerenciar contas, saldos e definir o estado das contas.

airdrop

airdrop(address: Address, lamports: Lamports): TransactionMetadata | FailedTransactionMetadata | null

Financia uma conta com lamport.

import { lamports } from "@solana/kit";
// Airdrop 5 SOL
const result = client.svm.airdrop(account.address, lamports(5_000_000_000n));
if (result) {
// Note: Result properties are getter functions
console.log("Compute units:", result.computeUnitsConsumed());
}

setAccount

setAccount(account: EncodedAccount): LiteSVM

Define diretamente o estado de uma conta sem uma transação.

import { address, lamports } from "@solana/kit";
client.svm.setAccount({
address: myAddress,
data: new Uint8Array([1, 2, 3, 4]),
executable: false,
lamports: lamports(1_000_000n),
programAddress: address("11111111111111111111111111111111"),
space: 4n
});

Propriedades de EncodedAccount

PropriedadeTipoDescrição
addressAddressChave pública da conta (pubkey)
dataUint8ArrayBytes de dados da conta
executablebooleanSe a conta é executável
lamportsLamportsSaldo em SOL
programAddressAddressPrograma proprietário
spacebigintTamanho dos dados em bytes

getAccount

getAccount(address: Address): MaybeEncodedAccount

Recupera os dados de uma conta.

const account = client.svm.getAccount(myAddress);
if (account.exists) {
console.log("Address:", account.address);
console.log("Lamports:", account.lamports);
console.log("Owner:", account.programAddress);
console.log("Data:", account.data);
console.log("Executable:", account.executable);
}

getBalance

getBalance(address: Address): Lamports | null

Obtém o saldo SOL de uma conta. Retorna null se a conta não existir.

const balance = client.svm.getBalance(account.address);
if (balance !== null) {
console.log("Balance:", balance, "lamports");
console.log("Balance:", Number(balance) / 1e9, "SOL");
} else {
console.log("Account does not exist");
}

minimumBalanceForRentExemption

minimumBalanceForRentExemption(dataLen: bigint): bigint

Calcula o mínimo de lamport necessários para isenção de rent.

const dataSize = 100n;
const minBalance = client.svm.minimumBalanceForRentExemption(dataSize);
console.log(
`Rent-exempt minimum for ${dataSize} bytes:`,
minBalance,
"lamports"
);
// Use when setting up accounts
client.svm.setAccount({
address: myAddress,
data: new Uint8Array(Number(dataSize)),
executable: false,
lamports: lamports(minBalance),
programAddress: programId,
space: dataSize
});

Gerenciamento de Programas

addProgram

addProgram(programId: Address, programBytes: Uint8Array): LiteSVM

Carrega um programa a partir de bytes.

const programBytes = fs.readFileSync("path/to/program.so");
client.svm.addProgram(programId, programBytes);

addProgramFromFile

addProgramFromFile(programId: Address, path: string): LiteSVM

Carrega um programa a partir de um caminho de arquivo .so.

import { generateKeyPairSigner } from "@solana/kit";
const programId = await generateKeyPairSigner().then((s) => s.address);
client.svm.addProgramFromFile(
programId,
"/path/to/target/deploy/my_program.so"
);

Configuração em Lote de Contas

Para testes, você pode configurar múltiplas contas de forma eficiente:

// Set up multiple test accounts
const accounts = await Promise.all(
Array.from({ length: 10 }, () => generateKeyPairSigner())
);
for (const [index, account] of accounts.entries()) {
client.svm.setAccount({
address: account.address,
data: new Uint8Array([index]),
executable: false,
lamports: lamports(1_000_000n),
programAddress: address("11111111111111111111111111111111"),
space: 1n
});
}

Usar setAccount é mais rápido do que airdrop para configuração em massa de contas, pois não executa transações.

Is this page helpful?

Índice

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