¿Es posible vaciar una billetera Ethereum?

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).

Respuestas (2)

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_estimateGasque 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.

Entonces, ¿enviar Ether es 21,000 sin importar cuántas entradas? Las transacciones de Bitcoin con muchas entradas tienen tarifas de transacción más altas. Sí, me quedé sin gasolina antes de enviar a un contrato. Usó alrededor de 6 millones de gas. ¿Cómo se convierte de gas a éter? Creo que un gas/GWEI es lo mismo que un satoshi en Bitcoin, pero no estoy seguro.
No estoy seguro de lo que quiere decir con "cuántas entradas". Una simple transferencia de éter (independientemente de la cantidad) cuesta 21.000 de gas. Ese es el costo mínimo de una transacción. Gas * gasPrice = cuánto costará la transacción. Un gwei es la mil millonésima parte de un éter. Consulte etherconverter.online para obtener una herramienta de conversión sencilla.
Antes de que existiera ethereum, había una moneda basada en blockchain llamada bitcoin. Cada dirección de bitcoin puede contener una clave pública y una clave privada. Un saldo de bitcoin puede distribuirse en muchas direcciones diferentes, todas resumidas. Cuando gasta un bitcoin, crea una transacción con la dirección que contiene el valor que desea enviar. Si esa dirección no tiene suficiente, envía varias direcciones. A veces, después de recibir muchos miles de pagos, como un comerciante, puede tener miles de direcciones. El envío de una transacción grande puede consumir muchas direcciones y dar como resultado un gran bloque de
Ethereum no tiene tal concepto.
datos. Para procesar este gran bloque de datos, debe pagar una tarifa. Esta tarifa generalmente se expresa en bitcoins/byte. Entonces, cuanto mayor sea la transacción, más costará enviarla. Dado que bitcoin tiene un límite de tamaño de bloque, el espacio es escaso, por lo que las transacciones grandes pueden ser muy costosas. ¿Ethereum tiene algo similar a esto? Sé que también usa direcciones. Entonces, ¿qué sucede si tiene miles de direcciones ether y desea consolidar un saldo en una nueva billetera? ¿El tamaño de la transacción afectará el costo, o es siempre 21000 sin importar cuántas entradas use para enviar la transacción?
Ethereum no tiene un concepto de entradas múltiples. Entonces, una transacción siempre es de una sola dirección a una sola dirección. Sin embargo, Ethereum tiene contratos inteligentes, que pueden hacer todo tipo de cosas (incluido el almacenamiento de datos, el envío de éter y la implementación de nuevos contratos). El costo de gas de enviar una transacción a un contrato inteligente varía según la cantidad de trabajo que haga ese contrato inteligente.
Si tuviera miles de direcciones y deseara consolidar, necesitaría realizar miles de transacciones (una de cada dirección). Tenga en cuenta que este escenario es más raro en Ethereum que en Bitcoin, porque las direcciones se pueden reutilizar.
¿No es esto más difícil de hacer con las transacciones eip-1559? (configuración max-fee, max-pri) ¿Cómo puede predecir la tarifa base del bloque en el que estará su transacción? Parece difícil saberlo con certeza, lo que le obliga a estimar la gasolina

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 :)

Es 21000 siempre? No importa cuántas entradas? Las transacciones de Bitcoin con muchas entradas tienen tarifas de transacción más altas. ¿Cómo se convierte el gas en éter? Creo que gas/GWEI es lo mismo que un satoshi en Bitcoin, pero no estoy seguro.
Supongo que esto es más difícil de hacer con las transacciones EIP-1559 que usan valores de tarifa máxima/precio máximo para la gasolina. Pero supongo que el eth que ahorre (gracias a EIP-1559) tendrá que permanecer en la billetera que está vaciando para siempre, en lugar de ir a los mineros. <encogimiento de hombros>