【ETH钱包开发06】查询某个地址的交易记录
2018-11-20 本文已影响2人
唠嗑008
问这个问题的朋友挺多的,包括我自己之前也困惑,因为在web3j没有找到合适的API。还好,经过一番研究,找到了一些可行的办法,仅供大家参考,希望大家多多探讨。
1、etherscan api提供了查询历史交易记录的接口,返回json。
2、用web3j filter
过滤器监听交易,将所有的交易数据存储到本地数据库中,需要查询的时候直接从本地数据库中查询。
方案一:etherscan API查询
只能返回最近的1000条交易信息,不过应该够用了吧。
这种方式返回指定个数的交易信息
注意:
1、module
、action
、module
、sort
都是固定值。
2、startblock
和endblock
是指查询2个区块区间的所有指定地址交易,通常startblock
为0,endblock
设置为"latest"即可。
3、apikey
需要申请,apikey 是在etherscan调用那些接口都需要用到的一个参数,它是需要你去申请的,注册账号之后就能得到。每个账户最多持有 3 个 token, 请求 API service 服务, 仅需其中一个即可。
![](https://img.haomeiwen.com/i4134622/930bafe5a5f3115a.png)
返回结果
![](https://img.haomeiwen.com/i4134622/9371e39c2d10bde2.png)
方案二:Filter过滤器
这种方式需要后端来实现,我在android端试过,会有一些异常。大家可以参考官方文档
https://docs.web3j.io/getting_started.html#gradle