能否通过Etherscan API或eth_getlogs获取以太坊交易的Input Data?
结果说明
你可以通过Etherscan API获取以太坊交易的Input Data,但是eth_getLogs接口本身不直接返回该数据,两者的具体规则如下:
1. Etherscan API获取方式
- 你可以调用Etherscan兼容以太坊JSON-RPC的
eth_getTransactionByHash接口,传入目标交易哈希,返回结果中的input字段就是和Etherscan页面展示完全一致的Input Data内容。 - 如果你用Etherscan的REST API,将请求参数设置为
module=proxy、action=eth_getTransactionByHash,再传入目标交易哈希和你自己的Etherscan API密钥即可获取对应结果。 - 你也可以直接对接任意以太坊节点,调用原生
eth_getTransactionByHash方法获取完全相同的Input Data内容。
2. eth_getLogs接口的限制
eth_getLogs的作用是查询链上智能合约触发的事件日志,返回结果仅包含事件对应的topics和事件内容data字段,不会携带对应交易的完整Input Data,因此无法直接用该接口获取目标数据。- 如果你已经通过
eth_getLogs拿到了对应事件关联的交易哈希,你可以再调用一次eth_getTransactionByHash接口,就能拿到对应交易的Input Data。
内容的提问来源于stack exchange,提问作者Ethan Dixon
相关产品推荐
相关产品推荐

