【问题标题】:Web3j: How to get Ethereum transaction information (Java not JS)Web3j:如何获取以太坊交易信息(Java 不是 JS)
【发布时间】:2018-10-22 07:43:09
【问题描述】:

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

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

我可以打电话

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

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

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

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

【问题讨论】:

    标签: java ethereum web3-java


    【解决方案1】:

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

    【讨论】:

    • 谢谢,这是一个很大的帮助。事实证明我正确理解了泛型。我没有做的是将 true 传递给 ethGetBlockByNumber。我复制的代码将 parm 设置为 false - 我想这一切都不同了。
    • 如何获取每个块的所有TransactionReceipt 列表?
    猜你喜欢
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 2020-11-01
    • 2022-11-16
    • 2021-10-02
    • 2019-12-09
    • 1970-01-01
    相关资源
    最近更新 更多