我正在寻找获取给定地址的交易清单的方法。如果交易太多,我希望能够分页结果。 如果我可以将最新处理的事务作为参数给出,那么我可以从给定的点获取最新的事务。
这样的事情:
var page = 1;
txList = getTransactionList("0x323432432...", page, lastProcessedTx);
答案 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编写的。它在后台用作服务:
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