xiaoyong931011
2023-07-18 8544aaaa58deeae1df8d5843e29ddf37e56d93de
智能合约
2 files modified
27 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractInit.java 3 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractMain.java 24 ●●●●● patch | view | raw | blame | history
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);
    }
}
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!")
        );
    }
    /**