Fundamentos de Transacciones
8 ejemplos para empezar con Transacciones en Agave 4.1.1 - 5 básicos y 3 intermedios.
Prerrequisitos
solana config set --url devnet
npm install @solana/kit@7.0.0Ejemplos Básicos
1. Inspeccionar vía RPC
import { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const slot = await rpc.getSlot().send();
console.log(slot);- Confirma la conectividad RPC y la accesibilidad del clúster
- Usa devnet antes de la integración con mainnet-beta
2. Verificación con CLI
solana slot
solana balance- Solana CLI 3.0.10 comparte la configuración con el proveedor Anchor
- Haz coincidir la URL de
solana config getcon el RPC del cliente
3. Leer Logs en Cadena
solana confirm -v <SIGNATURE>- Los logs exponen la salida
msg!del programa y la CU consumida - Decodifica errores antes de reintentar transacciones
4. Simular Primero
const sim = await rpc.simulateTransaction(encodedTx, { sigVerify: false }).send();
console.log(sim.value.err, sim.value.logs);- Preflight detecta la mayoría de los fallos sin tasas de aterrizaje
- Esencial durante el desarrollo de programas con Anchor 0.32.1
5. Hook de Programa Anchor
use anchor_lang::prelude::*;
#[program]
pub mod example {
use super::*;
pub fn touch(_ctx: Context<Touch>) -> Result<()> { Ok(()) }
}
#[derive(Accounts)]
pub struct Touch {}- Los programas se ejecutan en Sealevel con listas de cuentas explícitas
- Lógica sin estado + cuentas de datos separadas
Ejemplos Intermedios
6. Construir Transacción Versión 0
import { createTransactionMessage, pipe } from "@solana/kit";
const msg = pipe(createTransactionMessage({ version: 0 }), (m) => m);- Las transacciones v0 admiten tablas de búsqueda de direcciones
- Prefiere los constructores de transacciones de @solana/kit 7.0.0
7. Establecer Presupuesto de Cómputo
# El cliente añade instrucciones de ComputeBudgetProgram para el límite de CU y el precio- Solicita suficiente CU bajo carga
- Las tarifas de prioridad usan microlamports por CU
8. Probar Localmente
npx surfpool@0.12.0 run anchor test- Surfpool proporciona validación local compatible con Agave
- LiteSVM 0.6.x es adecuado para pruebas unitarias ligeras
Versiones de la pila: 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.