Web3j:如何获取以太坊交易信息(Java不是JS)

时间:2018-05-11 20:39:18

标签: java ethereum web3-java

我刚开始使用Web3j并且遇到了一些基本问题。

我已经成功找到了如何获取EthBlock并检索其中的所有信息。我想查看块中的事务列表,但我无法弄清楚如何。

我可以打电话

 List<TransactionResult> transactions = ethBlock.getBlock().getTransactions();

我应该能够查看此列表并获取有关每笔交易的信息。但是,我似乎只能使用TransactionResult将其转换为非常无用的TransactionHash。我想要的是一个TransactionObject,我可以从中提取大量信息。

如何获取真实交易数据?

另一方面说明:有没有理由为什么似乎没有任何Web3j JavaDoc?

1 个答案:

答案 0 :(得分:2)

它就在那里,由于他们如何使用泛型,它只是混淆了如何实现它。以下示例将输出LATEST块中每个事务的发送方:

List<EthBlock.TransactionResult> txs = web3j.ethGetBlockByNumber(DefaultBlockParameterName.LATEST, true).send().getBlock().getTransactions();
txs.forEach(tx -> {
  EthBlock.TransactionObject transaction = (EthBlock.TransactionObject) tx.get();

  System.out.println(transaction.getFrom());
});

请注意,这是TransactionObject(已发送的tx),而不是包含正在挖掘的tx结果的结果TransactionReceipt