Cómo leer un mensaje de error de una billetera
Un método para separar errores de red, permisos y acciones incorrectas del usuario.
Este artículo puede contener enlaces de afiliados. Las relaciones comerciales se detallan en la política de afiliados.
Un mensaje de error de una billetera no es un fallo. Es una respuesta. Dice qué parte de la operación no coincidió con lo que la red esperaba, y por eso se puede leer igual que se lee un estado de cuenta: línea por línea, término por término.
La costumbre que convierte errores en pérdidas es la contraria. Se ve el texto rojo, se asume que la billetera está rota y se intenta de nuevo con la misma configuración. Si el error era sobre la red, el reintento vuelve a fallar. Si el error era sobre el límite de gas, el reintento gasta más.
Los mensajes de billetera tienen cuatro causas principales. Identificarlas por separado es todo el trabajo.
El error de red
Es el más común y el más ignorado. La billetera está conectada a una red y el activo o el contrato viven en otra.
Las señales son claras. El saldo del activo aparece a cero. El contrato que se quiere llamar no existe en la red actual. La aplicación se abrió en una red que el usuario no ha elegido de forma consciente.
Qué hacer. Anotar la red de la billetera y la red del activo por separado. No son lo mismo, y una puede cambiar sin aviso. Un activo puede existir en Ethereum y no en la red de Layer 2, o al revés.
Si el activo no está en la red de la billetera, cambiar de red en la billetera resuelve el error. Si el activo sí está y el contrato no responde, el problema está en otro sitio.
El error de límite de gas
Este es el que más veces se resuelve mal, porque el número que aparece en pantalla no es necesariamente el número que la transacción usa.
El límite de gas es el máximo de trabajo de cómputo que el usuario autoriza. Una transferencia simple consume alrededor de 21.000 unidades. Una operación con contrato inteligente consume más, porque el contrato ejecuta más pasos.
Hay dos finales distintos y se confunden constantemente. Si el límite es demasiado bajo y la transacción nunca entra en un bloque, es rechazada antes de ejecutarse y no consume gas. Si la transacción entra y se queda sin gas a mitad de la ejecución, el contrato revierte los cambios, pero el gas gastado hasta ese punto sí se cobra.
Esa diferencia importa para el dinero. Un rechazo no cuesta. Una reversión a mitad de camino cuesta, y puede costar bastante si la operación era compleja.
Qué hacer. Antes de subir el límite, comprobar si el número que muestra la interfaz corresponde a la transacción que se está firmando. Si no coincide, el error no se resuelve subiendo el valor.
El error de saldo insuficiente
Suena trivial y no lo es. El mensaje aparece cuando el saldo no cubre el monto más la comisión.
El error más común aquí es una confusión entre activos. La billetera tiene el activo, pero no tiene la moneda nativa necesaria para pagar el gas. Una stablecoin no cubre la comisión de una red que cobra en su moneda nativa.
Qué hacer. Separar el monto que se envía del monto que se necesita para la comisión. Verificar cuál de los dos falta. Si falta la moneda nativa, la solución es una pequeña cantidad de la moneda de la red, no cambiar el monto enviado.
El error de permiso
Aparece cuando la billetera tiene una restricción que el contrato dépasse. Límite de gasto insuficiente. Vida del permiso caducada. Cuenta sin aprobación previa para el contrato.
Qué hacer. Leer el límite actual y la cantidad que la operación requiere. Si la operación excede el límite, decidir de forma consciente si se sube el límite o si la operación es demasiado grande para ese contrato.
Subir un límite sin cantidad definida es el error que conviene evitar. Un permiso ilimitado otorga al contrato la capacidad de vaciar la billetera si queda comprometido.
Un orden de lectura
Cuando aparece un mensaje, cuatro preguntas en orden.
Primero, si la red es la correcta para el activo y para el contrato. Segundo, si la operación tiene suficiente límite de gas para lo que hace. Tercero, si hay saldo del activo y saldo de la moneda nativa para la comisión. Cuarto, si el permiso cubre esta operación concreta.
La mayoría de los errores repetidos son el primero. La red no se comprueba porque parece estar ya conectada, y en una billetera multiprotocolo la red activa cambia cuando el usuario interactúa con otra aplicación.
Lo que un mensaje de error nunca dice
Un mensaje de error no dice si el contrato al que estás llamando es legítimo. Solo dice que la llamada no se completó.
Tampoco dice si la operación que ibas a hacer era sensata. Un error puede ser la red deteniéndote de una operación que habría sido mala.
Y no dice nada sobre la disponibilidad del servicio. Si la aplicación falla pero la red funciona, el problema está en la interfaz, no en tus fondos. Verificar el estado en un explorador público separa esos dos casos, y es el primer paso antes de repetir nada.
Un mensaje de error bien leído no es un problema. Es la red describiendo en qué punto concreto no coincidieron las instrucciones. Lo que sigue es decidir si eso invalida la operación o solo exige corregir un parámetro antes de intentarlo otra vez.