如何通过Bscscan API获取与BSCScan页面一致的交易详情?
获取BSCScan网页端级别的交易详情方法
你当前调用的txlistinternal接口仅返回内部交易的基础元数据,无法提供网页端展示的解码后交易信息。要获取和网页端一致的完整详情,需要组合调用多个BSCScan API接口:
1. 获取完整原始交易数据
调用proxy模块的eth_getTransactionByHash接口,拿到交易的全部原始字段(包括未解码的input字节码):
endpoint = "https://api.bscscan.com/api" \ "?module=proxy" \ "&action=eth_getTransactionByHash" \ "&txhash={}" \ "&apikey={}"
这个接口返回的input字段是合约交互的原始十六进制数据,是后续解码的核心依据。
2. 获取交易收据与执行日志
调用proxy模块的eth_getTransactionReceipt接口,获取交易的执行状态、合约日志、gas消耗详情等:
endpoint = "https://api.bscscan.com/api" \ "?module=proxy" \ "&action=eth_getTransactionReceipt" \ "&txhash={}" \ "&apikey={}"
网页端展示的交易状态、事件日志等信息都来自这个接口返回的数据。
3. 解码合约交互数据
如果交易是和智能合约交互的,需要先获取目标合约的ABI,再解码input字段:
步骤1:获取合约ABI
调用contract模块的getabi接口:
endpoint = "https://api.bscscan.com/api" \ "?module=contract" \ "&action=getabi" \ "&address={}" \ "&apikey={}"
(address填交易对应的合约地址,可从eth_getTransactionByHash返回的to字段获取)
步骤2:解码Input数据
用Web3.js、Web3.py这类区块链开发库,传入ABI和原始input十六进制数据,即可解码出网页端展示的方法名、参数等结构化信息。
补充说明
BSCScan网页端的交易详情是将主交易数据、内部交易数据(即你当前调用的txlistinternal返回内容)、解码后的合约交互信息整合展示的,所以需要你自行组合上述接口的返回结果,还原出完整的交易详情。
内容的提问来源于stack exchange,提问作者maic0L
相关产品推荐
相关产品推荐

