Ανάπτυξη Προγράμματος

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

tests/program_test.rs
use litesvm::LiteSVM;
use solana_sdk::{
instruction::{AccountMeta, Instruction},
pubkey::Pubkey,
signature::{Keypair, Signer},
transaction::Transaction,
};
#[test]
fn test_program_deployment() {
let mut svm = LiteSVM::new();
// Deploy the program
let program_id = Pubkey::new_unique();
let program_bytes = include_bytes!("../target/deploy/hello_world.so");
svm.add_program(program_id, program_bytes).unwrap();
// Create payer account
let payer = Keypair::new();
svm.airdrop(&payer.pubkey(), 10_000_000_000).unwrap();
// Create instruction to call program
let instruction = Instruction {
program_id,
accounts: vec![
AccountMeta::new(payer.pubkey(), true),
],
data: vec![], // Program-specific data
};
// Send transaction
let tx = Transaction::new_signed_with_payer(
&[instruction],
Some(&payer.pubkey()),
&[&payer],
svm.latest_blockhash(),
);
let result = svm.send_transaction(tx).unwrap();
// Verify program was called
assert!(result.logs.iter().any(|log|
log.contains(&format!("Program {} invoke", program_id))
));
println!("Program called successfully!");
println!("Logs:\n{}", result.pretty_logs());
}

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

  1. Ανάπτυξη Προγράμματος: Χρησιμοποιήστε το add_program() για να αναπτύξετε ένα πρόγραμμα από bytes
  2. include_bytes!: Ενσωματώνει το μεταγλωττισμένο πρόγραμμα κατά τη στιγμή της μεταγλώττισης
  3. Αναγνωριστικό Προγράμματος: Χρησιμοποιήστε το keypair από το target/deploy/
  4. Εντολές: Δημιουργήστε προσαρμοσμένες εντολές με αναγνωριστικό προγράμματος, λογαριασμούς και δεδομένα
  5. Επαλήθευση Αρχείων Καταγραφής: Ελέγξτε τα αρχεία καταγραφής συναλλαγών για να επαληθεύσετε την εκτέλεση του προγράμματος

Για πιο λεπτομερείς πληροφορίες ανάπτυξης, διαβάστε αυτή την ενότητα.

Is this page helpful?

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

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