Documentation SolanaLiteSVMTypeScriptRéférence API

Gestion des comptes

Méthodes pour gérer les comptes, les soldes et définir l'état des comptes.

airdrop

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

Alimenter un compte en 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

Définir directement l'état d'un compte sans transaction.

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
});

Propriétés de EncodedAccount

PropriétéTypeDescription
addressAddressClé publique du compte
dataUint8ArrayOctets de données du compte
executablebooleanIndique si le compte est exécutable
lamportsLamportsSolde en SOL
programAddressAddressProgramme propriétaire
spacebigintTaille des données en octets

getAccount

getAccount(address: Address): MaybeEncodedAccount

Récupérer les données d'un compte.

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

Obtenir le solde SOL d'un compte. Retourne null si le compte n'existe pas.

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

Calculer le nombre minimum de lamport nécessaires pour l'exemption 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
});

Gestion des programmes

addProgram

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

Charger un programme à partir d'octets.

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

addProgramFromFile

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

Charger un programme à partir d'un chemin de fichier .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"
);

Configuration de comptes en lot

Pour les tests, vous pouvez configurer plusieurs comptes de manière efficace :

// 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
});
}

L'utilisation de setAccount est plus rapide que airdrop pour la configuration en masse de comptes, car elle n'exécute pas de transactions.

Is this page helpful?

Table des matières

Modifier la page
© 2026 Fondation Solana. Tous droits réservés.