首页 > 解决方案 > 如何在 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"
        )
    )

这个例子显示了一些细节,但不是全部。例如,它不显示“已转移代币”详细信息,例如: 图像

我有几个问题,希望有人能帮助我找到答案。

  1. 如图所示,我如何才能从交易中获得支付金额以及以何种货币支付?
  2. 收到多少代币?
  3. 上面的示例返回“timeStamp”:“1611843685”。如何将其转换为实际日期,例如:2021-06-07?

如果有其他更好的 API(不一定是 python)来获取详细信息,请告诉我。

提前致谢。

标签: pythonbinancebinance-smart-chain

解决方案


这就是我为获取交易信息所做的。我不确定我们是否指的是同一件事,但对我来说,我想获得特定指定代币的 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)

推荐阅读