From 432256e9c67bb5cfab2e7df3971fdb5c50301647 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 17 Jan 2023 20:35:06 +0800
Subject: [PATCH] 20221227 充值归集
---
src/main/java/cc/mrbird/febs/mall/chain/service/ChainService.java | 45 +++++++++++++++++++++++++++++++++++++--------
1 files changed, 37 insertions(+), 8 deletions(-)
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 af69ffe..5e50cc6 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
@@ -8,6 +8,7 @@
import io.reactivex.disposables.Disposable;
import lombok.extern.slf4j.Slf4j;
import org.java_websocket.WebSocket;
+import org.java_websocket.exceptions.WebsocketNotConnectedException;
import org.web3j.crypto.Credentials;
import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.DefaultBlockParameter;
@@ -82,6 +83,7 @@
WebSocketService ws = null;
WebSocketClient webSocketClient = null;
Web3j web3j = null;
+ ChainEnum chain = ChainEnum.getValueByName(type);
try {
webSocketClient = new WebSocketClient(new URI("wss://bsc-mainnet.nodereal.io/ws/v1/78074065950e4915aef4f12b6f357d16"));
@@ -111,18 +113,45 @@
try {
web3j = Web3j.build(ws);
- ChainEnum chain = ChainEnum.getValueByName(type);
+
assert chain != null;
-
- EthUsdtContract ethUsdtContract = wssContract(chain.getPrivateKey(), chain.getContractAddress(), web3j);
- EthFilter filter = getFilter(startBlock, startBlock, chain.getContractAddress());
+ try{
+ EthUsdtContract ethUsdtContract = wssContract(chain.getPrivateKey(), chain.getContractAddress(), web3j);
+ EthFilter filter = getFilter(startBlock, startBlock, chain.getContractAddress());
- Flowable<EthUsdtContract.TransferEventResponse> eventFlowable = ethUsdtContract.transferEventFlowable(filter);
- Disposable subscribe = eventFlowable.subscribe(event::compile, error -> {
- log.error("币安监听异常", error);
+ Flowable<EthUsdtContract.TransferEventResponse> eventFlowable = ethUsdtContract.transferEventFlowable(filter);
+ Disposable subscribe = eventFlowable.subscribe(event::compile, error -> {
+ log.error("币安监听异常", error);
- });
+ });
+ }catch(WebsocketNotConnectedException e){
+ ws.close();
+ 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();
+ 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();
+ }
+ web3j = Web3j.build(ws);
+ assert chain != null;
+ EthUsdtContract ethUsdtContract = wssContract(chain.getPrivateKey(), chain.getContractAddress(), web3j);
+ EthFilter filter = getFilter(startBlock, startBlock, chain.getContractAddress());
+
+
+ Flowable<EthUsdtContract.TransferEventResponse> eventFlowable = ethUsdtContract.transferEventFlowable(filter);
+ Disposable subscribe = eventFlowable.subscribe(event::compile, error -> {
+ log.error("币安监听异常", error);
+
+ });
+ }
+
} catch (Exception e) {
e.printStackTrace();
}
--
Gitblit v1.9.1