Solana DokümantasyonuLiteSVMTypeScriptAPI Referansı

Hesap Yönetimi

Hesapları, bakiyeleri yönetmek ve hesap durumunu ayarlamak için yöntemler.

airdrop

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

Bir hesabı lamport ile fonlayın.

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

Bir işlem olmadan hesap durumunu doğrudan ayarlayın.

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 Özellikleri

ÖzellikTürAçıklama
addressAddressHesap pubkey'i
dataUint8ArrayHesap veri baytları
executablebooleanHesabın çalıştırılabilir olup olmadığı
lamportsLamportsSOL bakiyesi
programAddressAddressSahip program
spacebigintBayt cinsinden veri boyutu

getAccount

getAccount(address: Address): MaybeEncodedAccount

Hesap verilerini alın.

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

Hesabın SOL bakiyesini alın. Hesap mevcut değilse null döner.

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

rent muafiyeti için gereken minimum lamport miktarını hesaplayın.

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

Program Yönetimi

addProgram

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

Baytlardan bir program yükleyin.

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

addProgramFromFile

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

Bir .so dosya yolundan program yükleyin.

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

Toplu Hesap Kurulumu

Test için birden fazla hesabı verimli şekilde kurabilirsiniz:

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

setAccount kullanmak, toplu hesap kurulumu için airdrop'tan daha hızlıdır; çünkü işlem gerçekleştirmez.

Is this page helpful?

İçindekiler

Sayfayı Düzenle
© 2026 Solana Vakfı. Tüm hakları saklıdır.