3
3
4
4
import static org .tron .core .config .Parameter .ChainConstant .MAX_ACTIVE_WITNESS_NUM ;
5
5
6
+ import com .alibaba .fastjson .JSONObject ;
6
7
import javax .servlet .http .HttpServletRequest ;
7
8
import javax .servlet .http .HttpServletResponse ;
8
9
import lombok .extern .slf4j .Slf4j ;
9
10
import org .springframework .beans .factory .annotation .Autowired ;
10
11
import org .springframework .stereotype .Component ;
12
+ import org .tron .common .utils .Commons ;
13
+ import org .tron .common .utils .DecodeUtil ;
11
14
import org .tron .core .Wallet ;
12
15
import org .tron .core .exception .AddressNotFound ;
16
+ import org .tron .core .exception .InvalidAddress ;
13
17
import org .tron .protos .Protocol .Account ;
14
18
15
19
@ Component
@@ -24,10 +28,14 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) {
24
28
try {
25
29
double annualizedRateOfReturn = 0 ;
26
30
byte [] address = Util .getAddress (request );
31
+ if (!DecodeUtil .addressValid (address )) {
32
+ throw new InvalidAddress ("Invalid address!" );
33
+ }
27
34
long rewardOfVoteEachBlock = wallet .getRewardOfVoteEachBlock () / 1000000 ;
28
- long rewardOfBlockEachBlock = wallet .getRewardOfBlockEachBlock () / 1000000 ;
35
+ long rewardOfBlockEachBlock = wallet .checkAddress (address )
36
+ ? wallet .getRewardOfBlockEachBlock () / 1000000 : 0 ;
29
37
double srNumber = MAX_ACTIVE_WITNESS_NUM ;
30
- double blockNumberEachDay = wallet .checkAddress ( address ) ? wallet . getBlockNumberEachDay () : 0 ;
38
+ double blockNumberEachDay = wallet .getBlockNumberEachDay ();
31
39
double totalVote ;
32
40
double srVote ;
33
41
double ratio ;
@@ -49,14 +57,19 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) {
49
57
protected void doPost (HttpServletRequest request , HttpServletResponse response ) {
50
58
try {
51
59
PostParams params = PostParams .getPostParams (request );
60
+ String addressStr = JSONObject .parseObject (params .getParams ()).getString ("address" );
61
+ if (!DecodeUtil .addressValid (Commons .decodeFromBase58Check (addressStr ))) {
62
+ throw new InvalidAddress ("Invalid address!" );
63
+ }
52
64
Account .Builder build = Account .newBuilder ();
53
65
JsonFormat .merge (params .getParams (), build , params .isVisible ());
54
66
double annualizedRateOfReturn = 0 ;
55
67
byte [] address = build .getAddress ().toByteArray ();
56
68
long rewardOfVoteEachBlock = wallet .getRewardOfVoteEachBlock () / 1000000 ;
57
- long rewardOfBlockEachBlock = wallet .getRewardOfBlockEachBlock () / 1000000 ;
69
+ long rewardOfBlockEachBlock = wallet .checkAddress (address )
70
+ ? wallet .getRewardOfBlockEachBlock () / 1000000 : 0 ;
58
71
double srNumber = MAX_ACTIVE_WITNESS_NUM ;
59
- double blockNumberEachDay = wallet .checkAddress ( address ) ? wallet . getBlockNumberEachDay () : 0 ;
72
+ double blockNumberEachDay = wallet .getBlockNumberEachDay ();
60
73
double totalVote ;
61
74
double srVote ;
62
75
double ratio ;
0 commit comments