区块链开发-Springboot+web3j玩转以太链之五(获取链上区块信息)

代码已上传到项目开源地址(同步更新):
https://gitee.com/Linriqiang/springboot-btc-eth-trx
如对你有帮助,麻烦动一下发财的小手点一个star
1.获取链上区块信息

	@Override
	public void getBlockInfoByNum(BigInteger blockNumber) {
		try{
			EthBlock.Block block = this.getWeb3j().ethGetBlockByNumber(DefaultBlockParameter.valueOf(blockNumber), true).send().getBlock();
			if(Func.isEmpty(block)){
				throw new ServiceException("区块信息为空");
			}

			List<EthBlock.TransactionResult> transactionList = block.getTransactions();
			if (Func.isEmpty(transactionList)) {
				return;
			}

			// 遍历block中的交易
			for (EthBlock.TransactionResult tx : transactionList) {
				if (!(tx instanceof EthBlock.TransactionObject)) {
					continue;
				}
				//transaction: 块中的单笔交易
				EthBlock.TransactionObject transactionObject = (EthBlock.TransactionObject) tx;
				org.web3j.protocol.core.methods.response.Transaction transaction = transactionObject.get();
				this.handleTransaction(transaction);
			}


		}catch (Exception e){
			e.printStackTrace();
		}

2.处理每一笔交易

	private void handleTransaction(org.web3j.protocol.core.methods.response.Transaction transaction) {
		try {
			//transaction: 块中的单笔交易
			String to = transaction.getTo();//到账地址为空
			if (Func.isEmpty(to)) {
				return;
			}

			String hashCode = transaction.getHash();
			if (Func.isEmpty(hashCode)) {//交易哈希
				return;
			}

			if (transaction.getValue().compareTo(BigInteger.ZERO) == 1) {//ETH
				BigDecimal amount = Convert.fromWei(new BigDecimal(transaction.getValue()), Convert.Unit.ETHER);
				String toAddress = to;

				System.out.println(toAddress+"============"+amount.toPlainString());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

运行结果:

0x9f630158a93fd28cf84d51a063c9338bd7049bde============0.003343

今天的分享到此结束,代码已同步到github

↓↓↓↓↓↓↓重要提示↓↓↓↓↓↓↓

备注:博主拥有十年区块链开发,如有合作请联系↓↓↓↓↓
如有相关讨论可以私信博主,可以w x 联系:brc20_ylr
代码已上传到项目开源地址(不定期更新):
https://gitee.com/Linriqiang/springboot-btc-eth-trx
在这里插入图片描述

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值