代码已上传到项目开源地址(同步更新):
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