O Fluxo de Trabalho Manual
Enviar uma transação manualmente envolve as seguintes etapas:1
Construir a Transação Inicial
Monte suas instruções e assine a transação para que possa ser simulada.
2
Otimizar Unidades de Computação
Simule a transação para determinar as CUs precisas necessárias e adicione uma pequena margem.
3
Adicionar Taxas de Prioridade
Obtenha uma estimativa de taxa da Helius Priority Fee API e adicione à sua transação.
4
Enviar e Reenviar
Envie a transação final e implemente uma estratégia de polling robusta para lidar com a confirmação.
Os SDKs da Helius são de código aberto. Você pode ver o código subjacente para o método
sendSmartTransaction em nosso Node.js SDK e Rust SDK para ver uma implementação de nível de produção deste fluxo de trabalho.1. Construir a Transação Inicial
Primeiro, reúna todas as instruções que você deseja incluir em sua transação. Em seguida, crie um objetoTransaction ou VersionedTransaction. Você também precisará buscar um blockhash recente.
Este exemplo prepara uma transação com versão. Neste estágio, você também deve assiná-la para que possa ser simulada na próxima etapa.
2. Otimizar o Uso de Unidades de Computação (CU)
Para evitar desperdiçar taxas ou ter sua transação falhando, você deve definir o limite de unidades de computação (CU) o mais precisamente possível. Você pode fazer isso simulando a transação usando o método RPCsimulateTransaction.
É uma boa prática simular primeiro com um limite de CU alto para garantir que a simulação seja bem-sucedida, e então use o unitsConsumed da resposta para definir seu limite real.
3. Definir a Taxa de Prioridade Correta
Em seguida, determine a taxa de prioridade ideal a ser adicionada à sua transação. Usar a Helius Priority Fee API é a melhor maneira de obter uma estimativa em tempo real com base nas condições atuais da rede. Você precisará chamar o método RPCgetPriorityFeeEstimate. Para a maior chance de inclusão via conexões apostas da Helius, use a opção recommended: true.
4. Construir, Enviar e Confirmar
Agora, monte a transação final com as novas instruções de orçamento de computação, envie-a e implemente um mecanismo de polling robusto para confirmar que foi processada. Um padrão comum é reenviar a mesma transação periodicamente até que o blockhash expire. Reassine a transação apenas se você também estiver buscando um novo blockhash. Reassinar com o mesmo blockhash pode levar a transações duplicadas sendo confirmadas.Proteja-se contra ataques de sanduíche
Para desviar sua transação de validadores estatisticamente ligados a ataques de sanduíche, adicione o parâmetro de consultamev-protect=true ao seu URL RPC — sem alterações na lógica da sua transação:
MEV Protect
Veja como o MEV Protect funciona, quais métodos ele suporta e suas desvantagens.
Ganhe reembolsos em suas transações
Você pode optar por ganhar uma parte do MEV que suas transações criam, pago automaticamente em SOL — sem alterações na lógica da sua transação.Reembolsos de Transação
Adicione um parâmetro às suas chamadas
sendTransaction para começar a ganhar reembolsos em SOL.Métodos Relacionados
sendTransaction
Envie uma transação assinada para a rede
simulateTransaction
Simule uma transação para estimar unidades de computação
getSignatureStatuses
Verifique o status de confirmação das transações
getLatestBlockhash
Obtenha um blockhash recente para assinatura de transação
getBlockHeight
Obtenha a altura atual do bloco para verificações de expiração