当前位置:   article > 正文

java通过web3j获取ETH交易明细_java ethblock 获取质押

java ethblock 获取质押

    我们在项目里面如果想要得到用户的ETH交易明细怎么做呢?有两种方式:

   1、直接获取ETH最新块的交易明细。

   2、通过块获取用户的交易明细。

废话不多说,直接贴代码看了

        

  1. package com.example.demo.web3jLog;
  2. import org.springframework.stereotype.Component;
  3. import org.web3j.protocol.Web3j;
  4. import org.web3j.protocol.core.DefaultBlockParameter;
  5. import org.web3j.protocol.core.DefaultBlockParameterName;
  6. import org.web3j.protocol.core.methods.request.EthFilter;
  7. import org.web3j.protocol.core.methods.response.*;
  8. import org.web3j.protocol.core.methods.response.Transaction;
  9. import org.web3j.protocol.http.HttpService;
  10. import org.web3j.utils.Convert;
  11. import java.io.IOException;
  12. import java.math.BigDecimal;
  13. import java.math.BigInteger;
  14. import java.util.Arrays;
  15. import java.util.List;
  16. import java.util.Optional;
  17. import java.util.concurrent.ExecutionException;
  18. @Component
  19. public class ETHWeb3jTest {
  20. /**
  21. * 完成web3的初始化 下面的地址引入区块链节点地址
  22. */
  23. public static Web3j web3j = Web3j.build(new HttpService("https://org:8545/"));
  24. public static void main(String[] args) {
  25. BigInteger latestBlock;
  26. try {
  27. //获取ETH的最新区块号
  28. latestBlock = web3j.ethBlockNumber().send().getBlockNumber();
  29. //通过区块号获取交易
  30. List<EthBlock.TransactionResult> ethGetBlance = web3j.ethGetBlockByNumber(DefaultBlockParameter.valueOf(latestBlock.subtract(new BigInteger("3"))),true).send().getBlock().getTransactions();
  31. //通过hash获取交易
  32. Optional<Transaction> transactions = web3j.ethGetTransactionByHash("hash").send().getTransaction();
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. }
  36. List<EthBlock.TransactionResult> txs = null;
  37. try {
  38. //也可以直接获取最新交易
  39. txs = web3j.ethGetBlockByNumber(DefaultBlockParameterName.LATEST, true).send().getBlock().getTransactions();
  40. } catch (IOException e) {
  41. e.printStackTrace();
  42. }
  43. txs.forEach(tx -> {
  44. EthBlock.TransactionObject transaction = (EthBlock.TransactionObject) tx.get();
  45. System.out.println(transaction.getFrom());
  46. });
  47. }
  48. }

下面是项目的相关依赖:

<dependency>
    <groupId>org.web3j</groupId>
    <artifactId>core</artifactId>
    <version>3.4.0</version>
</dependency>

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>29.0-jre</version>
</dependency>
<dependency>
    <groupId>org.bitcoinj</groupId>
    <artifactId>bitcoinj-core</artifactId>
    <version>0.15.5</version>
</dependency>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/574650
推荐阅读
相关标签
  

闽ICP备14008679号