Simulación de Transacciones
Simulación pre-vuelo y decodificación de errores. Esta guía está dirigida a validadores Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1 y clientes @solana/kit 7.0.0.
Busca en todas las páginas de la documentación
Simulación pre-vuelo y decodificación de errores. Esta guía está dirigida a validadores Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1 y clientes @solana/kit 7.0.0.
Tarjeta de receta de referencia rápida.
solana config set --url devnet
solana balanceimport { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");Cuándo usar esto:
import { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const slot = await rpc.getSlot().send();
const sig = "PEGA_LA_FIRMA_DESPUÉS_DE_TU_TX";
const tx = await rpc
.getTransaction(sig, { encoding: "json", maxSupportedTransactionVersion: 0 })
.send();
console.log({ slot, err: tx?.meta?.err, cu: tx?.meta?.computeUnitsConsumed });use anchor_lang::prelude::*;
#[program]
pub mod demo {
use super::*;
pub fn log_slot(_ctx: Context<LogSlot>) -> Result<()> {
let clock = Clock::get()?;
msg!("slot: {}", clock.slot);
Ok(())
}
}
#[derive(Accounts)]
pub struct LogSlot {}Lo que esto demuestra:
// Usa matemáticas verificadas y restricciones explícitas en los programas
require!(amount > 0, MyError::InvalidAmount);mut.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| @solana/kit 7.0.0 | Nuevos clientes TypeScript | Mantenimiento de código heredado temporalmente |
| Solana CLI 3.0.10 | Operaciones y sondeos rápidos | Firma de transacciones en producción a escala |
| Surfpool 0.12.0 | Pruebas de integración de Anchor | Despliegue en producción |
| LiteSVM 0.6.x | Pruebas unitarias rápidas | Validación del comportamiento completo de la red |
El RPC simulateTransaction de Agave 4.1.1 ejecuta la misma ruta de Sealevel que la ejecución real, menos la persistencia y las tarifas.
Usa Solana CLI 3.0.10, que se empareja con Agave 4.1.1. Instala con agave-install init 4.1.1 (o el archivo de pines de tu equipo), luego verifica con solana --version y agave-install --version.
Usa @solana/kit 7.0.0 para nuevos métodos RPC tipados en TypeScript, una superficie de API más pequeña y los ejemplos de esta página ya usan Kit. Conserva web3.js solo para bases de código heredadas; migra las llamadas RPC y la construcción de transacciones incrementalmente.
Simula en confirmed, luego consulta getSignatureStatuses en confirmed para mayor velocidad. Usa finalized antes de tratar los movimientos de tokens como asentados.
Siempre lee err, logs y unitsConsumed. Coincide exactamente con la lista de cuentas y los firmantes; la simulación tiene éxito pero el envío falla cuando el blockhash o las tarifas difieren.
Sí, apunta la CLI y el RPC a https://api.devnet.solana.com. El comportamiento coincide con mainnet; solo los datos de la cuenta y la economía difieren.
La simulación devuelve el uso de CU; úsalo para establecer SetComputeUnitLimit con aproximadamente un 10% de margen.
Anchor 0.32.1 usa #[program], Context<T> y #[derive(Accounts)] con restricciones explícitas de mut/signer; ejecuta anchor build y anchor test en 0.32.1 a través de avm use 0.32.1.
Ejecuta anchor test con Surfpool 0.12.0 para simular transacciones completas contra una bifurcación de mainnet, especialmente las rutas de priority-fee y v0/ALT.
LiteSVM es un simulador local; usa el RPC simulateTransaction cuando necesites el estado exacto de las cuentas del cluster.
El cliente validador cambió de nombre a Agave (4.1.1), CLI 3.0.10 se alinea con él y el trabajo de Alpenglow está cambiando la finalidad; fija las versiones y lee las notas de la versión en cada actualización.
simulateTransaction con sigVerify: true para paridad de producción; getAccountInfo para sembrar cuentas faltantes.
transactions-instructions-fees para temas complementarios.Versiones del Stack: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026