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