Documentación de SolanaLiteSVMRustProbando tu programa

Inicio Rápido

Configuración

Antes de probar tu programa, asegúrate de:

  1. Compila tu programa para generar el archivo .so
  2. Agrega litesvm como dependencia de desarrollo al archivo Cargo.toml
  3. Agrega cualquier dependencia de desarrollo adicional que pueda ser necesaria, como solana-sdk y litesvm-token
  4. Crea un archivo de prueba en tu directorio tests

Estructura Básica de Prueba de Programa

Aquí están todos los pasos básicos necesarios para llamar y ejecutar una instrucción en un programa de Solana.

tests/program_test.rs
use litesvm::LiteSVM;
use solana_sdk::{
instruction::{AccountMeta, Instruction},
pubkey::Pubkey,
signature::{Keypair, Signer},
transaction::Transaction,
};
use my_program;
#[test]
fn test_my_program() {
// Initialize the test environment
let mut svm = LiteSVM::new();
// Deploy your program to the test environment
let program_id = Pubkey::from(my_program::ID);
let program_bytes = include_bytes!("../../../target/deploy/my_program.so");
svm.add_program(program_id, program_bytes);
// Create and fund test accounts
let payer = Keypair::new();
svm.airdrop(&payer.pubkey(), 10_000_000_000).unwrap();
// Create your instruction
let instruction = Instruction {
program_id,
accounts: vec![
AccountMeta::new(payer.pubkey(), true),
],
data: vec![],
};
// Build transaction
let tx = Transaction::new_signed_with_payer(
&[instruction],
Some(&payer.pubkey()),
&[&payer],
svm.latest_blockhash(),
);
// Send transaction
let result = svm.send_transaction(tx).unwrap();
// Check transaction succeeded
println!("Transaction logs: {:?}", result.logs);
println!("Program executed successfully!");
}

El entorno de prueba predeterminado que se genera con LiteSVM::new() incluye todas las funciones de tiempo de ejecución habilitadas, sysvars predeterminados, precompilaciones, programas spl, sigverify y todos los programas integrados, como el System Program.

Si deseas interactuar con algún programa que no está incluido en el entorno de prueba predeterminado, debes desplegarlo en el entorno de prueba.

Próximos Pasos

En la siguiente sección, aprenderemos todo sobre el despliegue de programas en el entorno de prueba de litesvm.

Is this page helpful?

Tabla de Contenidos

Editar Página