Recomendações para Agentes
Use get_transactions_for_address em vez de pesquisa em dois passos
get_transactions_for_address combina a pesquisa de assinatura e busca de transação em uma única chamada com filtragem no servidor.
Use send_smart_transaction para envios padrão
Simula automaticamente, estima unidades de computação, busca taxas de prioridade e confirma. Não construa manualmente as instruções ComputeBudget — o SDK as adiciona automaticamente.
Use Helius Sender para latência ultra-baixa
Para transações sensíveis ao tempo (arbitragem, sniping, liquidações), usesend_smart_transaction_with_sender. Ele roteia pela infraestrutura multi-região do Helius e Jito.
Use get_asset_batch para múltiplos ativos
Ao buscar mais de um ativo, agrupe-os. Não chame get_asset em um loop.
Use webhooks em vez de polling
Não faça polling emget_transactions_for_address em um loop. Use webhooks para notificações de servidor para servidor.
Paginação
Baseada em Token/Cursor (Métodos RPC V2)
Baseada em Página (API DAS)
Filtro token_accounts
Ao consultar get_transactions_for_address, o filtro token_accounts controla se a atividade da conta de token é incluída:
changed_since_slot — Busca Incremental de Conta
changed_since_slot retorna apenas contas modificadas após um determinado slot. Útil para fluxos de trabalho de sincronização ou indexação. Suportado por get_program_accounts_v2, get_token_accounts_by_owner_v2, get_account_info, get_multiple_accounts, get_program_accounts, e get_token_accounts_by_owner.
Erros Comuns
-
transaction_details: Some(TransactionDetails::Full)não é o padrão — Por padrão,get_transactions_for_addressretorna apenas assinaturas. DefinaTransactionDetails::Fullpara obter dados completos da transação. -
Não adicione instruções ComputeBudget com
send_smart_transaction— O SDK as adiciona automaticamente. Adicionar suas próprias causa um erroHeliusError::InvalidInput. -
As taxas de prioridade estão em microlamports por unidade de computação — Não em lamports. Os valores de
get_priority_fee_estimatejá estão na unidade correta. -
A paginação DAS é indexada em 1 —
page: 1é a primeira página, nãopage: 0. -
async_connection()requernew_asyncouHeliusBuilder— Chamarhelius.async_connection()em um cliente criado comHelius::new()retornaErr(HeliusError::ClientNotInitialized). -
get_assetretornaOption<Asset>— Uma resposta bem-sucedida ainda pode serNonese o ativo não existir. Lide explicitamente comOption. -
Gorjetas do remetente são obrigatórias —
send_smart_transaction_with_senderdetermina e adiciona automaticamente gorjetas. Mínimo de 0,0002 SOL (modo duplo) ou 0,000005 SOL (apenas SWQOS). -
Flags de recurso TLS — O crate por padrão usa
native-tls. Usefeatures = ["rustls"](edefault-features = false) para TLS puro em Rust quando OpenSSL não estiver disponível.
Tratamento de Erros e Retentativas
O SDK fornece variantes de erro tipadas através do enumHeliusError, para que você possa fazer correspondência diretamente:
Estratégia de Retentativa
Retente emRateLimitExceeded e InternalError com backoff exponencial: