Η πιο βασική συναλλαγή στο Solana: μεταφορά 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 ανά υπογραφή).
Αυτό καλύπτει τον απλούστερο τύπο συναλλαγής. Για δοκιμές με προσαρμοσμένα προγράμματα, δείτε Δοκιμή Προγραμμάτων. Για μεταφορές token (mints, ATAs), δείτε Δοκιμή Token.
Is this page helpful?