Noções Básicas de Transações
8 exemplos para começar com Transações no Agave 4.1.1 - 5 básicos e 3 intermediários.
Pré-requisitos
solana config set --url devnet
npm install @solana/kit@7.0.0Exemplos Básicos
1. Inspecionar via RPC
import { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const slot = await rpc.getSlot().send();
console.log(slot);- Confirma conectividade RPC e alcance do cluster
- Use devnet antes da integração mainnet-beta
2. Verificação CLI
solana slot
solana balance- Solana CLI 3.0.10 compartilha config com provider Anchor
- Combine URL de
solana config getcom RPC do cliente
3. Ler Logs On-Chain
solana confirm -v <SIGNATURE>- Logs expõem saída
msg!do programa e CU consumido - Decodifique erros antes de retentar transações
4. Simular Primeiro
const sim = await rpc.simulateTransaction(encodedTx, { sigVerify: false }).send();
console.log(sim.value.err, sim.value.logs);- Preflight detecta a maioria das falhas sem taxas de landing
- Essencial durante desenvolvimento de programas 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 {}- Programas executam no Sealevel com listas explícitas de contas
- Lógica stateless + contas de dados separadas
Exemplos Intermediários
6. Construir Transação Versão 0
import { createTransactionMessage, pipe } from "@solana/kit";
const msg = pipe(createTransactionMessage({ version: 0 }), (m) => m);- Transações v0 suportam address lookup tables
- Prefira builders de transação @solana/kit 7.0.0
7. Definir Compute Budget
# Cliente adiciona instruções ComputeBudgetProgram para limite e preço de CU- Solicite CU suficiente sob carga
- Taxas de prioridade usam microlamports por CU
8. Testar Localmente
npx surfpool@0.12.0 run anchor test- Surfpool fornece validação local compatível com Agave
- LiteSVM 0.6.x serve para testes unitários leves
Versões da stack: Esta página foi 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 e LiteSVM 0.6.x.