Binance智能链解码bech32查询账户余额失败

2024-06-16 11:09:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过二进制链式API来平衡公共广播

account_id = "0x1f5ff990d661a4DFDC0Ff7D63Ae6A7E995475b95"
response = requests.get("https://dex.binance.org/api/v1/account/" + account_id.lower())
account = response.json()

但是我得到了以下错误

{'code': 400, 'message': 'decoding bech32 failed: failed converting data to bytes: invalid character not part of charset: 98'}

如何将公共广播转换为bech32格式?还是有更好的方法提取地址的余额


Tags: httpsorgapiidgetresponsebinance二进制
1条回答
网友
1楼 · 发布于 2024-06-16 11:09:55

最终发现不是你。是binance API给了你这个错误。在做了一些挖掘之后,我发现出于某种原因,binance API只接受带有bnb标记的Bech32格式地址:

import requests 
account_id = "bnb1jxfh2g85q3v0tdq56fnevx6xcxtcnhtsmcu64m" # address 91937520f40458f5b414d267961b46c19789dd70

response = requests.get("https://dex.binance.org/api/v1/account/" + account_id.lower())
account = response.json()
print(account)

但是,当您搜索/获取地址时,它会以正常的0x格式提供给您

我确实在网上找到了一个转换器,它能够将样本地址解码为正常地址:https://slowli.github.io/bech32-buffer/

enter image description here

但出于某些原因,API仍然报告404,用于使用相同转换器的地址:

import requests 
account_id = "bnb1ra0lnyxkvxjdlhq07ltr4e48ax25wku4nhunzs" # address 1f5ff990d661a4DFDC0Ff7D63Ae6A7E995475b95

response = requests.get("https://dex.binance.org/api/v1/account/" + account_id.lower())
account = response.json()
print(account)

enter image description here

即使您使用完全相同的地址,也可以使用智能链资源管理器查看它https://bscscan.com/address/0x1f5ff990d661a4DFDC0Ff7D63Ae6A7E995475b95

无论如何。这个问题的答案是,您向API提供的地址没有首先将其转换为Bech32格式。现在,您只需要弄清楚为什么即使地址转换为bech32,它仍然返回404。可能需要和binance团队一起提高

相关问题 更多 >