Pular para o conteúdo principal

Guia do usuário: transações e transações falhas

Does this article need to be translated?

nota

Ainda descobrindo criptodivisas e a web3?

Acesse a MetaMask Learn para uma experiência de aprendizagem simples, criada especificamente para novatos na web3. É totalmente gratuito, está disponível em vários idiomas e inclui ferramentas úteis, como simulações, para ajudar você a entender a MetaMask.

Este artigo traz uma explicação e links para recursos que abordam transações e por que elas falham. Mais adiante, incluímos links para cenários comuns de transações falhas e como resolvê-los:

Anatomia de uma transação na blockchain

Quando falamos de “transações” em uma rede de blockchain pública, normalmente estamos falando de interações entre dois endereços. Em outras palavras, tokens, sejam fungíveis ou não, ou outros criptoativos sendo “enviados” de um endereço para outro. Também existem transações chamadas de “transações internas”, que são interações que ocorrem entre contratos inteligentes e, na maioria dos casos, não se enquadram no escopo deste artigo.

Quer mais informações?

Para saber mais sobre redes blockchain e como elas funcionam em geral, confira nosso artigo de introdução aqui. Caso não conheça algum termo, nosso glossário está sempre disponível.

A título de esclarecimento, na verdade, nada está sendo enviado para lugar nenhum. Uma rede blockchain que usa contratos inteligentes, como a Ethereum, tem inúmeros componentes diferentes, ou funções. Uma delas é o que chamamos de "computador": Máquina Virtual Ethereum, ou EVM, que é capaz de executar programas ("contratos inteligentes"). No entanto, a espinha dorsal do sistema é um livro razão distribuído: imagine uma planilha que contém, de um lado, cada endereço de carteira na Ethereum, e cada endereço tem uma coluna para cada tipo de criptoativo que possui.

Vamos usar um exemplo para ilustração. Digamos que Guillaume queira enviar uma transação para Dolores. Guillaume tem 1,36 ETH em sua conta e planeja enviar a Dolores 0,5 ETH. Parece ser um bom dia para a Dolores, mesmo em um mercado de baixa.

Guillaume abre sua carteira MetaMask, digita o endereço de Dolores, configura os parâmetros de gás — cujo valor fica tranquilo em pagar — e clica em “enviar”.

Nesse momento, a transação entra em um status local de retenção temporária, conhecido como pool de memória local, ou mempool local. A transação será então “coletada” pelo nó mais próximo na rede. Dependendo das configurações de gás de Guillaume, sua transação será priorizada (quanto mais Guillaume estiver disposto a pagar por unidade de gás, mais rápido sua transação será processada) e propagada para outros nós na rede. Os nós vão confirmar se Guillaume tem o valor em ETH para gastar e, em seguida, realizarão a “transação”: **o livro razão será modificado: 0,5 será debitado do saldo de Guillaume e 0,5 será creditado no de Dolores.

“A mão em movimento segue escrevendo”: o ETH não é propriamente movido através de uma rede. Não houve um e-mail enviado do computador do Guillaume para a caixa de entrada da MetaMask da Dolores, nem nado do tipo. Guillaume enviou à rede uma solicitação, autenticada por suas chaves privadas por meio da MetaMask, para que debitasse sua conta e creditasse a de Dolores. E após o processo de verificação programado nos protocolos da rede, foi isso que aconteceu.

Isso é tudo em que consiste uma transação: uma solicitação para o registro realocar algo (um valor) de um endereço para outro.

Quando algo dá errado

Algo pode dar errado por vários motivos. Muitas vezes, são “software por natureza”: a MetaMask tem um bug, ou algo foi configurado incorretamente em relação à rede que você está tentando usar, ou houve um erro de conectividade.

Um problema comum é que o usuário, na tentativa de pagar menos pela transação, define um limite de gás muito baixo e as condições da rede ficam tão congestionadas que não há espaço em nenhum bloco para uma transação tão “barata”, às vezes por muito tempo: por fim, essa transação se tornará “obsoleta” e terá que ser cancelada pelo usuário.

Se você enviou uma transação e ela não foi finalizada, seu status será mostrado como “pendente” na MetaMask.

Se você enviou uma transação e ela falhou, a causa provável é a falta de gás: você “ficou sem gás”, ou seja, a transação teve um custo em gás que, multiplicado pelo preço do gás, resultou em um valor total — na moeda nativa da rede — superior ao que tinha em sua carteira.

Informações

Para obter mais informações sobre como calcular a taxa de gás, consulte nosso guia de gás aqui.

Isso pode acontecer por vários motivos. Algo a se considerar, porém, é o tipo de transação que você está tentando realizar. A cunhagem de um NFT nos horários de pico de tráfego de rede pode demandar muito gás. Se você estiver testando uma transação nova ou experimental, pode valer a pena tentar em uma rede de teste antes de pagar as taxas efetivas da rede em tempo real.

Corrigindo o problema

Fator-chave n.º 1: local ou transmissão para rede

Conforme identifica o problema de sua transação, especialmente quando se trata de uma transação pendente, você precisa verificar se ela ainda está em seu mempool local ou se chegou à rede e está parada ali por algum motivo. Se simplesmente estiver em seu mempool local, a solução pode ser tão simples quanto bloquear e desbloquear sua carteira MetaMask (certifique-se de ter a senha e o backup de sua Frase de Recuperação Secreta antes de fazer isso). Se chegou à rede, a solução pode ser mais complicada.

Para obter mais informações sobre como corrigir esses problemas, consulte os links abaixo.

Fator-chave n.º 2: nonce

Essa palavra pode significar algumas coisas diferentes. É uma contração de "number only used once" (número usado apenas uma vez) e, nesse contexto, significa "número de transação", começando pela primeira transação feita pelo endereço remetente. Você pode ter problemas de verdade se, por exemplo, estiver disparando duas transações diferentes de instâncias diferentes da MetaMask com a mesma carteira ao mesmo tempo. As transações do seu endereço precisam estar em ordem crescente, de acordo com seu nonce. No entanto, assim como os nonces são capazes de travar uma transação, eles podem ser a chave para destravar uma transação.

For more on that technique, see here.

Next steps

Se você tiver uma transação falha ou pendente, consulte os seguintes recursos para obter ajuda.

Como enviar tokens da sua carteira MetaMask

Como acelerar ou cancelar uma transação pendente

Por que minha transação falhou com um erro “Out of Gas” (sem gás)? How can I fix it?

Solução de problemas da Uniswap

Guia do usuário: cobrança de tarifa (Gas)

Posso reverter uma transação já confirmada?

Perguntas Frequentes

P: Uma conta na minha carteira tem uma transação pendente ou na fila. Posso iniciar outra transação a partir de uma conta diferente na mesma carteira?

A: Yes, you can. O nonce é contado por conta, não por carteira.