Cuando envía una transacción, especifica un precio de gasolina y un límite de gasolina. Si no usa todo el límite de gasolina, entonces le devolvemos parte del dinero. Por lo tanto, parece imposible saber de antemano cuál será el total de gas utilizado, dejando cambio de repuesto en cada billetera.
Traté de vaciar mi billetera MetaMask. Busqué un precio de gasolina razonable en https://ethgasstation.info/ (7). Ingresé el saldo total para enviar, MetaMask, por supuesto, dijo "no hay suficiente saldo" debido a la tarifa. Cambié el precio de la gasolina a 7, copié la tarifa máxima, rechacé la transacción, ingresé una nueva transacción con el monto igual a (saldo total - tarifa máxima) y nuevamente cambié el precio de la gasolina a 7. Después de que se envió (algunos horas), ¡me quedé con $ 0.09 en mi billetera MetaMask! Aunque traté de calcular cuidadosamente la cantidad exacta, parece que sería imposible vaciar una billetera.
La ayuda de MetaMask dice que MyEtherWallet tiene una función de 'enviar máximo', pero ¿cómo funcionaría eso?
https://support.metamask.io/kb/article/14-sending-max-balance
Mientras tanto, una manera fácil de enviar su saldo completo es exportar su cuenta MetaMask a MyEtherWallet, que tiene una función de "enviar máximo", y enviarla al intercambio desde allí.
¿No es cierto que no se puede saber de antemano el gas real utilizado? Si intenta calcular el límite de gas exactamente, corre el riesgo de que consuma todo su gas y su transacción aún falle. (Me ha pasado eso antes).
Si está enviando ether a un EOA (cuenta de propiedad externa, no un contrato), entonces el gas utilizado siempre será 21000 gas, por lo que es fácil enviar correctamente el máximo. (Personalmente, he hecho esto varias veces al consolidar cuentas y obtuve exactamente un saldo de 0).
Si está enviando éter a un contrato, generalmente aún es posible obtener el gas exactamente correcto. Existe un método JSON-RPC eth_estimateGas
que simula la transacción que estás a punto de realizar y te devuelve la cantidad de gas utilizada. Esperaría que MetaMask use ese valor como límite de gas por defecto, pero no estoy seguro. A menos que el contrato consuma una cantidad diferente de gas en función de algún estado mutable (y ese estado cambia antes de que se extraiga su transacción), esta debería ser exactamente la cantidad de gas que usa su transacción real.
Supongo que el "envío máximo" de MEW envía el máximo que puede, suponiendo que se alcanza el límite de gas completo. Entonces, si su límite de gas se establece más alto que el gas consumido real, entonces quedará un poco de éter.
Tiene razón en que, en caso de duda, probablemente sea mejor sobrestimar ligeramente la cantidad de gas que necesita (estableciendo un límite de gas ligeramente alto) y luego simplemente descartar el éter sobrante.
Transferir fondos a otra cuenta cuesta 21000 de gas. Entonces, para enviar la cantidad total, establezca el límite de gasolina en 21000 y multiplíquelo con el precio de gasolina que haya especificado. Luego reste esto del saldo de la cuenta. De esta manera, no debería haber fondos en su cuenta y puede estar tranquilo :)
Cloe
usuario19510
Cloe
usuario19510
Cloe
usuario19510
usuario19510
donn lee