أبسط معاملة على سولانا: نقل 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 payerclient.svm.airdrop(client.payer.address, lamports(10_000_000_000n));// Check initial balanceconst senderInitial = client.svm.getBalance(client.payer.address) ?? 0n;console.log("Sender initial:", Number(senderInitial) / 1e9, "SOL");// Build and send the transferawait client.system.instructions.transferSol({source: client.payer,destination: recipient.address,amount: lamports(1_000_000_000n) // 1 SOL}).sendTransaction();// Check final balancesconst 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 SOLSender final: 8.999995 SOLRecipient final: 1 SOL
الرصيد النهائي للمرسل أقل قليلاً من 9 SOL بسبب رسوم المعاملات (5,000 lamport لكل توقيع).
يغطي هذا أبسط أنواع المعاملات. لاختبار البرامج المخصصة، راجع اختبار البرامج. لتحويلات الرموز (المints وATAs)، راجع اختبار الرموز.
Is this page helpful?