Skip to content

Commit e517c50

Browse files
authored
Merge pull request tronprotocol#2705 from Parachuteuk/develop
duplicate code improvement
2 parents 02e6ad8 + ba24a70 commit e517c50

File tree

5 files changed

+64
-85
lines changed

5 files changed

+64
-85
lines changed

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

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2323
try {
2424
boolean visible = Util.getVisible(request);
2525
long getNum = Long.parseLong(request.getParameter("num"));
26-
if (getNum > 0 && getNum < BLOCK_LIMIT_NUM) {
27-
BlockList reply = wallet.getBlockByLatestNum(getNum);
28-
if (reply != null) {
29-
response.getWriter().println(Util.printBlockList(reply, visible));
30-
return;
31-
}
32-
}
33-
response.getWriter().println("{}");
26+
writeResponse(getNum, visible, response);
3427
} catch (Exception e) {
3528
Util.processError(e, response);
3629
}
@@ -45,16 +38,25 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
4538
NumberMessage.Builder build = NumberMessage.newBuilder();
4639
JsonFormat.merge(input, build, visible);
4740
long getNum = build.getNum();
48-
if (getNum > 0 && getNum < BLOCK_LIMIT_NUM) {
49-
BlockList reply = wallet.getBlockByLatestNum(getNum);
50-
if (reply != null) {
51-
response.getWriter().println(Util.printBlockList(reply, visible));
52-
return;
53-
}
54-
}
55-
response.getWriter().println("{}");
41+
writeResponse(getNum, visible, response);
5642
} catch (Exception e) {
5743
Util.processError(e, response);
5844
}
5945
}
46+
47+
private void writeResponse(long getNum, boolean visible,
48+
HttpServletResponse response)
49+
throws Exception {
50+
if (getNum > 0 && getNum < BLOCK_LIMIT_NUM) {
51+
BlockList reply = wallet.getBlockByLatestNum(getNum);
52+
if (reply != null) {
53+
response.getWriter().println(Util.printBlockList(reply, visible));
54+
} else {
55+
response.getWriter().println("{}");
56+
}
57+
} else {
58+
response.getWriter().println("{}");
59+
}
60+
}
61+
6062
}

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

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2424
boolean visible = Util.getVisible(request);
2525
long startNum = Long.parseLong(request.getParameter("startNum"));
2626
long endNum = Long.parseLong(request.getParameter("endNum"));
27-
if (endNum > 0 && endNum > startNum && endNum - startNum <= BLOCK_LIMIT_NUM) {
28-
BlockList reply = wallet.getBlocksByLimitNext(startNum, endNum - startNum);
29-
if (reply != null) {
30-
response.getWriter().println(Util.printBlockList(reply, visible));
31-
return;
32-
}
33-
}
34-
response.getWriter().println("{}");
27+
writeResponse(endNum, startNum, visible, response);
3528
} catch (Exception e) {
3629
Util.processError(e, response);
3730
}
@@ -47,16 +40,25 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
4740
JsonFormat.merge(input, build, visible);
4841
long startNum = build.getStartNum();
4942
long endNum = build.getEndNum();
50-
if (endNum > 0 && endNum > startNum && endNum - startNum <= BLOCK_LIMIT_NUM) {
51-
BlockList reply = wallet.getBlocksByLimitNext(startNum, endNum - startNum);
52-
if (reply != null) {
53-
response.getWriter().println(Util.printBlockList(reply, visible));
54-
return;
55-
}
56-
}
57-
response.getWriter().println("{}");
43+
writeResponse(endNum, startNum, visible, response);
5844
} catch (Exception e) {
5945
Util.processError(e, response);
6046
}
6147
}
48+
49+
private void writeResponse(long endNum, long startNum, boolean visible,
50+
HttpServletResponse response)
51+
throws Exception {
52+
if (endNum > 0 && endNum > startNum && endNum - startNum <= BLOCK_LIMIT_NUM) {
53+
BlockList reply = wallet.getBlocksByLimitNext(startNum, endNum - startNum);
54+
if (reply != null) {
55+
response.getWriter().println(Util.printBlockList(reply, visible));
56+
} else {
57+
response.getWriter().println("{}");
58+
}
59+
} else {
60+
response.getWriter().println("{}");
61+
}
62+
}
63+
6264
}

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

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class GetBrokerageServlet extends RateLimiterServlet {
2424
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2525
try {
2626
int value = 0;
27-
byte[] address = getAddress(request);
27+
byte[] address = Util.getAddress(request);
2828
long cycle = manager.getDynamicPropertiesStore().getCurrentCycleNumber();
2929
if (address != null) {
3030
value = manager.getDelegationStore().getBrokerage(cycle, address);
@@ -39,24 +39,4 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
3939
doGet(request, response);
4040
}
4141

42-
private byte[] getAddress(HttpServletRequest request) throws Exception {
43-
byte[] address = null;
44-
String addressParam = "address";
45-
String addressStr = request.getParameter(addressParam);
46-
if (StringUtils.isBlank(addressStr)) {
47-
String input = request.getReader().lines()
48-
.collect(Collectors.joining(System.lineSeparator()));
49-
Util.checkBodySize(input);
50-
JSONObject jsonObject = JSONObject.parseObject(input);
51-
addressStr = jsonObject.getString(addressParam);
52-
}
53-
if (StringUtils.isNotBlank(addressStr)) {
54-
if (StringUtils.startsWith(addressStr, Constant.ADD_PRE_FIX_STRING_MAINNET)) {
55-
address = Hex.decode(addressStr);
56-
} else {
57-
address = Wallet.decodeFromBase58Check(addressStr);
58-
}
59-
}
60-
return address;
61-
}
6242
}

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

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class GetRewardServlet extends RateLimiterServlet {
2525
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2626
try {
2727
long value = 0;
28-
byte[] address = getAddress(request);
28+
byte[] address = Util.getAddress(request);
2929
if (address != null) {
3030
value = manager.getDelegationService().queryReward(address);
3131
}
@@ -44,24 +44,4 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
4444
doGet(request, response);
4545
}
4646

47-
private byte[] getAddress(HttpServletRequest request) throws Exception {
48-
byte[] address = null;
49-
String addressParam = "address";
50-
String addressStr = request.getParameter(addressParam);
51-
if (StringUtils.isBlank(addressStr)) {
52-
String input = request.getReader().lines()
53-
.collect(Collectors.joining(System.lineSeparator()));
54-
Util.checkBodySize(input);
55-
JSONObject jsonObject = JSONObject.parseObject(input);
56-
addressStr = jsonObject.getString(addressParam);
57-
}
58-
if (StringUtils.isNotBlank(addressStr)) {
59-
if (StringUtils.startsWith(addressStr, Constant.ADD_PRE_FIX_STRING_MAINNET)) {
60-
address = Hex.decode(addressStr);
61-
} else {
62-
address = Wallet.decodeFromBase58Check(addressStr);
63-
}
64-
}
65-
return address;
66-
}
6747
}

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

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.nio.charset.Charset;
1515
import java.security.InvalidParameterException;
1616
import java.util.List;
17+
import java.util.stream.Collectors;
1718
import javax.servlet.http.HttpServletRequest;
1819
import javax.servlet.http.HttpServletResponse;
1920
import lombok.extern.slf4j.Slf4j;
@@ -32,6 +33,7 @@
3233
import org.tron.common.utils.DecodeUtil;
3334
import org.tron.common.utils.Hash;
3435
import org.tron.common.utils.Sha256Hash;
36+
import org.tron.core.Constant;
3537
import org.tron.core.Wallet;
3638
import org.tron.core.actuator.TransactionFactory;
3739
import org.tron.core.capsule.BlockCapsule;
@@ -44,6 +46,7 @@
4446
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
4547
import org.tron.protos.contract.SmartContractOuterClass.CreateSmartContract;
4648

49+
4750
@Slf4j(topic = "API")
4851
public class Util {
4952

@@ -149,24 +152,21 @@ public static String printTransactionExtention(TransactionExtention transactionE
149152
public static String printTransactionSignWeight(TransactionSignWeight transactionSignWeight,
150153
boolean selfType) {
151154
String string = JsonFormat.printToString(transactionSignWeight, selfType);
152-
JSONObject jsonObject = JSONObject.parseObject(string);
153-
JSONObject jsonObjectExt = jsonObject.getJSONObject(TRANSACTION);
154-
jsonObjectExt
155-
.put(TRANSACTION,
156-
printTransactionToJSON(transactionSignWeight.getTransaction().getTransaction(),
157-
selfType));
158-
jsonObject.put(TRANSACTION, jsonObjectExt);
159-
return jsonObject.toJSONString();
155+
return printTxInfo(transactionSignWeight.getTransaction().getTransaction(), string, selfType);
160156
}
161157

162158
public static String printTransactionApprovedList(
163159
TransactionApprovedList transactionApprovedList, boolean selfType) {
164160
String string = JsonFormat.printToString(transactionApprovedList, selfType);
165-
JSONObject jsonObject = JSONObject.parseObject(string);
161+
return printTxInfo(transactionApprovedList.getTransaction().getTransaction(), string, selfType);
162+
}
163+
164+
public static String printTxInfo(Transaction tx, String str, boolean selfType) {
165+
JSONObject jsonObject = JSONObject.parseObject(str);
166166
JSONObject jsonObjectExt = jsonObject.getJSONObject(TRANSACTION);
167167
jsonObjectExt.put(TRANSACTION,
168-
printTransactionToJSON(transactionApprovedList.getTransaction().getTransaction(),
169-
selfType));
168+
printTransactionToJSON(tx,
169+
selfType));
170170
jsonObject.put(TRANSACTION, jsonObjectExt);
171171
return jsonObject.toJSONString();
172172
}
@@ -437,4 +437,19 @@ public static void printAccount(Account reply, HttpServletResponse response, Boo
437437
}
438438
}
439439

440+
public static byte[] getAddress(HttpServletRequest request) throws Exception {
441+
byte[] address = null;
442+
String addressParam = "address";
443+
String addressStr = request.getParameter(addressParam);
444+
if (org.apache.commons.lang3.StringUtils.isNotBlank(addressStr)) {
445+
if (org.apache.commons.lang3.StringUtils.startsWith(addressStr,
446+
Constant.ADD_PRE_FIX_STRING_MAINNET)) {
447+
address = Hex.decode(addressStr);
448+
} else {
449+
address = Wallet.decodeFromBase58Check(addressStr);
450+
}
451+
}
452+
return address;
453+
}
454+
440455
}

0 commit comments

Comments
 (0)