Μεταφορά SOL

Πλήρης Δοκιμή

tests/transfer_test.rs
use litesvm::LiteSVM;
use solana_sdk::{
signature::{Keypair, Signer},
system_instruction,
transaction::Transaction,
};
#[test]
fn test_sol_transfer() {
let mut svm = LiteSVM::new();
// Create accounts
let alice = Keypair::new();
let bob = Keypair::new();
// Fund alice with 10 SOL
svm.airdrop(&alice.pubkey(), 10_000_000_000).unwrap();
// Create transfer instruction
let transfer_ix = system_instruction::transfer(
&alice.pubkey(),
&bob.pubkey(),
1_000_000_000, // 1 SOL
);
// Build transaction
let tx = Transaction::new_signed_with_payer(
&[transfer_ix],
Some(&alice.pubkey()),
&[&alice],
svm.latest_blockhash(),
);
// Send and verify
let result = svm.send_transaction(tx).unwrap();
// Check balances
assert_eq!(svm.get_balance(&bob.pubkey()).unwrap(), 1_000_000_000);
assert!(svm.get_balance(&alice.pubkey()).unwrap() < 9_000_000_000);
println!("Transfer successful!");
println!("Compute units used: {}", result.compute_units_consumed);
println!("Transaction logs:\n{}", result.pretty_logs());
}

Βασικά Σημεία

  1. Δημιουργία Λογαριασμού: Χρησιμοποιήστε το Keypair::new() για τη δημιουργία δοκιμαστικών λογαριασμών
  2. Χρηματοδότηση: Χρησιμοποιήστε το airdrop() για να χρηματοδοτήσετε λογαριασμούς με SOL
  3. Οδηγίες Συστήματος: Χρησιμοποιήστε το system_instruction::transfer() για μεταφορές SOL
  4. Επαλήθευση Υπολοίπου: Ελέγξτε τα υπόλοιπα μετά τη συναλλαγή για να επαληθεύσετε τη μεταφορά
  5. Τέλη Συναλλαγής: Το υπόλοιπο της Αλίκης θα είναι ελαφρώς μικρότερο από 9 SOL λόγω τελών συναλλαγής

Is this page helpful?

Πίνακας Περιεχομένων

Επεξεργασία Σελίδας
© 2026 Ίδρυμα Solana. Με επιφύλαξη παντός δικαιώματος.