وثائق سولاناLiteSVMTypeScriptأمثلة

تحويل SOL

أبسط معاملة على سولانا: نقل SOL من حساب إلى آخر. يُعدّ هذا اختباراً أولياً جيداً للتحقق من أن إعداد LiteSVM لديك يعمل بشكل صحيح قبل اختبار منطق برامج أكثر تعقيداً.

مثال كامل

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

المخرجات المتوقعة

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

الرصيد النهائي للمرسل أقل قليلاً من 9 SOL بسبب رسوم المعاملات (5,000 lamport لكل توقيع).

يغطي هذا أبسط أنواع المعاملات. لاختبار البرامج المخصصة، راجع اختبار البرامج. لتحويلات الرموز (المints وATAs)، راجع اختبار الرموز.

Is this page helpful?

جدول المحتويات

تعديل الصفحة