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
。
我刚开始使用 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
。