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

Web3j: How to get Ethereum transaction information (Java not JS)

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

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

我可以打电话

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

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

如何获取真实的交易数据?

另外一个注意事项:似乎没有任何 Web3j JavaDoc 有什么原因吗??

它就在那里,只是因为他们如何使用泛型而混淆了如何获得它。下面的示例将输出 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