Solana documentatieLiteSVMTypeScriptAPI-referentie

Accountbeheer

Methoden voor het beheren van accounts, saldi en het instellen van de accountstatus.

airdrop

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

Financier een account met lamports.

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

Stel de accountstatus rechtstreeks in zonder een transactie.

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

EncodedAccount-eigenschappen

EigenschapTypeBeschrijving
addressAddressOpenbare sleutel van account
dataUint8ArrayAccountgegevensbytes
executablebooleanOf het account uitvoerbaar is
lamportsLamportsSOL-saldo
programAddressAddressEigenaarsprogramma
spacebigintGegevensgrootte in bytes

getAccount

getAccount(address: Address): MaybeEncodedAccount

Accountgegevens ophalen.

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

Haal het SOL-saldo van een account op. Geeft null terug als het account niet bestaat.

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

Bereken het minimale aantal lamports dat nodig is voor rent-vrijstelling.

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

Programmaopbeheer

addProgram

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

Laad een programma vanuit bytes.

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

addProgramFromFile

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

Laad een programma vanuit een .so-bestandspad.

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

Batch accountinstelling

Voor testdoeleinden kunt u meerdere accounts efficiënt instellen:

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

Het gebruik van setAccount is sneller dan airdrop voor het bulksgewijs instellen van accounts, omdat er geen transacties worden uitgevoerd.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken
© 2026 Solana Foundation. Alle rechten voorbehouden.