刚开始使用web3j,我有一些基本的麻烦。
我已经可以成功如何获得一个EthBlock
,并检索里面的所有信息。我想看看这个块中的交易列表,我该怎么做?
我可以调用:
List<TransactionResult> transactions = ethBlock.getBlock().getTransactions();
我应该能够浏览这个列表并获得有关每笔交易的信息。但是,我所能做到的似乎都是交易处理结果,把它转换成非常无效的交易处理。我想要一个可以从中提取大量信息的交易对象。
如何获取真实的交易数据?
另一个注意事项:有什么相关的文档推荐?web3j JavaDoc?
问题的解答
你的调用并没错,只是混淆了一些概念。看下该如何使用泛型。比如下面的示例将在最新的块中输出每个交易的发送方:
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
收据。
原文《以太坊常见问题和错误》中的:
http://cw.hubwiz.com/card/c/ethereum-FAQ/1/1/16/
另外推荐几个很受欢迎全网稀缺的互动教程:
另外推荐几个很受欢迎全网稀缺的互动教程: