Skip to content

Commit 3a1187d

Browse files
committed
remove getSRAnnualizedRateOfReturnServlet and fix bug
1 parent 0ca7128 commit 3a1187d

File tree

5 files changed

+38
-105
lines changed

5 files changed

+38
-105
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.tron.core.exception;
2+
3+
public class AddressNotFound extends StoreException {
4+
5+
public AddressNotFound() {
6+
super();
7+
}
8+
9+
public AddressNotFound(String message) {
10+
super(message);
11+
}
12+
}

framework/src/main/java/org/tron/core/Wallet.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import com.google.common.collect.Range;
3434
import com.google.protobuf.ByteString;
3535
import com.google.protobuf.InvalidProtocolBufferException;
36-
import java.math.BigDecimal;
3736
import java.security.SignatureException;
3837
import java.util.ArrayList;
3938
import java.util.HashMap;
@@ -104,6 +103,7 @@
104103
import org.tron.common.zksnark.LibrustzcashParam.CrhIvkParams;
105104
import org.tron.common.zksnark.LibrustzcashParam.IvkToPkdParams;
106105
import org.tron.common.zksnark.LibrustzcashParam.SpendSigParams;
106+
import org.tron.consensus.ConsensusDelegate;
107107
import org.tron.core.actuator.Actuator;
108108
import org.tron.core.actuator.ActuatorFactory;
109109
import org.tron.core.actuator.VMActuator;
@@ -206,6 +206,8 @@ public class Wallet {
206206
private TronNetDelegate tronNetDelegate;
207207
@Autowired
208208
private Manager dbManager;
209+
@Autowired
210+
private ConsensusDelegate consensusDelegate;
209211

210212
@Autowired
211213
private ChainBaseManager chainBaseManager;
@@ -2823,10 +2825,16 @@ public double getAnnualizedRateOfReturn(long rewardOfBlockEachBlock, double bloc
28232825
return annualizedRateOfReturn;
28242826
}
28252827

2826-
public long queryCurrentCycle() {
2827-
long current = dbManager.getDynamicPropertiesStore()
2828-
.getCurrentCycleNumber();
2829-
return current;
2828+
public boolean checkAddress(byte[] address) {
2829+
return consensusDelegate.getActiveWitnesses().contains(ByteString.copyFrom(address));
2830+
}
2831+
2832+
public boolean existAddress(byte[] address) {
2833+
WitnessCapsule witnessCapsule = dbManager.getWitnessStore().get(address);
2834+
if (witnessCapsule != null) {
2835+
return true;
2836+
}
2837+
return false;
28302838
}
28312839
}
28322840

framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,6 @@ public class FullNodeHttpApiService implements Service {
246246
@Autowired
247247
private GetCurrentCycleService getCurrentCycleServlet;
248248
@Autowired
249-
private GetSRAnnualizedRateOfReturnServlet getSRAnnualizedRateOfReturnServlet;
250-
@Autowired
251249
private GetNowSRAnnualizedRateOfReturnServlet getNowSRAnnualizedRateOfReturnServlet;
252250

253251
private static String getParamsFile(String fileName) {
@@ -458,8 +456,6 @@ public void start() {
458456
"/wallet/getSRProfitByCycleServlet");
459457
context.addServlet(new ServletHolder(getSRDividendsByCycleServlet),
460458
"/wallet/getSRDividendsByCycleServlet");
461-
context.addServlet(new ServletHolder(getSRAnnualizedRateOfReturnServlet),
462-
"/wallet/getSRAnnualizedRateOfReturnServlet");
463459
context.addServlet(new ServletHolder(getNowSRAnnualizedRateOfReturnServlet),
464460
"/wallet/getNowSRAnnualizedRateOfReturnServlet");
465461
context.addServlet(new ServletHolder(getAccountLastUnwithdrawRewardServlet),

framework/src/main/java/org/tron/core/services/http/GetNowSRAnnualizedRateOfReturnServlet.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11

22
package org.tron.core.services.http;
33

4-
import com.alibaba.fastjson.JSONObject;
5-
import java.util.stream.Collectors;
4+
import static org.tron.core.config.Parameter.ChainConstant.MAX_ACTIVE_WITNESS_NUM;
5+
66
import javax.servlet.http.HttpServletRequest;
77
import javax.servlet.http.HttpServletResponse;
88
import lombok.extern.slf4j.Slf4j;
99
import org.springframework.beans.factory.annotation.Autowired;
1010
import org.springframework.stereotype.Component;
1111
import org.tron.core.Wallet;
12+
import org.tron.core.exception.AddressNotFound;
1213
import org.tron.protos.Protocol.Account;
1314

1415
@Component
@@ -25,15 +26,17 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2526
byte[] address = Util.getAddress(request);
2627
long rewardOfVoteEachBlock = wallet.getRewardOfVoteEachBlock() / 1000000;
2728
long rewardOfBlockEachBlock = wallet.getRewardOfBlockEachBlock() / 1000000;
28-
double srNumber = 27;
29-
double blockNumberEachDay = wallet.getBlockNumberEachDay();
29+
double srNumber = MAX_ACTIVE_WITNESS_NUM;
30+
double blockNumberEachDay = wallet.checkAddress(address) ? wallet.getBlockNumberEachDay() : 0;
3031
double totalVote;
3132
double srVote;
3233
double ratio;
34+
if (wallet.existAddress(address)) {
35+
throw new AddressNotFound("address not found!");
36+
}
3337
srVote = wallet.queryNowVoteNumber(address);
3438
totalVote = wallet.queryNowTotalVoteNumber();
3539
ratio = wallet.queryNowSrRatio(address);
36-
3740
annualizedRateOfReturn = wallet.getAnnualizedRateOfReturn(rewardOfBlockEachBlock,
3841
blockNumberEachDay, srNumber,srVote,totalVote,rewardOfVoteEachBlock,ratio);
3942
response.getWriter().println("{\"annualizedRateOfReturn\": " + annualizedRateOfReturn + "}");
@@ -52,11 +55,14 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
5255
byte[] address = build.getAddress().toByteArray();
5356
long rewardOfVoteEachBlock = wallet.getRewardOfVoteEachBlock() / 1000000;
5457
long rewardOfBlockEachBlock = wallet.getRewardOfBlockEachBlock() / 1000000;
55-
double srNumber = 27;
56-
double blockNumberEachDay = wallet.getBlockNumberEachDay();
58+
double srNumber = MAX_ACTIVE_WITNESS_NUM;
59+
double blockNumberEachDay = wallet.checkAddress(address) ? wallet.getBlockNumberEachDay() : 0;
5760
double totalVote;
5861
double srVote;
5962
double ratio;
63+
if (!wallet.existAddress(address)) {
64+
throw new AddressNotFound("address not found!");
65+
}
6066
srVote = wallet.queryNowVoteNumber(address);
6167
totalVote = wallet.queryNowTotalVoteNumber();
6268
ratio = wallet.queryNowSrRatio(address);

framework/src/main/java/org/tron/core/services/http/GetSRAnnualizedRateOfReturnServlet.java

Lines changed: 0 additions & 89 deletions
This file was deleted.

0 commit comments

Comments
 (0)