From 8544aaaa58deeae1df8d5843e29ddf37e56d93de Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 18 Jul 2023 14:26:51 +0800
Subject: [PATCH] 智能合约
---
src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractMain.java | 24 +++++++++++++++++++++++-
src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractInit.java | 3 ++-
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractInit.java b/src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractInit.java
index e62e1b0..7b231e7 100644
--- a/src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractInit.java
+++ b/src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractInit.java
@@ -27,7 +27,7 @@
@PostConstruct
public void init(){
// 设置起始区块编号 TODO
- BigInteger start = new BigInteger("29837079");
+ BigInteger start = new BigInteger("30013683");
// 需要打开 获取最新区块编号
Object bnb_block_number = redisService.get("BNB_BLOCK_NUMBER");
if(bnb_block_number !=null){
@@ -35,5 +35,6 @@
}
System.out.println("启动区块事件监听,监听起始:"+start);
andaoContractMain.listenBetting(start);
+ andaoContractMain.listenBettings(start);
}
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractMain.java b/src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractMain.java
index 5d991dc..c618c47 100644
--- a/src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractMain.java
+++ b/src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractMain.java
@@ -160,7 +160,29 @@
}catch (Exception exception) {
exception.printStackTrace();
}
- });
+ },
+ error -> System.out.println("onError: " + error),
+ () -> System.out.println("onComplete will not be printed!")
+ );
+ }
+
+ public void listenBettings(BigInteger startBlock){
+ System.out.println("启动投注监听事件");
+ // 指定密钥文件并进行账号和密码的验证
+ Credentials credentials = Credentials.create(privateKey);
+ Abi contract = Abi.load(contractAddr, getInstanceScope(), credentials, new DefaultGasProvider());
+ EthFilter filter = getFilter(startBlock);
+ contract.withdrawnEventFlowable(filter).subscribe(e->{
+ try {
+ // 更新区块编号 TODO
+ redisService.set("BNB_BLOCK_NUMBER",e.log.getBlockNumber().intValue());
+ }catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ },
+ error -> System.out.println("onError: " + error),
+ () -> System.out.println("onComplete will not be printed!")
+ );
}
/**
--
Gitblit v1.9.1