如何按地址获取以太坊交易清单

时间:2016-03-29 17:28:53

标签: transactions ethereum

我正在寻找获取给定地址的交易清单的方法。如果交易太多,我希望能够分页结果。 如果我可以将最新处理的事务作为参数给出,那么我可以从给定的点获取最新的事务。

这样的事情:

var page = 1;
txList = getTransactionList("0x323432432...", page, lastProcessedTx);

4 个答案:

答案 0 :(得分:6)

从我的研究到目前为止,无法获得地址的交易清单。您应该检查区块链中给定地址的所有事务,或者将地址与数据库中的事务哈希相关联。查看此线程确认缺少所需的API: https://github.com/ethereum/go-ethereum/issues/1897

另一种方法是使用Etherscan API:https://etherscan.io/apis 但这取决于第三方服务器。

答案 1 :(得分:0)

如果要在geth控制台上使用以太坊地址来获取以太坊交易列表,则需要在连接get终端后运行以下命令-

eth.listTransactions

如果您想使用txn哈希获取完整的交易信息,则可以使用-

eth.getTransaction 命令(使用geth

要计算所有交易数-

getTransactionCount

您还可以使用-

获取完成交易的信息

eth.getTransactionReceipt

如果您想为所有以太坊提供完整的Java类,请告诉我,我将共享用Java编写的以太坊交易代码段,创建钱包,在区块范围内获取特定帐户的交易以及存款以太坊的交易监听器。

希望这会有所帮助

答案 2 :(得分:0)

已知的以太坊节点缺乏获取ETH地址(账户)交易清单的功能。

要解决此问题,有免费的开源第三方解决方案-以太坊交易索引器:https://github.com/Adamant-im/ETH-transactions-storage

Indexer允许像Etherscan一样,通过以太坊地址浏览交易并获得任何用户的历史记录。索引器是用Python编写的。它在后台用作服务:

  • 连接到以太坊节点(与geth或奇偶校验兼容,其他未测试)
  • 将所有交易记录(包括智能合约交易记录)存储在Postgres数据库中
  • 为API提供数据以按地址获取交易

Indexer连接到以太坊节点,并使用JSON RPC获取事务,从而在Postgres数据库中创建事务Index。第一索引器将从您指定的块开始存储交易。之后,它将每20秒检查一次新块并更新索引。您可以更改时间间隔。

以太坊交易索引器的

API由Postgrest工具发布。如果您需要提供公共API,请使用任何网络服务器(如nginx)并将设置代理设置为config中的Postgrest端口。

创建索引后,您可以使用类似的请求

curl -k -X GET "http://localhost:3000/?and=(contract_to.eq.,or(txfrom.eq.0x6b924750e56a674a2ad01fbf09c7c9012f16f094,txto.eq.0x6b924750e56a674a2ad01fbf09c7c9012f16f094))&order=time.desc&limit=25"

https://yourserver.com/ethtxs?and=(contract_to.eq.,or(txfrom.eq.0x6b924750e56a674a2ad01fbf09c7c9012f16f094,txto.eq.0x6b924750e56a674a2ad01fbf09c7c9012f16f094))&order=time.desc&limit=25

该请求将显示以太坊地址0x6b924750e56a674a2ad01fbf09c7c9012f16f094的25条最近交易,按时间戳排序。

答案 3 :(得分:0)

您可以使用 etherscan.io API:https://etherscan.io/apis#accounts Example