Transações e Instruções
Instruções compõem transações submetidas ao cluster. Resultados aparecem na mesma seção: comentários // na mesma linha quando curtos, blocos // de múltiplas linhas abaixo da amostra quando não. Amostras on-chain são Rust; amostras do cliente usam TypeScript quando indicado.
Constrói uma instrução com programa, contas e dados.
// Instruction { program_id, accounts, data }
Assina com o pagador da taxa e os signatários necessários.
// let mut tx = Transaction::new_with_payer(&[ix], Some(&payer.pubkey()));
// tx.sign(&[&payer], blockhash)
Transações referenciam um blockhash recente para expiração.
// let blockhash = rpc.get_latest_blockhash()?
Define o limite/preço de CU através do programa de compute budget.
// ComputeBudgetInstruction::set_compute_unit_limit(200_000)
// ComputeBudgetInstruction::set_compute_unit_price(1_000)
Mensagens v0 suportam ALTs.
// VersionedTransaction::try_new(message, &signers)
Serializa o payload da instrução.
// data: borsh::to_vec(&MyIx::Transfer { amount })?
Atômicas: todas bem-sucedem ou todas falham.
// Transaction::new_with_payer(&[ix1, ix2], Some(&payer))
Assinaturas parciais multisig / carteira.
// tx.try_partial_sign(&[&kp], blockhash)
Assinaturas cobrem os bytes da mensagem.
Contas Nonce para transações offline/de longa duração.
// advance nonce + use durable nonce blockhash
O preço de CU aumenta a prioridade de inclusão.
// set_compute_unit_price(micro_lamports)
Tabelas de lookup de endereços comprimem listas de contas.
// v0::Message::try_compile(..., &[alt], blockhash)
SimulateTransaction antes de enviar para logs/CU.
// rpc.simulate_transaction(&tx)
Opcional skip - prefira preflight em desenvolvimento.
// send_and_confirm com preflight habilitado por padrão
Latência/finalidade de trade confirmada vs. finalizada.
// CommitmentConfig::confirmed()
Versões do Stack: Esta página foi escrita para Agave 4.1.1 , Solana CLI 3.0.10 , Anchor 0.32.1 , Rust 1.91.1 e @solana/kit 7.0.0 .
Y29kZWd1aWRlcy5pb3xjZ2lvMzI5fDIwMjYwNw==