Porque é que a minha transação na Solana falhou e como posso descobrir o motivo no Solscan?
Uma swap apresenta a etiqueta vermelha «falhou», os fundos que pretendia transferir não saíram do lugar e a sua carteira pouco mais lhe oferece do que uma mensagem de erro vaga. É uma situação comum na Solana, e a explicação completa costuma estar na blockchain, à distância de uma pesquisa.
O essencial é perceber em qual de duas situações se encontra: uma transação que chegou à rede e falhou, ou uma que nunca chegou a ser registada on-chain. O Solscan costuma permitir-lhe perceber qual foi o caso e, muitas vezes, porquê.
O que pode significar «falhou» na Solana
No primeiro caso, a transação chegou a um validador, foi incluída num bloco e, depois, foi rejeitada durante a execução porque uma condição de que dependia não foi cumprida. Este tipo de falha fica registado permanentemente on-chain, com um erro e os registos do programa associados.
No segundo caso, a transação nunca chega a ser registada. Todas as transações Solana fazem referência a um hash de bloco recente, que permanece válido durante cerca de 150 blocos, aproximadamente 60 a 90 segundos. Se a transação não for processada nesse período, expira e é descartada. Normalmente, uma transação deste tipo não aparece em nenhum explorador, porque nunca chegou à blockchain.
Motivos comuns para uma transação Solana falhar
Nas transações que são registadas e depois falham, as causas mais comuns são saldo SOL insuficiente para cobrir a taxa de rede (mais um pequeno depósito quando é necessário criar uma nova conta de token), a tolerância à derrapagem ser ultrapassada durante uma swap porque o preço sofreu uma variação excessiva, ou o estado de uma conta mudar entre a assinatura e a execução. Uma transação também pode exceder o seu limite de computação, o que é mais comum em operações complexas.
Nas transações que nunca chegam a ser registadas, as causas mais comuns são a expiração do hash de bloco — muitas vezes devido a uma assinatura lenta, à demora em confirmar o pedido ou a uma ligação instável — e o congestionamento da rede. Quando a rede está ocupada, uma transação com uma taxa prioritária opcional baixa pode ser descartada antes de um validador sequer a processar.
Como descobrir o motivo no Solscan
Comece por copiar a assinatura da transação do histórico de atividade da sua carteira ou da aplicação que utilizou e, em seguida, cole-a na barra de pesquisa do Solscan. Se a transação tiver sido registada, a página costuma apresentar um estado de falha em vez de sucesso e poderá indicar a instrução que falhou.
Mais abaixo na página, procure secções como os detalhes das instruções ou as mensagens de registo, cujos nomes exatos e disposição podem mudar com o tempo. Os registos mostram que programa foi executado e em que ponto parou, normalmente através do número da instrução e do nome ou código do erro. Os códigos de erro são específicos de cada programa, pelo que o mesmo número pode ter significados diferentes em programas distintos; a documentação do programa ajuda a interpretá-lo. Se o Solscan não conseguir encontrar a assinatura, a transação poderá não ter sido registada ou ainda não ter sido registada.
O que acontece aos seus fundos e à taxa
A Solana executa uma transação como uma única unidade. Se alguma instrução falhar, todas as alterações que teria efetuado são descartadas, pelo que os saldos dos seus tokens permanecem iguais. Normalmente, o único custo é a pequena taxa de rede da tentativa, que continua a ser cobrada porque os validadores realizaram o trabalho de processamento.
Em geral, não é cobrada uma taxa por uma transação que expirou e nunca foi registada, uma vez que não chegou à blockchain. Ainda assim, antes de tentar novamente, vale a pena verificar a primeira tentativa no Solscan, pois uma transação que parece bloqueada ainda pode ser concluída e enviá-la duas vezes pode resultar numa transferência duplicada.
Lembrete da WEEX: verifique antes de tentar novamente
A WEEX lembra os utilizadores de confirmarem o estado da primeira tentativa no Solscan antes de a submeterem novamente e de manterem um pequeno saldo de SOL na carteira para cobrir as taxas. As transações falhadas também atraem burlas: quem se oferecer para «resolver» uma transação falhada e pedir a frase-semente ou a chave privada não é legítimo, por mais oficial que pareça, e nenhuma assistência genuína para resolver o problema exige qualquer uma delas.
Conclusão
Uma transação Solana falhada deixa de ser um mistério quando pesquisa a respetiva assinatura. O Solscan pode mostrar se falhou on-chain ou se nunca chegou a ser registada, e os registos indicam muitas vezes a instrução que a fez parar. Na maioria dos casos, os fundos permanecem onde estavam e perde-se apenas uma pequena taxa; por isso, o hábito mais prático é verificar primeiro e só depois tentar novamente.
Perguntas frequentes
1. Perco os meus tokens quando uma transação Solana falha?
Em geral, não. A Solana executa uma transação como uma única unidade, pelo que, se alguma instrução falhar, as alterações são descartadas e os seus saldos permanecem iguais. Normalmente, perde-se apenas a taxa de rede.
2. Continuo a pagar uma taxa por uma transação Solana falhada?
Se a transação tiver sido registada on-chain e falhado, normalmente continua a ser cobrada uma pequena taxa de rede. Se tiver expirado e nunca tiver sido registada, em geral não é cobrada qualquer taxa e a transação costuma não aparecer no Solscan.
3. Porque não consigo encontrar a minha transação no Solscan?
Pode ainda não ter sido registada, ter expirado ou ter sido descartada, ou a assinatura pode ter sido copiada incorretamente. Verifique a assinatura, aguarde um pouco e compare-a com o estado indicado na sua carteira.
4. Onde encontro o erro no Solscan?
Pesquise a assinatura da transação e procure o estado de falha e secções como os detalhes das instruções ou os registos, que normalmente indicam qual foi a instrução que falhou e o erro devolvido. A disposição e as etiquetas podem mudar com o tempo.
5. É seguro tentar novamente uma transação Solana falhada?
Muitas vezes, sim, mas consulte primeiro o Solscan para confirmar que a transação original não foi concluída nem continua pendente. Uma transação que parece bloqueada ainda pode ser concluída e reenviá-la demasiado cedo pode resultar numa transferência duplicada.