5

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

我已经成功地弄清楚了如何获取 EthBlock 并检索其中的所有信息。我想查看块中的交易列表,但我不知道如何。

我可以打电话

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

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

我如何获得真实的交易数据?

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

4

1 回答 1

4

它就在那里,只是因为他们如何使用泛型而令人困惑。下面的示例将输出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),而不是TransactionReceipt包含正在开采的 tx 的结果的结果。

于 2018-05-11T22:45:56.120 回答