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