From c11b6735d77afb314998931d0a58dc1413486f97 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 09 May 2024 11:15:13 +0800
Subject: [PATCH] 合约监听

---
 src/main/java/cc/mrbird/febs/dapp/chain/EthUsdtContract.java |   58 ++++++++++++++++++++--------------------------------------
 1 files changed, 20 insertions(+), 38 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/chain/EthUsdtContract.java b/src/main/java/cc/mrbird/febs/dapp/chain/EthUsdtContract.java
index f81debf..a32c340 100644
--- a/src/main/java/cc/mrbird/febs/dapp/chain/EthUsdtContract.java
+++ b/src/main/java/cc/mrbird/febs/dapp/chain/EthUsdtContract.java
@@ -174,25 +174,25 @@
      *            {
      * 				"indexed": false,
      * 				"internalType": "uint256",
-     * 				"name": "sameCoin",
+     * 				"name": "usdtTarget",
      * 				"type": "uint256"
      *            },
      *            {
      * 				"indexed": false,
      * 				"internalType": "uint256",
-     * 				"name": "finxMineCoin",
+     * 				"name": "coinTarget",
+     * 				"type": "uint256"
+     *            },
+     *            {
+     * 				"indexed": false,
+     * 				"internalType": "uint256",
+     * 				"name": "usdtCoin",
      * 				"type": "uint256"
      *            },
      *            {
      * 				"indexed": false,
      * 				"internalType": "uint256",
      * 				"name": "lastMineTime",
-     * 				"type": "uint256"
-     *            },
-     *            {
-     * 				"indexed": false,
-     * 				"internalType": "uint256",
-     * 				"name": "thisMineTime",
      * 				"type": "uint256"
      *            }
      * 		],
@@ -386,34 +386,16 @@
         return web3j.ethLogFlowable(filter).map(new Function<Log, CoinRewardEventResponse>() {
             @Override
             public CoinRewardEventResponse apply(Log log) {
-//                final List<String> topics = log.getTopics();
-//                String encodedEventSignature = EventEncoder.encode(COINREWARD_EVENT);
-//                if (topics == null || topics.size() == 0 || !topics.get(0).equals(encodedEventSignature)) {
-//                    return null;
-//                }
-//
-//                List<Type> indexedValues = new ArrayList<>();
-//                List<Type> nonIndexedValues =
-//                        FunctionReturnDecoder.decode(log.getData(), COINREWARD_EVENT.getNonIndexedParameters());
-//
-//                List<TypeReference<Type>> indexedParameters = COINREWARD_EVENT.getIndexedParameters();
-//                for (int i = 0; i < indexedParameters.size(); i++) {
-//                    Type value =
-//                            FunctionReturnDecoder.decodeIndexedValue(
-//                                    topics.get(i + 1), indexedParameters.get(i));
-//                    indexedValues.add(value);
-//                }
-//                final EventValues eventValues = new EventValues(indexedValues, nonIndexedValues);
                 EventValuesWithLog eventValues = extractEventParametersWithLog(COINREWARD_EVENT, log);
                 CoinRewardEventResponse typedResponse = new CoinRewardEventResponse();
                 if(eventValues!=null){
                     typedResponse.adr = (String) eventValues.getNonIndexedValues().get(0).getValue();
                     typedResponse.amount = (BigInteger) eventValues.getNonIndexedValues().get(1).getValue();
                     typedResponse.price = (BigInteger) eventValues.getNonIndexedValues().get(2).getValue();
-                    typedResponse.sameCoin = (BigInteger) eventValues.getNonIndexedValues().get(3).getValue();
-                    typedResponse.finxMineCoin = (BigInteger) eventValues.getNonIndexedValues().get(4).getValue();
-                    typedResponse.lastMineTime = (BigInteger) eventValues.getNonIndexedValues().get(5).getValue();
-                    typedResponse.thisMineTime = (BigInteger) eventValues.getNonIndexedValues().get(6).getValue();
+                    typedResponse.usdtTarget = (BigInteger) eventValues.getNonIndexedValues().get(3).getValue();
+                    typedResponse.coinTarget = (BigInteger) eventValues.getNonIndexedValues().get(4).getValue();
+                    typedResponse.usdtCoin = (BigInteger) eventValues.getNonIndexedValues().get(5).getValue();
+                    typedResponse.lastMineTime = (BigInteger) eventValues.getNonIndexedValues().get(6).getValue();
                 }
 
                 return typedResponse;
@@ -427,7 +409,7 @@
 
     public Flowable<CoinRewardEventResponse> coinRewardEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) {
         EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress());
-        filter.addSingleTopic(EventEncoder.encode(TRANSFER_EVENT));
+        filter.addSingleTopic(EventEncoder.encode(COINREWARD_EVENT));
         return coinRewardEventFlowable(filter);
     }
 
@@ -831,13 +813,13 @@
     }
 
     public static class CoinRewardEventResponse extends BaseEventResponse {
-        public String adr;
+        public String adr;//地址
 
-        public BigInteger amount;
-        public BigInteger price;
-        public BigInteger sameCoin;
-        public BigInteger finxMineCoin;
-        public BigInteger lastMineTime;
-        public BigInteger thisMineTime;
+        public BigInteger amount;//总挖矿币量
+        public BigInteger price;//挖矿时价格
+        public BigInteger usdtTarget;//金本位多少USDT,单位USDT
+        public BigInteger coinTarget;//币本位多少币
+        public BigInteger usdtCoin;//金本位换算后多少币
+        public BigInteger lastMineTime;//上一次挖矿时间
     }
 }

--
Gitblit v1.9.1