Dos situaciones.
Desea transferir todo el dinero en una cuenta y desea calcular la cantidad correcta de gasolina e impuestos, de modo que transfiera todo lo que sea posible y deje la cuenta en 0.
Desea transferir una cantidad específica de dinero y desea calcular la cantidad correcta de gasolina e impuestos para transferir exactamente la cantidad deseada.
¿Cómo se calculan ambos valores?
El segundo es más simple, las tarifas de gas se deducen de su cuenta, no del valor transferido, por lo que solo necesita especificar 21K gas (costo de transacción) * 50 shannon (precio mínimo de gas actualmente).
Para barrer su cuenta, debe calcular el costo de la transacción (gas 21K * 50 shannon) y enviar su saldo total: costos. Eso dejará su cuenta en 0 saldo.
Como lo discutió Tjaden Hess aquí , debe multiplicar la cantidad de gas con el precio del gas y restar un solo wei además de eso (no estoy seguro de por qué).
Puede especificar la cantidad de gas 21,000 y el precio del gas de 50 shannon:
{from:'0xACCOUNT', to:'0xRECIPIENT', value:eth.getBalance('0xACCOUNT') - 21000 * 50000000000 - 1, gas:21000, gasPrice:50000000000}
Tenga en cuenta que en la billetera mist ethereum, tiene problemas con el redondeo de todos los decimales. Se recomienda utilizar una interfaz de línea de comandos como geth para calcular las cantidades exactas.
El precio del gas es un objetivo móvil. Si esto no funciona, también puede usar la calculadora de costos de transacción para Ethereum.
ética