python - 如何在 python 中获取 BEP20 代币转账详细信息?
问题描述
我是区块链新手,并尝试使用python-API从 BscScan 获取交易详细信息。我正在使用链接中显示的示例。
from bscscan import BscScan
async with BscScan(YOUR_API_KEY) as client:
print(
await client.get_bep20_token_transfer_events_by_address(
address="0x63aea877b5d5fa234a1532f1b26a4f6d9051866e",
startblock=0,
endblock=999999999,
sort="asc"
)
)
这个例子显示了一些细节,但不是全部。例如,它不显示“已转移代币”详细信息,例如: 图像。
我有几个问题,希望有人能帮助我找到答案。
- 如图所示,我如何才能从交易中获得支付金额以及以何种货币支付?
- 收到多少代币?
- 上面的示例返回“timeStamp”:“1611843685”。如何将其转换为实际日期,例如:2021-06-07?
如果有其他更好的 API(不一定是 python)来获取详细信息,请告诉我。
提前致谢。
解决方案
这就是我为获取交易信息所做的。我不确定我们是否指的是同一件事,但对我来说,我想获得特定指定代币的 DEX 交易。这是我的代码。顺便说一句,您必须输入自己的 API 密钥和令牌地址。另外,我去掉了许多我认为无用的变量。
import requests
from datetime import datetime
import pandas as pd
API_KEY = ''
#Get a list of "BEP-20 - Token Transfer Events" by Address
ADDRESS = ''
url = 'https://api.bscscan.com/api?module=account&action=tokentx&contractaddress='+ADDRESS+'&page=1&offset=100&sort=desc&apikey=' + API_KEY
response = requests.get(url)
transactions = []
for i in response.json()['result']:
#print(i)
ts = int(i['timeStamp'])
temp = {
'timeStamp': datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'),
'from': i['from'],
'to': i['to'],
'value': int(i['value'])/1000000000000000000,
'tokenName': i['tokenName']
}
#print(temp)
transactions.append(temp)
pd.DataFrame(transactions)
推荐阅读
- javascript - 不要嵌套三元表达式 - 替代
- h2o4gpu - get_gpu_info_c() 未检测到 GPU
- vue.js - 共享 node_modules 时如何为 Vue 项目服务?
- javascript - 如果使用两次,Javascript 复制到剪贴板功能消息不起作用
- javascript - 想要在本机反应中自动滚动平面列表
- ios - 执行异步任务
- scala - 如何在火花罐中使用 dbutils.secrets
- entity-framework - Entity Framework Core 2.2:禁用特定实体的迁移
- c# - 我不能使用 API 在 Microsoft 直播中创建频道
- javascript - 根据 Watson Assistant 上下文自动加载网页