From ca34a6f97106d0df3f6636901729d3bc78b8a9f7 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 13 Jan 2023 18:23:51 +0800
Subject: [PATCH] 20221227 充值归集

---
 src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java   |   18 ++++++---
 src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java |   18 ++++++---
 src/test/java/cc/mrbird/febs/ProfitTest.java                        |   30 +++++++++++++++
 3 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java b/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java
index 77fbebd..5f946b3 100644
--- a/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java
@@ -86,6 +86,12 @@
     public static void main(String[] args) {
         String addressTo = "0xA60AaC0da34C76F3f60207ee09e9F75043319ab4";
         String address = "0xc1be17a02127e5cc1e6b2298436e8b467531f798";
+
+
+        ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer("7678e15fc2dc8d7cc985e641f4953e9be1e1ba5139cc0dd7ddcfa42a26a994e9",
+                "0xaec294ac13f0a64c57a7b9ddb3aee5e791cff06a",
+                AppContants.ERC20_POOL_ADDRESS,
+                "100");
 //        BigInteger allowance = ChainService.getInstance(ChainEnum.BSC_USDT.name()).allowance(address);
 //        System.out.println(allowance);
 //
@@ -101,12 +107,12 @@
 //        BigDecimal balanceOfBaseToken = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOfBaseToken(addressTo);
 //        System.out.println(balanceOfBaseToken);
 //
-        String s = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transferBaseToken(address, new BigDecimal(0.0005));
-        System.out.println(s);
-        BigDecimal balanceOf = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address);
-        if (balanceOf == null || balanceOf.compareTo(new BigDecimal("0.05")) < 1) {
-            return;
-        }
+//        String s = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transferBaseToken(address, new BigDecimal(0.0005));
+//        System.out.println(s);
+//        BigDecimal balanceOf = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address);
+//        if (balanceOf == null || balanceOf.compareTo(new BigDecimal("0.05")) < 1) {
+//            return;
+//        }
 //        System.out.println(balanceOf);
 //        //查询手续费
 //        BigDecimal balanceOfBaseToken = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOfBaseToken(address);
diff --git a/src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java b/src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java
index baf10d0..8de6c52 100644
--- a/src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java
+++ b/src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.mall.chain.enums.ChainEnum;
 import cc.mrbird.febs.mall.chain.enums.EthService;
+import cn.hutool.core.util.ObjectUtil;
 import com.sun.xml.internal.bind.v2.TODO;
 import io.reactivex.Flowable;
 import io.reactivex.disposables.Disposable;
@@ -91,13 +92,18 @@
             try {
                 ws.close();
                 //TODO
-
+                if(ObjectUtil.isEmpty(webSocketClient)){
+                    webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
+                    ws = new WebSocketService(webSocketClient, true);
+                    ws.connect();
+                }
                 WebSocket.READYSTATE readyState = webSocketClient.getReadyState();
-
-                webSocketClient.reconnect();
-                webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
-                ws = new WebSocketService(webSocketClient, true);
-                ws.connect();
+                if((WebSocket.READYSTATE.OPEN != readyState
+                        && WebSocket.READYSTATE.CONNECTING != readyState)){
+                    webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
+                    ws = new WebSocketService(webSocketClient, true);
+                    ws.connect();
+                }
             } catch (Exception connectException) {
                 connectException.printStackTrace();
             }
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index af3cd35..b81747b 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -32,8 +32,11 @@
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.web3j.crypto.Credentials;
+import org.web3j.crypto.WalletUtils;
 
 import javax.annotation.Resource;
+import java.io.File;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.text.DecimalFormat;
@@ -104,6 +107,33 @@
     private DataDictionaryCustomMapper dataDictionaryCustomMapper;
 
     @Test
+    public void tetstgetPrikey(){
+        Map<String, String> wallet = new HashMap<String, String>();
+        try {
+            String walletPassword = "secr3t";
+            // 文件路径
+            String walletDirectory = "E:\\address";
+            String walletName = "UTC--2023-01-13T08-03-47.600000000Z--aec294ac13f0a64c57a7b9ddb3aee5e791cff06a.json";
+
+//            String walletName = WalletUtils.generateNewWalletFile(walletPassword, new File(walletDirectory));
+//            System.out.println("wallet location: " + walletDirectory + "/" + walletName);
+            Credentials credentials = WalletUtils.loadCredentials(walletPassword, walletDirectory + "/" + walletName);
+            String accountAddress = credentials.getAddress();
+            String privateKey = credentials.getEcKeyPair().getPrivateKey().toString(16);
+            // 钱包地址
+            wallet.put("address", accountAddress);
+            // 钱包私钥
+            wallet.put("privateKey", privateKey);
+            System.out.println(accountAddress);
+            System.out.println(privateKey);
+            // 产生的钱包文件地址
+            wallet.put("walletLocation", walletDirectory + "/" + walletName);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Test
     public void directorProfitTest() {
         Long directRewardId = 701L;
         MallOrderInfo orderInfo = mallOrderInfoMapper.selectById(directRewardId);

--
Gitblit v1.9.1