Problema al obtener registros de transacciones "normales" de la API de Etherscan.io

Estoy usando el método "Obtener una lista de transacciones 'normales' por dirección" de la API de Etherscan.io. El problema es que los resultados de la API son diferentes a los resultados de la 'Descargar exportación CSV' que obtienes en esta página.

https://etherscan.io/address/0xCeB4d0CA821420Cf2553b9e244F6B52364613F94

Enlace a la API: https://etherscan.io/apis#accounts

Para esta dirección:

0xCeB4d0CA821420Cf2553b9e244F6B52364613F94

La solicitud de obtención de la API:

https://api.etherscan.io/api?module=account&action=txlist&address=https://etherscan.io/address/0xCeB4d0CA821420Cf2553b9e244F6B52364613F94&startblock=0&endblock=99999999&sort=asc&apikey=YourApiKeyToken

El problema es que el 'valor' no coincide con el 'Valor_IN(ETH)' al descargar los datos como un archivo .csv.

En el archivo .csv, los resultados se ven así:

Txhash: 0x1f55419fa826e9d9b5487ce745f22c0d6066cf8da8e02bb84a105f6fcf34f8e2

Valor_IN(ETH): 0.0500459770509325

El archivo .csv es correcto. Eso es lo que pasó con esa billetera allí.

Sin embargo, en el objeto .json devuelto por la llamada a la API, obtengo estos resultados:

hash: '0x1f55419fa826e9d9b5487ce745f22c0d6066cf8da8e02bb84a105f6fcf34f8e2'

valor: '50045977050932511'

No entiendo por qué estos valores son diferentes. ¿Hay algo en la codificación que me falta?

Respuestas (1)

El 'valor' se devuelve en Wei, la unidad base de Ethereum.

Hay 10^18 Wei en un éter. Entonces, para convertir de wei a ether, simplemente divídalo por 10 ^ 18.

def convert_wei_to_ether(amount_wei):
    amount_ether = float(amount_wei) / math.pow(10, 18) 
    return amount_ether