0

语境

使用 Avalanche Explorer,我选择了一个包含一些 AVAX 的随机地址:

https://cchain.explorer.avax.network/address/0xB9F79Fc4B7A2F5fB33493aB5D018dB811c9c2f02/transactions

在我查看该地址时,AVAX 余额约为 39,166:

在此处输入图像描述

代码

我正在使用以下 REST 调用来检索该地址的余额:

curl --location --request POST 'https://api.avax.network/ext/bc/C/rpc' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jsonrpc": "2.0",
    "method": "eth_getBalance",
    "params": [
        "0xB9F79Fc4B7A2F5fB33493aB5D018dB811c9c2f02",
        "latest"
    ],
    "id": 1
}'

在我拨打电话时,它返回了以下信息:

{"jsonrpc":"2.0","id":1,"result":"0x8868dc30a5d07460032"}

问题

如您所见,余额返回为:

0x8868dc30a5d07460032

将其转换为十进制余额的推荐方法是什么?

如果在此处讨论,请随时将我指向开发人员文档中的正确位置。

谢谢!

4

1 回答 1

0

看起来你只是除以 18。

下面是一些 PowerShell 函数Get-AVAX-Balance,它将检索给定地址的余额:

function Convert-Hexadecimal-to-Decimal ([string]$hexadecimal)
{
    $str = '0{0}' -f ($hexadecimal -replace '^0x')

    [decimal]([bigint]::Parse($str, [System.Globalization.NumberStyles]::AllowHexSpecifier))
}

function Get-AVAX-Balance ($address)
{
    $result = Invoke-RestMethod -Uri 'https://api.avax.network/ext/bc/C/rpc' -Method Post -ContentType 'application/json' -Body (ConvertTo-Json @{
        jsonrpc = "2.0"
        method = "eth_getBalance"
        params = @($address, "latest")
        id = 1
    })

    (Convert-Hexadecimal-to-Decimal $result.result) / [math]::Pow(10,18)
}
PS C:\> Get-AVAX-Balance '0xB9F79Fc4B7A2F5fB33493aB5D018dB811c9c2f02'
37667.049457617898011819
于 2021-09-16T12:38:01.060 回答