From 4e286fb91d3bd9ee2a00e172d0b9bf59e6bc457e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 17 Aug 2023 14:13:53 +0800
Subject: [PATCH] 后台修改
---
src/main/java/cc/mrbird/febs/dapp/contract/andao/AndaoContractMain.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 52 insertions(+), 6 deletions(-)
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..b1789b8 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
@@ -1,5 +1,6 @@
package cc.mrbird.febs.dapp.contract.andao;
+import cc.mrbird.febs.common.contants.AppContants;
import cc.mrbird.febs.common.contants.SystemConstants;
import cc.mrbird.febs.common.service.RedisService;
import cc.mrbird.febs.dapp.entity.DappFundFlowEntity;
@@ -24,6 +25,7 @@
import org.web3j.utils.Convert;
import java.math.BigInteger;
+import java.util.List;
@Component
@@ -80,18 +82,22 @@
return Web3j.build(httpService);
}
+ private static Web3j getInstanceScopes() {
+
+ HttpService httpService = new HttpService(blockchainNode);
+ return Web3j.build(httpService);
+ }
+
// 区块链节点地址 TODO
// private static String blockchainNode = "https://bsc-dataseed.binance.org";
private static String blockchainNode = "https://bsc-dataseed1.ninicoin.io";
// 合约地址 TODO
// private static String contractAddr = "0xb5a1aC0fA05BFb8ad16B231e84b0bAC1d46eAfD0";//测试
- private static String contractAddr = "0x99A08A65DB5542f35b96FD69F01896Bd3cDB9DC4";
+ private static String contractAddr = "0xbE8470ff4cF69eb6F2923aE3A8B29f58Ea81cEb0";
// 操作账号 手续费钱包地址的私钥(合约里会把手续费转到你这个私钥地址上) 用于操作合约内方法 TODO
- private static String privateKey = "3ff7147104fcc4b3e47eef1c6a826107ad13f8ceaf46d6747b7cd4e56f8b01c6";//测试
-
-// private static String privateKey = AppContants.FEE_ADDRESS_KEY.get("feeAddressKey").toString() ;
+ private static String privateKey = AppContants.FEE_ADDRESS_KEY.get("feeAddressKey").toString() ;
private EthFilter getFilter(BigInteger startBlock) {
if (startBlock != null) {
@@ -141,7 +147,7 @@
// TODO 业务操作逻辑代码
System.out.println("from:"+from+",amount:"+amount+",regFlow:"+regFlow);
- chainProducer.sendContractAnDao(Long.parseLong(regFlow));
+// chainProducer.sendContractAnDao(Long.parseLong(regFlow));
//投注人
// DappMemberEntity dappMemberEntity = dappMemberDao.selectByAddress(from, "BSC");
// if(ObjectUtil.isNotEmpty(dappMemberEntity)){
@@ -160,7 +166,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, getInstanceScopes(), 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!")
+ );
}
/**
@@ -181,6 +209,24 @@
}
return transactionHash;
}
+// /**
+// * 初始化合约地址
+// */
+// public String setAddress(List<String> list){
+// String transactionHash = null;
+// Credentials credentials = Credentials.create(privateKey);
+// Abi contract = Abi.load(contractAddr, getInstance(), credentials, getStaticGasProvider());
+// try {
+// //BigInteger bigInteger = Convert.toWei(amount.toString(), Convert.Unit.ETHER).toBigInteger();
+// TransactionReceipt send = contract.initializeAddresses(list).send();
+// if(ObjectUtil.isNotEmpty(send)){
+// transactionHash = send.getTransactionHash();
+// }
+// } catch (Exception exception) {
+// exception.printStackTrace();
+// }
+// return transactionHash;
+// }
public static void main(String[] args) {
AndaoContractMain andaoContractMain = new AndaoContractMain();
--
Gitblit v1.9.1