Skip to content

Commit d0aa39c

Browse files
committed
feat(api): optimize api compatibility
1 parent 1a33965 commit d0aa39c

16 files changed

+490
-39
lines changed

chainbase/src/main/java/org/tron/core/capsule/TransactionCapsule.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,10 @@ public static byte[] getOwner(Transaction.Contract contract) {
346346
}
347347
}
348348
return owner.toByteArray();
349+
} catch (InvalidProtocolBufferException invalidProtocolBufferException) {
350+
logger.warn("InvalidProtocolBufferException occurred because {}, please verify the interface "
351+
+ "input parameters", invalidProtocolBufferException.getMessage());
352+
return new byte[0];
349353
} catch (Exception ex) {
350354
logger.error(ex.getMessage());
351355
return new byte[0];

framework/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ dependencies {
8585
compile group: 'org.pf4j', name: 'pf4j', version: '2.5.0'
8686

8787
testImplementation group: 'org.springframework', name: 'spring-test', version: '5.2.0.RELEASE'
88+
testImplementation group: 'org.springframework', name: 'spring-web', version: '5.2.0.RELEASE'
8889

8990
compile group: 'org.zeromq', name: 'jeromq', version: '0.5.3'
9091
compile project(":chainbase")
Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.tron.core.services.http;
22

3+
import java.io.IOException;
34
import javax.servlet.http.HttpServletRequest;
45
import javax.servlet.http.HttpServletResponse;
56
import lombok.extern.slf4j.Slf4j;
@@ -8,29 +9,43 @@
89
import org.tron.api.GrpcAPI.AssetIssueList;
910
import org.tron.core.Wallet;
1011

11-
1212
@Component
1313
@Slf4j(topic = "API")
1414
public class GetAssetIssueListServlet extends RateLimiterServlet {
1515

1616
@Autowired
1717
private Wallet wallet;
1818

19+
@Override
1920
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2021
try {
2122
boolean visible = Util.getVisible(request);
22-
AssetIssueList reply = wallet.getAssetIssueList();
23-
if (reply != null) {
24-
response.getWriter().println(JsonFormat.printToString(reply, visible));
25-
} else {
26-
response.getWriter().println("{}");
27-
}
23+
response(response, visible);
2824
} catch (Exception e) {
2925
Util.processError(e, response);
3026
}
3127
}
3228

29+
@Override
3330
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
34-
doGet(request, response);
31+
try {
32+
PostParams params = PostParams.getPostParams(request);
33+
boolean visible = Util.getVisible(request);
34+
if (!visible) {
35+
visible = params.isVisible();
36+
}
37+
response(response, visible);
38+
} catch (Exception e) {
39+
Util.processError(e, response);
40+
}
41+
}
42+
43+
private void response(HttpServletResponse response, boolean visible) throws IOException {
44+
AssetIssueList reply = wallet.getAssetIssueList();
45+
if (reply != null) {
46+
response.getWriter().println(JsonFormat.printToString(reply, visible));
47+
} else {
48+
response.getWriter().println("{}");
49+
}
3550
}
3651
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2323
try {
2424
boolean visible = Util.getVisible(request);
2525
String ownerAddress = request.getParameter("ownerAddress");
26+
if (ownerAddress == null) {
27+
ownerAddress = request.getParameter("owner_address");
28+
}
2629
if (visible) {
2730
ownerAddress = Util.getHexAddress(ownerAddress);
2831
}

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,21 @@ public class GetBlockByNumServlet extends RateLimiterServlet {
1818
@Autowired
1919
private Wallet wallet;
2020

21+
@Override
2122
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2223
try {
23-
fillResponse(Util.getVisible(request), Long.parseLong(request.getParameter("num")), response);
24+
long num = 0;
25+
String numStr = request.getParameter("num");
26+
if (numStr != null) {
27+
num = Long.parseLong(numStr);
28+
}
29+
fillResponse(Util.getVisible(request), num, response);
2430
} catch (Exception e) {
2531
Util.processError(e, response);
2632
}
2733
}
2834

35+
@Override
2936
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
3037
try {
3138
PostParams params = PostParams.getPostParams(request);

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,15 @@ public class GetCanDelegatedMaxSizeServlet extends RateLimiterServlet {
1818
@Autowired
1919
private Wallet wallet;
2020

21+
@Override
2122
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2223
try {
2324
boolean visible = Util.getVisible(request);
24-
int type = Integer.parseInt(request.getParameter("type"));
25+
int type = 0;
26+
String typeStr = request.getParameter("type");
27+
if (typeStr != null) {
28+
type = Integer.parseInt(typeStr);
29+
}
2530
String ownerAddress = request.getParameter("owner_address");
2631
if (visible) {
2732
ownerAddress = Util.getHexAddress(ownerAddress);
@@ -34,6 +39,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) {
3439
}
3540
}
3641

42+
@Override
3743
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
3844
try {
3945
PostParams params = PostParams.getPostParams(request);

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,29 @@ public class GetCanWithdrawUnfreezeAmountServlet extends RateLimiterServlet {
1818
@Autowired
1919
private Wallet wallet;
2020

21+
@Override
2122
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2223
try {
2324
boolean visible = Util.getVisible(request);
2425
String ownerAddress = request.getParameter("owner_address");
25-
long timestamp = Long.valueOf(request.getParameter("timestamp"));
26+
long timestamp = 0;
27+
String timestampStr = request.getParameter("timestamp");
28+
if (timestampStr != null) {
29+
timestamp = Long.parseLong(timestampStr);
30+
}
2631
if (visible) {
2732
ownerAddress = Util.getHexAddress(ownerAddress);
2833
}
2934
fillResponse(visible,
30-
ByteString.copyFrom(ByteArray.fromHexString(ownerAddress)),
31-
timestamp,
32-
response);
35+
ByteString.copyFrom(ByteArray.fromHexString(ownerAddress)),
36+
timestamp,
37+
response);
3338
} catch (Exception e) {
3439
Util.processError(e, response);
3540
}
3641
}
3742

43+
@Override
3844
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
3945
try {
4046
PostParams params = PostParams.getPostParams(request);
Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.tron.core.services.http;
22

3+
import java.io.IOException;
34
import javax.servlet.http.HttpServletRequest;
45
import javax.servlet.http.HttpServletResponse;
56
import lombok.extern.slf4j.Slf4j;
@@ -8,29 +9,43 @@
89
import org.tron.core.Wallet;
910
import org.tron.protos.Protocol.Block;
1011

11-
1212
@Component
1313
@Slf4j(topic = "API")
1414
public class GetNowBlockServlet extends RateLimiterServlet {
1515

1616
@Autowired
1717
private Wallet wallet;
1818

19+
@Override
1920
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2021
try {
2122
boolean visible = Util.getVisible(request);
22-
Block reply = wallet.getNowBlock();
23-
if (reply != null) {
24-
response.getWriter().println(Util.printBlock(reply, visible));
25-
} else {
26-
response.getWriter().println("{}");
27-
}
23+
response(response, visible);
2824
} catch (Exception e) {
2925
Util.processError(e, response);
3026
}
3127
}
3228

29+
@Override
3330
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
34-
doGet(request, response);
31+
try {
32+
PostParams params = PostParams.getPostParams(request);
33+
boolean visible = Util.getVisible(request);
34+
if (!visible) {
35+
visible = params.isVisible();
36+
}
37+
response(response, visible);
38+
} catch (Exception e) {
39+
Util.processError(e, response);
40+
}
41+
}
42+
43+
private void response(HttpServletResponse response, boolean visible) throws IOException {
44+
Block reply = wallet.getNowBlock();
45+
if (reply != null) {
46+
response.getWriter().println(Util.printBlock(reply, visible));
47+
} else {
48+
response.getWriter().println("{}");
49+
}
3550
}
3651
}
Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.tron.core.services.http;
22

3+
import java.io.IOException;
34
import javax.servlet.http.HttpServletRequest;
45
import javax.servlet.http.HttpServletResponse;
56
import lombok.extern.slf4j.Slf4j;
@@ -8,29 +9,43 @@
89
import org.tron.api.GrpcAPI.NodeList;
910
import org.tron.core.Wallet;
1011

11-
1212
@Component
1313
@Slf4j(topic = "API")
1414
public class ListNodesServlet extends RateLimiterServlet {
1515

1616
@Autowired
1717
private Wallet wallet;
1818

19+
@Override
1920
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2021
try {
2122
boolean visible = Util.getVisible(request);
22-
NodeList reply = wallet.listNodes();
23-
if (reply != null) {
24-
response.getWriter().println(JsonFormat.printToString(reply, visible));
25-
} else {
26-
response.getWriter().println("{}");
27-
}
23+
response(response, visible);
2824
} catch (Exception e) {
2925
Util.processError(e, response);
3026
}
3127
}
3228

29+
@Override
3330
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
34-
doGet(request, response);
31+
try {
32+
PostParams params = PostParams.getPostParams(request);
33+
boolean visible = Util.getVisible(request);
34+
if (!visible) {
35+
visible = params.isVisible();
36+
}
37+
response(response, visible);
38+
} catch (Exception e) {
39+
Util.processError(e, response);
40+
}
41+
}
42+
43+
private void response(HttpServletResponse response, boolean visible) throws IOException {
44+
NodeList reply = wallet.listNodes();
45+
if (reply != null) {
46+
response.getWriter().println(JsonFormat.printToString(reply, visible));
47+
} else {
48+
response.getWriter().println("{}");
49+
}
3550
}
3651
}
Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.tron.core.services.http;
22

3+
import java.io.IOException;
34
import javax.servlet.http.HttpServletRequest;
45
import javax.servlet.http.HttpServletResponse;
56
import lombok.extern.slf4j.Slf4j;
@@ -8,29 +9,43 @@
89
import org.tron.api.GrpcAPI.ProposalList;
910
import org.tron.core.Wallet;
1011

11-
1212
@Component
1313
@Slf4j(topic = "API")
1414
public class ListProposalsServlet extends RateLimiterServlet {
1515

1616
@Autowired
1717
private Wallet wallet;
1818

19+
@Override
1920
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
2021
try {
2122
boolean visible = Util.getVisible(request);
22-
ProposalList reply = wallet.getProposalList();
23-
if (reply != null) {
24-
response.getWriter().println(JsonFormat.printToString(reply, visible));
25-
} else {
26-
response.getWriter().println("{}");
27-
}
23+
response(response, visible);
2824
} catch (Exception e) {
2925
Util.processError(e, response);
3026
}
3127
}
3228

29+
@Override
3330
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
34-
doGet(request, response);
31+
try {
32+
PostParams params = PostParams.getPostParams(request);
33+
boolean visible = Util.getVisible(request);
34+
if (!visible) {
35+
visible = params.isVisible();
36+
}
37+
response(response, visible);
38+
} catch (Exception e) {
39+
Util.processError(e, response);
40+
}
41+
}
42+
43+
private void response(HttpServletResponse response, boolean visible) throws IOException {
44+
ProposalList reply = wallet.getProposalList();
45+
if (reply != null) {
46+
response.getWriter().println(JsonFormat.printToString(reply, visible));
47+
} else {
48+
response.getWriter().println("{}");
49+
}
3550
}
3651
}

0 commit comments

Comments
 (0)