区块链研习社区块链技术与金融白话区块链

【ETH钱包开发06】查询某个地址的交易记录

2018-11-20  本文已影响2人  唠嗑008

问这个问题的朋友挺多的,包括我自己之前也困惑,因为在web3j没有找到合适的API。还好,经过一番研究,找到了一些可行的办法,仅供大家参考,希望大家多多探讨。

1、etherscan api提供了查询历史交易记录的接口,返回json。
2、用web3j filter过滤器监听交易,将所有的交易数据存储到本地数据库中,需要查询的时候直接从本地数据库中查询。

方案一:etherscan API查询

http://api.etherscan.io/api?module=account&action=txlist&address=0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae&startblock=0&endblock=99999999&sort=asc&apikey=YourApiKeyToken

只能返回最近的1000条交易信息,不过应该够用了吧。

或者
https://api.etherscan.io/api?module=account&action=txlist&address=0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae&startblock=0&endblock=99999999&page=1&offset=10&sort=asc&apikey=YourApiKeyToken

这种方式返回指定个数的交易信息

注意:
1、moduleactionmodulesort都是固定值。
2、startblockendblock是指查询2个区块区间的所有指定地址交易,通常startblock为0,endblock设置为"latest"即可。
3、apikey需要申请,apikey 是在etherscan调用那些接口都需要用到的一个参数,它是需要你去申请的,注册账号之后就能得到。每个账户最多持有 3 个 token, 请求 API service 服务, 仅需其中一个即可。

返回结果


方案二:Filter过滤器

这种方式需要后端来实现,我在android端试过,会有一些异常。大家可以参考官方文档
https://docs.web3j.io/getting_started.html#gradle

上一篇 下一篇

猜你喜欢

热点阅读