Ether

Etherscan API 獲取餘額 - 響應中未顯示小數

  • January 22, 2021

預期的

使用*Etherscan API*請求GETETH 地址的餘額,以便接收提供代表所有小數位的 Ether 代幣數量的響應。

觀測到的

響應提供了不代表任何小數位的 Ether 代幣數量。

請求:Etherscan 獲取單個地址的乙太幣餘額

http://api.etherscan.io/api?module=account&action=balance&address=0x8a27D05e97A156E93D42a6d3afB5c2154ebb9cB5&tag=latest&apikey={YOUR_API_KEY_HERE}

注意:我在上面選擇了一個隨機的 ETH 地址。這不是我的 ETH 地址。

回复

{
   "status": "1",
   "message": "OK",
   "result": "86354095000000000"
}

來自 Etherscan UX 的餘額

來自 Etherscan UX 的餘額表明 Ether 餘額中包含小數位。但是,API 響應不提供有關十進制格式的任何資訊。

0.086354095 乙太幣

來自resultEtherscanGET請求的響應必須除以 10 18。

正如這篇關於ERC20代幣小數位的文章中所*回答*的那樣, “大多數 ERC20 代幣應遵循使用 18 位小數作為其代幣的模式。”

這適用於乙太幣本身。因此,result響應86354095000000000等於0.086354095 Ether。

(86354095000000000/(10 18 )) = 0.086354095

很明顯,在這個例子中,您需要自己進行格式化。顯示的返回值以 wei 為單位,您可以使用web3庫將其轉換為 eth:

web3.utils.fromWei('86354095000000000', 'ether');

這將返回一個 0.086354095 值。

引用自:https://ethereum.stackexchange.com/questions/92623