From 91127c20f3a282b45916a43878015618d432f34f Mon Sep 17 00:00:00 2001 From: halibobo1205 Date: Fri, 7 Aug 2026 17:19:32 +0800 Subject: [PATCH 01/27] fix(build): skip errorprone publishing on JDK 8 --- errorprone/build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/errorprone/build.gradle b/errorprone/build.gradle index f8a634b7edc..d5c5e91b362 100644 --- a/errorprone/build.gradle +++ b/errorprone/build.gradle @@ -2,6 +2,8 @@ if (!JavaVersion.current().isJava11Compatible()) { // ErrorProne core requires JDK 11+; skip this module on JDK 8 tasks.withType(JavaCompile).configureEach { enabled = false } tasks.withType(Jar).configureEach { enabled = false } + // No jar is produced, so the root maven-publish setup must not try to publish one + tasks.withType(AbstractPublishToMaven).configureEach { enabled = false } } else { dependencies { compileOnly "com.google.errorprone:error_prone_annotations:${errorproneVersion}" From d0d04251b17227094b00756372f094bd42c19d55 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Mon, 3 Aug 2026 15:17:23 +0800 Subject: [PATCH 02/27] refactor(http): add cursor filters on solidity and pbft http ports --- .../services/filter/PbftCursorFilter.java | 15 ++++ .../services/filter/SolidityCursorFilter.java | 15 ++++ .../services/filter/WalletCursorFilter.java | 57 +++++++++++++++ .../http/PBFT/HttpApiOnPBFTService.java | 7 ++ .../solidity/HttpApiOnSolidityService.java | 8 +++ .../filter/WalletCursorFilterTest.java | 69 +++++++++++++++++++ 6 files changed, 171 insertions(+) create mode 100644 framework/src/main/java/org/tron/core/services/filter/PbftCursorFilter.java create mode 100644 framework/src/main/java/org/tron/core/services/filter/SolidityCursorFilter.java create mode 100644 framework/src/main/java/org/tron/core/services/filter/WalletCursorFilter.java create mode 100644 framework/src/test/java/org/tron/core/services/filter/WalletCursorFilterTest.java diff --git a/framework/src/main/java/org/tron/core/services/filter/PbftCursorFilter.java b/framework/src/main/java/org/tron/core/services/filter/PbftCursorFilter.java new file mode 100644 index 00000000000..7bc7f4fa712 --- /dev/null +++ b/framework/src/main/java/org/tron/core/services/filter/PbftCursorFilter.java @@ -0,0 +1,15 @@ +package org.tron.core.services.filter; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.tron.core.db.Manager; +import org.tron.core.db2.core.Chainbase; + +@Component +public class PbftCursorFilter extends WalletCursorFilter { + + @Autowired + public PbftCursorFilter(Manager dbManager) { + super(dbManager, Chainbase.Cursor.PBFT); + } +} diff --git a/framework/src/main/java/org/tron/core/services/filter/SolidityCursorFilter.java b/framework/src/main/java/org/tron/core/services/filter/SolidityCursorFilter.java new file mode 100644 index 00000000000..992b1a7548c --- /dev/null +++ b/framework/src/main/java/org/tron/core/services/filter/SolidityCursorFilter.java @@ -0,0 +1,15 @@ +package org.tron.core.services.filter; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.tron.core.db.Manager; +import org.tron.core.db2.core.Chainbase; + +@Component +public class SolidityCursorFilter extends WalletCursorFilter { + + @Autowired + public SolidityCursorFilter(Manager dbManager) { + super(dbManager, Chainbase.Cursor.SOLIDITY); + } +} diff --git a/framework/src/main/java/org/tron/core/services/filter/WalletCursorFilter.java b/framework/src/main/java/org/tron/core/services/filter/WalletCursorFilter.java new file mode 100644 index 00000000000..0b659fdf478 --- /dev/null +++ b/framework/src/main/java/org/tron/core/services/filter/WalletCursorFilter.java @@ -0,0 +1,57 @@ +package org.tron.core.services.filter; + +import java.io.IOException; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import org.tron.core.db.Manager; +import org.tron.core.db2.core.Chainbase; + +/** + * Selects which state view (HEAD / SOLIDITY / PBFT) the http servlets on this port read from. + * + *

The read cursor is a per-thread setting ({@code ThreadLocal} in {@code Chainbase}): it only + * decides from which snapshot the current thread starts its reads, and has no effect on any + * other thread. This filter sets the cursor before the servlet runs, so the same stateless + * servlet beans can serve {@code /wallet} (HEAD), {@code /walletsolidity} (SOLIDITY) and + * {@code /walletpbft} (PBFT) without per-port subclasses. + * + *

The cursor is always reset to HEAD in a finally block: jetty pools its worker threads, and + * a leftover cursor would leak into the next request served by the same thread. Only read-only + * endpoints may be mounted behind this filter — write paths must run with the HEAD cursor. + */ +public abstract class WalletCursorFilter implements Filter { + + private final Manager dbManager; + private final Chainbase.Cursor cursor; + + protected WalletCursorFilter(Manager dbManager, Chainbase.Cursor cursor) { + this.dbManager = dbManager; + this.cursor = cursor; + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + // do nothing + } + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, + FilterChain filterChain) throws IOException, ServletException { + try { + // for PBFT the offset (head - pbft) is computed inside Manager#setCursor per request + dbManager.setCursor(cursor); + filterChain.doFilter(servletRequest, servletResponse); + } finally { + dbManager.resetCursor(); + } + } + + @Override + public void destroy() { + // do nothing + } +} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java index c0616c2ae78..25ccbdd0aee 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java @@ -11,6 +11,7 @@ import org.tron.core.config.args.Args; import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; +import org.tron.core.services.filter.PbftCursorFilter; import org.tron.core.services.interfaceOnPBFT.http.EstimateEnergyOnPBFTServlet; import org.tron.core.services.interfaceOnPBFT.http.GetAccountByIdOnPBFTServlet; import org.tron.core.services.interfaceOnPBFT.http.GetAccountOnPBFTServlet; @@ -128,6 +129,8 @@ public class HttpApiOnPBFTService extends HttpService { private LiteFnQueryHttpFilter liteFnQueryHttpFilter; @Autowired private HttpApiAccessFilter httpApiAccessFilter; + @Autowired + private PbftCursorFilter pbftCursorFilter; @Autowired private GetMarketOrderByAccountOnPBFTServlet getMarketOrderByAccountOnPBFTServlet; @@ -274,5 +277,9 @@ protected void addFilter(ServletContextHandler context) { // api access filter context.addFilter(new FilterHolder(httpApiAccessFilter), "/*", EnumSet.allOf(DispatcherType.class)); + + // every request on this port reads the PBFT state view + context.addFilter(new FilterHolder(pbftCursorFilter), "/*", + EnumSet.allOf(DispatcherType.class)); } } diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java index 33e325bd578..4c2abeb267f 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java @@ -11,6 +11,7 @@ import org.tron.core.config.args.Args; import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; +import org.tron.core.services.filter.SolidityCursorFilter; import org.tron.core.services.interfaceOnSolidity.http.EstimateEnergyOnSolidityServlet; import org.tron.core.services.interfaceOnSolidity.http.GetAccountByIdOnSolidityServlet; import org.tron.core.services.interfaceOnSolidity.http.GetAccountOnSolidityServlet; @@ -174,6 +175,9 @@ public class HttpApiOnSolidityService extends HttpService { @Autowired private HttpApiAccessFilter httpApiAccessFilter; + @Autowired + private SolidityCursorFilter solidityCursorFilter; + @Autowired private GetBlockOnSolidityServlet getBlockOnSolidityServlet; @@ -304,5 +308,9 @@ protected void addFilter(ServletContextHandler context) { context.getServletHandler().getFilterMappings()[1] .setPathSpecs(new String[] {"/walletsolidity/*", "/wallet/getnodeinfo"}); + + // every request on this port reads the SOLIDITY state view + context.addFilter(new FilterHolder(solidityCursorFilter), "/*", + EnumSet.allOf(DispatcherType.class)); } } diff --git a/framework/src/test/java/org/tron/core/services/filter/WalletCursorFilterTest.java b/framework/src/test/java/org/tron/core/services/filter/WalletCursorFilterTest.java new file mode 100644 index 00000000000..44de7acbf20 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/filter/WalletCursorFilterTest.java @@ -0,0 +1,69 @@ +package org.tron.core.services.filter; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.inOrder; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.InOrder; +import org.tron.core.db.Manager; +import org.tron.core.db2.core.Chainbase; + +public class WalletCursorFilterTest { + + private final Manager dbManager = mock(Manager.class); + private final ServletRequest request = mock(ServletRequest.class); + private final ServletResponse response = mock(ServletResponse.class); + + @Test + public void testSolidityFilterSetsAndResetsCursorAroundChain() throws Exception { + FilterChain chain = mock(FilterChain.class); + SolidityCursorFilter filter = new SolidityCursorFilter(dbManager); + + filter.doFilter(request, response, chain); + + InOrder order = inOrder(dbManager, chain); + order.verify(dbManager).setCursor(Chainbase.Cursor.SOLIDITY); + order.verify(chain).doFilter(request, response); + order.verify(dbManager).resetCursor(); + order.verifyNoMoreInteractions(); + } + + @Test + public void testPbftFilterSetsAndResetsCursorAroundChain() throws Exception { + FilterChain chain = mock(FilterChain.class); + PbftCursorFilter filter = new PbftCursorFilter(dbManager); + + filter.doFilter(request, response, chain); + + InOrder order = inOrder(dbManager, chain); + order.verify(dbManager).setCursor(Chainbase.Cursor.PBFT); + order.verify(chain).doFilter(request, response); + order.verify(dbManager).resetCursor(); + order.verifyNoMoreInteractions(); + } + + @Test + public void testCursorResetEvenIfChainThrows() throws Exception { + FilterChain chain = mock(FilterChain.class); + doThrow(new ServletException("boom")).when(chain).doFilter(any(), any()); + SolidityCursorFilter filter = new SolidityCursorFilter(dbManager); + + try { + filter.doFilter(request, response, chain); + Assert.fail("expected ServletException"); + } catch (ServletException expected) { + Assert.assertEquals("boom", expected.getMessage()); + } + + verify(dbManager).setCursor(Chainbase.Cursor.SOLIDITY); + verify(dbManager).resetCursor(); + } +} From 2efd3a135498e3d85d407f9501274c674a55d37d Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 4 Aug 2026 15:14:41 +0800 Subject: [PATCH 03/27] refactor(http): serve solidity http endpoints with base servlets --- .../http/EstimateEnergyOnSolidityServlet.java | 33 -- .../http/GetAccountByIdOnSolidityServlet.java | 25 -- .../http/GetAccountOnSolidityServlet.java | 26 -- .../GetAssetIssueByIdOnSolidityServlet.java | 25 -- .../GetAssetIssueByNameOnSolidityServlet.java | 25 -- ...AssetIssueListByNameOnSolidityServlet.java | 25 -- .../GetAssetIssueListOnSolidityServlet.java | 26 -- ...ailableUnfreezeCountOnSolidityServlet.java | 29 -- .../GetBandwidthPricesOnSolidityServlet.java | 28 -- .../http/GetBlockByIdOnSolidityServlet.java | 25 -- .../GetBlockByLatestNumOnSolidityServlet.java | 26 -- .../GetBlockByLimitNextOnSolidityServlet.java | 25 -- .../http/GetBlockByNumOnSolidityServlet.java | 25 -- .../http/GetBlockOnSolidityServlet.java | 26 -- .../http/GetBrokerageOnSolidityServlet.java | 26 -- .../http/GetBurnTrxOnSolidityServlet.java | 26 -- ...tCanDelegatedMaxSizeOnSolidityServlet.java | 29 -- ...thdrawUnfreezeAmountOnSolidityServlet.java | 30 -- ...ResourceAccountIndexOnSolidityServlet.java | 26 -- ...sourceAccountIndexV2OnSolidityServlet.java | 26 -- ...GetDelegatedResourceOnSolidityServlet.java | 29 -- ...tDelegatedResourceV2OnSolidityServlet.java | 29 -- .../GetEnergyPricesOnSolidityServlet.java | 28 -- .../GetExchangeByIdOnSolidityServlet.java | 26 -- ...MarketOrderByAccountOnSolidityServlet.java | 26 -- .../GetMarketOrderByIdOnSolidityServlet.java | 26 -- ...arketOrderListByPairOnSolidityServlet.java | 26 -- .../GetMarketPairListOnSolidityServlet.java | 26 -- ...GetMarketPriceByPairOnSolidityServlet.java | 26 -- ...erkleTreeVoucherInfoOnSolidityServlet.java | 26 -- .../http/GetNodeInfoOnSolidityServlet.java | 26 -- .../http/GetNowBlockOnSolidityServlet.java | 26 -- ...inatedAssetIssueListOnSolidityServlet.java | 26 -- ...inatedNowWitnessListOnSolidityServlet.java | 24 -- .../http/GetRewardOnSolidityServlet.java | 28 -- ...ctionCountByBlockNumOnSolidityServlet.java | 26 -- ...actionInfoByBlockNumOnSolidityServlet.java | 26 -- ...C20ContractNoteSpentOnSolidityServlet.java | 28 -- .../http/IsSpendOnSolidityServlet.java | 26 -- .../http/ListExchangesOnSolidityServlet.java | 26 -- .../http/ListWitnessesOnSolidityServlet.java | 26 -- ...ScanAndMarkNoteByIvkOnSolidityServlet.java | 26 -- .../http/ScanNoteByIvkOnSolidityServlet.java | 26 -- .../http/ScanNoteByOvkOnSolidityServlet.java | 26 -- ...eldedTRC20NotesByIvkOnSolidityServlet.java | 28 -- ...eldedTRC20NotesByOvkOnSolidityServlet.java | 28 -- ...ggerConstantContractOnSolidityServlet.java | 33 -- .../GetTransactionByIdOnSolidityServlet.java | 25 -- ...tTransactionInfoByIdOnSolidityServlet.java | 28 -- .../solidity/HttpApiOnSolidityService.java | 295 ++++++++---------- ...tBandwidthPricesOnSolidityServletTest.java | 57 ---- .../GetEnergyPricesOnSolidityServletTest.java | 57 ---- 52 files changed, 134 insertions(+), 1583 deletions(-) delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/EstimateEnergyOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAccountByIdOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAccountOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueByIdOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueByNameOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueListByNameOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueListOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAvailableUnfreezeCountOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBandwidthPricesOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByIdOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByLatestNumOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByLimitNextOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByNumOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBrokerageOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBurnTrxOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetCanDelegatedMaxSizeOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetCanWithdrawUnfreezeAmountOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceAccountIndexOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceAccountIndexV2OnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceV2OnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetEnergyPricesOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetExchangeByIdOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderByAccountOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderByIdOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderListByPairOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketPairListOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketPriceByPairOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMerkleTreeVoucherInfoOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetNodeInfoOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetNowBlockOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetPaginatedAssetIssueListOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetPaginatedNowWitnessListOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetRewardOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetTransactionCountByBlockNumOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetTransactionInfoByBlockNumOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/IsShieldedTRC20ContractNoteSpentOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/IsSpendOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ListExchangesOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ListWitnessesOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanAndMarkNoteByIvkOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanNoteByIvkOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanNoteByOvkOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanShieldedTRC20NotesByIvkOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanShieldedTRC20NotesByOvkOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/TriggerConstantContractOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/GetTransactionByIdOnSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/GetTransactionInfoByIdOnSolidityServlet.java delete mode 100644 framework/src/test/java/org/tron/core/services/interfaceOnSolidity/http/GetBandwidthPricesOnSolidityServletTest.java delete mode 100644 framework/src/test/java/org/tron/core/services/interfaceOnSolidity/http/GetEnergyPricesOnSolidityServletTest.java diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/EstimateEnergyOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/EstimateEnergyOnSolidityServlet.java deleted file mode 100644 index e9e403c776b..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/EstimateEnergyOnSolidityServlet.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import java.io.IOException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.EstimateEnergyServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class EstimateEnergyOnSolidityServlet extends EstimateEnergyServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> { - try { - super.doPost(request, response); - } catch (IOException e) { - logger.error("EstimateEnergyOnSolidityServlet Exception", e); - } - }); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAccountByIdOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAccountByIdOnSolidityServlet.java deleted file mode 100644 index ce47e679d0a..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAccountByIdOnSolidityServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAccountByIdServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetAccountByIdOnSolidityServlet extends GetAccountByIdServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAccountOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAccountOnSolidityServlet.java deleted file mode 100644 index 1cb02b77336..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAccountOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAccountServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetAccountOnSolidityServlet extends GetAccountServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueByIdOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueByIdOnSolidityServlet.java deleted file mode 100644 index f3173972407..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueByIdOnSolidityServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAssetIssueByIdServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetAssetIssueByIdOnSolidityServlet extends GetAssetIssueByIdServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueByNameOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueByNameOnSolidityServlet.java deleted file mode 100644 index 101e0f1e4ae..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueByNameOnSolidityServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAssetIssueByNameServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetAssetIssueByNameOnSolidityServlet extends GetAssetIssueByNameServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueListByNameOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueListByNameOnSolidityServlet.java deleted file mode 100644 index d21cc9c940d..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueListByNameOnSolidityServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAssetIssueListByNameServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetAssetIssueListByNameOnSolidityServlet extends GetAssetIssueListByNameServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueListOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueListOnSolidityServlet.java deleted file mode 100644 index 76a2e70d70c..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAssetIssueListOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAssetIssueListServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetAssetIssueListOnSolidityServlet extends GetAssetIssueListServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAvailableUnfreezeCountOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAvailableUnfreezeCountOnSolidityServlet.java deleted file mode 100644 index 218164fffb0..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetAvailableUnfreezeCountOnSolidityServlet.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.Wallet; -import org.tron.core.services.http.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetAvailableUnfreezeCountOnSolidityServlet extends GetAvailableUnfreezeCountServlet { - - @Autowired - private Wallet wallet; - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBandwidthPricesOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBandwidthPricesOnSolidityServlet.java deleted file mode 100644 index bb2fca37a97..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBandwidthPricesOnSolidityServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBandwidthPricesServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetBandwidthPricesOnSolidityServlet extends GetBandwidthPricesServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} - diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByIdOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByIdOnSolidityServlet.java deleted file mode 100644 index 16192e2f484..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByIdOnSolidityServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockByIdServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetBlockByIdOnSolidityServlet extends GetBlockByIdServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByLatestNumOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByLatestNumOnSolidityServlet.java deleted file mode 100644 index 34b5f37dcf5..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByLatestNumOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockByLatestNumServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetBlockByLatestNumOnSolidityServlet extends GetBlockByLatestNumServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } - -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByLimitNextOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByLimitNextOnSolidityServlet.java deleted file mode 100644 index 36de59a9e7e..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByLimitNextOnSolidityServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockByLimitNextServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetBlockByLimitNextOnSolidityServlet extends GetBlockByLimitNextServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByNumOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByNumOnSolidityServlet.java deleted file mode 100644 index e79da51ee7b..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockByNumOnSolidityServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockByNumServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetBlockByNumOnSolidityServlet extends GetBlockByNumServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockOnSolidityServlet.java deleted file mode 100644 index e00f8e91e62..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBlockOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetBlockOnSolidityServlet extends GetBlockServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBrokerageOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBrokerageOnSolidityServlet.java deleted file mode 100644 index b6b6a9ca993..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBrokerageOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBrokerageServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetBrokerageOnSolidityServlet extends GetBrokerageServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBurnTrxOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBurnTrxOnSolidityServlet.java deleted file mode 100644 index 46435a92668..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetBurnTrxOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBurnTrxServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetBurnTrxOnSolidityServlet extends GetBurnTrxServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetCanDelegatedMaxSizeOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetCanDelegatedMaxSizeOnSolidityServlet.java deleted file mode 100644 index f2a2fb394e4..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetCanDelegatedMaxSizeOnSolidityServlet.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.Wallet; -import org.tron.core.services.http.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetCanDelegatedMaxSizeOnSolidityServlet extends GetCanDelegatedMaxSizeServlet { - - @Autowired - private Wallet wallet; - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetCanWithdrawUnfreezeAmountOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetCanWithdrawUnfreezeAmountOnSolidityServlet.java deleted file mode 100644 index 3f0b487fbe6..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetCanWithdrawUnfreezeAmountOnSolidityServlet.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.Wallet; -import org.tron.core.services.http.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetCanWithdrawUnfreezeAmountOnSolidityServlet - extends GetCanWithdrawUnfreezeAmountServlet { - - @Autowired - private Wallet wallet; - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceAccountIndexOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceAccountIndexOnSolidityServlet.java deleted file mode 100644 index 1ad23e35a2a..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceAccountIndexOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetDelegatedResourceAccountIndexOnSolidityServlet extends - GetDelegatedResourceAccountIndexServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceAccountIndexV2OnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceAccountIndexV2OnSolidityServlet.java deleted file mode 100644 index edfaaf56c8b..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceAccountIndexV2OnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetDelegatedResourceAccountIndexV2OnSolidityServlet extends - GetDelegatedResourceAccountIndexV2Servlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceOnSolidityServlet.java deleted file mode 100644 index c5a5cc9cb64..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceOnSolidityServlet.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.Wallet; -import org.tron.core.services.http.GetDelegatedResourceServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetDelegatedResourceOnSolidityServlet extends GetDelegatedResourceServlet { - - @Autowired - private Wallet wallet; - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceV2OnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceV2OnSolidityServlet.java deleted file mode 100644 index f481def86ea..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetDelegatedResourceV2OnSolidityServlet.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.Wallet; -import org.tron.core.services.http.GetDelegatedResourceV2Servlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetDelegatedResourceV2OnSolidityServlet extends GetDelegatedResourceV2Servlet { - - @Autowired - private Wallet wallet; - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetEnergyPricesOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetEnergyPricesOnSolidityServlet.java deleted file mode 100644 index a867fc3596a..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetEnergyPricesOnSolidityServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetEnergyPricesServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetEnergyPricesOnSolidityServlet extends GetEnergyPricesServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} - diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetExchangeByIdOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetExchangeByIdOnSolidityServlet.java deleted file mode 100644 index 1da31a0674b..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetExchangeByIdOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetExchangeByIdServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetExchangeByIdOnSolidityServlet extends GetExchangeByIdServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderByAccountOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderByAccountOnSolidityServlet.java deleted file mode 100644 index 0f77006c867..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderByAccountOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketOrderByAccountServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetMarketOrderByAccountOnSolidityServlet extends GetMarketOrderByAccountServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderByIdOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderByIdOnSolidityServlet.java deleted file mode 100644 index 5956a638573..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderByIdOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketOrderByIdServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetMarketOrderByIdOnSolidityServlet extends GetMarketOrderByIdServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderListByPairOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderListByPairOnSolidityServlet.java deleted file mode 100644 index 8452accc3d3..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketOrderListByPairOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketOrderListByPairServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetMarketOrderListByPairOnSolidityServlet extends GetMarketOrderListByPairServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketPairListOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketPairListOnSolidityServlet.java deleted file mode 100644 index b0ee51fec1e..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketPairListOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketPairListServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetMarketPairListOnSolidityServlet extends GetMarketPairListServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketPriceByPairOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketPriceByPairOnSolidityServlet.java deleted file mode 100644 index ceccf215b19..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMarketPriceByPairOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketPriceByPairServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetMarketPriceByPairOnSolidityServlet extends GetMarketPriceByPairServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMerkleTreeVoucherInfoOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMerkleTreeVoucherInfoOnSolidityServlet.java deleted file mode 100644 index 041a711da12..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetMerkleTreeVoucherInfoOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMerkleTreeVoucherInfoServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetMerkleTreeVoucherInfoOnSolidityServlet extends GetMerkleTreeVoucherInfoServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetNodeInfoOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetNodeInfoOnSolidityServlet.java deleted file mode 100644 index ec16a010632..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetNodeInfoOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetNodeInfoServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetNodeInfoOnSolidityServlet extends GetNodeInfoServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetNowBlockOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetNowBlockOnSolidityServlet.java deleted file mode 100644 index e888e8a5101..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetNowBlockOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetNowBlockServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetNowBlockOnSolidityServlet extends GetNowBlockServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetPaginatedAssetIssueListOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetPaginatedAssetIssueListOnSolidityServlet.java deleted file mode 100644 index fcb5ff90842..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetPaginatedAssetIssueListOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetPaginatedAssetIssueListOnSolidityServlet extends GetPaginatedAssetIssueListServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetPaginatedNowWitnessListOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetPaginatedNowWitnessListOnSolidityServlet.java deleted file mode 100644 index 4578393ec76..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetPaginatedNowWitnessListOnSolidityServlet.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetPaginatedNowWitnessListServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetPaginatedNowWitnessListOnSolidityServlet extends GetPaginatedNowWitnessListServlet { - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetRewardOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetRewardOnSolidityServlet.java deleted file mode 100644 index f125557d1bf..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetRewardOnSolidityServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetRewardServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetRewardOnSolidityServlet extends GetRewardServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> { - super.doPost(request, response); - }); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetTransactionCountByBlockNumOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetTransactionCountByBlockNumOnSolidityServlet.java deleted file mode 100644 index 10e5d5a9b29..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetTransactionCountByBlockNumOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetTransactionCountByBlockNumOnSolidityServlet extends - GetTransactionCountByBlockNumServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetTransactionInfoByBlockNumOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetTransactionInfoByBlockNumOnSolidityServlet.java deleted file mode 100644 index 40e88afa1e0..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/GetTransactionInfoByBlockNumOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetTransactionInfoByBlockNumServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetTransactionInfoByBlockNumOnSolidityServlet extends - GetTransactionInfoByBlockNumServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/IsShieldedTRC20ContractNoteSpentOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/IsShieldedTRC20ContractNoteSpentOnSolidityServlet.java deleted file mode 100644 index 12055c2db8b..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/IsShieldedTRC20ContractNoteSpentOnSolidityServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class IsShieldedTRC20ContractNoteSpentOnSolidityServlet extends - IsShieldedTRC20ContractNoteSpentServlet { - - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/IsSpendOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/IsSpendOnSolidityServlet.java deleted file mode 100644 index 98cb96dd136..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/IsSpendOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.IsSpendServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class IsSpendOnSolidityServlet extends IsSpendServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ListExchangesOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ListExchangesOnSolidityServlet.java deleted file mode 100644 index 87fc546913d..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ListExchangesOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ListExchangesServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class ListExchangesOnSolidityServlet extends ListExchangesServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ListWitnessesOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ListWitnessesOnSolidityServlet.java deleted file mode 100644 index 9025b360d0d..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ListWitnessesOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ListWitnessesServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class ListWitnessesOnSolidityServlet extends ListWitnessesServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanAndMarkNoteByIvkOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanAndMarkNoteByIvkOnSolidityServlet.java deleted file mode 100644 index b661913b011..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanAndMarkNoteByIvkOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanAndMarkNoteByIvkServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class ScanAndMarkNoteByIvkOnSolidityServlet extends ScanAndMarkNoteByIvkServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanNoteByIvkOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanNoteByIvkOnSolidityServlet.java deleted file mode 100644 index b1719181673..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanNoteByIvkOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanNoteByIvkServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class ScanNoteByIvkOnSolidityServlet extends ScanNoteByIvkServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanNoteByOvkOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanNoteByOvkOnSolidityServlet.java deleted file mode 100644 index b1874203ca8..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanNoteByOvkOnSolidityServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanNoteByOvkServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class ScanNoteByOvkOnSolidityServlet extends ScanNoteByOvkServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanShieldedTRC20NotesByIvkOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanShieldedTRC20NotesByIvkOnSolidityServlet.java deleted file mode 100644 index 19a8d545502..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanShieldedTRC20NotesByIvkOnSolidityServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class ScanShieldedTRC20NotesByIvkOnSolidityServlet extends - ScanShieldedTRC20NotesByIvkServlet { - - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanShieldedTRC20NotesByOvkOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanShieldedTRC20NotesByOvkOnSolidityServlet.java deleted file mode 100644 index 30055b41a90..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/ScanShieldedTRC20NotesByOvkOnSolidityServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class ScanShieldedTRC20NotesByOvkOnSolidityServlet extends - ScanShieldedTRC20NotesByOvkServlet { - - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/TriggerConstantContractOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/TriggerConstantContractOnSolidityServlet.java deleted file mode 100644 index 75f602272b4..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/TriggerConstantContractOnSolidityServlet.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import java.io.IOException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.TriggerConstantContractServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class TriggerConstantContractOnSolidityServlet extends TriggerConstantContractServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> { - try { - super.doPost(request, response); - } catch (IOException e) { - logger.error("TriggerConstantContractOnSolidityServlet Exception", e); - } - }); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/GetTransactionByIdOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/GetTransactionByIdOnSolidityServlet.java deleted file mode 100644 index db56a4cc1f1..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/GetTransactionByIdOnSolidityServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http.solidity; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetTransactionByIdServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - -@Component -@Slf4j(topic = "API") -public class GetTransactionByIdOnSolidityServlet extends GetTransactionByIdServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/GetTransactionInfoByIdOnSolidityServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/GetTransactionInfoByIdOnSolidityServlet.java deleted file mode 100644 index 96422e1b60f..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/GetTransactionInfoByIdOnSolidityServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http.solidity; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetTransactionInfoByIdServlet; -import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity; - - -@Component -@Slf4j(topic = "API") -public class GetTransactionInfoByIdOnSolidityServlet extends GetTransactionInfoByIdServlet { - - @Autowired - private WalletOnSolidity walletOnSolidity; - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doGet(request, response)); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnSolidity.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java index 4c2abeb267f..722487bf50f 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java @@ -12,162 +12,146 @@ import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; import org.tron.core.services.filter.SolidityCursorFilter; -import org.tron.core.services.interfaceOnSolidity.http.EstimateEnergyOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetAccountByIdOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetAccountOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetAssetIssueByIdOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetAssetIssueByNameOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetAssetIssueListByNameOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetAssetIssueListOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetAvailableUnfreezeCountOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetBandwidthPricesOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetBlockByIdOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetBlockByLatestNumOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetBlockByLimitNextOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetBlockByNumOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetBlockOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetBrokerageOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetBurnTrxOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetCanDelegatedMaxSizeOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetCanWithdrawUnfreezeAmountOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetDelegatedResourceAccountIndexOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetDelegatedResourceAccountIndexV2OnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetDelegatedResourceOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetDelegatedResourceV2OnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetEnergyPricesOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetExchangeByIdOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetMarketOrderByAccountOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetMarketOrderByIdOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetMarketOrderListByPairOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetMarketPairListOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetMarketPriceByPairOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetMerkleTreeVoucherInfoOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetNodeInfoOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetNowBlockOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetPaginatedAssetIssueListOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetPaginatedNowWitnessListOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetRewardOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetTransactionCountByBlockNumOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.GetTransactionInfoByBlockNumOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.IsShieldedTRC20ContractNoteSpentOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.IsSpendOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.ListExchangesOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.ListWitnessesOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.ScanAndMarkNoteByIvkOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.ScanNoteByIvkOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.ScanNoteByOvkOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.ScanShieldedTRC20NotesByIvkOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.ScanShieldedTRC20NotesByOvkOnSolidityServlet; -import org.tron.core.services.interfaceOnSolidity.http.TriggerConstantContractOnSolidityServlet; +import org.tron.core.services.http.EstimateEnergyServlet; +import org.tron.core.services.http.GetAccountByIdServlet; +import org.tron.core.services.http.GetAccountServlet; +import org.tron.core.services.http.GetAssetIssueByIdServlet; +import org.tron.core.services.http.GetAssetIssueByNameServlet; +import org.tron.core.services.http.GetAssetIssueListByNameServlet; +import org.tron.core.services.http.GetAssetIssueListServlet; +import org.tron.core.services.http.GetAvailableUnfreezeCountServlet; +import org.tron.core.services.http.GetBandwidthPricesServlet; +import org.tron.core.services.http.GetBlockByIdServlet; +import org.tron.core.services.http.GetBlockByLatestNumServlet; +import org.tron.core.services.http.GetBlockByLimitNextServlet; +import org.tron.core.services.http.GetBlockByNumServlet; +import org.tron.core.services.http.GetBlockServlet; +import org.tron.core.services.http.GetBrokerageServlet; +import org.tron.core.services.http.GetBurnTrxServlet; +import org.tron.core.services.http.GetCanDelegatedMaxSizeServlet; +import org.tron.core.services.http.GetCanWithdrawUnfreezeAmountServlet; +import org.tron.core.services.http.GetDelegatedResourceAccountIndexServlet; +import org.tron.core.services.http.GetDelegatedResourceAccountIndexV2Servlet; +import org.tron.core.services.http.GetDelegatedResourceServlet; +import org.tron.core.services.http.GetDelegatedResourceV2Servlet; +import org.tron.core.services.http.GetEnergyPricesServlet; +import org.tron.core.services.http.GetExchangeByIdServlet; +import org.tron.core.services.http.GetMarketOrderByAccountServlet; +import org.tron.core.services.http.GetMarketOrderByIdServlet; +import org.tron.core.services.http.GetMarketOrderListByPairServlet; +import org.tron.core.services.http.GetMarketPairListServlet; +import org.tron.core.services.http.GetMarketPriceByPairServlet; +import org.tron.core.services.http.GetNodeInfoServlet; +import org.tron.core.services.http.GetNowBlockServlet; +import org.tron.core.services.http.GetPaginatedAssetIssueListServlet; +import org.tron.core.services.http.GetPaginatedNowWitnessListServlet; +import org.tron.core.services.http.GetRewardServlet; +import org.tron.core.services.http.GetTransactionByIdServlet; +import org.tron.core.services.http.GetTransactionCountByBlockNumServlet; +import org.tron.core.services.http.GetTransactionInfoByBlockNumServlet; +import org.tron.core.services.http.GetTransactionInfoByIdServlet; +import org.tron.core.services.http.IsShieldedTRC20ContractNoteSpentServlet; +import org.tron.core.services.http.ListExchangesServlet; +import org.tron.core.services.http.ListWitnessesServlet; +import org.tron.core.services.http.ScanShieldedTRC20NotesByIvkServlet; +import org.tron.core.services.http.ScanShieldedTRC20NotesByOvkServlet; +import org.tron.core.services.http.TriggerConstantContractServlet; @Slf4j(topic = "API") public class HttpApiOnSolidityService extends HttpService { @Autowired - private GetAccountOnSolidityServlet accountOnSolidityServlet; + private GetAccountServlet getAccountServlet; @Autowired - private GetTransactionByIdOnSolidityServlet getTransactionByIdOnSolidityServlet; + private GetTransactionByIdServlet getTransactionByIdServlet; @Autowired - private GetTransactionInfoByIdOnSolidityServlet getTransactionInfoByIdOnSolidityServlet; + private GetTransactionInfoByIdServlet getTransactionInfoByIdServlet; @Autowired - private ListWitnessesOnSolidityServlet listWitnessesOnSolidityServlet; + private ListWitnessesServlet listWitnessesServlet; @Autowired - private GetPaginatedNowWitnessListOnSolidityServlet getPaginatedNowWitnessListOnSolidityServlet; + private GetPaginatedNowWitnessListServlet getPaginatedNowWitnessListServlet; @Autowired - private GetAssetIssueListOnSolidityServlet getAssetIssueListOnSolidityServlet; + private GetAssetIssueListServlet getAssetIssueListServlet; @Autowired - private GetPaginatedAssetIssueListOnSolidityServlet getPaginatedAssetIssueListOnSolidityServlet; + private GetPaginatedAssetIssueListServlet getPaginatedAssetIssueListServlet; @Autowired - private GetNowBlockOnSolidityServlet getNowBlockOnSolidityServlet; + private GetNowBlockServlet getNowBlockServlet; @Autowired - private GetBlockByNumOnSolidityServlet getBlockByNumOnSolidityServlet; + private GetBlockByNumServlet getBlockByNumServlet; @Autowired - private GetNodeInfoOnSolidityServlet getNodeInfoOnSolidityServlet; + private GetNodeInfoServlet getNodeInfoServlet; @Autowired - private GetDelegatedResourceOnSolidityServlet getDelegatedResourceOnSolidityServlet; + private GetDelegatedResourceServlet getDelegatedResourceServlet; @Autowired - private GetDelegatedResourceV2OnSolidityServlet getDelegatedResourceV2OnSolidityServlet; + private GetDelegatedResourceV2Servlet getDelegatedResourceV2Servlet; @Autowired - private GetCanDelegatedMaxSizeOnSolidityServlet getCanDelegatedMaxSizeOnSolidityServlet; + private GetCanDelegatedMaxSizeServlet getCanDelegatedMaxSizeServlet; @Autowired - private GetAvailableUnfreezeCountOnSolidityServlet getAvailableUnfreezeCountOnSolidityServlet; + private GetAvailableUnfreezeCountServlet getAvailableUnfreezeCountServlet; @Autowired - private GetCanWithdrawUnfreezeAmountOnSolidityServlet - getCanWithdrawUnfreezeAmountOnSolidityServlet; + private GetCanWithdrawUnfreezeAmountServlet getCanWithdrawUnfreezeAmountServlet; @Autowired - private GetDelegatedResourceAccountIndexOnSolidityServlet - getDelegatedResourceAccountIndexOnSolidityServlet; + private GetDelegatedResourceAccountIndexServlet getDelegatedResourceAccountIndexServlet; @Autowired - private GetDelegatedResourceAccountIndexV2OnSolidityServlet - getDelegatedResourceAccountIndexV2OnSolidityServlet; + private GetDelegatedResourceAccountIndexV2Servlet + getDelegatedResourceAccountIndexV2Servlet; @Autowired - private GetExchangeByIdOnSolidityServlet getExchangeByIdOnSolidityServlet; + private GetExchangeByIdServlet getExchangeByIdServlet; @Autowired - private ListExchangesOnSolidityServlet listExchangesOnSolidityServlet; + private ListExchangesServlet listExchangesServlet; @Autowired - private GetTransactionCountByBlockNumOnSolidityServlet - getTransactionCountByBlockNumOnSolidityServlet; + private GetTransactionCountByBlockNumServlet getTransactionCountByBlockNumServlet; @Autowired - private GetAssetIssueByNameOnSolidityServlet getAssetIssueByNameOnSolidityServlet; + private GetAssetIssueByNameServlet getAssetIssueByNameServlet; @Autowired - private GetAssetIssueByIdOnSolidityServlet getAssetIssueByIdOnSolidityServlet; + private GetAssetIssueByIdServlet getAssetIssueByIdServlet; @Autowired - private GetAssetIssueListByNameOnSolidityServlet getAssetIssueListByNameOnSolidityServlet; + private GetAssetIssueListByNameServlet getAssetIssueListByNameServlet; @Autowired - private GetAccountByIdOnSolidityServlet getAccountByIdOnSolidityServlet; + private GetAccountByIdServlet getAccountByIdServlet; @Autowired - private GetBlockByIdOnSolidityServlet getBlockByIdOnSolidityServlet; + private GetBlockByIdServlet getBlockByIdServlet; @Autowired - private GetBlockByLimitNextOnSolidityServlet getBlockByLimitNextOnSolidityServlet; + private GetBlockByLimitNextServlet getBlockByLimitNextServlet; @Autowired - private GetBlockByLatestNumOnSolidityServlet getBlockByLatestNumOnSolidityServlet; + private GetBlockByLatestNumServlet getBlockByLatestNumServlet; @Autowired - private GetMerkleTreeVoucherInfoOnSolidityServlet getMerkleTreeVoucherInfoOnSolidityServlet; + private ScanShieldedTRC20NotesByIvkServlet scanShieldedTRC20NotesByIvkServlet; @Autowired - private ScanNoteByIvkOnSolidityServlet scanNoteByIvkOnSolidityServlet; + private ScanShieldedTRC20NotesByOvkServlet scanShieldedTRC20NotesByOvkServlet; @Autowired - private ScanAndMarkNoteByIvkOnSolidityServlet scanAndMarkNoteByIvkOnSolidityServlet; + private IsShieldedTRC20ContractNoteSpentServlet + isShieldedTRC20ContractNoteSpentServlet; @Autowired - private ScanNoteByOvkOnSolidityServlet scanNoteByOvkOnSolidityServlet; + private GetBrokerageServlet getBrokerageServlet; @Autowired - private IsSpendOnSolidityServlet isSpendOnSolidityServlet; + private GetRewardServlet getRewardServlet; @Autowired - private ScanShieldedTRC20NotesByIvkOnSolidityServlet scanShieldedTRC20NotesByIvkOnSolidityServlet; + private GetBurnTrxServlet getBurnTrxServlet; @Autowired - private ScanShieldedTRC20NotesByOvkOnSolidityServlet scanShieldedTRC20NotesByOvkOnSolidityServlet; + private TriggerConstantContractServlet triggerConstantContractServlet; @Autowired - private IsShieldedTRC20ContractNoteSpentOnSolidityServlet - isShieldedTRC20ContractNoteSpentOnSolidityServlet; + private EstimateEnergyServlet estimateEnergyServlet; @Autowired - private GetBrokerageOnSolidityServlet getBrokerageServlet; + private GetTransactionInfoByBlockNumServlet + getTransactionInfoByBlockNumServlet; @Autowired - private GetRewardOnSolidityServlet getRewardServlet; + private GetMarketOrderByAccountServlet getMarketOrderByAccountServlet; @Autowired - private GetBurnTrxOnSolidityServlet getBurnTrxOnSolidityServlet; + private GetMarketOrderByIdServlet getMarketOrderByIdServlet; @Autowired - private TriggerConstantContractOnSolidityServlet triggerConstantContractOnSolidityServlet; + private GetMarketPriceByPairServlet getMarketPriceByPairServlet; @Autowired - private EstimateEnergyOnSolidityServlet estimateEnergyOnSolidityServlet; + private GetMarketOrderListByPairServlet getMarketOrderListByPairServlet; @Autowired - private GetTransactionInfoByBlockNumOnSolidityServlet - getTransactionInfoByBlockNumOnSolidityServlet; + private GetMarketPairListServlet getMarketPairListServlet; @Autowired - private GetMarketOrderByAccountOnSolidityServlet getMarketOrderByAccountOnSolidityServlet; + private GetBandwidthPricesServlet getBandwidthPricesServlet; @Autowired - private GetMarketOrderByIdOnSolidityServlet getMarketOrderByIdOnSolidityServlet; - @Autowired - private GetMarketPriceByPairOnSolidityServlet getMarketPriceByPairOnSolidityServlet; - @Autowired - private GetMarketOrderListByPairOnSolidityServlet getMarketOrderListByPairOnSolidityServlet; - @Autowired - private GetMarketPairListOnSolidityServlet getMarketPairListOnSolidityServlet; - @Autowired - private GetBandwidthPricesOnSolidityServlet getBandwidthPricesOnSolidityServlet; - @Autowired - private GetEnergyPricesOnSolidityServlet getEnergyPricesOnSolidityServlet; + private GetEnergyPricesServlet getEnergyPricesServlet; @Autowired private LiteFnQueryHttpFilter liteFnQueryHttpFilter; @@ -179,7 +163,7 @@ public class HttpApiOnSolidityService extends HttpService { private SolidityCursorFilter solidityCursorFilter; @Autowired - private GetBlockOnSolidityServlet getBlockOnSolidityServlet; + private GetBlockServlet getBlockServlet; public HttpApiOnSolidityService() { port = Args.getInstance().getSolidityHttpPort(); @@ -191,106 +175,95 @@ public HttpApiOnSolidityService() { @Override protected void addServlet(ServletContextHandler context) { // same as FullNode - context.addServlet(new ServletHolder(accountOnSolidityServlet), "/walletsolidity/getaccount"); - context.addServlet(new ServletHolder(listWitnessesOnSolidityServlet), + context.addServlet(new ServletHolder(getAccountServlet), "/walletsolidity/getaccount"); + context.addServlet(new ServletHolder(listWitnessesServlet), "/walletsolidity/listwitnesses"); - context.addServlet(new ServletHolder(getPaginatedNowWitnessListOnSolidityServlet), + context.addServlet(new ServletHolder(getPaginatedNowWitnessListServlet), "/walletsolidity/getpaginatednowwitnesslist"); - context.addServlet(new ServletHolder(getAssetIssueListOnSolidityServlet), + context.addServlet(new ServletHolder(getAssetIssueListServlet), "/walletsolidity/getassetissuelist"); - context.addServlet(new ServletHolder(getPaginatedAssetIssueListOnSolidityServlet), + context.addServlet(new ServletHolder(getPaginatedAssetIssueListServlet), "/walletsolidity/getpaginatedassetissuelist"); - context.addServlet(new ServletHolder(getAssetIssueByNameOnSolidityServlet), + context.addServlet(new ServletHolder(getAssetIssueByNameServlet), "/walletsolidity/getassetissuebyname"); - context.addServlet(new ServletHolder(getAssetIssueByIdOnSolidityServlet), + context.addServlet(new ServletHolder(getAssetIssueByIdServlet), "/walletsolidity/getassetissuebyid"); - context.addServlet(new ServletHolder(getAssetIssueListByNameOnSolidityServlet), + context.addServlet(new ServletHolder(getAssetIssueListByNameServlet), "/walletsolidity/getassetissuelistbyname"); - context.addServlet(new ServletHolder(getNowBlockOnSolidityServlet), + context.addServlet(new ServletHolder(getNowBlockServlet), "/walletsolidity/getnowblock"); - context.addServlet(new ServletHolder(getBlockByNumOnSolidityServlet), + context.addServlet(new ServletHolder(getBlockByNumServlet), "/walletsolidity/getblockbynum"); - context.addServlet(new ServletHolder(getDelegatedResourceOnSolidityServlet), + context.addServlet(new ServletHolder(getDelegatedResourceServlet), "/walletsolidity/getdelegatedresource"); - context.addServlet(new ServletHolder(getDelegatedResourceV2OnSolidityServlet), + context.addServlet(new ServletHolder(getDelegatedResourceV2Servlet), "/walletsolidity/getdelegatedresourcev2"); - context.addServlet(new ServletHolder(getCanDelegatedMaxSizeOnSolidityServlet), + context.addServlet(new ServletHolder(getCanDelegatedMaxSizeServlet), "/walletsolidity/getcandelegatedmaxsize"); - context.addServlet(new ServletHolder(getAvailableUnfreezeCountOnSolidityServlet), + context.addServlet(new ServletHolder(getAvailableUnfreezeCountServlet), "/walletsolidity/getavailableunfreezecount"); - context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountOnSolidityServlet), + context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountServlet), "/walletsolidity/getcanwithdrawunfreezeamount"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexOnSolidityServlet), + context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexServlet), "/walletsolidity/getdelegatedresourceaccountindex"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexV2OnSolidityServlet), + context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexV2Servlet), "/walletsolidity/getdelegatedresourceaccountindexv2"); - context.addServlet(new ServletHolder(getExchangeByIdOnSolidityServlet), + context.addServlet(new ServletHolder(getExchangeByIdServlet), "/walletsolidity/getexchangebyid"); - context.addServlet(new ServletHolder(listExchangesOnSolidityServlet), + context.addServlet(new ServletHolder(listExchangesServlet), "/walletsolidity/listexchanges"); - context.addServlet(new ServletHolder(getAccountByIdOnSolidityServlet), + context.addServlet(new ServletHolder(getAccountByIdServlet), "/walletsolidity/getaccountbyid"); - context.addServlet(new ServletHolder(getBlockByIdOnSolidityServlet), + context.addServlet(new ServletHolder(getBlockByIdServlet), "/walletsolidity/getblockbyid"); - context.addServlet(new ServletHolder(getBlockByLimitNextOnSolidityServlet), + context.addServlet(new ServletHolder(getBlockByLimitNextServlet), "/walletsolidity/getblockbylimitnext"); - context.addServlet(new ServletHolder(getBlockByLatestNumOnSolidityServlet), + context.addServlet(new ServletHolder(getBlockByLatestNumServlet), "/walletsolidity/getblockbylatestnum"); - // context.addServlet(new ServletHolder(getMerkleTreeVoucherInfoOnSolidityServlet), - // "/walletsolidity/getmerkletreevoucherinfo"); - // context.addServlet(new ServletHolder(scanAndMarkNoteByIvkOnSolidityServlet), - // "/walletsolidity/scanandmarknotebyivk"); - // context.addServlet(new ServletHolder(scanNoteByIvkOnSolidityServlet), - // "/walletsolidity/scannotebyivk"); - // context.addServlet(new ServletHolder(scanNoteByOvkOnSolidityServlet), - // "/walletsolidity/scannotebyovk"); - // context.addServlet(new ServletHolder(isSpendOnSolidityServlet), - // "/walletsolidity/isspend"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkOnSolidityServlet), + context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkServlet), "/walletsolidity/scanshieldedtrc20notesbyivk"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkOnSolidityServlet), + context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkServlet), "/walletsolidity/scanshieldedtrc20notesbyovk"); - context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentOnSolidityServlet), + context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentServlet), "/walletsolidity/isshieldedtrc20contractnotespent"); - context.addServlet(new ServletHolder(triggerConstantContractOnSolidityServlet), + context.addServlet(new ServletHolder(triggerConstantContractServlet), "/walletsolidity/triggerconstantcontract"); - context.addServlet(new ServletHolder(estimateEnergyOnSolidityServlet), + context.addServlet(new ServletHolder(estimateEnergyServlet), "/walletsolidity/estimateenergy"); - context.addServlet(new ServletHolder(getTransactionInfoByBlockNumOnSolidityServlet), + context.addServlet(new ServletHolder(getTransactionInfoByBlockNumServlet), "/walletsolidity/gettransactioninfobyblocknum"); - context.addServlet(new ServletHolder(getMarketOrderByAccountOnSolidityServlet), + context.addServlet(new ServletHolder(getMarketOrderByAccountServlet), "/walletsolidity/getmarketorderbyaccount"); - context.addServlet(new ServletHolder(getMarketOrderByIdOnSolidityServlet), + context.addServlet(new ServletHolder(getMarketOrderByIdServlet), "/walletsolidity/getmarketorderbyid"); - context.addServlet(new ServletHolder(getMarketPriceByPairOnSolidityServlet), + context.addServlet(new ServletHolder(getMarketPriceByPairServlet), "/walletsolidity/getmarketpricebypair"); - context.addServlet(new ServletHolder(getMarketOrderListByPairOnSolidityServlet), + context.addServlet(new ServletHolder(getMarketOrderListByPairServlet), "/walletsolidity/getmarketorderlistbypair"); - context.addServlet(new ServletHolder(getMarketPairListOnSolidityServlet), + context.addServlet(new ServletHolder(getMarketPairListServlet), "/walletsolidity/getmarketpairlist"); // only for SolidityNode - context.addServlet(new ServletHolder(getTransactionByIdOnSolidityServlet), + context.addServlet(new ServletHolder(getTransactionByIdServlet), "/walletsolidity/gettransactionbyid"); - context.addServlet(new ServletHolder(getTransactionInfoByIdOnSolidityServlet), + context.addServlet(new ServletHolder(getTransactionInfoByIdServlet), "/walletsolidity/gettransactioninfobyid"); - context.addServlet(new ServletHolder(getTransactionCountByBlockNumOnSolidityServlet), + context.addServlet(new ServletHolder(getTransactionCountByBlockNumServlet), "/walletsolidity/gettransactioncountbyblocknum"); - context.addServlet(new ServletHolder(getNodeInfoOnSolidityServlet), "/wallet/getnodeinfo"); - context.addServlet(new ServletHolder(getNodeInfoOnSolidityServlet), - "/walletsolidity/getnodeinfo"); + context.addServlet(new ServletHolder(getNodeInfoServlet), "/wallet/getnodeinfo"); + context.addServlet(new ServletHolder(getNodeInfoServlet), "/walletsolidity/getnodeinfo"); context.addServlet(new ServletHolder(getBrokerageServlet), "/walletsolidity/getBrokerage"); context.addServlet(new ServletHolder(getRewardServlet), "/walletsolidity/getReward"); context - .addServlet(new ServletHolder(getBurnTrxOnSolidityServlet), "/walletsolidity/getburntrx"); - context.addServlet(new ServletHolder(getBandwidthPricesOnSolidityServlet), + .addServlet(new ServletHolder(getBurnTrxServlet), "/walletsolidity/getburntrx"); + context.addServlet(new ServletHolder(getBandwidthPricesServlet), "/walletsolidity/getbandwidthprices"); - context.addServlet(new ServletHolder(getEnergyPricesOnSolidityServlet), + context.addServlet(new ServletHolder(getEnergyPricesServlet), "/walletsolidity/getenergyprices"); - context.addServlet(new ServletHolder(getBlockOnSolidityServlet), + context.addServlet(new ServletHolder(getBlockServlet), "/walletsolidity/getblock"); } diff --git a/framework/src/test/java/org/tron/core/services/interfaceOnSolidity/http/GetBandwidthPricesOnSolidityServletTest.java b/framework/src/test/java/org/tron/core/services/interfaceOnSolidity/http/GetBandwidthPricesOnSolidityServletTest.java deleted file mode 100644 index 890528b72e4..00000000000 --- a/framework/src/test/java/org/tron/core/services/interfaceOnSolidity/http/GetBandwidthPricesOnSolidityServletTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.tron.common.utils.client.utils.HttpMethed.createRequest; - -import java.io.UnsupportedEncodingException; -import javax.annotation.Resource; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.junit.BeforeClass; -import org.junit.Test; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.tron.common.BaseTest; -import org.tron.common.TestConstants; -import org.tron.core.config.args.Args; -import org.tron.json.JSONObject; - -public class GetBandwidthPricesOnSolidityServletTest extends BaseTest { - - @Resource - private GetBandwidthPricesOnSolidityServlet getBandwidthPricesOnSolidityServlet; - - @BeforeClass - public static void init() { - Args.setParam(new String[]{"-d", dbPath()}, TestConstants.TEST_CONF); - } - - @Test - public void testGet() { - MockHttpServletRequest request = createRequest(HttpGet.METHOD_NAME); - MockHttpServletResponse response = new MockHttpServletResponse(); - getBandwidthPricesOnSolidityServlet.doPost(request, response); - try { - String contentAsString = response.getContentAsString(); - JSONObject result = JSONObject.parseObject(contentAsString); - assertTrue(result.containsKey("prices")); - } catch (UnsupportedEncodingException e) { - fail(e.getMessage()); - } - } - - @Test - public void testPost() { - MockHttpServletRequest request = createRequest(HttpPost.METHOD_NAME); - try { - MockHttpServletResponse response = new MockHttpServletResponse(); - getBandwidthPricesOnSolidityServlet.doPost(request, response); - String contentAsString = response.getContentAsString(); - JSONObject result = JSONObject.parseObject(contentAsString); - assertTrue(result.containsKey("prices")); - } catch (UnsupportedEncodingException e) { - fail(e.getMessage()); - } - } -} diff --git a/framework/src/test/java/org/tron/core/services/interfaceOnSolidity/http/GetEnergyPricesOnSolidityServletTest.java b/framework/src/test/java/org/tron/core/services/interfaceOnSolidity/http/GetEnergyPricesOnSolidityServletTest.java deleted file mode 100644 index b7310d065f3..00000000000 --- a/framework/src/test/java/org/tron/core/services/interfaceOnSolidity/http/GetEnergyPricesOnSolidityServletTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.tron.core.services.interfaceOnSolidity.http; - -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.tron.common.utils.client.utils.HttpMethed.createRequest; - -import java.io.UnsupportedEncodingException; -import javax.annotation.Resource; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.junit.BeforeClass; -import org.junit.Test; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.tron.common.BaseTest; -import org.tron.common.TestConstants; -import org.tron.core.config.args.Args; -import org.tron.json.JSONObject; - -public class GetEnergyPricesOnSolidityServletTest extends BaseTest { - - @Resource - private GetEnergyPricesOnSolidityServlet getEnergyPricesOnSolidityServlet; - - @BeforeClass - public static void init() { - Args.setParam(new String[]{"-d", dbPath()}, TestConstants.TEST_CONF); - } - - @Test - public void testGet() { - MockHttpServletRequest request = createRequest(HttpGet.METHOD_NAME); - MockHttpServletResponse response = new MockHttpServletResponse(); - getEnergyPricesOnSolidityServlet.doPost(request, response); - try { - String contentAsString = response.getContentAsString(); - JSONObject result = JSONObject.parseObject(contentAsString); - assertTrue(result.containsKey("prices")); - } catch (UnsupportedEncodingException e) { - fail(e.getMessage()); - } - } - - @Test - public void testPost() { - MockHttpServletRequest request = createRequest(HttpPost.METHOD_NAME); - try { - MockHttpServletResponse response = new MockHttpServletResponse(); - getEnergyPricesOnSolidityServlet.doPost(request, response); - String contentAsString = response.getContentAsString(); - JSONObject result = JSONObject.parseObject(contentAsString); - assertTrue(result.containsKey("prices")); - } catch (UnsupportedEncodingException e) { - fail(e.getMessage()); - } - } -} From a09c3956f227b5449aa1f3569a072bfb6c938a1b Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 4 Aug 2026 15:31:20 +0800 Subject: [PATCH 04/27] refactor(http): serve pbft http endpoints with base servlets --- .../http/EstimateEnergyOnPBFTServlet.java | 33 --- .../http/GetAccountByIdOnPBFTServlet.java | 25 -- .../http/GetAccountOnPBFTServlet.java | 26 -- .../http/GetAssetIssueByIdOnPBFTServlet.java | 25 -- .../GetAssetIssueByNameOnPBFTServlet.java | 25 -- .../GetAssetIssueListByNameOnPBFTServlet.java | 25 -- .../http/GetAssetIssueListOnPBFTServlet.java | 26 -- ...etAvailableUnfreezeCountOnPBFTServlet.java | 25 -- .../http/GetBandwidthPricesOnPBFTServlet.java | 27 -- .../http/GetBlockByIdOnPBFTServlet.java | 25 -- .../GetBlockByLatestNumOnPBFTServlet.java | 26 -- .../GetBlockByLimitNextOnPBFTServlet.java | 25 -- .../http/GetBlockByNumOnPBFTServlet.java | 25 -- .../http/GetBrokerageOnPBFTServlet.java | 26 -- .../http/GetBurnTrxOnPBFTServlet.java | 26 -- .../GetCanDelegatedMaxSizeOnPBFTServlet.java | 25 -- ...anWithdrawUnfreezeAmountOnPBFTServlet.java | 26 -- ...atedResourceAccountIndexOnPBFTServlet.java | 26 -- ...edResourceAccountIndexV2OnPBFTServlet.java | 26 -- .../GetDelegatedResourceOnPBFTServlet.java | 25 -- .../GetDelegatedResourceV2OnPBFTServlet.java | 25 -- .../http/GetEnergyPricesOnPBFTServlet.java | 27 -- .../http/GetExchangeByIdOnPBFTServlet.java | 26 -- .../GetMarketOrderByAccountOnPBFTServlet.java | 26 -- .../http/GetMarketOrderByIdOnPBFTServlet.java | 26 -- ...GetMarketOrderListByPairOnPBFTServlet.java | 26 -- .../http/GetMarketPairListOnPBFTServlet.java | 26 -- .../GetMarketPriceByPairOnPBFTServlet.java | 26 -- ...GetMerkleTreeVoucherInfoOnPBFTServlet.java | 26 -- .../http/GetNodeInfoOnPBFTServlet.java | 26 -- .../http/GetNowBlockOnPBFTServlet.java | 26 -- ...tPaginatedAssetIssueListOnPBFTServlet.java | 26 -- .../http/GetRewardOnPBFTServlet.java | 28 -- ...ansactionCountByBlockNumOnPBFTServlet.java | 26 -- ...edTRC20ContractNoteSpentOnPBFTServlet.java | 26 -- .../http/IsSpendOnPBFTServlet.java | 26 -- .../http/ListExchangesOnPBFTServlet.java | 26 -- .../http/ListWitnessesOnPBFTServlet.java | 26 -- .../http/PBFT/GetBlockOnPBFTServlet.java | 26 -- .../PBFT/GetTransactionByIdOnPBFTServlet.java | 25 -- .../GetTransactionInfoByIdOnPBFTServlet.java | 28 -- .../http/PBFT/HttpApiOnPBFTService.java | 280 +++++++++--------- .../ScanAndMarkNoteByIvkOnPBFTServlet.java | 26 -- .../http/ScanNoteByIvkOnPBFTServlet.java | 26 -- .../http/ScanNoteByOvkOnPBFTServlet.java | 26 -- ...nShieldedTRC20NotesByIvkOnPBFTServlet.java | 25 -- ...nShieldedTRC20NotesByOvkOnPBFTServlet.java | 24 -- .../TriggerConstantContractOnPBFTServlet.java | 33 --- .../GetBandwidthPricesOnPBFTServletTest.java | 57 ---- .../GetEnergyPricesOnPBFTServletTest.java | 57 ---- 50 files changed, 140 insertions(+), 1481 deletions(-) delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/EstimateEnergyOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAccountByIdOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAccountOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueByIdOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueByNameOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueListByNameOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueListOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAvailableUnfreezeCountOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBandwidthPricesOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByIdOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByLatestNumOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByLimitNextOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByNumOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBrokerageOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBurnTrxOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetCanDelegatedMaxSizeOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetCanWithdrawUnfreezeAmountOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceAccountIndexOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceAccountIndexV2OnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceV2OnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetEnergyPricesOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetExchangeByIdOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderByAccountOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderByIdOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderListByPairOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketPairListOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketPriceByPairOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMerkleTreeVoucherInfoOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetNodeInfoOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetNowBlockOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetPaginatedAssetIssueListOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetRewardOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetTransactionCountByBlockNumOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/IsShieldedTRC20ContractNoteSpentOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/IsSpendOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ListExchangesOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ListWitnessesOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetBlockOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetTransactionByIdOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetTransactionInfoByIdOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanAndMarkNoteByIvkOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanNoteByIvkOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanNoteByOvkOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanShieldedTRC20NotesByIvkOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanShieldedTRC20NotesByOvkOnPBFTServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/TriggerConstantContractOnPBFTServlet.java delete mode 100644 framework/src/test/java/org/tron/core/services/interfaceOnPBFT/http/GetBandwidthPricesOnPBFTServletTest.java delete mode 100644 framework/src/test/java/org/tron/core/services/interfaceOnPBFT/http/GetEnergyPricesOnPBFTServletTest.java diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/EstimateEnergyOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/EstimateEnergyOnPBFTServlet.java deleted file mode 100644 index 825e2bf79e8..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/EstimateEnergyOnPBFTServlet.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import java.io.IOException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.EstimateEnergyServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class EstimateEnergyOnPBFTServlet extends EstimateEnergyServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> { - try { - super.doPost(request, response); - } catch (IOException e) { - logger.error("EstimateEnergyOnPBFTServlet Exception", e); - } - }); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAccountByIdOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAccountByIdOnPBFTServlet.java deleted file mode 100644 index 1506b98ee96..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAccountByIdOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAccountByIdServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetAccountByIdOnPBFTServlet extends GetAccountByIdServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAccountOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAccountOnPBFTServlet.java deleted file mode 100644 index 1db7d2fbd02..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAccountOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAccountServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetAccountOnPBFTServlet extends GetAccountServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueByIdOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueByIdOnPBFTServlet.java deleted file mode 100644 index 497ac775731..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueByIdOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAssetIssueByIdServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetAssetIssueByIdOnPBFTServlet extends GetAssetIssueByIdServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueByNameOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueByNameOnPBFTServlet.java deleted file mode 100644 index 9da748921ab..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueByNameOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAssetIssueByNameServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetAssetIssueByNameOnPBFTServlet extends GetAssetIssueByNameServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueListByNameOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueListByNameOnPBFTServlet.java deleted file mode 100644 index 4f781051cc1..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueListByNameOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAssetIssueListByNameServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetAssetIssueListByNameOnPBFTServlet extends GetAssetIssueListByNameServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueListOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueListOnPBFTServlet.java deleted file mode 100644 index 18f414c04b1..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAssetIssueListOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAssetIssueListServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetAssetIssueListOnPBFTServlet extends GetAssetIssueListServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAvailableUnfreezeCountOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAvailableUnfreezeCountOnPBFTServlet.java deleted file mode 100644 index bb393f92efc..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetAvailableUnfreezeCountOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetAvailableUnfreezeCountOnPBFTServlet extends GetAvailableUnfreezeCountServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBandwidthPricesOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBandwidthPricesOnPBFTServlet.java deleted file mode 100644 index c89bc5f9646..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBandwidthPricesOnPBFTServlet.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBandwidthPricesServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetBandwidthPricesOnPBFTServlet extends GetBandwidthPricesServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByIdOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByIdOnPBFTServlet.java deleted file mode 100644 index 59e186ab4e0..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByIdOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockByIdServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetBlockByIdOnPBFTServlet extends GetBlockByIdServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByLatestNumOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByLatestNumOnPBFTServlet.java deleted file mode 100644 index 536d6c7bcce..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByLatestNumOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockByLatestNumServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetBlockByLatestNumOnPBFTServlet extends GetBlockByLatestNumServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } - -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByLimitNextOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByLimitNextOnPBFTServlet.java deleted file mode 100644 index f04d8820cbf..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByLimitNextOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockByLimitNextServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetBlockByLimitNextOnPBFTServlet extends GetBlockByLimitNextServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByNumOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByNumOnPBFTServlet.java deleted file mode 100644 index bc19befc9c0..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBlockByNumOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockByNumServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetBlockByNumOnPBFTServlet extends GetBlockByNumServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBrokerageOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBrokerageOnPBFTServlet.java deleted file mode 100644 index c0bcc8de6b5..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBrokerageOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBrokerageServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetBrokerageOnPBFTServlet extends GetBrokerageServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBurnTrxOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBurnTrxOnPBFTServlet.java deleted file mode 100644 index fb1654062c8..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetBurnTrxOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBurnTrxServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetBurnTrxOnPBFTServlet extends GetBurnTrxServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetCanDelegatedMaxSizeOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetCanDelegatedMaxSizeOnPBFTServlet.java deleted file mode 100644 index 8b3b47462e8..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetCanDelegatedMaxSizeOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetCanDelegatedMaxSizeOnPBFTServlet extends GetCanDelegatedMaxSizeServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetCanWithdrawUnfreezeAmountOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetCanWithdrawUnfreezeAmountOnPBFTServlet.java deleted file mode 100644 index c8b20c4eef7..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetCanWithdrawUnfreezeAmountOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetCanWithdrawUnfreezeAmountOnPBFTServlet - extends GetCanWithdrawUnfreezeAmountServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceAccountIndexOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceAccountIndexOnPBFTServlet.java deleted file mode 100644 index febee663796..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceAccountIndexOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetDelegatedResourceAccountIndexOnPBFTServlet extends - GetDelegatedResourceAccountIndexServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceAccountIndexV2OnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceAccountIndexV2OnPBFTServlet.java deleted file mode 100644 index 07541905300..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceAccountIndexV2OnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetDelegatedResourceAccountIndexV2OnPBFTServlet extends - GetDelegatedResourceAccountIndexV2Servlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceOnPBFTServlet.java deleted file mode 100644 index 04b4a0436aa..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetDelegatedResourceServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetDelegatedResourceOnPBFTServlet extends GetDelegatedResourceServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceV2OnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceV2OnPBFTServlet.java deleted file mode 100644 index 6429c90eec5..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetDelegatedResourceV2OnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetDelegatedResourceV2Servlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetDelegatedResourceV2OnPBFTServlet extends GetDelegatedResourceV2Servlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetEnergyPricesOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetEnergyPricesOnPBFTServlet.java deleted file mode 100644 index 11c1dcaa0e8..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetEnergyPricesOnPBFTServlet.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetEnergyPricesServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetEnergyPricesOnPBFTServlet extends GetEnergyPricesServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetExchangeByIdOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetExchangeByIdOnPBFTServlet.java deleted file mode 100644 index ecdbd5228d2..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetExchangeByIdOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetExchangeByIdServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetExchangeByIdOnPBFTServlet extends GetExchangeByIdServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderByAccountOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderByAccountOnPBFTServlet.java deleted file mode 100644 index 7fa308c3abc..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderByAccountOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketOrderByAccountServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetMarketOrderByAccountOnPBFTServlet extends GetMarketOrderByAccountServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderByIdOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderByIdOnPBFTServlet.java deleted file mode 100644 index 63809fd032c..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderByIdOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketOrderByIdServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetMarketOrderByIdOnPBFTServlet extends GetMarketOrderByIdServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderListByPairOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderListByPairOnPBFTServlet.java deleted file mode 100644 index b18dde73651..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketOrderListByPairOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketOrderListByPairServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetMarketOrderListByPairOnPBFTServlet extends GetMarketOrderListByPairServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketPairListOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketPairListOnPBFTServlet.java deleted file mode 100644 index 4d3f69c9132..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketPairListOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketPairListServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetMarketPairListOnPBFTServlet extends GetMarketPairListServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketPriceByPairOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketPriceByPairOnPBFTServlet.java deleted file mode 100644 index 330cf2c2552..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMarketPriceByPairOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMarketPriceByPairServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetMarketPriceByPairOnPBFTServlet extends GetMarketPriceByPairServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMerkleTreeVoucherInfoOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMerkleTreeVoucherInfoOnPBFTServlet.java deleted file mode 100644 index 0e92ccf2d92..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetMerkleTreeVoucherInfoOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetMerkleTreeVoucherInfoServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetMerkleTreeVoucherInfoOnPBFTServlet extends GetMerkleTreeVoucherInfoServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetNodeInfoOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetNodeInfoOnPBFTServlet.java deleted file mode 100644 index 0149d29326d..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetNodeInfoOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetNodeInfoServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetNodeInfoOnPBFTServlet extends GetNodeInfoServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetNowBlockOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetNowBlockOnPBFTServlet.java deleted file mode 100644 index e37ff729433..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetNowBlockOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetNowBlockServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetNowBlockOnPBFTServlet extends GetNowBlockServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetPaginatedAssetIssueListOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetPaginatedAssetIssueListOnPBFTServlet.java deleted file mode 100644 index 900c75d34af..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetPaginatedAssetIssueListOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetPaginatedAssetIssueListOnPBFTServlet extends GetPaginatedAssetIssueListServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetRewardOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetRewardOnPBFTServlet.java deleted file mode 100644 index 98c20c7d5eb..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetRewardOnPBFTServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetRewardServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetRewardOnPBFTServlet extends GetRewardServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> { - super.doPost(request, response); - }); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetTransactionCountByBlockNumOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetTransactionCountByBlockNumOnPBFTServlet.java deleted file mode 100644 index b79f6001d27..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/GetTransactionCountByBlockNumOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetTransactionCountByBlockNumOnPBFTServlet extends - GetTransactionCountByBlockNumServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/IsShieldedTRC20ContractNoteSpentOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/IsShieldedTRC20ContractNoteSpentOnPBFTServlet.java deleted file mode 100644 index afdb6dfc71e..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/IsShieldedTRC20ContractNoteSpentOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class IsShieldedTRC20ContractNoteSpentOnPBFTServlet extends - IsShieldedTRC20ContractNoteSpentServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/IsSpendOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/IsSpendOnPBFTServlet.java deleted file mode 100644 index 82fb6fb72a7..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/IsSpendOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.IsSpendServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class IsSpendOnPBFTServlet extends IsSpendServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ListExchangesOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ListExchangesOnPBFTServlet.java deleted file mode 100644 index 234db10b7ac..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ListExchangesOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ListExchangesServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class ListExchangesOnPBFTServlet extends ListExchangesServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ListWitnessesOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ListWitnessesOnPBFTServlet.java deleted file mode 100644 index 940f072a709..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ListWitnessesOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ListWitnessesServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class ListWitnessesOnPBFTServlet extends ListWitnessesServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetBlockOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetBlockOnPBFTServlet.java deleted file mode 100644 index 3207ebcf161..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetBlockOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http.PBFT; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetBlockServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetBlockOnPBFTServlet extends GetBlockServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetTransactionByIdOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetTransactionByIdOnPBFTServlet.java deleted file mode 100644 index fc7a8a47257..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetTransactionByIdOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http.PBFT; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetTransactionByIdServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class GetTransactionByIdOnPBFTServlet extends GetTransactionByIdServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetTransactionInfoByIdOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetTransactionInfoByIdOnPBFTServlet.java deleted file mode 100644 index f96720123fd..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/GetTransactionInfoByIdOnPBFTServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http.PBFT; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.GetTransactionInfoByIdServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class GetTransactionInfoByIdOnPBFTServlet extends GetTransactionInfoByIdServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java index 25ccbdd0aee..0797902405b 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java @@ -12,119 +12,120 @@ import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; import org.tron.core.services.filter.PbftCursorFilter; -import org.tron.core.services.interfaceOnPBFT.http.EstimateEnergyOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetAccountByIdOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetAccountOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetAssetIssueByIdOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetAssetIssueByNameOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetAssetIssueListByNameOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetAssetIssueListOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetAvailableUnfreezeCountOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetBandwidthPricesOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetBlockByIdOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetBlockByLatestNumOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetBlockByLimitNextOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetBlockByNumOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetBrokerageOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetBurnTrxOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetCanDelegatedMaxSizeOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetCanWithdrawUnfreezeAmountOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetDelegatedResourceAccountIndexOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetDelegatedResourceAccountIndexV2OnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetDelegatedResourceOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetDelegatedResourceV2OnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetEnergyPricesOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetExchangeByIdOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetMarketOrderByAccountOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetMarketOrderByIdOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetMarketOrderListByPairOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetMarketPairListOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetMarketPriceByPairOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetMerkleTreeVoucherInfoOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetNodeInfoOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetNowBlockOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetPaginatedAssetIssueListOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetRewardOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.GetTransactionCountByBlockNumOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.IsShieldedTRC20ContractNoteSpentOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.IsSpendOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.ListExchangesOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.ListWitnessesOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.ScanAndMarkNoteByIvkOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.ScanNoteByIvkOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.ScanNoteByOvkOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.ScanShieldedTRC20NotesByIvkOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.ScanShieldedTRC20NotesByOvkOnPBFTServlet; -import org.tron.core.services.interfaceOnPBFT.http.TriggerConstantContractOnPBFTServlet; +import org.tron.core.services.http.EstimateEnergyServlet; +import org.tron.core.services.http.GetAccountByIdServlet; +import org.tron.core.services.http.GetAccountServlet; +import org.tron.core.services.http.GetAssetIssueByIdServlet; +import org.tron.core.services.http.GetAssetIssueByNameServlet; +import org.tron.core.services.http.GetAssetIssueListByNameServlet; +import org.tron.core.services.http.GetAssetIssueListServlet; +import org.tron.core.services.http.GetAvailableUnfreezeCountServlet; +import org.tron.core.services.http.GetBandwidthPricesServlet; +import org.tron.core.services.http.GetBlockByIdServlet; +import org.tron.core.services.http.GetBlockByLatestNumServlet; +import org.tron.core.services.http.GetBlockByLimitNextServlet; +import org.tron.core.services.http.GetBlockByNumServlet; +import org.tron.core.services.http.GetBlockServlet; +import org.tron.core.services.http.GetBrokerageServlet; +import org.tron.core.services.http.GetBurnTrxServlet; +import org.tron.core.services.http.GetCanDelegatedMaxSizeServlet; +import org.tron.core.services.http.GetCanWithdrawUnfreezeAmountServlet; +import org.tron.core.services.http.GetDelegatedResourceAccountIndexServlet; +import org.tron.core.services.http.GetDelegatedResourceAccountIndexV2Servlet; +import org.tron.core.services.http.GetDelegatedResourceServlet; +import org.tron.core.services.http.GetDelegatedResourceV2Servlet; +import org.tron.core.services.http.GetEnergyPricesServlet; +import org.tron.core.services.http.GetExchangeByIdServlet; +import org.tron.core.services.http.GetMarketOrderByAccountServlet; +import org.tron.core.services.http.GetMarketOrderByIdServlet; +import org.tron.core.services.http.GetMarketOrderListByPairServlet; +import org.tron.core.services.http.GetMarketPairListServlet; +import org.tron.core.services.http.GetMarketPriceByPairServlet; +import org.tron.core.services.http.GetMerkleTreeVoucherInfoServlet; +import org.tron.core.services.http.GetNodeInfoServlet; +import org.tron.core.services.http.GetNowBlockServlet; +import org.tron.core.services.http.GetPaginatedAssetIssueListServlet; +import org.tron.core.services.http.GetRewardServlet; +import org.tron.core.services.http.GetTransactionByIdServlet; +import org.tron.core.services.http.GetTransactionCountByBlockNumServlet; +import org.tron.core.services.http.GetTransactionInfoByIdServlet; +import org.tron.core.services.http.IsShieldedTRC20ContractNoteSpentServlet; +import org.tron.core.services.http.IsSpendServlet; +import org.tron.core.services.http.ListExchangesServlet; +import org.tron.core.services.http.ListWitnessesServlet; +import org.tron.core.services.http.ScanAndMarkNoteByIvkServlet; +import org.tron.core.services.http.ScanNoteByIvkServlet; +import org.tron.core.services.http.ScanNoteByOvkServlet; +import org.tron.core.services.http.ScanShieldedTRC20NotesByIvkServlet; +import org.tron.core.services.http.ScanShieldedTRC20NotesByOvkServlet; +import org.tron.core.services.http.TriggerConstantContractServlet; @Slf4j(topic = "API") public class HttpApiOnPBFTService extends HttpService { @Autowired - private GetAccountOnPBFTServlet accountOnPBFTServlet; + private GetAccountServlet accountServlet; @Autowired - private GetTransactionByIdOnPBFTServlet getTransactionByIdOnPBFTServlet; + private GetTransactionByIdServlet getTransactionByIdServlet; @Autowired - private GetTransactionInfoByIdOnPBFTServlet getTransactionInfoByIdOnPBFTServlet; + private GetTransactionInfoByIdServlet getTransactionInfoByIdServlet; @Autowired - private ListWitnessesOnPBFTServlet listWitnessesOnPBFTServlet; + private ListWitnessesServlet listWitnessesServlet; @Autowired - private GetAssetIssueListOnPBFTServlet getAssetIssueListOnPBFTServlet; + private GetAssetIssueListServlet getAssetIssueListServlet; @Autowired - private GetPaginatedAssetIssueListOnPBFTServlet getPaginatedAssetIssueListOnPBFTServlet; + private GetPaginatedAssetIssueListServlet getPaginatedAssetIssueListServlet; @Autowired - private GetNowBlockOnPBFTServlet getNowBlockOnPBFTServlet; + private GetNowBlockServlet getNowBlockServlet; @Autowired - private GetBlockByNumOnPBFTServlet getBlockByNumOnPBFTServlet; + private GetBlockByNumServlet getBlockByNumServlet; @Autowired - private GetNodeInfoOnPBFTServlet getNodeInfoOnPBFTServlet; + private GetNodeInfoServlet getNodeInfoServlet; @Autowired - private GetDelegatedResourceOnPBFTServlet getDelegatedResourceOnPBFTServlet; + private GetDelegatedResourceServlet getDelegatedResourceServlet; @Autowired - private GetDelegatedResourceAccountIndexOnPBFTServlet - getDelegatedResourceAccountIndexOnPBFTServlet; + private GetDelegatedResourceAccountIndexServlet getDelegatedResourceAccountIndexServlet; @Autowired - private GetExchangeByIdOnPBFTServlet getExchangeByIdOnPBFTServlet; + private GetExchangeByIdServlet getExchangeByIdServlet; @Autowired - private ListExchangesOnPBFTServlet listExchangesOnPBFTServlet; + private ListExchangesServlet listExchangesServlet; @Autowired - private GetTransactionCountByBlockNumOnPBFTServlet - getTransactionCountByBlockNumOnPBFTServlet; + private GetTransactionCountByBlockNumServlet getTransactionCountByBlockNumServlet; @Autowired - private GetAssetIssueByNameOnPBFTServlet getAssetIssueByNameOnPBFTServlet; + private GetAssetIssueByNameServlet getAssetIssueByNameServlet; @Autowired - private GetAssetIssueByIdOnPBFTServlet getAssetIssueByIdOnPBFTServlet; + private GetAssetIssueByIdServlet getAssetIssueByIdServlet; @Autowired - private GetAssetIssueListByNameOnPBFTServlet getAssetIssueListByNameOnPBFTServlet; + private GetAssetIssueListByNameServlet getAssetIssueListByNameServlet; @Autowired - private GetAccountByIdOnPBFTServlet getAccountByIdOnPBFTServlet; + private GetAccountByIdServlet getAccountByIdServlet; @Autowired - private GetBlockByIdOnPBFTServlet getBlockByIdOnPBFTServlet; + private GetBlockByIdServlet getBlockByIdServlet; @Autowired - private GetBlockByLimitNextOnPBFTServlet getBlockByLimitNextOnPBFTServlet; + private GetBlockByLimitNextServlet getBlockByLimitNextServlet; @Autowired - private GetBlockByLatestNumOnPBFTServlet getBlockByLatestNumOnPBFTServlet; + private GetBlockByLatestNumServlet getBlockByLatestNumServlet; @Autowired - private GetMerkleTreeVoucherInfoOnPBFTServlet getMerkleTreeVoucherInfoOnPBFTServlet; + private GetMerkleTreeVoucherInfoServlet getMerkleTreeVoucherInfoServlet; @Autowired - private ScanNoteByIvkOnPBFTServlet scanNoteByIvkOnPBFTServlet; + private ScanNoteByIvkServlet scanNoteByIvkServlet; @Autowired - private ScanAndMarkNoteByIvkOnPBFTServlet scanAndMarkNoteByIvkOnPBFTServlet; + private ScanAndMarkNoteByIvkServlet scanAndMarkNoteByIvkServlet; @Autowired - private ScanNoteByOvkOnPBFTServlet scanNoteByOvkOnPBFTServlet; + private ScanNoteByOvkServlet scanNoteByOvkServlet; @Autowired - private IsSpendOnPBFTServlet isSpendOnPBFTServlet; + private IsSpendServlet isSpendServlet; @Autowired - private GetBrokerageOnPBFTServlet getBrokerageServlet; + private GetBrokerageServlet getBrokerageServlet; @Autowired - private GetRewardOnPBFTServlet getRewardServlet; + private GetRewardServlet getRewardServlet; @Autowired - private TriggerConstantContractOnPBFTServlet triggerConstantContractOnPBFTServlet; + private TriggerConstantContractServlet triggerConstantContractServlet; @Autowired - private EstimateEnergyOnPBFTServlet estimateEnergyOnPBFTServlet; + private EstimateEnergyServlet estimateEnergyServlet; @Autowired private LiteFnQueryHttpFilter liteFnQueryHttpFilter; @Autowired @@ -133,44 +134,43 @@ public class HttpApiOnPBFTService extends HttpService { private PbftCursorFilter pbftCursorFilter; @Autowired - private GetMarketOrderByAccountOnPBFTServlet getMarketOrderByAccountOnPBFTServlet; + private GetMarketOrderByAccountServlet getMarketOrderByAccountServlet; @Autowired - private GetMarketOrderByIdOnPBFTServlet getMarketOrderByIdOnPBFTServlet; + private GetMarketOrderByIdServlet getMarketOrderByIdServlet; @Autowired - private GetMarketPriceByPairOnPBFTServlet getMarketPriceByPairOnPBFTServlet; + private GetMarketPriceByPairServlet getMarketPriceByPairServlet; @Autowired - private GetMarketOrderListByPairOnPBFTServlet getMarketOrderListByPairOnPBFTServlet; + private GetMarketOrderListByPairServlet getMarketOrderListByPairServlet; @Autowired - private GetMarketPairListOnPBFTServlet getMarketPairListOnPBFTServlet; + private GetMarketPairListServlet getMarketPairListServlet; @Autowired - private ScanShieldedTRC20NotesByIvkOnPBFTServlet scanShieldedTRC20NotesByIvkOnPBFTServlet; + private ScanShieldedTRC20NotesByIvkServlet scanShieldedTRC20NotesByIvkServlet; @Autowired - private ScanShieldedTRC20NotesByOvkOnPBFTServlet scanShieldedTRC20NotesByOvkOnPBFTServlet; + private ScanShieldedTRC20NotesByOvkServlet scanShieldedTRC20NotesByOvkServlet; @Autowired - private IsShieldedTRC20ContractNoteSpentOnPBFTServlet - isShieldedTRC20ContractNoteSpentOnPBFTServlet; + private IsShieldedTRC20ContractNoteSpentServlet + isShieldedTRC20ContractNoteSpentServlet; @Autowired - private GetBurnTrxOnPBFTServlet getBurnTrxOnPBFTServlet; + private GetBurnTrxServlet getBurnTrxServlet; @Autowired - private GetBandwidthPricesOnPBFTServlet getBandwidthPricesOnPBFTServlet; + private GetBandwidthPricesServlet getBandwidthPricesServlet; @Autowired - private GetEnergyPricesOnPBFTServlet getEnergyPricesOnPBFTServlet; + private GetEnergyPricesServlet getEnergyPricesServlet; @Autowired - private GetBlockOnPBFTServlet getBlockOnPBFTServlet; + private GetBlockServlet getBlockServlet; @Autowired - private GetAvailableUnfreezeCountOnPBFTServlet getAvailableUnfreezeCountOnPBFTServlet; + private GetAvailableUnfreezeCountServlet getAvailableUnfreezeCountServlet; @Autowired - private GetCanDelegatedMaxSizeOnPBFTServlet getCanDelegatedMaxSizeOnPBFTServlet; + private GetCanDelegatedMaxSizeServlet getCanDelegatedMaxSizeServlet; @Autowired - private GetCanWithdrawUnfreezeAmountOnPBFTServlet getCanWithdrawUnfreezeAmountOnPBFTServlet; + private GetCanWithdrawUnfreezeAmountServlet getCanWithdrawUnfreezeAmountServlet; @Autowired - private GetDelegatedResourceAccountIndexV2OnPBFTServlet - getDelegatedResourceAccountIndexV2OnPBFTServlet; + private GetDelegatedResourceAccountIndexV2Servlet getDelegatedResourceAccountIndexV2Servlet; @Autowired - private GetDelegatedResourceV2OnPBFTServlet getDelegatedResourceV2OnPBFTServlet; + private GetDelegatedResourceV2Servlet getDelegatedResourceV2Servlet; public HttpApiOnPBFTService() { port = Args.getInstance().getPBFTHttpPort(); @@ -182,88 +182,88 @@ public HttpApiOnPBFTService() { @Override protected void addServlet(ServletContextHandler context) { // same as FullNode - context.addServlet(new ServletHolder(accountOnPBFTServlet), "/getaccount"); - context.addServlet(new ServletHolder(listWitnessesOnPBFTServlet), "/listwitnesses"); - context.addServlet(new ServletHolder(getAssetIssueListOnPBFTServlet), "/getassetissuelist"); - context.addServlet(new ServletHolder(getPaginatedAssetIssueListOnPBFTServlet), + context.addServlet(new ServletHolder(accountServlet), "/getaccount"); + context.addServlet(new ServletHolder(listWitnessesServlet), "/listwitnesses"); + context.addServlet(new ServletHolder(getAssetIssueListServlet), "/getassetissuelist"); + context.addServlet(new ServletHolder(getPaginatedAssetIssueListServlet), "/getpaginatedassetissuelist"); context - .addServlet(new ServletHolder(getAssetIssueByNameOnPBFTServlet), "/getassetissuebyname"); - context.addServlet(new ServletHolder(getAssetIssueByIdOnPBFTServlet), "/getassetissuebyid"); - context.addServlet(new ServletHolder(getAssetIssueListByNameOnPBFTServlet), + .addServlet(new ServletHolder(getAssetIssueByNameServlet), "/getassetissuebyname"); + context.addServlet(new ServletHolder(getAssetIssueByIdServlet), "/getassetissuebyid"); + context.addServlet(new ServletHolder(getAssetIssueListByNameServlet), "/getassetissuelistbyname"); - context.addServlet(new ServletHolder(getNowBlockOnPBFTServlet), "/getnowblock"); - context.addServlet(new ServletHolder(getBlockByNumOnPBFTServlet), "/getblockbynum"); - context.addServlet(new ServletHolder(getDelegatedResourceOnPBFTServlet), + context.addServlet(new ServletHolder(getNowBlockServlet), "/getnowblock"); + context.addServlet(new ServletHolder(getBlockByNumServlet), "/getblockbynum"); + context.addServlet(new ServletHolder(getDelegatedResourceServlet), "/getdelegatedresource"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexOnPBFTServlet), + context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexServlet), "/getdelegatedresourceaccountindex"); - context.addServlet(new ServletHolder(getExchangeByIdOnPBFTServlet), "/getexchangebyid"); - context.addServlet(new ServletHolder(listExchangesOnPBFTServlet), "/listexchanges"); - context.addServlet(new ServletHolder(getAccountByIdOnPBFTServlet), "/getaccountbyid"); - context.addServlet(new ServletHolder(getBlockByIdOnPBFTServlet), "/getblockbyid"); + context.addServlet(new ServletHolder(getExchangeByIdServlet), "/getexchangebyid"); + context.addServlet(new ServletHolder(listExchangesServlet), "/listexchanges"); + context.addServlet(new ServletHolder(getAccountByIdServlet), "/getaccountbyid"); + context.addServlet(new ServletHolder(getBlockByIdServlet), "/getblockbyid"); context - .addServlet(new ServletHolder(getBlockByLimitNextOnPBFTServlet), "/getblockbylimitnext"); + .addServlet(new ServletHolder(getBlockByLimitNextServlet), "/getblockbylimitnext"); context - .addServlet(new ServletHolder(getBlockByLatestNumOnPBFTServlet), "/getblockbylatestnum"); - context.addServlet(new ServletHolder(getMerkleTreeVoucherInfoOnPBFTServlet), + .addServlet(new ServletHolder(getBlockByLatestNumServlet), "/getblockbylatestnum"); + context.addServlet(new ServletHolder(getMerkleTreeVoucherInfoServlet), "/getmerkletreevoucherinfo"); - context.addServlet(new ServletHolder(scanAndMarkNoteByIvkOnPBFTServlet), + context.addServlet(new ServletHolder(scanAndMarkNoteByIvkServlet), "/scanandmarknotebyivk"); - context.addServlet(new ServletHolder(scanNoteByIvkOnPBFTServlet), "/scannotebyivk"); - context.addServlet(new ServletHolder(scanNoteByOvkOnPBFTServlet), "/scannotebyovk"); - context.addServlet(new ServletHolder(isSpendOnPBFTServlet), "/isspend"); - context.addServlet(new ServletHolder(triggerConstantContractOnPBFTServlet), + context.addServlet(new ServletHolder(scanNoteByIvkServlet), "/scannotebyivk"); + context.addServlet(new ServletHolder(scanNoteByOvkServlet), "/scannotebyovk"); + context.addServlet(new ServletHolder(isSpendServlet), "/isspend"); + context.addServlet(new ServletHolder(triggerConstantContractServlet), "/triggerconstantcontract"); - context.addServlet(new ServletHolder(estimateEnergyOnPBFTServlet), "/estimateenergy"); + context.addServlet(new ServletHolder(estimateEnergyServlet), "/estimateenergy"); // only for PBFTNode - context.addServlet(new ServletHolder(getTransactionByIdOnPBFTServlet), "/gettransactionbyid"); - context.addServlet(new ServletHolder(getTransactionInfoByIdOnPBFTServlet), + context.addServlet(new ServletHolder(getTransactionByIdServlet), "/gettransactionbyid"); + context.addServlet(new ServletHolder(getTransactionInfoByIdServlet), "/gettransactioninfobyid"); - context.addServlet(new ServletHolder(getTransactionCountByBlockNumOnPBFTServlet), + context.addServlet(new ServletHolder(getTransactionCountByBlockNumServlet), "/gettransactioncountbyblocknum"); - context.addServlet(new ServletHolder(getNodeInfoOnPBFTServlet), "/getnodeinfo"); + context.addServlet(new ServletHolder(getNodeInfoServlet), "/getnodeinfo"); context.addServlet(new ServletHolder(getBrokerageServlet), "/getBrokerage"); context.addServlet(new ServletHolder(getRewardServlet), "/getReward"); - context.addServlet(new ServletHolder(getMarketOrderByAccountOnPBFTServlet), + context.addServlet(new ServletHolder(getMarketOrderByAccountServlet), "/getmarketorderbyaccount"); - context.addServlet(new ServletHolder(getMarketOrderByIdOnPBFTServlet), + context.addServlet(new ServletHolder(getMarketOrderByIdServlet), "/getmarketorderbyid"); - context.addServlet(new ServletHolder(getMarketPriceByPairOnPBFTServlet), + context.addServlet(new ServletHolder(getMarketPriceByPairServlet), "/getmarketpricebypair"); - context.addServlet(new ServletHolder(getMarketOrderListByPairOnPBFTServlet), + context.addServlet(new ServletHolder(getMarketOrderListByPairServlet), "/getmarketorderlistbypair"); - context.addServlet(new ServletHolder(getMarketPairListOnPBFTServlet), + context.addServlet(new ServletHolder(getMarketPairListServlet), "/getmarketpairlist"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkOnPBFTServlet), + context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkServlet), "/scanshieldedtrc20notesbyivk"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkOnPBFTServlet), + context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkServlet), "/scanshieldedtrc20notesbyovk"); - context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentOnPBFTServlet), + context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentServlet), "/isshieldedtrc20contractnotespent"); - context.addServlet(new ServletHolder(getBurnTrxOnPBFTServlet), + context.addServlet(new ServletHolder(getBurnTrxServlet), "/getburntrx"); - context.addServlet(new ServletHolder(getBandwidthPricesOnPBFTServlet), + context.addServlet(new ServletHolder(getBandwidthPricesServlet), "/getbandwidthprices"); - context.addServlet(new ServletHolder(getEnergyPricesOnPBFTServlet), + context.addServlet(new ServletHolder(getEnergyPricesServlet), "/getenergyprices"); - context.addServlet(new ServletHolder(getBlockOnPBFTServlet), + context.addServlet(new ServletHolder(getBlockServlet), "/getblock"); - context.addServlet(new ServletHolder(getAvailableUnfreezeCountOnPBFTServlet), + context.addServlet(new ServletHolder(getAvailableUnfreezeCountServlet), "/getavailableunfreezecount"); - context.addServlet(new ServletHolder(getCanDelegatedMaxSizeOnPBFTServlet), + context.addServlet(new ServletHolder(getCanDelegatedMaxSizeServlet), "/getcandelegatedmaxsize"); - context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountOnPBFTServlet), + context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountServlet), "/getcanwithdrawunfreezeamount"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexV2OnPBFTServlet), + context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexV2Servlet), "/getdelegatedresourceaccountindexv2"); - context.addServlet(new ServletHolder(getDelegatedResourceV2OnPBFTServlet), + context.addServlet(new ServletHolder(getDelegatedResourceV2Servlet), "/getdelegatedresourcev2"); } diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanAndMarkNoteByIvkOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanAndMarkNoteByIvkOnPBFTServlet.java deleted file mode 100644 index aa0d94796a0..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanAndMarkNoteByIvkOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanAndMarkNoteByIvkServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class ScanAndMarkNoteByIvkOnPBFTServlet extends ScanAndMarkNoteByIvkServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanNoteByIvkOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanNoteByIvkOnPBFTServlet.java deleted file mode 100644 index 6382c0f4cf6..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanNoteByIvkOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanNoteByIvkServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class ScanNoteByIvkOnPBFTServlet extends ScanNoteByIvkServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanNoteByOvkOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanNoteByOvkOnPBFTServlet.java deleted file mode 100644 index e05445c0c66..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanNoteByOvkOnPBFTServlet.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanNoteByOvkServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class ScanNoteByOvkOnPBFTServlet extends ScanNoteByOvkServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanShieldedTRC20NotesByIvkOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanShieldedTRC20NotesByIvkOnPBFTServlet.java deleted file mode 100644 index bf0b70a3a9b..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanShieldedTRC20NotesByIvkOnPBFTServlet.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class ScanShieldedTRC20NotesByIvkOnPBFTServlet extends ScanShieldedTRC20NotesByIvkServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanShieldedTRC20NotesByOvkOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanShieldedTRC20NotesByOvkOnPBFTServlet.java deleted file mode 100644 index 2bc65ef27c4..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/ScanShieldedTRC20NotesByOvkOnPBFTServlet.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - -@Component -@Slf4j(topic = "API") -public class ScanShieldedTRC20NotesByOvkOnPBFTServlet extends ScanShieldedTRC20NotesByOvkServlet { - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doPost(request, response)); - } -} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/TriggerConstantContractOnPBFTServlet.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/TriggerConstantContractOnPBFTServlet.java deleted file mode 100644 index 2859326464d..00000000000 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/TriggerConstantContractOnPBFTServlet.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import java.io.IOException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.core.services.http.TriggerConstantContractServlet; -import org.tron.core.services.interfaceOnPBFT.WalletOnPBFT; - - -@Component -@Slf4j(topic = "API") -public class TriggerConstantContractOnPBFTServlet extends TriggerConstantContractServlet { - - @Autowired - private WalletOnPBFT walletOnPBFT; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> super.doGet(request, response)); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - walletOnPBFT.futureGet(() -> { - try { - super.doPost(request, response); - } catch (IOException e) { - logger.error("TriggerConstantContractOnPBFTServlet Exception", e); - } - }); - } -} diff --git a/framework/src/test/java/org/tron/core/services/interfaceOnPBFT/http/GetBandwidthPricesOnPBFTServletTest.java b/framework/src/test/java/org/tron/core/services/interfaceOnPBFT/http/GetBandwidthPricesOnPBFTServletTest.java deleted file mode 100644 index b37a792bc45..00000000000 --- a/framework/src/test/java/org/tron/core/services/interfaceOnPBFT/http/GetBandwidthPricesOnPBFTServletTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.tron.common.utils.client.utils.HttpMethed.createRequest; - -import java.io.UnsupportedEncodingException; -import javax.annotation.Resource; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.junit.BeforeClass; -import org.junit.Test; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.tron.common.BaseTest; -import org.tron.common.TestConstants; -import org.tron.core.config.args.Args; -import org.tron.json.JSONObject; - -public class GetBandwidthPricesOnPBFTServletTest extends BaseTest { - - @Resource - private GetBandwidthPricesOnPBFTServlet getBandwidthPricesOnPBFTServlet; - - @BeforeClass - public static void init() { - Args.setParam(new String[]{"-d", dbPath()}, TestConstants.TEST_CONF); - } - - @Test - public void testGet() { - MockHttpServletRequest request = createRequest(HttpGet.METHOD_NAME); - MockHttpServletResponse response = new MockHttpServletResponse(); - getBandwidthPricesOnPBFTServlet.doPost(request, response); - try { - String contentAsString = response.getContentAsString(); - JSONObject result = JSONObject.parseObject(contentAsString); - assertTrue(result.containsKey("prices")); - } catch (UnsupportedEncodingException e) { - fail(e.getMessage()); - } - } - - @Test - public void testPost() { - MockHttpServletRequest request = createRequest(HttpPost.METHOD_NAME); - try { - MockHttpServletResponse response = new MockHttpServletResponse(); - getBandwidthPricesOnPBFTServlet.doPost(request, response); - String contentAsString = response.getContentAsString(); - JSONObject result = JSONObject.parseObject(contentAsString); - assertTrue(result.containsKey("prices")); - } catch (UnsupportedEncodingException e) { - fail(e.getMessage()); - } - } -} diff --git a/framework/src/test/java/org/tron/core/services/interfaceOnPBFT/http/GetEnergyPricesOnPBFTServletTest.java b/framework/src/test/java/org/tron/core/services/interfaceOnPBFT/http/GetEnergyPricesOnPBFTServletTest.java deleted file mode 100644 index 71d7e7e4b0b..00000000000 --- a/framework/src/test/java/org/tron/core/services/interfaceOnPBFT/http/GetEnergyPricesOnPBFTServletTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.tron.core.services.interfaceOnPBFT.http; - -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.tron.common.utils.client.utils.HttpMethed.createRequest; - -import java.io.UnsupportedEncodingException; -import javax.annotation.Resource; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.junit.BeforeClass; -import org.junit.Test; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.tron.common.BaseTest; -import org.tron.common.TestConstants; -import org.tron.core.config.args.Args; -import org.tron.json.JSONObject; - -public class GetEnergyPricesOnPBFTServletTest extends BaseTest { - - @Resource - private GetEnergyPricesOnPBFTServlet getEnergyPricesOnPBFTServlet; - - @BeforeClass - public static void init() { - Args.setParam(new String[]{"-d", dbPath()}, TestConstants.TEST_CONF); - } - - @Test - public void testGet() { - MockHttpServletRequest request = createRequest(HttpGet.METHOD_NAME); - MockHttpServletResponse response = new MockHttpServletResponse(); - getEnergyPricesOnPBFTServlet.doPost(request, response); - try { - String contentAsString = response.getContentAsString(); - JSONObject result = JSONObject.parseObject(contentAsString); - assertTrue(result.containsKey("prices")); - } catch (UnsupportedEncodingException e) { - fail(e.getMessage()); - } - } - - @Test - public void testPost() { - MockHttpServletRequest request = createRequest(HttpPost.METHOD_NAME); - try { - MockHttpServletResponse response = new MockHttpServletResponse(); - getEnergyPricesOnPBFTServlet.doPost(request, response); - String contentAsString = response.getContentAsString(); - JSONObject result = JSONObject.parseObject(contentAsString); - assertTrue(result.containsKey("prices")); - } catch (UnsupportedEncodingException e) { - fail(e.getMessage()); - } - } -} From c877ea8cb6c7b5c61cf681c9b757b78d2cc49299 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 4 Aug 2026 15:48:35 +0800 Subject: [PATCH 05/27] refactor(http): serve soliditynode tx endpoints with base servlets --- .../GetTransactionByIdSolidityServlet.java | 68 ------ ...GetTransactionInfoByIdSolidityServlet.java | 72 ------- .../solidity/SolidityNodeHttpApiService.java | 6 +- ...GetTransactionByIdSolidityServletTest.java | 202 ------------------ 4 files changed, 4 insertions(+), 344 deletions(-) delete mode 100644 framework/src/main/java/org/tron/core/services/http/solidity/GetTransactionByIdSolidityServlet.java delete mode 100644 framework/src/main/java/org/tron/core/services/http/solidity/GetTransactionInfoByIdSolidityServlet.java delete mode 100644 framework/src/test/java/org/tron/core/services/http/solidity/GetTransactionByIdSolidityServletTest.java diff --git a/framework/src/main/java/org/tron/core/services/http/solidity/GetTransactionByIdSolidityServlet.java b/framework/src/main/java/org/tron/core/services/http/solidity/GetTransactionByIdSolidityServlet.java deleted file mode 100644 index f98c7450afc..00000000000 --- a/framework/src/main/java/org/tron/core/services/http/solidity/GetTransactionByIdSolidityServlet.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.tron.core.services.http.solidity; - -import com.google.protobuf.ByteString; -import java.io.IOException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.api.GrpcAPI.BytesMessage; -import org.tron.common.utils.ByteArray; -import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.RateLimiterServlet; -import org.tron.core.services.http.Util; -import org.tron.protos.Protocol.Transaction; - - -@Component -@Slf4j(topic = "API") -public class GetTransactionByIdSolidityServlet extends RateLimiterServlet { - - @Autowired - private Wallet wallet; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - try { - boolean visible = Util.getVisible(request); - String input = request.getParameter("value"); - fillResponse(ByteString.copyFrom(ByteArray.fromHexString(input)), visible, response); - } catch (Exception e) { - logger.debug("Exception: {}", e.getMessage()); - try { - response.getWriter().println(e.getMessage()); - } catch (IOException ioe) { - logger.debug("IOException: {}", ioe.getMessage()); - } - } - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - try { - PostParams params = PostParams.getPostParams(request); - BytesMessage.Builder build = BytesMessage.newBuilder(); - JsonFormat.merge(params.getParams(), build, params.isVisible()); - fillResponse(build.build().getValue(), params.isVisible(), response); - } catch (Exception e) { - logger.debug("Exception: {}", e.getMessage()); - try { - response.getWriter().println(e.getMessage()); - } catch (IOException ioe) { - logger.debug("IOException: {}", ioe.getMessage()); - } - } - } - - private void fillResponse(ByteString txId, boolean visible, HttpServletResponse response) - throws IOException { - Transaction reply = wallet.getTransactionById(txId); - if (reply != null) { - response.getWriter().println(Util.printTransaction(reply, visible)); - } else { - response.getWriter().println("{}"); - } - } - -} \ No newline at end of file diff --git a/framework/src/main/java/org/tron/core/services/http/solidity/GetTransactionInfoByIdSolidityServlet.java b/framework/src/main/java/org/tron/core/services/http/solidity/GetTransactionInfoByIdSolidityServlet.java deleted file mode 100644 index 0408215f09d..00000000000 --- a/framework/src/main/java/org/tron/core/services/http/solidity/GetTransactionInfoByIdSolidityServlet.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.tron.core.services.http.solidity; - -import com.google.protobuf.ByteString; -import java.io.IOException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.tron.api.GrpcAPI.BytesMessage; -import org.tron.common.utils.ByteArray; -import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.RateLimiterServlet; -import org.tron.core.services.http.Util; -import org.tron.protos.Protocol.TransactionInfo; - - -@Component -@Slf4j(topic = "API") -public class GetTransactionInfoByIdSolidityServlet extends RateLimiterServlet { - - @Autowired - private Wallet wallet; - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) { - try { - boolean visible = Util.getVisible(request); - String input = request.getParameter("value"); - TransactionInfo transInfo = wallet - .getTransactionInfoById(ByteString.copyFrom(ByteArray.fromHexString(input))); - if (transInfo == null) { - response.getWriter().println("{}"); - } else { - response.getWriter().println(JsonFormat.printToString(transInfo, visible)); - } - } catch (Exception e) { - logger.debug("Exception: {}", e.getMessage()); - try { - response.getWriter().println(e.getMessage()); - } catch (IOException ioe) { - logger.debug("IOException: {}", ioe.getMessage()); - } - } - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) { - try { - PostParams params = PostParams.getPostParams(request); - - BytesMessage.Builder build = BytesMessage.newBuilder(); - JsonFormat.merge(params.getParams(), build, params.isVisible()); - TransactionInfo transInfo = wallet.getTransactionInfoById(build.build().getValue()); - if (transInfo == null) { - response.getWriter().println("{}"); - } else { - response.getWriter().println(JsonFormat.printToString(transInfo, params.isVisible())); - } - } catch (Exception e) { - logger.debug("Exception: {}", e.getMessage()); - try { - response.getWriter().println(e.getMessage()); - } catch (IOException ioe) { - logger.debug("IOException: {}", ioe.getMessage()); - } - } - } - -} diff --git a/framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java b/framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java index 0c4843c0550..799d3faab8a 100644 --- a/framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java +++ b/framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java @@ -46,8 +46,10 @@ import org.tron.core.services.http.GetPaginatedAssetIssueListServlet; import org.tron.core.services.http.GetPaginatedNowWitnessListServlet; import org.tron.core.services.http.GetRewardServlet; +import org.tron.core.services.http.GetTransactionByIdServlet; import org.tron.core.services.http.GetTransactionCountByBlockNumServlet; import org.tron.core.services.http.GetTransactionInfoByBlockNumServlet; +import org.tron.core.services.http.GetTransactionInfoByIdServlet; import org.tron.core.services.http.IsShieldedTRC20ContractNoteSpentServlet; import org.tron.core.services.http.IsSpendServlet; import org.tron.core.services.http.ListExchangesServlet; @@ -67,9 +69,9 @@ public class SolidityNodeHttpApiService extends HttpService { @Autowired private GetAccountServlet getAccountServlet; @Autowired - private GetTransactionByIdSolidityServlet getTransactionByIdServlet; + private GetTransactionByIdServlet getTransactionByIdServlet; @Autowired - private GetTransactionInfoByIdSolidityServlet getTransactionInfoByIdServlet; + private GetTransactionInfoByIdServlet getTransactionInfoByIdServlet; @Autowired private GetTransactionCountByBlockNumServlet getTransactionCountByBlockNumServlet; @Autowired diff --git a/framework/src/test/java/org/tron/core/services/http/solidity/GetTransactionByIdSolidityServletTest.java b/framework/src/test/java/org/tron/core/services/http/solidity/GetTransactionByIdSolidityServletTest.java deleted file mode 100644 index e1abb41d1e1..00000000000 --- a/framework/src/test/java/org/tron/core/services/http/solidity/GetTransactionByIdSolidityServletTest.java +++ /dev/null @@ -1,202 +0,0 @@ -package org.tron.core.services.http.solidity; - -import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.PrintStream; -import java.io.PrintWriter; -import java.net.HttpURLConnection; -import java.net.URL; -import java.net.URLStreamHandlerFactory; -import java.nio.charset.StandardCharsets; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.junit.After; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.tron.common.utils.FileUtil; -import org.tron.common.utils.PublicMethod; -import org.tron.core.services.http.solidity.mockito.HttpUrlStreamHandler; - - -@Slf4j -public class GetTransactionByIdSolidityServletTest { - - private static HttpUrlStreamHandler httpUrlStreamHandler; - private GetTransactionByIdSolidityServlet getTransactionByIdSolidityServlet; - private HttpServletRequest request; - private HttpServletResponse response; - private HttpURLConnection httpUrlConnection; - private OutputStreamWriter outputStreamWriter; - private URL url; - - /** - * . - */ - @BeforeClass - public static void init() { - // Allows for mocking URL connections - URLStreamHandlerFactory urlStreamHandlerFactory = mock(URLStreamHandlerFactory.class); - try { - URL.setURLStreamHandlerFactory(urlStreamHandlerFactory); - } catch (Error e) { - logger.info("Ignore error: {}", e.getMessage()); - } - - httpUrlStreamHandler = new HttpUrlStreamHandler(); - given(urlStreamHandlerFactory.createURLStreamHandler("http")).willReturn(httpUrlStreamHandler); - } - - /** - * Init. - */ - - @Before - public void setUp() { - getTransactionByIdSolidityServlet = new GetTransactionByIdSolidityServlet(); - this.request = mock(HttpServletRequest.class); - this.response = mock(HttpServletResponse.class); - this.httpUrlConnection = mock(HttpURLConnection.class); - this.outputStreamWriter = mock(OutputStreamWriter.class); - httpUrlStreamHandler.resetConnections(); - } - - /** - * Release Resource. - */ - @After - public void tearDown() { - if (FileUtil.deleteDir(new File("temp.txt"))) { - logger.info("Release resources successful."); - } else { - logger.info("Release resources failure."); - } - } - - @Test - public void doPostTest() throws IOException { - - //send Post request - - final ByteArrayOutputStream outContent = new ByteArrayOutputStream(); - System.setOut(new PrintStream(outContent)); - String href = "http://127.0.0.1:" - + PublicMethod.chooseRandomPort() + "/walletsolidity/gettransactioninfobyid"; - httpUrlStreamHandler.addConnection(new URL(href), httpUrlConnection); - httpUrlConnection.setRequestMethod("POST"); - httpUrlConnection.setRequestProperty("Content-Type", "application/json"); - httpUrlConnection.setRequestProperty("Connection", "Keep-Alive"); - httpUrlConnection.setUseCaches(false); - httpUrlConnection.setDoOutput(true); - String postData = "{\"value\": \"309b6fa3d01353e46f57dd8a8f27611f98e392b50d035cef21" - + "3f2c55225a8bd2\"}"; - httpUrlConnection.setRequestProperty("Content-Length", String.valueOf(postData.length())); - - when(httpUrlConnection.getOutputStream()).thenReturn(outContent); - OutputStreamWriter out = new OutputStreamWriter(httpUrlConnection.getOutputStream(), - StandardCharsets.UTF_8); - out.write(postData); - out.flush(); - out.close(); - PrintWriter writer = new PrintWriter("temp.txt"); - when(response.getWriter()).thenReturn(writer); - - getTransactionByIdSolidityServlet.doPost(request, response); - // Get Response Body - String line; - StringBuilder result = new StringBuilder(); - - byte[] buffer = new byte[1024]; - ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(buffer); - when(httpUrlConnection.getInputStream()).thenReturn(byteArrayInputStream); - BufferedReader in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream(), - StandardCharsets.UTF_8)); - - while ((line = in.readLine()) != null) { - result.append(line).append("\n"); - } - Assert.assertNotNull(result); - in.close(); - writer.flush(); - FileInputStream fileInputStream = new FileInputStream("temp.txt"); - InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream); - BufferedReader bufferedReader = new BufferedReader(inputStreamReader); - - StringBuilder sb = new StringBuilder(); - String text; - while ((text = bufferedReader.readLine()) != null) { - sb.append(text); - } - Assert.assertTrue(sb.toString().contains("null")); - httpUrlConnection.disconnect(); - } - - @Test - public void doGetTest() throws IOException { - - final ByteArrayOutputStream outContent = new ByteArrayOutputStream(); - System.setOut(new PrintStream(outContent)); - String href = "http://127.0.0.1:" - + PublicMethod.chooseRandomPort() + "/walletsolidity/gettransactioninfobyid"; - httpUrlStreamHandler.addConnection(new URL(href), httpUrlConnection); - httpUrlConnection.setRequestMethod("GET"); - httpUrlConnection.setRequestProperty("Content-Type", "application/json"); - httpUrlConnection.setRequestProperty("Connection", "Keep-Alive"); - httpUrlConnection.setUseCaches(false); - httpUrlConnection.setDoOutput(true); - String postData = "{\"value\": \"309b6fa3d01353e46f57dd8a8f27611f98e392b50d035cef21" - + "3f2c55225a8bd2\"}"; - httpUrlConnection.setRequestProperty("Content-Length", String.valueOf(postData.length())); - - when(httpUrlConnection.getOutputStream()).thenReturn(outContent); - OutputStreamWriter out = new OutputStreamWriter(httpUrlConnection.getOutputStream(), - StandardCharsets.UTF_8); - out.write(postData); - out.flush(); - out.close(); - PrintWriter writer = new PrintWriter("temp.txt"); - when(response.getWriter()).thenReturn(writer); - - getTransactionByIdSolidityServlet.doPost(request, response); - // Get Response Body - String line; - StringBuilder result = new StringBuilder(); - - byte[] buffer = new byte[1024]; - ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(buffer); - when(httpUrlConnection.getInputStream()).thenReturn(byteArrayInputStream); - BufferedReader in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream(), - StandardCharsets.UTF_8)); - - while ((line = in.readLine()) != null) { - result.append(line).append("\n"); - } - Assert.assertNotNull(result); - in.close(); - writer.flush(); - FileInputStream fileInputStream = new FileInputStream("temp.txt"); - InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream); - BufferedReader bufferedReader = new BufferedReader(inputStreamReader); - - StringBuilder sb = new StringBuilder(); - String text; - while ((text = bufferedReader.readLine()) != null) { - sb.append(text); - } - Assert.assertTrue(sb.toString().contains("null")); - httpUrlConnection.disconnect(); - } -} - From 3ec4eb5275c877e03ee457b24ef639a5e013e5e5 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 4 Aug 2026 15:51:40 +0800 Subject: [PATCH 06/27] refactor(http): flatten solidity and pbft http service packages --- .../src/main/java/org/tron/core/config/DefaultConfig.java | 4 ++-- .../interfaceOnPBFT/{http/PBFT => }/HttpApiOnPBFTService.java | 2 +- .../{http/solidity => }/HttpApiOnSolidityService.java | 2 +- framework/src/test/java/org/tron/core/pbft/PbftApiTest.java | 2 +- .../tron/core/services/filter/HttpApiAccessFilterTest.java | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) rename framework/src/main/java/org/tron/core/services/interfaceOnPBFT/{http/PBFT => }/HttpApiOnPBFTService.java (99%) rename framework/src/main/java/org/tron/core/services/interfaceOnSolidity/{http/solidity => }/HttpApiOnSolidityService.java (99%) diff --git a/framework/src/main/java/org/tron/core/config/DefaultConfig.java b/framework/src/main/java/org/tron/core/config/DefaultConfig.java index 06d93682342..cb339074205 100755 --- a/framework/src/main/java/org/tron/core/config/DefaultConfig.java +++ b/framework/src/main/java/org/tron/core/config/DefaultConfig.java @@ -12,9 +12,9 @@ import org.tron.core.db.RevokingDatabase; import org.tron.core.db2.core.SnapshotManager; import org.tron.core.services.interfaceOnPBFT.RpcApiServiceOnPBFT; -import org.tron.core.services.interfaceOnPBFT.http.PBFT.HttpApiOnPBFTService; +import org.tron.core.services.interfaceOnPBFT.HttpApiOnPBFTService; import org.tron.core.services.interfaceOnSolidity.RpcApiServiceOnSolidity; -import org.tron.core.services.interfaceOnSolidity.http.solidity.HttpApiOnSolidityService; +import org.tron.core.services.interfaceOnSolidity.HttpApiOnSolidityService; @Slf4j(topic = "app") @Configuration diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java similarity index 99% rename from framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java rename to framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java index 0797902405b..750e513b7ce 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java @@ -1,4 +1,4 @@ -package org.tron.core.services.interfaceOnPBFT.http.PBFT; +package org.tron.core.services.interfaceOnPBFT; import java.util.EnumSet; import javax.servlet.DispatcherType; diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java similarity index 99% rename from framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java rename to framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java index 722487bf50f..0659b69599a 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java @@ -1,4 +1,4 @@ -package org.tron.core.services.interfaceOnSolidity.http.solidity; +package org.tron.core.services.interfaceOnSolidity; import java.util.EnumSet; import javax.servlet.DispatcherType; diff --git a/framework/src/test/java/org/tron/core/pbft/PbftApiTest.java b/framework/src/test/java/org/tron/core/pbft/PbftApiTest.java index 36253333a4e..f3d5636a207 100755 --- a/framework/src/test/java/org/tron/core/pbft/PbftApiTest.java +++ b/framework/src/test/java/org/tron/core/pbft/PbftApiTest.java @@ -25,7 +25,7 @@ import org.tron.core.config.args.Args; import org.tron.core.db.CommonDataBase; import org.tron.core.db2.ISession; -import org.tron.core.services.interfaceOnPBFT.http.PBFT.HttpApiOnPBFTService; +import org.tron.core.services.interfaceOnPBFT.HttpApiOnPBFTService; import org.tron.core.store.DynamicPropertiesStore; import org.tron.json.JSON; import org.tron.json.JSONObject; diff --git a/framework/src/test/java/org/tron/core/services/filter/HttpApiAccessFilterTest.java b/framework/src/test/java/org/tron/core/services/filter/HttpApiAccessFilterTest.java index c99b6064d15..bcd8cda6441 100644 --- a/framework/src/test/java/org/tron/core/services/filter/HttpApiAccessFilterTest.java +++ b/framework/src/test/java/org/tron/core/services/filter/HttpApiAccessFilterTest.java @@ -21,8 +21,8 @@ import org.tron.common.utils.PublicMethod; import org.tron.core.config.args.Args; import org.tron.core.services.http.FullNodeHttpApiService; -import org.tron.core.services.interfaceOnPBFT.http.PBFT.HttpApiOnPBFTService; -import org.tron.core.services.interfaceOnSolidity.http.solidity.HttpApiOnSolidityService; +import org.tron.core.services.interfaceOnPBFT.HttpApiOnPBFTService; +import org.tron.core.services.interfaceOnSolidity.HttpApiOnSolidityService; public class HttpApiAccessFilterTest extends BaseTest { From e7b1ac462807583cc98fc6286e0bdc926d68bd7d Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 4 Aug 2026 16:11:04 +0800 Subject: [PATCH 07/27] refactor(http): group servlets into subpackage and flatten services --- .../org/tron/core/config/DefaultConfig.java | 4 +- .../services/http/FullNodeHttpApiService.java | 131 +++++++++++++++++- .../SolidityNodeHttpApiService.java | 101 +++++++------- .../AccountPermissionUpdateServlet.java | 6 +- .../{ => servlets}/BroadcastHexServlet.java | 4 +- .../http/{ => servlets}/BroadcastServlet.java | 6 +- .../CancelAllUnfreezeV2Servlet.java | 5 +- .../http/{ => servlets}/ClearABIServlet.java | 6 +- .../{ => servlets}/CreateAccountServlet.java | 6 +- .../CreateAssetIssueServlet.java | 6 +- .../CreateCommonTransactionServlet.java | 6 +- .../CreateShieldNullifierServlet.java | 6 +- ...eateShieldedContractParametersServlet.java | 4 +- ...edContractParametersWithoutAskServlet.java | 5 +- .../CreateShieldedTransactionServlet.java | 6 +- ...TransactionWithoutSpendAuthSigServlet.java | 6 +- .../CreateSpendAuthSigServlet.java | 6 +- .../{ => servlets}/CreateWitnessServlet.java | 6 +- .../DelegateResourceServlet.java | 5 +- .../{ => servlets}/DeployContractServlet.java | 6 +- .../{ => servlets}/EstimateEnergyServlet.java | 4 +- .../{ => servlets}/ExchangeCreateServlet.java | 6 +- .../{ => servlets}/ExchangeInjectServlet.java | 6 +- .../ExchangeTransactionServlet.java | 6 +- .../ExchangeWithdrawServlet.java | 6 +- .../{ => servlets}/FreezeBalanceServlet.java | 6 +- .../FreezeBalanceV2Servlet.java | 5 +- .../GetAccountBalanceServlet.java | 6 +- .../{ => servlets}/GetAccountByIdServlet.java | 6 +- .../{ => servlets}/GetAccountNetServlet.java | 6 +- .../GetAccountResourceServlet.java | 5 +- .../{ => servlets}/GetAccountServlet.java | 6 +- .../{ => servlets}/GetAkFromAskServlet.java | 5 +- .../GetAssetIssueByAccountServlet.java | 6 +- .../GetAssetIssueByIdServlet.java | 6 +- .../GetAssetIssueByNameServlet.java | 6 +- .../GetAssetIssueListByNameServlet.java | 6 +- .../GetAssetIssueListServlet.java | 4 +- .../GetAvailableUnfreezeCountServlet.java | 5 +- .../GetBandwidthPricesServlet.java | 4 +- .../GetBlockBalanceServlet.java | 6 +- .../{ => servlets}/GetBlockByIdServlet.java | 6 +- .../GetBlockByLatestNumServlet.java | 6 +- .../GetBlockByLimitNextServlet.java | 6 +- .../{ => servlets}/GetBlockByNumServlet.java | 6 +- .../http/{ => servlets}/GetBlockServlet.java | 6 +- .../{ => servlets}/GetBrokerageServlet.java | 4 +- .../{ => servlets}/GetBurnTrxServlet.java | 5 +- .../GetCanDelegatedMaxSizeServlet.java | 5 +- .../GetCanWithdrawUnfreezeAmountServlet.java | 5 +- .../GetChainParametersServlet.java | 5 +- .../GetContractInfoServlet.java | 6 +- .../{ => servlets}/GetContractServlet.java | 6 +- ...tDelegatedResourceAccountIndexServlet.java | 6 +- ...elegatedResourceAccountIndexV2Servlet.java | 6 +- .../GetDelegatedResourceServlet.java | 6 +- .../GetDelegatedResourceV2Servlet.java | 8 +- .../{ => servlets}/GetDiversifierServlet.java | 6 +- .../GetEnergyPricesServlet.java | 4 +- .../GetExchangeByIdServlet.java | 6 +- .../GetExpandedSpendingKeyServlet.java | 5 +- .../GetIncomingViewingKeyServlet.java | 6 +- .../GetMarketOrderByAccountServlet.java | 6 +- .../GetMarketOrderByIdServlet.java | 5 +- .../GetMarketOrderListByPairServlet.java | 5 +- .../GetMarketPairListServlet.java | 5 +- .../GetMarketPriceByPairServlet.java | 5 +- .../GetMemoFeePricesServlet.java | 4 +- .../GetMerkleTreeVoucherInfoServlet.java | 6 +- .../GetNewShieldedAddressServlet.java | 5 +- .../GetNextMaintenanceTimeServlet.java | 5 +- .../{ => servlets}/GetNkFromNskServlet.java | 5 +- .../{ => servlets}/GetNodeInfoServlet.java | 4 +- .../{ => servlets}/GetNowBlockServlet.java | 3 +- .../GetPaginatedAssetIssueListServlet.java | 5 +- .../GetPaginatedExchangeListServlet.java | 5 +- .../GetPaginatedNowWitnessListServlet.java | 5 +- .../GetPaginatedProposalListServlet.java | 4 +- .../{ => servlets}/GetPendingSizeServlet.java | 5 +- .../GetProposalByIdServlet.java | 6 +- .../http/{ => servlets}/GetRcmServlet.java | 5 +- .../http/{ => servlets}/GetRewardServlet.java | 5 +- .../GetShieldTransactionHashServlet.java | 5 +- .../{ => servlets}/GetSpendingKeyServlet.java | 5 +- .../GetTransactionApprovedListServlet.java | 5 +- .../GetTransactionByIdServlet.java | 6 +- .../GetTransactionCountByBlockNumServlet.java | 6 +- .../GetTransactionFromPendingServlet.java | 6 +- .../GetTransactionInfoByBlockNumServlet.java | 5 +- .../GetTransactionInfoByIdServlet.java | 6 +- .../GetTransactionListFromPendingServlet.java | 5 +- .../GetTransactionReceiptByIdServlet.java | 6 +- .../GetTransactionSignWeightServlet.java | 5 +- ...rInputForShieldedTRC20ContractServlet.java | 5 +- .../GetZenPaymentAddressServlet.java | 5 +- ...ShieldedTRC20ContractNoteSpentServlet.java | 5 +- .../http/{ => servlets}/IsSpendServlet.java | 6 +- .../{ => servlets}/ListExchangesServlet.java | 5 +- .../http/{ => servlets}/ListNodesServlet.java | 4 +- .../{ => servlets}/ListProposalsServlet.java | 4 +- .../{ => servlets}/ListWitnessesServlet.java | 5 +- .../MarketCancelOrderServlet.java | 6 +- .../MarketSellAssetServlet.java | 5 +- .../http/{ => servlets}/MetricsServlet.java | 3 +- .../ParticipateAssetIssueServlet.java | 5 +- .../ProposalApproveServlet.java | 5 +- .../{ => servlets}/ProposalCreateServlet.java | 5 +- .../{ => servlets}/ProposalDeleteServlet.java | 5 +- .../{ => servlets}/RateLimiterServlet.java | 4 +- .../ScanAndMarkNoteByIvkServlet.java | 5 +- .../{ => servlets}/ScanNoteByIvkServlet.java | 5 +- .../{ => servlets}/ScanNoteByOvkServlet.java | 5 +- .../ScanShieldedTRC20NotesByIvkServlet.java | 5 +- .../ScanShieldedTRC20NotesByOvkServlet.java | 5 +- .../{ => servlets}/SetAccountIdServlet.java | 5 +- .../TotalTransactionServlet.java | 5 +- .../{ => servlets}/TransferAssetServlet.java | 5 +- .../http/{ => servlets}/TransferServlet.java | 5 +- .../TriggerConstantContractServlet.java | 5 +- .../TriggerSmartContractServlet.java | 5 +- .../UnDelegateResourceServlet.java | 5 +- .../{ => servlets}/UnFreezeAssetServlet.java | 6 +- .../UnFreezeBalanceServlet.java | 6 +- .../UnFreezeBalanceV2Servlet.java | 5 +- .../{ => servlets}/UpdateAccountServlet.java | 6 +- .../{ => servlets}/UpdateAssetServlet.java | 6 +- .../UpdateBrokerageServlet.java | 6 +- .../UpdateEnergyLimitServlet.java | 6 +- .../{ => servlets}/UpdateSettingServlet.java | 6 +- .../{ => servlets}/UpdateWitnessServlet.java | 6 +- .../ValidateAddressServlet.java | 4 +- .../VoteWitnessAccountServlet.java | 5 +- .../WithdrawBalanceServlet.java | 5 +- .../WithdrawExpireUnfreezeServlet.java | 5 +- .../interfaceOnPBFT/HttpApiOnPBFTService.java | 94 ++++++------- .../HttpApiOnSolidityService.java | 88 ++++++------ .../core/services/jsonrpc/JsonRpcServlet.java | 2 +- .../tron/core/exception/TronErrorTest.java | 5 +- .../http/RateLimiterServletInt64Test.java | 2 + .../AccountPermissionUpdateServletTest.java | 2 +- .../http/{ => servlets}/BaseHttpTest.java | 2 +- .../{ => servlets}/BroadcastServletTest.java | 2 +- .../CancelAllUnfreezeV2ServletTest.java | 2 +- .../{ => servlets}/ClearABIServletTest.java | 2 +- .../CreateAccountServletTest.java | 3 +- .../CreateAssetIssueServletTest.java | 2 +- .../CreateSpendAuthSigServletTest.java | 2 +- .../CreateWitnessServletTest.java | 2 +- .../DelegateResourceServletTest.java | 2 +- .../DeployContractServletTest.java | 2 +- .../ExchangeCreateServletTest.java | 2 +- .../ExchangeInjectServletTest.java | 2 +- .../ExchangeTransactionServletTest.java | 2 +- .../ExchangeWithdrawServletTest.java | 2 +- .../FreezeBalanceServletTest.java | 2 +- .../FreezeBalanceV2ServletTest.java | 2 +- .../GetAccountByIdServletTest.java | 2 +- .../GetAccountResourceServletTest.java | 2 +- .../{ => servlets}/GetAccountServletTest.java | 2 +- .../GetAssetIssueByIdServletTest.java | 2 +- .../GetAssetIssueByNameServletTest.java | 2 +- .../GetAssetIssueListByNameServletTest.java | 2 +- .../GetAssetIssueListServletTest.java | 2 +- .../GetBandwidthPricesServletTest.java | 2 +- .../GetBlockByIdServletTest.java | 3 +- .../GetBlockByNumServletTest.java | 2 +- .../{ => servlets}/GetBlockServletTest.java | 2 +- .../GetBrokerageServletTest.java | 2 +- .../GetContractInfoServletTest.java | 2 +- .../GetContractServletTest.java | 2 +- ...egatedResourceAccountIndexServletTest.java | 2 +- ...atedResourceAccountIndexV2ServletTest.java | 3 +- .../GetEnergyPricesServletTest.java | 2 +- .../GetExchangeByIdServletTest.java | 2 +- .../GetMarketOrderByAccountServletTest.java | 2 +- .../GetMemoFeePricesServletTest.java | 2 +- .../GetNowBlockServletTest.java | 2 +- .../GetProposalByIdServletTest.java | 2 +- .../{ => servlets}/GetRewardServletTest.java | 2 +- ...tTransactionInfoByBlockNumServletTest.java | 2 +- .../GetTransactionInfoByIdServletTest.java | 2 +- ...TransactionListFromPendingServletTest.java | 4 +- .../http/{ => servlets}/HttpServletTest.java | 2 +- .../{ => servlets}/ListNodesServletTest.java | 2 +- .../ListProposalsServletTest.java | 2 +- .../MarketCancelOrderServletTest.java | 2 +- .../MarketSellAssetServletTest.java | 2 +- .../ParticipateAssetIssueServletTest.java | 2 +- .../ProposalApproveServletTest.java | 2 +- .../ProposalCreateServletTest.java | 2 +- .../ProposalDeleteServletTest.java | 2 +- .../RateLimiterServletTest.java | 2 +- .../ScanShieldedTRC20NotesServletTest.java | 2 +- .../SetAccountIdServletTest.java | 2 +- .../TransferAssetServletTest.java | 2 +- .../{ => servlets}/TransferServletTest.java | 2 +- .../TriggerConstantContractServletTest.java | 2 +- .../TriggerSmartContractServletTest.java | 2 +- .../UnDelegateResourceServletTest.java | 2 +- .../UnFreezeAssetServletTest.java | 2 +- .../UnFreezeBalanceServletTest.java | 2 +- .../UnFreezeBalanceV2ServletTest.java | 2 +- .../UpdateAccountServletTest.java | 2 +- .../UpdateAssetServletTest.java | 2 +- .../UpdateBrokerageServletTest.java | 2 +- .../UpdateEnergyLimitServletTest.java | 2 +- .../UpdateSettingServletTest.java | 2 +- .../UpdateWitnessServletTest.java | 2 +- .../ValidateAddressServletTest.java | 2 +- .../VoteWitnessAccountServletTest.java | 2 +- .../WithdrawBalanceServletTest.java | 2 +- .../WithdrawExpireUnfreezeServletTest.java | 2 +- .../org/tron/program/SolidityNodeTest.java | 2 +- 213 files changed, 825 insertions(+), 452 deletions(-) rename framework/src/main/java/org/tron/core/services/http/{solidity => }/SolidityNodeHttpApiService.java (76%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/AccountPermissionUpdateServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/BroadcastHexServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/BroadcastServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CancelAllUnfreezeV2Servlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ClearABIServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateAccountServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateAssetIssueServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateCommonTransactionServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateShieldNullifierServlet.java (85%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateShieldedContractParametersServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateShieldedContractParametersWithoutAskServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateShieldedTransactionServlet.java (86%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateShieldedTransactionWithoutSpendAuthSigServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateSpendAuthSigServlet.java (86%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/CreateWitnessServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/DelegateResourceServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/DeployContractServlet.java (95%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/EstimateEnergyServlet.java (96%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ExchangeCreateServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ExchangeInjectServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ExchangeTransactionServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ExchangeWithdrawServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/FreezeBalanceServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/FreezeBalanceV2Servlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAccountBalanceServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAccountByIdServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAccountNetServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAccountResourceServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAccountServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAkFromAskServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAssetIssueByAccountServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAssetIssueByIdServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAssetIssueByNameServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAssetIssueListByNameServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAssetIssueListServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetAvailableUnfreezeCountServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetBandwidthPricesServlet.java (87%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetBlockBalanceServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetBlockByIdServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetBlockByLatestNumServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetBlockByLimitNextServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetBlockByNumServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetBlockServlet.java (93%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetBrokerageServlet.java (94%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetBurnTrxServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetCanDelegatedMaxSizeServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetCanWithdrawUnfreezeAmountServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetChainParametersServlet.java (86%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetContractInfoServlet.java (93%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetContractServlet.java (93%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetDelegatedResourceAccountIndexServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetDelegatedResourceAccountIndexV2Servlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetDelegatedResourceServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetDelegatedResourceV2Servlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetDiversifierServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetEnergyPricesServlet.java (87%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetExchangeByIdServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetExpandedSpendingKeyServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetIncomingViewingKeyServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetMarketOrderByAccountServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetMarketOrderByIdServlet.java (93%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetMarketOrderListByPairServlet.java (94%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetMarketPairListServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetMarketPriceByPairServlet.java (94%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetMemoFeePricesServlet.java (87%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetMerkleTreeVoucherInfoServlet.java (87%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetNewShieldedAddressServlet.java (87%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetNextMaintenanceTimeServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetNkFromNskServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetNodeInfoServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetNowBlockServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetPaginatedAssetIssueListServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetPaginatedExchangeListServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetPaginatedNowWitnessListServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetPaginatedProposalListServlet.java (93%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetPendingSizeServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetProposalByIdServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetRcmServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetRewardServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetShieldTransactionHashServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetSpendingKeyServlet.java (87%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTransactionApprovedListServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTransactionByIdServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTransactionCountByBlockNumServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTransactionFromPendingServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTransactionInfoByBlockNumServlet.java (94%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTransactionInfoByIdServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTransactionListFromPendingServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTransactionReceiptByIdServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTransactionSignWeightServlet.java (90%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetTriggerInputForShieldedTRC20ContractServlet.java (87%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/GetZenPaymentAddressServlet.java (93%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/IsShieldedTRC20ContractNoteSpentServlet.java (86%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/IsSpendServlet.java (86%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ListExchangesServlet.java (86%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ListNodesServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ListProposalsServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ListWitnessesServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/MarketCancelOrderServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/MarketSellAssetServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/MetricsServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ParticipateAssetIssueServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ProposalApproveServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ProposalCreateServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ProposalDeleteServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/RateLimiterServlet.java (97%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ScanAndMarkNoteByIvkServlet.java (94%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ScanNoteByIvkServlet.java (93%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ScanNoteByOvkServlet.java (91%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ScanShieldedTRC20NotesByIvkServlet.java (95%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ScanShieldedTRC20NotesByOvkServlet.java (94%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/SetAccountIdServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/TotalTransactionServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/TransferAssetServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/TransferServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/TriggerConstantContractServlet.java (96%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/TriggerSmartContractServlet.java (97%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UnDelegateResourceServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UnFreezeAssetServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UnFreezeBalanceServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UnFreezeBalanceV2Servlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UpdateAccountServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UpdateAssetServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UpdateBrokerageServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UpdateEnergyLimitServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UpdateSettingServlet.java (89%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/UpdateWitnessServlet.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/ValidateAddressServlet.java (96%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/VoteWitnessAccountServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/WithdrawBalanceServlet.java (92%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/WithdrawExpireUnfreezeServlet.java (92%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/AccountPermissionUpdateServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/BaseHttpTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/BroadcastServletTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/CancelAllUnfreezeV2ServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ClearABIServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/CreateAccountServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/CreateAssetIssueServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/CreateSpendAuthSigServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/CreateWitnessServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/DelegateResourceServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/DeployContractServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ExchangeCreateServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ExchangeInjectServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ExchangeTransactionServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ExchangeWithdrawServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/FreezeBalanceServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/FreezeBalanceV2ServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetAccountByIdServletTest.java (96%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetAccountResourceServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetAccountServletTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetAssetIssueByIdServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetAssetIssueByNameServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetAssetIssueListByNameServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetAssetIssueListServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetBandwidthPricesServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetBlockByIdServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetBlockByNumServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetBlockServletTest.java (96%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetBrokerageServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetContractInfoServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetContractServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetDelegatedResourceAccountIndexServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetDelegatedResourceAccountIndexV2ServletTest.java (96%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetEnergyPricesServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetExchangeByIdServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetMarketOrderByAccountServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetMemoFeePricesServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetNowBlockServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetProposalByIdServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetRewardServletTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetTransactionInfoByBlockNumServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetTransactionInfoByIdServletTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/GetTransactionListFromPendingServletTest.java (95%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/HttpServletTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ListNodesServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ListProposalsServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/MarketCancelOrderServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/MarketSellAssetServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ParticipateAssetIssueServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ProposalApproveServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ProposalCreateServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ProposalDeleteServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/RateLimiterServletTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ScanShieldedTRC20NotesServletTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/SetAccountIdServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/TransferAssetServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/TransferServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/TriggerConstantContractServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/TriggerSmartContractServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UnDelegateResourceServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UnFreezeAssetServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UnFreezeBalanceServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UnFreezeBalanceV2ServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UpdateAccountServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UpdateAssetServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UpdateBrokerageServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UpdateEnergyLimitServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UpdateSettingServletTest.java (98%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UpdateWitnessServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/ValidateAddressServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/VoteWitnessAccountServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/WithdrawBalanceServletTest.java (97%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/WithdrawExpireUnfreezeServletTest.java (97%) diff --git a/framework/src/main/java/org/tron/core/config/DefaultConfig.java b/framework/src/main/java/org/tron/core/config/DefaultConfig.java index cb339074205..d36640b0c40 100755 --- a/framework/src/main/java/org/tron/core/config/DefaultConfig.java +++ b/framework/src/main/java/org/tron/core/config/DefaultConfig.java @@ -11,10 +11,10 @@ import org.tron.core.config.args.Args; import org.tron.core.db.RevokingDatabase; import org.tron.core.db2.core.SnapshotManager; -import org.tron.core.services.interfaceOnPBFT.RpcApiServiceOnPBFT; import org.tron.core.services.interfaceOnPBFT.HttpApiOnPBFTService; -import org.tron.core.services.interfaceOnSolidity.RpcApiServiceOnSolidity; +import org.tron.core.services.interfaceOnPBFT.RpcApiServiceOnPBFT; import org.tron.core.services.interfaceOnSolidity.HttpApiOnSolidityService; +import org.tron.core.services.interfaceOnSolidity.RpcApiServiceOnSolidity; @Slf4j(topic = "app") @Configuration diff --git a/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java b/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java index 5a3b86cb396..bc2627f02e7 100644 --- a/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java +++ b/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java @@ -15,7 +15,136 @@ import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.HttpInterceptor; import org.tron.core.services.filter.LiteFnQueryHttpFilter; - +import org.tron.core.services.http.servlets.AccountPermissionUpdateServlet; +import org.tron.core.services.http.servlets.BroadcastHexServlet; +import org.tron.core.services.http.servlets.BroadcastServlet; +import org.tron.core.services.http.servlets.CancelAllUnfreezeV2Servlet; +import org.tron.core.services.http.servlets.ClearABIServlet; +import org.tron.core.services.http.servlets.CreateAccountServlet; +import org.tron.core.services.http.servlets.CreateAssetIssueServlet; +import org.tron.core.services.http.servlets.CreateCommonTransactionServlet; +import org.tron.core.services.http.servlets.CreateShieldNullifierServlet; +import org.tron.core.services.http.servlets.CreateShieldedContractParametersServlet; +import org.tron.core.services.http.servlets.CreateShieldedContractParametersWithoutAskServlet; +import org.tron.core.services.http.servlets.CreateShieldedTransactionServlet; +import org.tron.core.services.http.servlets.CreateShieldedTransactionWithoutSpendAuthSigServlet; +import org.tron.core.services.http.servlets.CreateSpendAuthSigServlet; +import org.tron.core.services.http.servlets.CreateWitnessServlet; +import org.tron.core.services.http.servlets.DelegateResourceServlet; +import org.tron.core.services.http.servlets.DeployContractServlet; +import org.tron.core.services.http.servlets.EstimateEnergyServlet; +import org.tron.core.services.http.servlets.ExchangeCreateServlet; +import org.tron.core.services.http.servlets.ExchangeInjectServlet; +import org.tron.core.services.http.servlets.ExchangeTransactionServlet; +import org.tron.core.services.http.servlets.ExchangeWithdrawServlet; +import org.tron.core.services.http.servlets.FreezeBalanceServlet; +import org.tron.core.services.http.servlets.FreezeBalanceV2Servlet; +import org.tron.core.services.http.servlets.GetAccountBalanceServlet; +import org.tron.core.services.http.servlets.GetAccountByIdServlet; +import org.tron.core.services.http.servlets.GetAccountNetServlet; +import org.tron.core.services.http.servlets.GetAccountResourceServlet; +import org.tron.core.services.http.servlets.GetAccountServlet; +import org.tron.core.services.http.servlets.GetAkFromAskServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByAccountServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; +import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; +import org.tron.core.services.http.servlets.GetBlockBalanceServlet; +import org.tron.core.services.http.servlets.GetBlockByIdServlet; +import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; +import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; +import org.tron.core.services.http.servlets.GetBlockByNumServlet; +import org.tron.core.services.http.servlets.GetBlockServlet; +import org.tron.core.services.http.servlets.GetBrokerageServlet; +import org.tron.core.services.http.servlets.GetBurnTrxServlet; +import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; +import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; +import org.tron.core.services.http.servlets.GetChainParametersServlet; +import org.tron.core.services.http.servlets.GetContractInfoServlet; +import org.tron.core.services.http.servlets.GetContractServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; +import org.tron.core.services.http.servlets.GetDiversifierServlet; +import org.tron.core.services.http.servlets.GetEnergyPricesServlet; +import org.tron.core.services.http.servlets.GetExchangeByIdServlet; +import org.tron.core.services.http.servlets.GetExpandedSpendingKeyServlet; +import org.tron.core.services.http.servlets.GetIncomingViewingKeyServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; +import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; +import org.tron.core.services.http.servlets.GetMarketPairListServlet; +import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; +import org.tron.core.services.http.servlets.GetMemoFeePricesServlet; +import org.tron.core.services.http.servlets.GetMerkleTreeVoucherInfoServlet; +import org.tron.core.services.http.servlets.GetNewShieldedAddressServlet; +import org.tron.core.services.http.servlets.GetNextMaintenanceTimeServlet; +import org.tron.core.services.http.servlets.GetNkFromNskServlet; +import org.tron.core.services.http.servlets.GetNodeInfoServlet; +import org.tron.core.services.http.servlets.GetNowBlockServlet; +import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetPaginatedExchangeListServlet; +import org.tron.core.services.http.servlets.GetPaginatedNowWitnessListServlet; +import org.tron.core.services.http.servlets.GetPaginatedProposalListServlet; +import org.tron.core.services.http.servlets.GetPendingSizeServlet; +import org.tron.core.services.http.servlets.GetProposalByIdServlet; +import org.tron.core.services.http.servlets.GetRcmServlet; +import org.tron.core.services.http.servlets.GetRewardServlet; +import org.tron.core.services.http.servlets.GetShieldTransactionHashServlet; +import org.tron.core.services.http.servlets.GetSpendingKeyServlet; +import org.tron.core.services.http.servlets.GetTransactionApprovedListServlet; +import org.tron.core.services.http.servlets.GetTransactionByIdServlet; +import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionFromPendingServlet; +import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; +import org.tron.core.services.http.servlets.GetTransactionListFromPendingServlet; +import org.tron.core.services.http.servlets.GetTransactionReceiptByIdServlet; +import org.tron.core.services.http.servlets.GetTransactionSignWeightServlet; +import org.tron.core.services.http.servlets.GetTriggerInputForShieldedTRC20ContractServlet; +import org.tron.core.services.http.servlets.GetZenPaymentAddressServlet; +import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; +import org.tron.core.services.http.servlets.IsSpendServlet; +import org.tron.core.services.http.servlets.ListExchangesServlet; +import org.tron.core.services.http.servlets.ListNodesServlet; +import org.tron.core.services.http.servlets.ListProposalsServlet; +import org.tron.core.services.http.servlets.ListWitnessesServlet; +import org.tron.core.services.http.servlets.MarketCancelOrderServlet; +import org.tron.core.services.http.servlets.MarketSellAssetServlet; +import org.tron.core.services.http.servlets.MetricsServlet; +import org.tron.core.services.http.servlets.ParticipateAssetIssueServlet; +import org.tron.core.services.http.servlets.ProposalApproveServlet; +import org.tron.core.services.http.servlets.ProposalCreateServlet; +import org.tron.core.services.http.servlets.ProposalDeleteServlet; +import org.tron.core.services.http.servlets.ScanAndMarkNoteByIvkServlet; +import org.tron.core.services.http.servlets.ScanNoteByIvkServlet; +import org.tron.core.services.http.servlets.ScanNoteByOvkServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; +import org.tron.core.services.http.servlets.SetAccountIdServlet; +import org.tron.core.services.http.servlets.TotalTransactionServlet; +import org.tron.core.services.http.servlets.TransferAssetServlet; +import org.tron.core.services.http.servlets.TransferServlet; +import org.tron.core.services.http.servlets.TriggerConstantContractServlet; +import org.tron.core.services.http.servlets.TriggerSmartContractServlet; +import org.tron.core.services.http.servlets.UnDelegateResourceServlet; +import org.tron.core.services.http.servlets.UnFreezeAssetServlet; +import org.tron.core.services.http.servlets.UnFreezeBalanceServlet; +import org.tron.core.services.http.servlets.UnFreezeBalanceV2Servlet; +import org.tron.core.services.http.servlets.UpdateAccountServlet; +import org.tron.core.services.http.servlets.UpdateAssetServlet; +import org.tron.core.services.http.servlets.UpdateBrokerageServlet; +import org.tron.core.services.http.servlets.UpdateEnergyLimitServlet; +import org.tron.core.services.http.servlets.UpdateSettingServlet; +import org.tron.core.services.http.servlets.UpdateWitnessServlet; +import org.tron.core.services.http.servlets.ValidateAddressServlet; +import org.tron.core.services.http.servlets.VoteWitnessAccountServlet; +import org.tron.core.services.http.servlets.WithdrawBalanceServlet; +import org.tron.core.services.http.servlets.WithdrawExpireUnfreezeServlet; @Component("fullNodeHttpApiService") @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java b/framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java similarity index 76% rename from framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java rename to framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java index 799d3faab8a..ef9d89345ec 100644 --- a/framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java +++ b/framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http.solidity; +package org.tron.core.services.http; import java.util.EnumSet; import javax.servlet.DispatcherType; @@ -11,56 +11,55 @@ import org.tron.common.application.HttpService; import org.tron.core.config.args.Args; import org.tron.core.services.filter.HttpApiAccessFilter; -import org.tron.core.services.http.EstimateEnergyServlet; -import org.tron.core.services.http.GetAccountByIdServlet; -import org.tron.core.services.http.GetAccountServlet; -import org.tron.core.services.http.GetAssetIssueByIdServlet; -import org.tron.core.services.http.GetAssetIssueByNameServlet; -import org.tron.core.services.http.GetAssetIssueListByNameServlet; -import org.tron.core.services.http.GetAssetIssueListServlet; -import org.tron.core.services.http.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.http.GetBandwidthPricesServlet; -import org.tron.core.services.http.GetBlockByIdServlet; -import org.tron.core.services.http.GetBlockByLatestNumServlet; -import org.tron.core.services.http.GetBlockByLimitNextServlet; -import org.tron.core.services.http.GetBlockByNumServlet; -import org.tron.core.services.http.GetBlockServlet; -import org.tron.core.services.http.GetBrokerageServlet; -import org.tron.core.services.http.GetBurnTrxServlet; -import org.tron.core.services.http.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.http.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.http.GetDelegatedResourceServlet; -import org.tron.core.services.http.GetDelegatedResourceV2Servlet; -import org.tron.core.services.http.GetEnergyPricesServlet; -import org.tron.core.services.http.GetExchangeByIdServlet; -import org.tron.core.services.http.GetMarketOrderByAccountServlet; -import org.tron.core.services.http.GetMarketOrderByIdServlet; -import org.tron.core.services.http.GetMarketOrderListByPairServlet; -import org.tron.core.services.http.GetMarketPairListServlet; -import org.tron.core.services.http.GetMarketPriceByPairServlet; -import org.tron.core.services.http.GetMerkleTreeVoucherInfoServlet; -import org.tron.core.services.http.GetNodeInfoServlet; -import org.tron.core.services.http.GetNowBlockServlet; -import org.tron.core.services.http.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.http.GetPaginatedNowWitnessListServlet; -import org.tron.core.services.http.GetRewardServlet; -import org.tron.core.services.http.GetTransactionByIdServlet; -import org.tron.core.services.http.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.http.GetTransactionInfoByBlockNumServlet; -import org.tron.core.services.http.GetTransactionInfoByIdServlet; -import org.tron.core.services.http.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.IsSpendServlet; -import org.tron.core.services.http.ListExchangesServlet; -import org.tron.core.services.http.ListWitnessesServlet; -import org.tron.core.services.http.ScanAndMarkNoteByIvkServlet; -import org.tron.core.services.http.ScanNoteByIvkServlet; -import org.tron.core.services.http.ScanNoteByOvkServlet; -import org.tron.core.services.http.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.http.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.http.TriggerConstantContractServlet; - +import org.tron.core.services.http.servlets.EstimateEnergyServlet; +import org.tron.core.services.http.servlets.GetAccountByIdServlet; +import org.tron.core.services.http.servlets.GetAccountServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; +import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; +import org.tron.core.services.http.servlets.GetBlockByIdServlet; +import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; +import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; +import org.tron.core.services.http.servlets.GetBlockByNumServlet; +import org.tron.core.services.http.servlets.GetBlockServlet; +import org.tron.core.services.http.servlets.GetBrokerageServlet; +import org.tron.core.services.http.servlets.GetBurnTrxServlet; +import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; +import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; +import org.tron.core.services.http.servlets.GetEnergyPricesServlet; +import org.tron.core.services.http.servlets.GetExchangeByIdServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; +import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; +import org.tron.core.services.http.servlets.GetMarketPairListServlet; +import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; +import org.tron.core.services.http.servlets.GetMerkleTreeVoucherInfoServlet; +import org.tron.core.services.http.servlets.GetNodeInfoServlet; +import org.tron.core.services.http.servlets.GetNowBlockServlet; +import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetPaginatedNowWitnessListServlet; +import org.tron.core.services.http.servlets.GetRewardServlet; +import org.tron.core.services.http.servlets.GetTransactionByIdServlet; +import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; +import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; +import org.tron.core.services.http.servlets.IsSpendServlet; +import org.tron.core.services.http.servlets.ListExchangesServlet; +import org.tron.core.services.http.servlets.ListWitnessesServlet; +import org.tron.core.services.http.servlets.ScanAndMarkNoteByIvkServlet; +import org.tron.core.services.http.servlets.ScanNoteByIvkServlet; +import org.tron.core.services.http.servlets.ScanNoteByOvkServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; +import org.tron.core.services.http.servlets.TriggerConstantContractServlet; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/AccountPermissionUpdateServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/AccountPermissionUpdateServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServlet.java index 6fe83eff8be..69599fd6f9e 100644 --- a/framework/src/main/java/org/tron/core/services/http/AccountPermissionUpdateServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.AccountContract.AccountPermissionUpdateContract; - @Component @Slf4j(topic = "API") public class AccountPermissionUpdateServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/BroadcastHexServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastHexServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/BroadcastHexServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/BroadcastHexServlet.java index 5d59df59678..e796788d02c 100644 --- a/framework/src/main/java/org/tron/core/services/http/BroadcastHexServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastHexServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -10,6 +10,8 @@ import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; diff --git a/framework/src/main/java/org/tron/core/services/http/BroadcastServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/BroadcastServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/BroadcastServlet.java index 370a81eef4e..1b2392962f0 100644 --- a/framework/src/main/java/org/tron/core/services/http/BroadcastServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -9,10 +9,12 @@ import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; - @Component @Slf4j(topic = "API") public class BroadcastServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/CancelAllUnfreezeV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2Servlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/CancelAllUnfreezeV2Servlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2Servlet.java index a2d4571be27..3b758923be8 100644 --- a/framework/src/main/java/org/tron/core/services/http/CancelAllUnfreezeV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2Servlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,6 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; diff --git a/framework/src/main/java/org/tron/core/services/http/ClearABIServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ClearABIServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/ClearABIServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ClearABIServlet.java index e0833052ce8..96b6c79e7df 100644 --- a/framework/src/main/java/org/tron/core/services/http/ClearABIServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ClearABIServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.SmartContractOuterClass.ClearABIContract; - @Component @Slf4j(topic = "API") public class ClearABIServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/CreateAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateAccountServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/CreateAccountServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateAccountServlet.java index b547fd00364..a03b1181583 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateAccountServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.AccountContract.AccountCreateContract; - @Component @Slf4j(topic = "API") public class CreateAccountServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/CreateAssetIssueServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateAssetIssueServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/CreateAssetIssueServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateAssetIssueServlet.java index bc1a33509e0..d7d26ee0260 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateAssetIssueServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateAssetIssueServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.AssetIssueContractOuterClass.AssetIssueContract; - @Component @Slf4j(topic = "API") public class CreateAssetIssueServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/CreateCommonTransactionServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateCommonTransactionServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/CreateCommonTransactionServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateCommonTransactionServlet.java index f4b5e03db82..32a8013b958 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateCommonTransactionServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateCommonTransactionServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.GeneratedMessageV3; import com.google.protobuf.Message; @@ -12,11 +12,13 @@ import org.tron.core.Wallet; import org.tron.core.actuator.TransactionFactory; import org.tron.core.exception.ContractValidateException; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; - @Component @Slf4j(topic = "API") public class CreateCommonTransactionServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/CreateShieldNullifierServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldNullifierServlet.java similarity index 85% rename from framework/src/main/java/org/tron/core/services/http/CreateShieldNullifierServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldNullifierServlet.java index cfbc1eb48c4..a6b4df7020a 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateShieldNullifierServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldNullifierServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -8,7 +8,9 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.api.GrpcAPI.NfParameters; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/CreateShieldedContractParametersServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/CreateShieldedContractParametersServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java index 2b5afbbd8e2..15082ae808d 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateShieldedContractParametersServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,8 @@ import org.tron.api.GrpcAPI.PrivateShieldedTRC20Parameters; import org.tron.api.GrpcAPI.ShieldedTRC20Parameters; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/CreateShieldedContractParametersWithoutAskServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/CreateShieldedContractParametersWithoutAskServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java index 80a8ba53bbc..9e2d338b058 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateShieldedContractParametersWithoutAskServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.PrivateShieldedTRC20ParametersWithoutAsk; import org.tron.api.GrpcAPI.ShieldedTRC20Parameters; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/CreateShieldedTransactionServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionServlet.java similarity index 86% rename from framework/src/main/java/org/tron/core/services/http/CreateShieldedTransactionServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionServlet.java index 2a90e2f704c..ae899d490ed 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateShieldedTransactionServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,9 +7,11 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PrivateParameters; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.Transaction; - @Component @Slf4j(topic = "API") public class CreateShieldedTransactionServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/CreateShieldedTransactionWithoutSpendAuthSigServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionWithoutSpendAuthSigServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/CreateShieldedTransactionWithoutSpendAuthSigServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionWithoutSpendAuthSigServlet.java index eb870bd1721..7ce4693b5d3 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateShieldedTransactionWithoutSpendAuthSigServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionWithoutSpendAuthSigServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,11 +7,13 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PrivateParametersWithoutAsk; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; - @Component @Slf4j(topic = "API") public class CreateShieldedTransactionWithoutSpendAuthSigServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/CreateSpendAuthSigServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServlet.java similarity index 86% rename from framework/src/main/java/org/tron/core/services/http/CreateSpendAuthSigServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServlet.java index b2b57c9cb9d..f98f5a18ab3 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateSpendAuthSigServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -8,7 +8,9 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.api.GrpcAPI.SpendAuthSigParameters; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/CreateWitnessServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateWitnessServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/CreateWitnessServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/CreateWitnessServlet.java index 3258dbbe6b9..bbad4ac17fd 100644 --- a/framework/src/main/java/org/tron/core/services/http/CreateWitnessServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateWitnessServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.WitnessContract.WitnessCreateContract; - @Component @Slf4j(topic = "API") public class CreateWitnessServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/DelegateResourceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/DelegateResourceServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/DelegateResourceServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/DelegateResourceServlet.java index 25641ff093c..0d99a5904d7 100644 --- a/framework/src/main/java/org/tron/core/services/http/DelegateResourceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/DelegateResourceServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,6 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; diff --git a/framework/src/main/java/org/tron/core/services/http/DeployContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/DeployContractServlet.java similarity index 95% rename from framework/src/main/java/org/tron/core/services/http/DeployContractServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/DeployContractServlet.java index 45a5be961e9..847dc4bcddb 100644 --- a/framework/src/main/java/org/tron/core/services/http/DeployContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/DeployContractServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.tron.core.services.http.Util.getHexAddress; import static org.tron.core.services.http.Util.setTransactionPermissionId; @@ -13,6 +13,9 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -20,7 +23,6 @@ import org.tron.protos.contract.SmartContractOuterClass.SmartContract; import org.tron.protos.contract.SmartContractOuterClass.SmartContract.ABI; - @Component @Slf4j(topic = "API") public class DeployContractServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/EstimateEnergyServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/EstimateEnergyServlet.java similarity index 96% rename from framework/src/main/java/org/tron/core/services/http/EstimateEnergyServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/EstimateEnergyServlet.java index 91d673a2d08..104c5688597 100644 --- a/framework/src/main/java/org/tron/core/services/http/EstimateEnergyServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/EstimateEnergyServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import io.netty.util.internal.StringUtil; @@ -16,6 +16,8 @@ import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; import org.tron.core.exception.ContractValidateException; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol; import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract; diff --git a/framework/src/main/java/org/tron/core/services/http/ExchangeCreateServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeCreateServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/ExchangeCreateServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ExchangeCreateServlet.java index 84707c5586f..6fd9915a348 100644 --- a/framework/src/main/java/org/tron/core/services/http/ExchangeCreateServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeCreateServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.ExchangeContract.ExchangeCreateContract; - @Component @Slf4j(topic = "API") public class ExchangeCreateServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/ExchangeInjectServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeInjectServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/ExchangeInjectServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ExchangeInjectServlet.java index b4b2b31221e..b041dfeedaf 100644 --- a/framework/src/main/java/org/tron/core/services/http/ExchangeInjectServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeInjectServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.ExchangeContract.ExchangeInjectContract; - @Component @Slf4j(topic = "API") public class ExchangeInjectServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/ExchangeTransactionServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeTransactionServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/ExchangeTransactionServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ExchangeTransactionServlet.java index a143cd45c70..2de93593763 100644 --- a/framework/src/main/java/org/tron/core/services/http/ExchangeTransactionServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeTransactionServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.ExchangeContract.ExchangeTransactionContract; - @Component @Slf4j(topic = "API") public class ExchangeTransactionServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/ExchangeWithdrawServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeWithdrawServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/ExchangeWithdrawServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ExchangeWithdrawServlet.java index 159f23abb22..380c7de3fe0 100644 --- a/framework/src/main/java/org/tron/core/services/http/ExchangeWithdrawServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeWithdrawServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.ExchangeContract.ExchangeWithdrawContract; - @Component @Slf4j(topic = "API") public class ExchangeWithdrawServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/FreezeBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/FreezeBalanceServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceServlet.java index 2990755b928..2915b873382 100644 --- a/framework/src/main/java/org/tron/core/services/http/FreezeBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.BalanceContract.FreezeBalanceContract; - @Component @Slf4j(topic = "API") public class FreezeBalanceServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/FreezeBalanceV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceV2Servlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/FreezeBalanceV2Servlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceV2Servlet.java index 95d20233898..acd541e8626 100644 --- a/framework/src/main/java/org/tron/core/services/http/FreezeBalanceV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceV2Servlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,6 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; diff --git a/framework/src/main/java/org/tron/core/services/http/GetAccountBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountBalanceServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/GetAccountBalanceServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAccountBalanceServlet.java index db48fc11340..33620aa0928 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAccountBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountBalanceServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,9 +6,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.contract.BalanceContract; - @Component @Slf4j(topic = "API") public class GetAccountBalanceServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetAccountByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountByIdServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetAccountByIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAccountByIdServlet.java index 96243327c70..ff1f65d60d5 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAccountByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountByIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -7,10 +7,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Account; - @Component @Slf4j(topic = "API") public class GetAccountByIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetAccountNetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountNetServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetAccountNetServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAccountNetServlet.java index 121a23c61ab..18594e8f7d0 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAccountNetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountNetServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import javax.servlet.http.HttpServletRequest; @@ -9,9 +9,11 @@ import org.tron.api.GrpcAPI.AccountNetMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.Account; - @Component @Slf4j(topic = "API") public class GetAccountNetServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetAccountResourceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountResourceServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/GetAccountResourceServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAccountResourceServlet.java index 0e26a526a12..28244b9c1e9 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAccountResourceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountResourceServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.AccountResourceMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; @Component diff --git a/framework/src/main/java/org/tron/core/services/http/GetAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetAccountServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAccountServlet.java index ee5bbdf3d3a..5b4953853b3 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,10 +6,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Account; - @Component @Slf4j(topic = "API") public class GetAccountServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetAkFromAskServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAkFromAskServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/GetAkFromAskServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAkFromAskServlet.java index c31692413a9..7b7be2205b3 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAkFromAskServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAkFromAskServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueByAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByAccountServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetAssetIssueByAccountServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByAccountServlet.java index e9e85af2e81..d52cf6bfb57 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueByAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByAccountServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import javax.servlet.http.HttpServletRequest; @@ -9,9 +9,11 @@ import org.tron.api.GrpcAPI.AssetIssueList; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.Account; - @Component @Slf4j(topic = "API") public class GetAssetIssueByAccountServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetAssetIssueByIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServlet.java index b705c4ed0cd..2f759f958ba 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,10 +6,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.contract.AssetIssueContractOuterClass.AssetIssueContract; - @Component @Slf4j(topic = "API") public class GetAssetIssueByIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueByNameServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/GetAssetIssueByNameServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServlet.java index da6a7243f41..5ac59b7b03a 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueByNameServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import javax.servlet.http.HttpServletRequest; @@ -8,11 +8,13 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.contract.AssetIssueContractOuterClass.AssetIssueContract; - @Component @Slf4j(topic = "API") public class GetAssetIssueByNameServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueListByNameServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetAssetIssueListByNameServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServlet.java index 2c203ed983e..27f7b919bb1 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueListByNameServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -10,10 +10,12 @@ import org.tron.api.GrpcAPI.AssetIssueList; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSON; import org.tron.json.JSONObject; - @Component @Slf4j(topic = "API") public class GetAssetIssueListByNameServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/GetAssetIssueListServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListServlet.java index 3968554a671..8b11a910fe1 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAssetIssueListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,6 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.AssetIssueList; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetAvailableUnfreezeCountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAvailableUnfreezeCountServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetAvailableUnfreezeCountServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetAvailableUnfreezeCountServlet.java index 51f78fc4390..63d41d7db7d 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetAvailableUnfreezeCountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAvailableUnfreezeCountServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -10,6 +10,9 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetBandwidthPricesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBandwidthPricesServlet.java similarity index 87% rename from framework/src/main/java/org/tron/core/services/http/GetBandwidthPricesServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetBandwidthPricesServlet.java index 09d51cc8635..14cc8007b59 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetBandwidthPricesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBandwidthPricesServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,6 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PricesResponseMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetBlockBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockBalanceServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/GetBlockBalanceServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetBlockBalanceServlet.java index 5217b37907a..4f8c9beb114 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetBlockBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockBalanceServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,9 +6,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.contract.BalanceContract.BlockBalanceTrace; - @Component @Slf4j(topic = "API") public class GetBlockBalanceServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetBlockByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByIdServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetBlockByIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByIdServlet.java index f7e6ac0ff7d..c22520a3d6a 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetBlockByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -10,9 +10,11 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.Block; - @Component @Slf4j(topic = "API") public class GetBlockByIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetBlockByLatestNumServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLatestNumServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetBlockByLatestNumServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLatestNumServlet.java index 1f2eabdd8dc..8a8e01bd11c 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetBlockByLatestNumServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLatestNumServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -9,7 +9,9 @@ import org.tron.api.GrpcAPI.BlockList; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetBlockByLimitNextServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLimitNextServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/GetBlockByLimitNextServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLimitNextServlet.java index 3e6700a1fae..818eba5872f 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetBlockByLimitNextServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLimitNextServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -9,7 +9,9 @@ import org.tron.api.GrpcAPI.BlockLimit; import org.tron.api.GrpcAPI.BlockList; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetBlockByNumServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByNumServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetBlockByNumServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByNumServlet.java index 800b421ace0..07f5641ae1d 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetBlockByNumServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByNumServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -8,9 +8,11 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.Block; - @Component @Slf4j(topic = "API") public class GetBlockByNumServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetBlockServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockServlet.java similarity index 93% rename from framework/src/main/java/org/tron/core/services/http/GetBlockServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetBlockServlet.java index 2320fc87c7d..e96b7e53275 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetBlockServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.common.base.Strings; import java.io.IOException; @@ -10,11 +10,13 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BlockReq; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Block; - @Component @Slf4j(topic = "API") public class GetBlockServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetBrokerageServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBrokerageServlet.java similarity index 94% rename from framework/src/main/java/org/tron/core/services/http/GetBrokerageServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetBrokerageServlet.java index 1fbd94fe690..34c892e111e 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetBrokerageServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBrokerageServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -8,7 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.db.Manager; - +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetBurnTrxServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBurnTrxServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/GetBurnTrxServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetBurnTrxServlet.java index ea066a6e98c..22d553ac483 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetBurnTrxServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBurnTrxServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -7,7 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.db.Manager; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetCanDelegatedMaxSizeServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetCanDelegatedMaxSizeServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetCanDelegatedMaxSizeServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetCanDelegatedMaxSizeServlet.java index 924306a6a3f..1d9c3c2df6d 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetCanDelegatedMaxSizeServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetCanDelegatedMaxSizeServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -10,6 +10,9 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetCanWithdrawUnfreezeAmountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetCanWithdrawUnfreezeAmountServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetCanWithdrawUnfreezeAmountServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetCanWithdrawUnfreezeAmountServlet.java index 435cca9e5fb..3b6fdfab543 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetCanWithdrawUnfreezeAmountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetCanWithdrawUnfreezeAmountServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -10,6 +10,9 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetChainParametersServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetChainParametersServlet.java similarity index 86% rename from framework/src/main/java/org/tron/core/services/http/GetChainParametersServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetChainParametersServlet.java index 18c96f4d64e..d8be1885ec5 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetChainParametersServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetChainParametersServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,7 +6,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetContractInfoServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetContractInfoServlet.java similarity index 93% rename from framework/src/main/java/org/tron/core/services/http/GetContractInfoServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetContractInfoServlet.java index 6a1549bd398..12a123b0583 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetContractInfoServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetContractInfoServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,10 +7,12 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.contract.SmartContractOuterClass.SmartContractDataWrapper; - @Component @Slf4j(topic = "API") public class GetContractInfoServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetContractServlet.java similarity index 93% rename from framework/src/main/java/org/tron/core/services/http/GetContractServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetContractServlet.java index 3565d3121f6..f4761c410ce 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetContractServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.tron.core.services.http.PostParams.S_VALUE; @@ -9,10 +9,12 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.contract.SmartContractOuterClass.SmartContract; - @Component @Slf4j(topic = "API") public class GetContractServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServlet.java index e022c523548..ff76d9c99a4 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -10,10 +10,12 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.DelegatedResourceAccountIndex; - @Component @Slf4j(topic = "API") public class GetDelegatedResourceAccountIndexServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2Servlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexV2Servlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2Servlet.java index 7ff517256f9..44ab5d9ba8b 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2Servlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -10,10 +10,12 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.DelegatedResourceAccountIndex; - @Component @Slf4j(topic = "API") public class GetDelegatedResourceAccountIndexV2Servlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceServlet.java index 5787aba3c93..0fd7f37d2e1 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -12,7 +12,9 @@ import org.tron.api.GrpcAPI.DelegatedResourceMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceV2Servlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceV2Servlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceV2Servlet.java index 632bb4f8033..2c00f9ba3f0 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetDelegatedResourceV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceV2Servlet.java @@ -1,8 +1,7 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; @@ -12,8 +11,9 @@ import org.tron.api.GrpcAPI.DelegatedResourceMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; - - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetDiversifierServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDiversifierServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/GetDiversifierServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetDiversifierServlet.java index e37a1d6a785..6cb62eded5d 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetDiversifierServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDiversifierServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -8,7 +8,9 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetEnergyPricesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetEnergyPricesServlet.java similarity index 87% rename from framework/src/main/java/org/tron/core/services/http/GetEnergyPricesServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetEnergyPricesServlet.java index b9b6ba0d893..206092ade1a 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetEnergyPricesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetEnergyPricesServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,6 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PricesResponseMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetExchangeByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetExchangeByIdServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/GetExchangeByIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetExchangeByIdServlet.java index 1e87a4f188f..7367b731ae5 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetExchangeByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetExchangeByIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -9,9 +9,11 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; - @Component @Slf4j(topic = "API") public class GetExchangeByIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetExpandedSpendingKeyServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetExpandedSpendingKeyServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetExpandedSpendingKeyServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetExpandedSpendingKeyServlet.java index a71f5db56e1..742d0fd09ac 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetExpandedSpendingKeyServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetExpandedSpendingKeyServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.util.stream.Collectors; @@ -11,6 +11,9 @@ import org.tron.api.GrpcAPI.ExpandedSpendingKeyMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetIncomingViewingKeyServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetIncomingViewingKeyServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetIncomingViewingKeyServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetIncomingViewingKeyServlet.java index 4eb3a01693e..dcc1c57cd68 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetIncomingViewingKeyServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetIncomingViewingKeyServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -8,9 +8,11 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; - @Component @Slf4j(topic = "API") public class GetIncomingViewingKeyServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetMarketOrderByAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/GetMarketOrderByAccountServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServlet.java index 1f011bb88ce..5dd1d883dc9 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetMarketOrderByAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -9,11 +9,13 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.MarketOrderList; - @Component @Slf4j(topic = "API") public class GetMarketOrderByAccountServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetMarketOrderByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByIdServlet.java similarity index 93% rename from framework/src/main/java/org/tron/core/services/http/GetMarketOrderByIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByIdServlet.java index bdb8a4b6d3c..716362e0167 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetMarketOrderByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.util.stream.Collectors; @@ -10,9 +10,10 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.MarketOrder; - @Component @Slf4j(topic = "API") public class GetMarketOrderByIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetMarketOrderListByPairServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderListByPairServlet.java similarity index 94% rename from framework/src/main/java/org/tron/core/services/http/GetMarketOrderListByPairServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderListByPairServlet.java index 963ea880033..85071989231 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetMarketOrderListByPairServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderListByPairServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -8,10 +8,11 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.MarketOrderList; import org.tron.protos.Protocol.MarketOrderPair; - @Component @Slf4j(topic = "API") public class GetMarketOrderListByPairServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetMarketPairListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPairListServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetMarketPairListServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPairListServlet.java index 6cb9c5d868f..61b77c6d6b7 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetMarketPairListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPairListServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,9 +7,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.MarketOrderPairList; - @Component @Slf4j(topic = "API") public class GetMarketPairListServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetMarketPriceByPairServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPriceByPairServlet.java similarity index 94% rename from framework/src/main/java/org/tron/core/services/http/GetMarketPriceByPairServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPriceByPairServlet.java index b6d31e10936..ce1eba981a8 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetMarketPriceByPairServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPriceByPairServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -8,10 +8,11 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.MarketOrderPair; import org.tron.protos.Protocol.MarketPriceList; - @Component @Slf4j(topic = "API") public class GetMarketPriceByPairServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetMemoFeePricesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMemoFeePricesServlet.java similarity index 87% rename from framework/src/main/java/org/tron/core/services/http/GetMemoFeePricesServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetMemoFeePricesServlet.java index 0da52bf9d35..50075d3e7bd 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetMemoFeePricesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMemoFeePricesServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,6 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PricesResponseMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetMerkleTreeVoucherInfoServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java similarity index 87% rename from framework/src/main/java/org/tron/core/services/http/GetMerkleTreeVoucherInfoServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java index 5c4d8895c50..b354a2d77e5 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetMerkleTreeVoucherInfoServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,10 +6,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.contract.ShieldContract.IncrementalMerkleVoucherInfo; import org.tron.protos.contract.ShieldContract.OutputPointInfo; - @Component @Slf4j(topic = "API") public class GetMerkleTreeVoucherInfoServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetNewShieldedAddressServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNewShieldedAddressServlet.java similarity index 87% rename from framework/src/main/java/org/tron/core/services/http/GetNewShieldedAddressServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetNewShieldedAddressServlet.java index 853268b7c8c..4a8d2581d80 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetNewShieldedAddressServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNewShieldedAddressServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,6 +7,9 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.ShieldedAddressInfo; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetNextMaintenanceTimeServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNextMaintenanceTimeServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/GetNextMaintenanceTimeServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetNextMaintenanceTimeServlet.java index c93244f5782..2b6c06aa699 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetNextMaintenanceTimeServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNextMaintenanceTimeServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,7 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetNkFromNskServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNkFromNskServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/GetNkFromNskServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetNkFromNskServlet.java index 6ec2f525e1b..56f57b59956 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetNkFromNskServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNkFromNskServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetNodeInfoServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNodeInfoServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetNodeInfoServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetNodeInfoServlet.java index 0b8f7b9ce2b..119ecb4f9c4 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetNodeInfoServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNodeInfoServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -8,9 +8,9 @@ import org.springframework.stereotype.Component; import org.tron.common.entity.NodeInfo; import org.tron.core.services.NodeInfoService; +import org.tron.core.services.http.Util; import org.tron.json.JSON; - @Component @Slf4j(topic = "API") public class GetNodeInfoServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetNowBlockServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNowBlockServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetNowBlockServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetNowBlockServlet.java index 56e01d557f5..528d1ddfe11 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetNowBlockServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNowBlockServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.Block; @Component diff --git a/framework/src/main/java/org/tron/core/services/http/GetPaginatedAssetIssueListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedAssetIssueListServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetPaginatedAssetIssueListServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedAssetIssueListServlet.java index 0246979e279..069dea0db18 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetPaginatedAssetIssueListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedAssetIssueListServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.AssetIssueList; import org.tron.api.GrpcAPI.PaginatedMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetPaginatedExchangeListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedExchangeListServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetPaginatedExchangeListServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedExchangeListServlet.java index 28018497952..aea9f93b256 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetPaginatedExchangeListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedExchangeListServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.ExchangeList; import org.tron.api.GrpcAPI.PaginatedMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetPaginatedNowWitnessListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedNowWitnessListServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/GetPaginatedNowWitnessListServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedNowWitnessListServlet.java index e53ab6610ec..34bc7c8a8d5 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetPaginatedNowWitnessListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedNowWitnessListServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI; import org.tron.core.Wallet; import org.tron.core.exception.MaintenanceUnavailableException; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; // Get the paged list of witnesses info with realtime vote counts @Component diff --git a/framework/src/main/java/org/tron/core/services/http/GetPaginatedProposalListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedProposalListServlet.java similarity index 93% rename from framework/src/main/java/org/tron/core/services/http/GetPaginatedProposalListServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedProposalListServlet.java index 11b2c57ff48..90091c91d6a 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetPaginatedProposalListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedProposalListServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import java.util.stream.Collectors; @@ -10,6 +10,8 @@ import org.tron.api.GrpcAPI.PaginatedMessage; import org.tron.api.GrpcAPI.ProposalList; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetPendingSizeServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPendingSizeServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/GetPendingSizeServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetPendingSizeServlet.java index 9788c926586..e09bb62b6d7 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetPendingSizeServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPendingSizeServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -7,7 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.db.Manager; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetProposalByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetProposalByIdServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetProposalByIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetProposalByIdServlet.java index f57bc8b1b3f..2012f84d334 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetProposalByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetProposalByIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -9,10 +9,12 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Proposal; - @Component @Slf4j(topic = "API") public class GetProposalByIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetRcmServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetRcmServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/GetRcmServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetRcmServlet.java index 091867455f5..86af5dca6b2 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetRcmServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetRcmServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,7 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetRewardServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetRewardServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetRewardServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetRewardServlet.java index 61b88d1160f..78d46dc9ec7 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetRewardServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetRewardServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -8,7 +8,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.db.Manager; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetShieldTransactionHashServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetShieldTransactionHashServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetShieldTransactionHashServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetShieldTransactionHashServlet.java index 64f0c7e7b28..ae228a9f4ec 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetShieldTransactionHashServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetShieldTransactionHashServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -8,9 +8,10 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.Transaction; - @Component @Slf4j(topic = "API") public class GetShieldTransactionHashServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetSpendingKeyServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetSpendingKeyServlet.java similarity index 87% rename from framework/src/main/java/org/tron/core/services/http/GetSpendingKeyServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetSpendingKeyServlet.java index 23c274566ca..668fd0c2b9d 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetSpendingKeyServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetSpendingKeyServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -8,6 +8,9 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetTransactionApprovedListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionApprovedListServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetTransactionApprovedListServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionApprovedListServlet.java index d4d123b7efe..71f240c3565 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTransactionApprovedListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionApprovedListServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,9 +7,10 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.TransactionApprovedList; import org.tron.core.Wallet; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.Transaction; - @Component @Slf4j(topic = "API") public class GetTransactionApprovedListServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetTransactionByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionByIdServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetTransactionByIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionByIdServlet.java index 49343da9070..0536b59ca6c 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTransactionByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionByIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.io.IOException; @@ -11,9 +11,11 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.Transaction; - @Component @Slf4j(topic = "API") public class GetTransactionByIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetTransactionCountByBlockNumServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionCountByBlockNumServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/GetTransactionCountByBlockNumServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionCountByBlockNumServlet.java index 81c1ece73fb..93e4c0ed094 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTransactionCountByBlockNumServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionCountByBlockNumServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import java.util.stream.Collectors; @@ -9,7 +9,9 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetTransactionFromPendingServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionFromPendingServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetTransactionFromPendingServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionFromPendingServlet.java index 276eff62af8..114f12445f5 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTransactionFromPendingServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionFromPendingServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -9,7 +9,9 @@ import org.tron.common.utils.ByteArray; import org.tron.core.capsule.TransactionCapsule; import org.tron.core.db.Manager; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetTransactionInfoByBlockNumServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServlet.java similarity index 94% rename from framework/src/main/java/org/tron/core/services/http/GetTransactionInfoByBlockNumServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServlet.java index 5d0a09b1a68..a0c1ce6c383 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTransactionInfoByBlockNumServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import java.util.List; @@ -10,6 +10,9 @@ import org.tron.api.GrpcAPI.NumberMessage; import org.tron.api.GrpcAPI.TransactionInfoList; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONArray; import org.tron.json.JSONObject; import org.tron.protos.Protocol.TransactionInfo; diff --git a/framework/src/main/java/org/tron/core/services/http/GetTransactionInfoByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/GetTransactionInfoByIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServlet.java index 580cb4a5b66..04f5bf38a21 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTransactionInfoByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import java.util.List; @@ -11,10 +11,12 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.TransactionInfo; import org.tron.protos.Protocol.TransactionInfo.Log; - @Component @Slf4j(topic = "API") public class GetTransactionInfoByIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetTransactionListFromPendingServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/GetTransactionListFromPendingServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServlet.java index 0a70b22eebf..fb5f254094a 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTransactionListFromPendingServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.Collection; import javax.servlet.http.HttpServletRequest; @@ -8,7 +8,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.TransactionIdList; import org.tron.core.db.Manager; - +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetTransactionReceiptByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionReceiptByIdServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/GetTransactionReceiptByIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionReceiptByIdServlet.java index bdd46d85a88..2e3af3d5648 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTransactionReceiptByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionReceiptByIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import javax.servlet.http.HttpServletRequest; @@ -9,9 +9,11 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.TransactionInfo; - @Component @Slf4j(topic = "API") public class GetTransactionReceiptByIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetTransactionSignWeightServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionSignWeightServlet.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/GetTransactionSignWeightServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionSignWeightServlet.java index bbd819d4e6d..48728282759 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTransactionSignWeightServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionSignWeightServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,10 +6,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.TransactionSignWeight; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.core.utils.TransactionUtil; import org.tron.protos.Protocol.Transaction; - @Component @Slf4j(topic = "API") public class GetTransactionSignWeightServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/GetTriggerInputForShieldedTRC20ContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTriggerInputForShieldedTRC20ContractServlet.java similarity index 87% rename from framework/src/main/java/org/tron/core/services/http/GetTriggerInputForShieldedTRC20ContractServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetTriggerInputForShieldedTRC20ContractServlet.java index 3a0bc4ed282..14a174c65ff 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetTriggerInputForShieldedTRC20ContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTriggerInputForShieldedTRC20ContractServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.api.GrpcAPI.ShieldedTRC20TriggerContractParameters; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/GetZenPaymentAddressServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetZenPaymentAddressServlet.java similarity index 93% rename from framework/src/main/java/org/tron/core/services/http/GetZenPaymentAddressServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/GetZenPaymentAddressServlet.java index c4f81ea7f87..5795616c058 100644 --- a/framework/src/main/java/org/tron/core/services/http/GetZenPaymentAddressServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetZenPaymentAddressServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -9,11 +9,12 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.core.zen.address.DiversifierT; import org.tron.core.zen.address.IncomingViewingKey; import org.tron.json.JSONObject; - @Component @Slf4j(topic = "API") public class GetZenPaymentAddressServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/IsShieldedTRC20ContractNoteSpentServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/IsShieldedTRC20ContractNoteSpentServlet.java similarity index 86% rename from framework/src/main/java/org/tron/core/services/http/IsShieldedTRC20ContractNoteSpentServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/IsShieldedTRC20ContractNoteSpentServlet.java index 9e01ec8fda1..bb03cd7d7ed 100644 --- a/framework/src/main/java/org/tron/core/services/http/IsShieldedTRC20ContractNoteSpentServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/IsShieldedTRC20ContractNoteSpentServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI; import org.tron.api.GrpcAPI.NfTRC20Parameters; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/IsSpendServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java similarity index 86% rename from framework/src/main/java/org/tron/core/services/http/IsSpendServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java index 46120a6611d..0ef395ff420 100644 --- a/framework/src/main/java/org/tron/core/services/http/IsSpendServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -9,7 +9,9 @@ import org.tron.api.GrpcAPI.NoteParameters; import org.tron.api.GrpcAPI.SpendResult; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/ListExchangesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ListExchangesServlet.java similarity index 86% rename from framework/src/main/java/org/tron/core/services/http/ListExchangesServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ListExchangesServlet.java index ff349ecefab..d7b064338b8 100644 --- a/framework/src/main/java/org/tron/core/services/http/ListExchangesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ListExchangesServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,7 +6,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/ListNodesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ListNodesServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/ListNodesServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ListNodesServlet.java index 6b7b2b251a8..a186043e48b 100644 --- a/framework/src/main/java/org/tron/core/services/http/ListNodesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ListNodesServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,6 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NodeList; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/ListProposalsServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ListProposalsServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/ListProposalsServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ListProposalsServlet.java index a3b26d4afc6..4f12fe87e2b 100644 --- a/framework/src/main/java/org/tron/core/services/http/ListProposalsServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ListProposalsServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,6 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.ProposalList; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/ListWitnessesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ListWitnessesServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/ListWitnessesServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ListWitnessesServlet.java index 5274d07992b..6850c9e01c4 100644 --- a/framework/src/main/java/org/tron/core/services/http/ListWitnessesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ListWitnessesServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,7 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.WitnessList; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/MarketCancelOrderServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/MarketCancelOrderServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/MarketCancelOrderServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/MarketCancelOrderServlet.java index a9e27bfb8e3..7aebd235dee 100644 --- a/framework/src/main/java/org/tron/core/services/http/MarketCancelOrderServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/MarketCancelOrderServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.MarketContract.MarketCancelOrderContract; - @Component @Slf4j(topic = "API") public class MarketCancelOrderServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/MarketSellAssetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/MarketSellAssetServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/MarketSellAssetServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/MarketSellAssetServlet.java index 12bb7e3e078..8a99938a69e 100644 --- a/framework/src/main/java/org/tron/core/services/http/MarketSellAssetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/MarketSellAssetServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,12 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.MarketContract.MarketSellAssetContract; - @Component @Slf4j(topic = "API") public class MarketSellAssetServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/MetricsServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/MetricsServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java index aaaebb22146..79a66d9e44a 100644 --- a/framework/src/main/java/org/tron/core/services/http/MetricsServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,6 +7,7 @@ import org.springframework.stereotype.Component; import org.tron.core.metrics.MetricsApiService; import org.tron.core.metrics.MetricsInfo; +import org.tron.core.services.http.Util; import org.tron.json.JSON; @Component diff --git a/framework/src/main/java/org/tron/core/services/http/ParticipateAssetIssueServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/ParticipateAssetIssueServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServlet.java index ec5e3d956f6..c0f53c3d330 100644 --- a/framework/src/main/java/org/tron/core/services/http/ParticipateAssetIssueServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,12 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.AssetIssueContractOuterClass.ParticipateAssetIssueContract; - @Component @Slf4j(topic = "API") public class ParticipateAssetIssueServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/ProposalApproveServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalApproveServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/ProposalApproveServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ProposalApproveServlet.java index dfeeb1acde5..2d01d74844c 100644 --- a/framework/src/main/java/org/tron/core/services/http/ProposalApproveServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalApproveServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,12 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.ProposalContract.ProposalApproveContract; - @Component @Slf4j(topic = "API") public class ProposalApproveServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/ProposalCreateServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalCreateServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/ProposalCreateServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ProposalCreateServlet.java index f1055e00396..007062b876c 100644 --- a/framework/src/main/java/org/tron/core/services/http/ProposalCreateServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalCreateServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,12 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.ProposalContract.ProposalCreateContract; - @Component @Slf4j(topic = "API") public class ProposalCreateServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/ProposalDeleteServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalDeleteServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/ProposalDeleteServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ProposalDeleteServlet.java index 8e7163f490b..d489b2bddea 100644 --- a/framework/src/main/java/org/tron/core/services/http/ProposalDeleteServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalDeleteServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,12 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.ProposalContract.ProposalDeleteContract; - @Component @Slf4j(topic = "API") public class ProposalDeleteServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/RateLimiterServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/RateLimiterServlet.java similarity index 97% rename from framework/src/main/java/org/tron/core/services/http/RateLimiterServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/RateLimiterServlet.java index b5ae7d58623..347c19b2fa0 100644 --- a/framework/src/main/java/org/tron/core/services/http/RateLimiterServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/RateLimiterServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.common.base.Strings; import io.prometheus.client.Histogram; @@ -22,6 +22,8 @@ import org.tron.common.prometheus.Metrics; import org.tron.core.config.args.Args; import org.tron.core.exception.TronError; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.core.services.ratelimiter.GlobalRateLimiter; import org.tron.core.services.ratelimiter.RateLimiterContainer; import org.tron.core.services.ratelimiter.RuntimeData; diff --git a/framework/src/main/java/org/tron/core/services/http/ScanAndMarkNoteByIvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java similarity index 94% rename from framework/src/main/java/org/tron/core/services/http/ScanAndMarkNoteByIvkServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java index b91fd394442..80477de0ba5 100644 --- a/framework/src/main/java/org/tron/core/services/http/ScanAndMarkNoteByIvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.IvkDecryptAndMarkParameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONArray; import org.tron.json.JSONObject; diff --git a/framework/src/main/java/org/tron/core/services/http/ScanNoteByIvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java similarity index 93% rename from framework/src/main/java/org/tron/core/services/http/ScanNoteByIvkServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java index c8e25a2fc37..69aeee61639 100644 --- a/framework/src/main/java/org/tron/core/services/http/ScanNoteByIvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -10,6 +10,9 @@ import org.tron.api.GrpcAPI.IvkDecryptParameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONArray; import org.tron.json.JSONObject; diff --git a/framework/src/main/java/org/tron/core/services/http/ScanNoteByOvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java similarity index 91% rename from framework/src/main/java/org/tron/core/services/http/ScanNoteByOvkServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java index 1cf6363ba98..75ec502d27f 100644 --- a/framework/src/main/java/org/tron/core/services/http/ScanNoteByOvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -10,6 +10,9 @@ import org.tron.api.GrpcAPI.OvkDecryptParameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesByIvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByIvkServlet.java similarity index 95% rename from framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesByIvkServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByIvkServlet.java index d9da2453c9b..665c88dc73a 100644 --- a/framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesByIvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByIvkServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.IvkDecryptTRC20Parameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONArray; import org.tron.json.JSONObject; diff --git a/framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesByOvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByOvkServlet.java similarity index 94% rename from framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesByOvkServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByOvkServlet.java index 33893347d8f..176ad66071d 100644 --- a/framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesByOvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByOvkServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -9,6 +9,9 @@ import org.tron.api.GrpcAPI.OvkDecryptTRC20Parameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/SetAccountIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/SetAccountIdServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/SetAccountIdServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/SetAccountIdServlet.java index 2f5b9fd9cd4..de02f54e310 100644 --- a/framework/src/main/java/org/tron/core/services/http/SetAccountIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/SetAccountIdServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,11 +7,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol; import org.tron.protos.contract.AccountContract.SetAccountIdContract; - @Component @Slf4j(topic = "API") public class SetAccountIdServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/TotalTransactionServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TotalTransactionServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/TotalTransactionServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/TotalTransactionServlet.java index 6af40232e8f..6d6f4085d4f 100644 --- a/framework/src/main/java/org/tron/core/services/http/TotalTransactionServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TotalTransactionServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -7,7 +7,8 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; - +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; @Component @Slf4j(topic = "API") diff --git a/framework/src/main/java/org/tron/core/services/http/TransferAssetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TransferAssetServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/TransferAssetServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/TransferAssetServlet.java index c8becdb9fde..145e8579b6b 100644 --- a/framework/src/main/java/org/tron/core/services/http/TransferAssetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TransferAssetServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,12 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.AssetIssueContractOuterClass.TransferAssetContract; - @Component @Slf4j(topic = "API") public class TransferAssetServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/TransferServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TransferServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/TransferServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/TransferServlet.java index 11b2179800a..35e8fe57564 100644 --- a/framework/src/main/java/org/tron/core/services/http/TransferServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TransferServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,12 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.BalanceContract.TransferContract; - @Component @Slf4j(topic = "API") public class TransferServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/TriggerConstantContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TriggerConstantContractServlet.java similarity index 96% rename from framework/src/main/java/org/tron/core/services/http/TriggerConstantContractServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/TriggerConstantContractServlet.java index 634165911d1..56b9237e748 100644 --- a/framework/src/main/java/org/tron/core/services/http/TriggerConstantContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TriggerConstantContractServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import io.netty.util.internal.StringUtil; @@ -16,12 +16,13 @@ import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; import org.tron.core.exception.ContractValidateException; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract; - @Component @Slf4j(topic = "API") public class TriggerConstantContractServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/TriggerSmartContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TriggerSmartContractServlet.java similarity index 97% rename from framework/src/main/java/org/tron/core/services/http/TriggerSmartContractServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/TriggerSmartContractServlet.java index bc4d9dc5f66..2dca987b58d 100644 --- a/framework/src/main/java/org/tron/core/services/http/TriggerSmartContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TriggerSmartContractServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import io.netty.util.internal.StringUtil; @@ -17,12 +17,13 @@ import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; import org.tron.core.exception.ContractValidateException; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract; - @Component @Slf4j(topic = "API") public class TriggerSmartContractServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/UnDelegateResourceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UnDelegateResourceServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/UnDelegateResourceServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UnDelegateResourceServlet.java index 140129d4e34..22b9b6c20ed 100644 --- a/framework/src/main/java/org/tron/core/services/http/UnDelegateResourceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UnDelegateResourceServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,6 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; diff --git a/framework/src/main/java/org/tron/core/services/http/UnFreezeAssetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeAssetServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/UnFreezeAssetServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeAssetServlet.java index a2218547b4a..b8506012f96 100644 --- a/framework/src/main/java/org/tron/core/services/http/UnFreezeAssetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeAssetServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.AssetIssueContractOuterClass.UnfreezeAssetContract; - @Component @Slf4j(topic = "API") public class UnFreezeAssetServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/UnFreezeBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/UnFreezeBalanceServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceServlet.java index 1f893003c20..22e9237a433 100644 --- a/framework/src/main/java/org/tron/core/services/http/UnFreezeBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.BalanceContract.UnfreezeBalanceContract; - @Component @Slf4j(topic = "API") public class UnFreezeBalanceServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/UnFreezeBalanceV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2Servlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/UnFreezeBalanceV2Servlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2Servlet.java index 05644c0b941..8e2173f9f2a 100644 --- a/framework/src/main/java/org/tron/core/services/http/UnFreezeBalanceV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2Servlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,6 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; diff --git a/framework/src/main/java/org/tron/core/services/http/UpdateAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAccountServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/UpdateAccountServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UpdateAccountServlet.java index 532d7acf658..79a921754a3 100644 --- a/framework/src/main/java/org/tron/core/services/http/UpdateAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAccountServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.AccountContract.AccountUpdateContract; - @Component @Slf4j(topic = "API") public class UpdateAccountServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/UpdateAssetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAssetServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/UpdateAssetServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UpdateAssetServlet.java index e7e8179b1a4..448976da61a 100644 --- a/framework/src/main/java/org/tron/core/services/http/UpdateAssetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAssetServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.AssetIssueContractOuterClass.UpdateAssetContract; - @Component @Slf4j(topic = "API") public class UpdateAssetServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/UpdateBrokerageServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateBrokerageServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/UpdateBrokerageServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UpdateBrokerageServlet.java index e1073354ddc..2bca7bb5c2d 100644 --- a/framework/src/main/java/org/tron/core/services/http/UpdateBrokerageServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateBrokerageServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.StorageContract.UpdateBrokerageContract; - @Component @Slf4j(topic = "API") public class UpdateBrokerageServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/UpdateEnergyLimitServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/UpdateEnergyLimitServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServlet.java index cd349c7e153..effd1222953 100644 --- a/framework/src/main/java/org/tron/core/services/http/UpdateEnergyLimitServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.SmartContractOuterClass.UpdateEnergyLimitContract; - @Component @Slf4j(topic = "API") public class UpdateEnergyLimitServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/UpdateSettingServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateSettingServlet.java similarity index 89% rename from framework/src/main/java/org/tron/core/services/http/UpdateSettingServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UpdateSettingServlet.java index e58f02df157..b05ee0ff24e 100644 --- a/framework/src/main/java/org/tron/core/services/http/UpdateSettingServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateSettingServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.SmartContractOuterClass.UpdateSettingContract; - @Component @Slf4j(topic = "API") public class UpdateSettingServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/UpdateWitnessServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateWitnessServlet.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/UpdateWitnessServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/UpdateWitnessServlet.java index 6b0c4449e88..19b13910cf4 100644 --- a/framework/src/main/java/org/tron/core/services/http/UpdateWitnessServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateWitnessServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -6,12 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.PostParams; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.WitnessContract.WitnessUpdateContract; - @Component @Slf4j(topic = "API") public class UpdateWitnessServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/ValidateAddressServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ValidateAddressServlet.java similarity index 96% rename from framework/src/main/java/org/tron/core/services/http/ValidateAddressServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/ValidateAddressServlet.java index 07eecfc5466..ee2e3f635d3 100644 --- a/framework/src/main/java/org/tron/core/services/http/ValidateAddressServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ValidateAddressServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.IOException; import java.util.Base64; @@ -10,10 +10,10 @@ import org.tron.common.utils.ByteArray; import org.tron.common.utils.Commons; import org.tron.common.utils.DecodeUtil; +import org.tron.core.services.http.Util; import org.tron.json.JSON; import org.tron.json.JSONObject; - @Component @Slf4j(topic = "API") public class ValidateAddressServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/VoteWitnessAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/VoteWitnessAccountServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/VoteWitnessAccountServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/VoteWitnessAccountServlet.java index f3695b83de8..f9b29070012 100644 --- a/framework/src/main/java/org/tron/core/services/http/VoteWitnessAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/VoteWitnessAccountServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,12 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.WitnessContract.VoteWitnessContract; - @Component @Slf4j(topic = "API") public class VoteWitnessAccountServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/WithdrawBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawBalanceServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/WithdrawBalanceServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/WithdrawBalanceServlet.java index 33faa01866c..4d18975696a 100644 --- a/framework/src/main/java/org/tron/core/services/http/WithdrawBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawBalanceServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,12 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.BalanceContract.WithdrawBalanceContract; - @Component @Slf4j(topic = "API") public class WithdrawBalanceServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/WithdrawExpireUnfreezeServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServlet.java similarity index 92% rename from framework/src/main/java/org/tron/core/services/http/WithdrawExpireUnfreezeServlet.java rename to framework/src/main/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServlet.java index 7e5f3f96c57..b6c88df5bf3 100644 --- a/framework/src/main/java/org/tron/core/services/http/WithdrawExpireUnfreezeServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServlet.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -7,13 +7,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; +import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.Util; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.BalanceContract.WithdrawExpireUnfreezeContract; - @Component @Slf4j(topic = "API") public class WithdrawExpireUnfreezeServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java index 750e513b7ce..0e91287db48 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java @@ -12,53 +12,53 @@ import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; import org.tron.core.services.filter.PbftCursorFilter; -import org.tron.core.services.http.EstimateEnergyServlet; -import org.tron.core.services.http.GetAccountByIdServlet; -import org.tron.core.services.http.GetAccountServlet; -import org.tron.core.services.http.GetAssetIssueByIdServlet; -import org.tron.core.services.http.GetAssetIssueByNameServlet; -import org.tron.core.services.http.GetAssetIssueListByNameServlet; -import org.tron.core.services.http.GetAssetIssueListServlet; -import org.tron.core.services.http.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.http.GetBandwidthPricesServlet; -import org.tron.core.services.http.GetBlockByIdServlet; -import org.tron.core.services.http.GetBlockByLatestNumServlet; -import org.tron.core.services.http.GetBlockByLimitNextServlet; -import org.tron.core.services.http.GetBlockByNumServlet; -import org.tron.core.services.http.GetBlockServlet; -import org.tron.core.services.http.GetBrokerageServlet; -import org.tron.core.services.http.GetBurnTrxServlet; -import org.tron.core.services.http.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.http.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.http.GetDelegatedResourceServlet; -import org.tron.core.services.http.GetDelegatedResourceV2Servlet; -import org.tron.core.services.http.GetEnergyPricesServlet; -import org.tron.core.services.http.GetExchangeByIdServlet; -import org.tron.core.services.http.GetMarketOrderByAccountServlet; -import org.tron.core.services.http.GetMarketOrderByIdServlet; -import org.tron.core.services.http.GetMarketOrderListByPairServlet; -import org.tron.core.services.http.GetMarketPairListServlet; -import org.tron.core.services.http.GetMarketPriceByPairServlet; -import org.tron.core.services.http.GetMerkleTreeVoucherInfoServlet; -import org.tron.core.services.http.GetNodeInfoServlet; -import org.tron.core.services.http.GetNowBlockServlet; -import org.tron.core.services.http.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.http.GetRewardServlet; -import org.tron.core.services.http.GetTransactionByIdServlet; -import org.tron.core.services.http.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.http.GetTransactionInfoByIdServlet; -import org.tron.core.services.http.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.IsSpendServlet; -import org.tron.core.services.http.ListExchangesServlet; -import org.tron.core.services.http.ListWitnessesServlet; -import org.tron.core.services.http.ScanAndMarkNoteByIvkServlet; -import org.tron.core.services.http.ScanNoteByIvkServlet; -import org.tron.core.services.http.ScanNoteByOvkServlet; -import org.tron.core.services.http.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.http.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.http.TriggerConstantContractServlet; +import org.tron.core.services.http.servlets.EstimateEnergyServlet; +import org.tron.core.services.http.servlets.GetAccountByIdServlet; +import org.tron.core.services.http.servlets.GetAccountServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; +import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; +import org.tron.core.services.http.servlets.GetBlockByIdServlet; +import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; +import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; +import org.tron.core.services.http.servlets.GetBlockByNumServlet; +import org.tron.core.services.http.servlets.GetBlockServlet; +import org.tron.core.services.http.servlets.GetBrokerageServlet; +import org.tron.core.services.http.servlets.GetBurnTrxServlet; +import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; +import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; +import org.tron.core.services.http.servlets.GetEnergyPricesServlet; +import org.tron.core.services.http.servlets.GetExchangeByIdServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; +import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; +import org.tron.core.services.http.servlets.GetMarketPairListServlet; +import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; +import org.tron.core.services.http.servlets.GetMerkleTreeVoucherInfoServlet; +import org.tron.core.services.http.servlets.GetNodeInfoServlet; +import org.tron.core.services.http.servlets.GetNowBlockServlet; +import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetRewardServlet; +import org.tron.core.services.http.servlets.GetTransactionByIdServlet; +import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; +import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; +import org.tron.core.services.http.servlets.IsSpendServlet; +import org.tron.core.services.http.servlets.ListExchangesServlet; +import org.tron.core.services.http.servlets.ListWitnessesServlet; +import org.tron.core.services.http.servlets.ScanAndMarkNoteByIvkServlet; +import org.tron.core.services.http.servlets.ScanNoteByIvkServlet; +import org.tron.core.services.http.servlets.ScanNoteByOvkServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; +import org.tron.core.services.http.servlets.TriggerConstantContractServlet; @Slf4j(topic = "API") public class HttpApiOnPBFTService extends HttpService { diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java index 0659b69599a..18bd6cf873e 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java @@ -12,50 +12,50 @@ import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; import org.tron.core.services.filter.SolidityCursorFilter; -import org.tron.core.services.http.EstimateEnergyServlet; -import org.tron.core.services.http.GetAccountByIdServlet; -import org.tron.core.services.http.GetAccountServlet; -import org.tron.core.services.http.GetAssetIssueByIdServlet; -import org.tron.core.services.http.GetAssetIssueByNameServlet; -import org.tron.core.services.http.GetAssetIssueListByNameServlet; -import org.tron.core.services.http.GetAssetIssueListServlet; -import org.tron.core.services.http.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.http.GetBandwidthPricesServlet; -import org.tron.core.services.http.GetBlockByIdServlet; -import org.tron.core.services.http.GetBlockByLatestNumServlet; -import org.tron.core.services.http.GetBlockByLimitNextServlet; -import org.tron.core.services.http.GetBlockByNumServlet; -import org.tron.core.services.http.GetBlockServlet; -import org.tron.core.services.http.GetBrokerageServlet; -import org.tron.core.services.http.GetBurnTrxServlet; -import org.tron.core.services.http.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.http.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.http.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.http.GetDelegatedResourceServlet; -import org.tron.core.services.http.GetDelegatedResourceV2Servlet; -import org.tron.core.services.http.GetEnergyPricesServlet; -import org.tron.core.services.http.GetExchangeByIdServlet; -import org.tron.core.services.http.GetMarketOrderByAccountServlet; -import org.tron.core.services.http.GetMarketOrderByIdServlet; -import org.tron.core.services.http.GetMarketOrderListByPairServlet; -import org.tron.core.services.http.GetMarketPairListServlet; -import org.tron.core.services.http.GetMarketPriceByPairServlet; -import org.tron.core.services.http.GetNodeInfoServlet; -import org.tron.core.services.http.GetNowBlockServlet; -import org.tron.core.services.http.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.http.GetPaginatedNowWitnessListServlet; -import org.tron.core.services.http.GetRewardServlet; -import org.tron.core.services.http.GetTransactionByIdServlet; -import org.tron.core.services.http.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.http.GetTransactionInfoByBlockNumServlet; -import org.tron.core.services.http.GetTransactionInfoByIdServlet; -import org.tron.core.services.http.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.ListExchangesServlet; -import org.tron.core.services.http.ListWitnessesServlet; -import org.tron.core.services.http.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.http.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.http.TriggerConstantContractServlet; +import org.tron.core.services.http.servlets.EstimateEnergyServlet; +import org.tron.core.services.http.servlets.GetAccountByIdServlet; +import org.tron.core.services.http.servlets.GetAccountServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; +import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; +import org.tron.core.services.http.servlets.GetBlockByIdServlet; +import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; +import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; +import org.tron.core.services.http.servlets.GetBlockByNumServlet; +import org.tron.core.services.http.servlets.GetBlockServlet; +import org.tron.core.services.http.servlets.GetBrokerageServlet; +import org.tron.core.services.http.servlets.GetBurnTrxServlet; +import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; +import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; +import org.tron.core.services.http.servlets.GetEnergyPricesServlet; +import org.tron.core.services.http.servlets.GetExchangeByIdServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; +import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; +import org.tron.core.services.http.servlets.GetMarketPairListServlet; +import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; +import org.tron.core.services.http.servlets.GetNodeInfoServlet; +import org.tron.core.services.http.servlets.GetNowBlockServlet; +import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetPaginatedNowWitnessListServlet; +import org.tron.core.services.http.servlets.GetRewardServlet; +import org.tron.core.services.http.servlets.GetTransactionByIdServlet; +import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; +import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; +import org.tron.core.services.http.servlets.ListExchangesServlet; +import org.tron.core.services.http.servlets.ListWitnessesServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; +import org.tron.core.services.http.servlets.TriggerConstantContractServlet; @Slf4j(topic = "API") public class HttpApiOnSolidityService extends HttpService { diff --git a/framework/src/main/java/org/tron/core/services/jsonrpc/JsonRpcServlet.java b/framework/src/main/java/org/tron/core/services/jsonrpc/JsonRpcServlet.java index ca249da4e5d..c6f14797c46 100644 --- a/framework/src/main/java/org/tron/core/services/jsonrpc/JsonRpcServlet.java +++ b/framework/src/main/java/org/tron/core/services/jsonrpc/JsonRpcServlet.java @@ -28,7 +28,7 @@ import org.tron.core.Constant; import org.tron.core.services.filter.BufferedResponseWrapper; import org.tron.core.services.filter.CachedBodyRequestWrapper; -import org.tron.core.services.http.RateLimiterServlet; +import org.tron.core.services.http.servlets.RateLimiterServlet; @Component @Slf4j(topic = "API") diff --git a/framework/src/test/java/org/tron/core/exception/TronErrorTest.java b/framework/src/test/java/org/tron/core/exception/TronErrorTest.java index 91559d86362..647df1f7db1 100644 --- a/framework/src/test/java/org/tron/core/exception/TronErrorTest.java +++ b/framework/src/test/java/org/tron/core/exception/TronErrorTest.java @@ -38,11 +38,10 @@ import org.tron.common.utils.ReflectUtils; import org.tron.common.zksnark.JLibrustzcash; import org.tron.core.config.args.Args; -import org.tron.core.services.http.GetBlockServlet; -import org.tron.core.services.http.RateLimiterServlet; +import org.tron.core.services.http.servlets.GetBlockServlet; +import org.tron.core.services.http.servlets.RateLimiterServlet; import org.tron.core.zen.ZksnarkInitService; - @RunWith(MockitoJUnitRunner.class) public class TronErrorTest { diff --git a/framework/src/test/java/org/tron/core/services/http/RateLimiterServletInt64Test.java b/framework/src/test/java/org/tron/core/services/http/RateLimiterServletInt64Test.java index 882c5f99833..86faaa01fff 100644 --- a/framework/src/test/java/org/tron/core/services/http/RateLimiterServletInt64Test.java +++ b/framework/src/test/java/org/tron/core/services/http/RateLimiterServletInt64Test.java @@ -13,6 +13,8 @@ import org.tron.common.BaseTest; import org.tron.common.TestConstants; import org.tron.core.config.args.Args; +import org.tron.core.services.http.servlets.GetBurnTrxServlet; +import org.tron.core.services.http.servlets.GetNowBlockServlet; /** * End-to-end integration tests for {@link RateLimiterServlet#service} wiring of the diff --git a/framework/src/test/java/org/tron/core/services/http/AccountPermissionUpdateServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/AccountPermissionUpdateServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServletTest.java index e93c41397a2..413ee37700b 100644 --- a/framework/src/test/java/org/tron/core/services/http/AccountPermissionUpdateServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/BaseHttpTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/BaseHttpTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/BaseHttpTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/BaseHttpTest.java index 47710a8ca93..f1019abad55 100644 --- a/framework/src/test/java/org/tron/core/services/http/BaseHttpTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/BaseHttpTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertFalse; diff --git a/framework/src/test/java/org/tron/core/services/http/BroadcastServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/BroadcastServletTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/BroadcastServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/BroadcastServletTest.java index d6bf3850f30..92942c322bb 100644 --- a/framework/src/test/java/org/tron/core/services/http/BroadcastServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/BroadcastServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; diff --git a/framework/src/test/java/org/tron/core/services/http/CancelAllUnfreezeV2ServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2ServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/CancelAllUnfreezeV2ServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2ServletTest.java index 59a3f02256c..0ebc0984c9a 100644 --- a/framework/src/test/java/org/tron/core/services/http/CancelAllUnfreezeV2ServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2ServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/ClearABIServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ClearABIServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/ClearABIServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ClearABIServletTest.java index 9d75226aa42..6da52cfe751 100644 --- a/framework/src/test/java/org/tron/core/services/http/ClearABIServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ClearABIServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertTrue; diff --git a/framework/src/test/java/org/tron/core/services/http/CreateAccountServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/CreateAccountServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/CreateAccountServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/CreateAccountServletTest.java index c9d6a4f2a63..4df55141b70 100644 --- a/framework/src/test/java/org/tron/core/services/http/CreateAccountServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/CreateAccountServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.fail; @@ -21,7 +21,6 @@ import org.tron.json.JSONObject; import org.tron.protos.Protocol; - public class CreateAccountServletTest extends BaseTest { static { diff --git a/framework/src/test/java/org/tron/core/services/http/CreateAssetIssueServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/CreateAssetIssueServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/CreateAssetIssueServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/CreateAssetIssueServletTest.java index 9a53814ea11..e4e34b78d01 100644 --- a/framework/src/test/java/org/tron/core/services/http/CreateAssetIssueServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/CreateAssetIssueServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.fail; diff --git a/framework/src/test/java/org/tron/core/services/http/CreateSpendAuthSigServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/CreateSpendAuthSigServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServletTest.java index 2253fecfb52..fadc417f6c4 100644 --- a/framework/src/test/java/org/tron/core/services/http/CreateSpendAuthSigServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.fail; diff --git a/framework/src/test/java/org/tron/core/services/http/CreateWitnessServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/CreateWitnessServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/CreateWitnessServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/CreateWitnessServletTest.java index bd8145fed7b..b677e050902 100644 --- a/framework/src/test/java/org/tron/core/services/http/CreateWitnessServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/CreateWitnessServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.fail; diff --git a/framework/src/test/java/org/tron/core/services/http/DelegateResourceServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/DelegateResourceServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/DelegateResourceServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/DelegateResourceServletTest.java index 07ca6750e31..aba05e1b4b2 100644 --- a/framework/src/test/java/org/tron/core/services/http/DelegateResourceServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/DelegateResourceServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/DeployContractServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/DeployContractServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/DeployContractServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/DeployContractServletTest.java index 703f278c890..8a866869b56 100644 --- a/framework/src/test/java/org/tron/core/services/http/DeployContractServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/DeployContractServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; diff --git a/framework/src/test/java/org/tron/core/services/http/ExchangeCreateServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ExchangeCreateServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/ExchangeCreateServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ExchangeCreateServletTest.java index 11840a895bd..c3371bcb620 100644 --- a/framework/src/test/java/org/tron/core/services/http/ExchangeCreateServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ExchangeCreateServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/ExchangeInjectServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ExchangeInjectServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/ExchangeInjectServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ExchangeInjectServletTest.java index f2f661732d2..4a4a26474c1 100644 --- a/framework/src/test/java/org/tron/core/services/http/ExchangeInjectServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ExchangeInjectServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/ExchangeTransactionServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ExchangeTransactionServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/ExchangeTransactionServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ExchangeTransactionServletTest.java index 6e986288b3c..1cbf2c10575 100644 --- a/framework/src/test/java/org/tron/core/services/http/ExchangeTransactionServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ExchangeTransactionServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/ExchangeWithdrawServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ExchangeWithdrawServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/ExchangeWithdrawServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ExchangeWithdrawServletTest.java index b1147b819dd..2dddaba915a 100644 --- a/framework/src/test/java/org/tron/core/services/http/ExchangeWithdrawServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ExchangeWithdrawServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/FreezeBalanceServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/FreezeBalanceServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/FreezeBalanceServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/FreezeBalanceServletTest.java index 9d56381f9a8..c652c405303 100644 --- a/framework/src/test/java/org/tron/core/services/http/FreezeBalanceServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/FreezeBalanceServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/FreezeBalanceV2ServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/FreezeBalanceV2ServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/FreezeBalanceV2ServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/FreezeBalanceV2ServletTest.java index 414054501e6..65e63cdb390 100644 --- a/framework/src/test/java/org/tron/core/services/http/FreezeBalanceV2ServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/FreezeBalanceV2ServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/GetAccountByIdServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetAccountByIdServletTest.java similarity index 96% rename from framework/src/test/java/org/tron/core/services/http/GetAccountByIdServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetAccountByIdServletTest.java index 885e5b2a1cf..8afee18f6e0 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetAccountByIdServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetAccountByIdServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.apache.commons.lang3.StringUtils.isNotEmpty; diff --git a/framework/src/test/java/org/tron/core/services/http/GetAccountResourceServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetAccountResourceServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/GetAccountResourceServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetAccountResourceServletTest.java index cc5ed97b94b..49b499d0a55 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetAccountResourceServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetAccountResourceServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; diff --git a/framework/src/test/java/org/tron/core/services/http/GetAccountServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetAccountServletTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/GetAccountServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetAccountServletTest.java index 1c1d42c9a5c..8401bc3045e 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetAccountServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetAccountServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; diff --git a/framework/src/test/java/org/tron/core/services/http/GetAssetIssueByIdServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetAssetIssueByIdServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServletTest.java index b87331d6d61..dea33eebea8 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetAssetIssueByIdServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; diff --git a/framework/src/test/java/org/tron/core/services/http/GetAssetIssueByNameServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetAssetIssueByNameServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServletTest.java index ccfa3af2e56..adc5ff8e064 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetAssetIssueByNameServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; diff --git a/framework/src/test/java/org/tron/core/services/http/GetAssetIssueListByNameServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/GetAssetIssueListByNameServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServletTest.java index e3055e21f99..9d73bc4c812 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetAssetIssueListByNameServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; diff --git a/framework/src/test/java/org/tron/core/services/http/GetAssetIssueListServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueListServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetAssetIssueListServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueListServletTest.java index 2b9e997cf80..71b8d754590 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetAssetIssueListServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetAssetIssueListServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.fail; diff --git a/framework/src/test/java/org/tron/core/services/http/GetBandwidthPricesServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetBandwidthPricesServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/GetBandwidthPricesServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetBandwidthPricesServletTest.java index 2ddfda17bef..b47e19b6762 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetBandwidthPricesServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetBandwidthPricesServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; diff --git a/framework/src/test/java/org/tron/core/services/http/GetBlockByIdServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetBlockByIdServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/GetBlockByIdServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetBlockByIdServletTest.java index 8e04713922a..83adb0d73b7 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetBlockByIdServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetBlockByIdServletTest.java @@ -1,10 +1,9 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.tron.common.utils.client.utils.HttpMethed.createRequest; import javax.annotation.Resource; - import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.junit.Assert; diff --git a/framework/src/test/java/org/tron/core/services/http/GetBlockByNumServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetBlockByNumServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/GetBlockByNumServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetBlockByNumServletTest.java index b28e1d33308..14248be2484 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetBlockByNumServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetBlockByNumServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertTrue; import static org.tron.common.utils.client.utils.HttpMethed.createRequest; diff --git a/framework/src/test/java/org/tron/core/services/http/GetBlockServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetBlockServletTest.java similarity index 96% rename from framework/src/test/java/org/tron/core/services/http/GetBlockServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetBlockServletTest.java index f48f9eb0fbc..3965bd55c1d 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetBlockServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetBlockServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; diff --git a/framework/src/test/java/org/tron/core/services/http/GetBrokerageServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetBrokerageServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetBrokerageServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetBrokerageServletTest.java index 9b37c2e4205..5a778d077a2 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetBrokerageServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetBrokerageServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import java.io.UnsupportedEncodingException; import javax.annotation.Resource; diff --git a/framework/src/test/java/org/tron/core/services/http/GetContractInfoServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetContractInfoServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetContractInfoServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetContractInfoServletTest.java index 532bb42706f..887a884aae4 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetContractInfoServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetContractInfoServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; diff --git a/framework/src/test/java/org/tron/core/services/http/GetContractServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetContractServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetContractServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetContractServletTest.java index 074093de2a1..620010f87ed 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetContractServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetContractServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; diff --git a/framework/src/test/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServletTest.java index 21a455c108f..29c50ce0cc3 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.any; diff --git a/framework/src/test/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexV2ServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2ServletTest.java similarity index 96% rename from framework/src/test/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexV2ServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2ServletTest.java index 41be6db4d5a..b5a408d8585 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetDelegatedResourceAccountIndexV2ServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2ServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.any; @@ -11,6 +11,7 @@ import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.tron.common.utils.ByteArray; +import org.tron.core.services.http.Util; import org.tron.protos.Protocol.DelegatedResourceAccountIndex; public class GetDelegatedResourceAccountIndexV2ServletTest extends BaseHttpTest { diff --git a/framework/src/test/java/org/tron/core/services/http/GetEnergyPricesServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetEnergyPricesServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/GetEnergyPricesServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetEnergyPricesServletTest.java index f0fe69fe450..e7bfc0380e1 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetEnergyPricesServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetEnergyPricesServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; diff --git a/framework/src/test/java/org/tron/core/services/http/GetExchangeByIdServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetExchangeByIdServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/GetExchangeByIdServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetExchangeByIdServletTest.java index f67072e9856..e62cef02608 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetExchangeByIdServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetExchangeByIdServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; diff --git a/framework/src/test/java/org/tron/core/services/http/GetMarketOrderByAccountServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/GetMarketOrderByAccountServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServletTest.java index a1895231f8a..bcb30e51ca2 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetMarketOrderByAccountServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; diff --git a/framework/src/test/java/org/tron/core/services/http/GetMemoFeePricesServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetMemoFeePricesServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/GetMemoFeePricesServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetMemoFeePricesServletTest.java index b9440aa948f..102ceab2458 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetMemoFeePricesServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetMemoFeePricesServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; diff --git a/framework/src/test/java/org/tron/core/services/http/GetNowBlockServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetNowBlockServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetNowBlockServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetNowBlockServletTest.java index 1179e914d32..43442f20e17 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetNowBlockServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetNowBlockServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.apache.commons.lang3.StringUtils.EMPTY; diff --git a/framework/src/test/java/org/tron/core/services/http/GetProposalByIdServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetProposalByIdServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetProposalByIdServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetProposalByIdServletTest.java index cf64adcb1a1..24ee48a8826 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetProposalByIdServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetProposalByIdServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; diff --git a/framework/src/test/java/org/tron/core/services/http/GetRewardServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetRewardServletTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/GetRewardServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetRewardServletTest.java index 9afa5607a66..10920c4fb8b 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetRewardServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetRewardServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.tron.common.utils.Commons.decodeFromBase58Check; diff --git a/framework/src/test/java/org/tron/core/services/http/GetTransactionInfoByBlockNumServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/GetTransactionInfoByBlockNumServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServletTest.java index 1763e440b48..44fc9f63e5e 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetTransactionInfoByBlockNumServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.tron.common.utils.client.utils.HttpMethed.createRequest; diff --git a/framework/src/test/java/org/tron/core/services/http/GetTransactionInfoByIdServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServletTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/GetTransactionInfoByIdServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServletTest.java index 6793433371d..b80310da18a 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetTransactionInfoByIdServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.tron.common.utils.client.utils.HttpMethed.createRequest; diff --git a/framework/src/test/java/org/tron/core/services/http/GetTransactionListFromPendingServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServletTest.java similarity index 95% rename from framework/src/test/java/org/tron/core/services/http/GetTransactionListFromPendingServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServletTest.java index 52277992850..0b7054c9e41 100644 --- a/framework/src/test/java/org/tron/core/services/http/GetTransactionListFromPendingServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServletTest.java @@ -1,10 +1,9 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.tron.common.utils.client.utils.HttpMethed.createRequest; import javax.annotation.Resource; - import org.apache.http.client.methods.HttpGet; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; @@ -13,7 +12,6 @@ import org.tron.common.TestConstants; import org.tron.core.config.args.Args; - public class GetTransactionListFromPendingServletTest extends BaseTest { @Resource diff --git a/framework/src/test/java/org/tron/core/services/http/HttpServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/HttpServletTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/HttpServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/HttpServletTest.java index 03cf11f39a1..ef03cef1920 100644 --- a/framework/src/test/java/org/tron/core/services/http/HttpServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/HttpServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import lombok.extern.slf4j.Slf4j; import org.junit.Before; diff --git a/framework/src/test/java/org/tron/core/services/http/ListNodesServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ListNodesServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/ListNodesServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ListNodesServletTest.java index 767d89c6e2f..a371cf5b468 100644 --- a/framework/src/test/java/org/tron/core/services/http/ListNodesServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ListNodesServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertNotNull; diff --git a/framework/src/test/java/org/tron/core/services/http/ListProposalsServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ListProposalsServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/ListProposalsServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ListProposalsServletTest.java index f600f704aa7..2d4604f60a2 100644 --- a/framework/src/test/java/org/tron/core/services/http/ListProposalsServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ListProposalsServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.fail; diff --git a/framework/src/test/java/org/tron/core/services/http/MarketCancelOrderServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/MarketCancelOrderServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/MarketCancelOrderServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/MarketCancelOrderServletTest.java index 7c8e529b275..8f0131c6e64 100644 --- a/framework/src/test/java/org/tron/core/services/http/MarketCancelOrderServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/MarketCancelOrderServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/MarketSellAssetServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/MarketSellAssetServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/MarketSellAssetServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/MarketSellAssetServletTest.java index e82178b909a..79240798fa6 100644 --- a/framework/src/test/java/org/tron/core/services/http/MarketSellAssetServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/MarketSellAssetServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/ParticipateAssetIssueServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/ParticipateAssetIssueServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServletTest.java index 0fbfe73d6fc..50c24d9ca43 100644 --- a/framework/src/test/java/org/tron/core/services/http/ParticipateAssetIssueServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/ProposalApproveServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ProposalApproveServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/ProposalApproveServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ProposalApproveServletTest.java index f017b06de24..c2d679d5961 100644 --- a/framework/src/test/java/org/tron/core/services/http/ProposalApproveServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ProposalApproveServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/ProposalCreateServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ProposalCreateServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/ProposalCreateServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ProposalCreateServletTest.java index 0057aa7bd2d..a4cc5809420 100644 --- a/framework/src/test/java/org/tron/core/services/http/ProposalCreateServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ProposalCreateServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/ProposalDeleteServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ProposalDeleteServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/ProposalDeleteServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ProposalDeleteServletTest.java index 90a25e5bb68..0b9f67e5eb2 100644 --- a/framework/src/test/java/org/tron/core/services/http/ProposalDeleteServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ProposalDeleteServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/RateLimiterServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/RateLimiterServletTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/RateLimiterServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/RateLimiterServletTest.java index 26826c5709d..bb4da26a046 100644 --- a/framework/src/test/java/org/tron/core/services/http/RateLimiterServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/RateLimiterServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; diff --git a/framework/src/test/java/org/tron/core/services/http/ScanShieldedTRC20NotesServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesServletTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/ScanShieldedTRC20NotesServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesServletTest.java index c53274897e7..e845d886aec 100644 --- a/framework/src/test/java/org/tron/core/services/http/ScanShieldedTRC20NotesServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static java.nio.charset.StandardCharsets.UTF_8; import static org.tron.common.utils.client.utils.HttpMethed.createRequest; diff --git a/framework/src/test/java/org/tron/core/services/http/SetAccountIdServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/SetAccountIdServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/SetAccountIdServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/SetAccountIdServletTest.java index 6967372c9ac..7c2007212d1 100644 --- a/framework/src/test/java/org/tron/core/services/http/SetAccountIdServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/SetAccountIdServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/TransferAssetServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/TransferAssetServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/TransferAssetServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/TransferAssetServletTest.java index 49652f3361d..75e8ad7bbc3 100644 --- a/framework/src/test/java/org/tron/core/services/http/TransferAssetServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/TransferAssetServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/TransferServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/TransferServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/TransferServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/TransferServletTest.java index b04c6255dac..96875375fb8 100644 --- a/framework/src/test/java/org/tron/core/services/http/TransferServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/TransferServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/TriggerConstantContractServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/TriggerConstantContractServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/TriggerConstantContractServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/TriggerConstantContractServletTest.java index 2a139f8a158..d6d71e41a7a 100644 --- a/framework/src/test/java/org/tron/core/services/http/TriggerConstantContractServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/TriggerConstantContractServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; diff --git a/framework/src/test/java/org/tron/core/services/http/TriggerSmartContractServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/TriggerSmartContractServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/TriggerSmartContractServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/TriggerSmartContractServletTest.java index bae9523401b..c5389e681da 100644 --- a/framework/src/test/java/org/tron/core/services/http/TriggerSmartContractServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/TriggerSmartContractServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.gson.JsonObject; import lombok.extern.slf4j.Slf4j; diff --git a/framework/src/test/java/org/tron/core/services/http/UnDelegateResourceServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UnDelegateResourceServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/UnDelegateResourceServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UnDelegateResourceServletTest.java index fbdb0138c41..9dfa957ed07 100644 --- a/framework/src/test/java/org/tron/core/services/http/UnDelegateResourceServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UnDelegateResourceServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/UnFreezeAssetServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UnFreezeAssetServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/UnFreezeAssetServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UnFreezeAssetServletTest.java index a9c784c38e8..f57fe9c07d3 100644 --- a/framework/src/test/java/org/tron/core/services/http/UnFreezeAssetServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UnFreezeAssetServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/UnFreezeBalanceServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UnFreezeBalanceServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/UnFreezeBalanceServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UnFreezeBalanceServletTest.java index 800e5e957dc..b9bcbe03bc1 100644 --- a/framework/src/test/java/org/tron/core/services/http/UnFreezeBalanceServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UnFreezeBalanceServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/UnFreezeBalanceV2ServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2ServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/UnFreezeBalanceV2ServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2ServletTest.java index cb27bc0df69..46ed8779465 100644 --- a/framework/src/test/java/org/tron/core/services/http/UnFreezeBalanceV2ServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2ServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/UpdateAccountServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateAccountServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/UpdateAccountServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UpdateAccountServletTest.java index 4d60a39d0b8..114f62b624a 100644 --- a/framework/src/test/java/org/tron/core/services/http/UpdateAccountServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateAccountServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.tron.common.utils.client.utils.HttpMethed.createRequest; diff --git a/framework/src/test/java/org/tron/core/services/http/UpdateAssetServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateAssetServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/UpdateAssetServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UpdateAssetServletTest.java index 18fbdb84a28..0522cef9e41 100644 --- a/framework/src/test/java/org/tron/core/services/http/UpdateAssetServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateAssetServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/UpdateBrokerageServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateBrokerageServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/UpdateBrokerageServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UpdateBrokerageServletTest.java index 378690e9bdc..2c8e05670af 100644 --- a/framework/src/test/java/org/tron/core/services/http/UpdateBrokerageServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateBrokerageServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/UpdateEnergyLimitServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/UpdateEnergyLimitServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServletTest.java index b54407c7ab0..9cc2d36c31f 100644 --- a/framework/src/test/java/org/tron/core/services/http/UpdateEnergyLimitServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/UpdateSettingServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateSettingServletTest.java similarity index 98% rename from framework/src/test/java/org/tron/core/services/http/UpdateSettingServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UpdateSettingServletTest.java index cd33306f50c..1068443cdba 100644 --- a/framework/src/test/java/org/tron/core/services/http/UpdateSettingServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateSettingServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/UpdateWitnessServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateWitnessServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/UpdateWitnessServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UpdateWitnessServletTest.java index 52c0e5ede91..527a4825cf8 100644 --- a/framework/src/test/java/org/tron/core/services/http/UpdateWitnessServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UpdateWitnessServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/ValidateAddressServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ValidateAddressServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/ValidateAddressServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/ValidateAddressServletTest.java index a74f04765a8..ffeadf0e4f5 100644 --- a/framework/src/test/java/org/tron/core/services/http/ValidateAddressServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ValidateAddressServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; diff --git a/framework/src/test/java/org/tron/core/services/http/VoteWitnessAccountServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/VoteWitnessAccountServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/VoteWitnessAccountServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/VoteWitnessAccountServletTest.java index 8166a001ce7..622ef36a0d4 100644 --- a/framework/src/test/java/org/tron/core/services/http/VoteWitnessAccountServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/VoteWitnessAccountServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/WithdrawBalanceServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/WithdrawBalanceServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/WithdrawBalanceServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/WithdrawBalanceServletTest.java index f793265f9bc..2cdadef53cd 100644 --- a/framework/src/test/java/org/tron/core/services/http/WithdrawBalanceServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/WithdrawBalanceServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/core/services/http/WithdrawExpireUnfreezeServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServletTest.java similarity index 97% rename from framework/src/test/java/org/tron/core/services/http/WithdrawExpireUnfreezeServletTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServletTest.java index 9e733018452..e9c5dfda164 100644 --- a/framework/src/test/java/org/tron/core/services/http/WithdrawExpireUnfreezeServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServletTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; diff --git a/framework/src/test/java/org/tron/program/SolidityNodeTest.java b/framework/src/test/java/org/tron/program/SolidityNodeTest.java index ade00374bc4..ed8979b76da 100755 --- a/framework/src/test/java/org/tron/program/SolidityNodeTest.java +++ b/framework/src/test/java/org/tron/program/SolidityNodeTest.java @@ -34,7 +34,7 @@ import org.tron.core.config.args.Args; import org.tron.core.net.TronNetDelegate; import org.tron.core.services.RpcApiService; -import org.tron.core.services.http.solidity.SolidityNodeHttpApiService; +import org.tron.core.services.http.SolidityNodeHttpApiService; import org.tron.core.store.DynamicPropertiesStore; import org.tron.protos.Protocol; import org.tron.protos.Protocol.Block; From b3f7b436d36eb674f9efa521f46336c9d7095b94 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Wed, 5 Aug 2026 11:40:50 +0800 Subject: [PATCH 08/27] refactor(http): drive pbft http endpoints from the api registry --- .../tron/core/services/http/HttpApiDef.java | 269 ++++++++++++++++++ .../interfaceOnPBFT/HttpApiOnPBFTService.java | 245 +--------------- 2 files changed, 283 insertions(+), 231 deletions(-) create mode 100644 framework/src/main/java/org/tron/core/services/http/HttpApiDef.java diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java new file mode 100644 index 00000000000..d66e0785fd6 --- /dev/null +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java @@ -0,0 +1,269 @@ +package org.tron.core.services.http; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.EnumSet; +import java.util.List; +import javax.servlet.http.HttpServlet; +import org.tron.core.services.http.servlets.EstimateEnergyServlet; +import org.tron.core.services.http.servlets.GetAccountByIdServlet; +import org.tron.core.services.http.servlets.GetAccountServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; +import org.tron.core.services.http.servlets.GetAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; +import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; +import org.tron.core.services.http.servlets.GetBlockByIdServlet; +import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; +import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; +import org.tron.core.services.http.servlets.GetBlockByNumServlet; +import org.tron.core.services.http.servlets.GetBlockServlet; +import org.tron.core.services.http.servlets.GetBrokerageServlet; +import org.tron.core.services.http.servlets.GetBurnTrxServlet; +import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; +import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; +import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; +import org.tron.core.services.http.servlets.GetEnergyPricesServlet; +import org.tron.core.services.http.servlets.GetExchangeByIdServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; +import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; +import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; +import org.tron.core.services.http.servlets.GetMarketPairListServlet; +import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; +import org.tron.core.services.http.servlets.GetMerkleTreeVoucherInfoServlet; +import org.tron.core.services.http.servlets.GetNodeInfoServlet; +import org.tron.core.services.http.servlets.GetNowBlockServlet; +import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetRewardServlet; +import org.tron.core.services.http.servlets.GetTransactionByIdServlet; +import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; +import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; +import org.tron.core.services.http.servlets.IsSpendServlet; +import org.tron.core.services.http.servlets.ListExchangesServlet; +import org.tron.core.services.http.servlets.ListWitnessesServlet; +import org.tron.core.services.http.servlets.ScanAndMarkNoteByIvkServlet; +import org.tron.core.services.http.servlets.ScanNoteByIvkServlet; +import org.tron.core.services.http.servlets.ScanNoteByOvkServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; +import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; +import org.tron.core.services.http.servlets.TriggerConstantContractServlet; + +/** + * Declarative registry of the node's http endpoints: one row per endpoint, carrying its path + * suffix, servlet class, access nature and the surfaces (http services) it is exposed on. + * + *

The four http services build their servlet mappings from this table instead of keeping a + * hand-written list each, so an endpoint is declared exactly once and every surface stays in + * sync by construction. Rows marked BUILD or WRITE must stay FULL-only: the cursor surfaces + * (SOLIDITY / PBFT) must never run a write path on a cursor-switched thread, and the standalone + * SolidityNode surface only syncs solidified blocks and cannot propagate transactions. + */ +public enum HttpApiDef { + + GET_ACCOUNT("getaccount", GetAccountServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + LIST_WITNESSES("listwitnesses", ListWitnessesServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_ASSET_ISSUE_LIST("getassetissuelist", GetAssetIssueListServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_PAGINATED_ASSET_ISSUE_LIST( + "getpaginatedassetissuelist", + GetPaginatedAssetIssueListServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_ASSET_ISSUE_BY_NAME("getassetissuebyname", GetAssetIssueByNameServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_ASSET_ISSUE_BY_ID("getassetissuebyid", GetAssetIssueByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_ASSET_ISSUE_LIST_BY_NAME("getassetissuelistbyname", GetAssetIssueListByNameServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_NOW_BLOCK("getnowblock", GetNowBlockServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BLOCK_BY_NUM("getblockbynum", GetBlockByNumServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_DELEGATED_RESOURCE("getdelegatedresource", GetDelegatedResourceServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_DELEGATED_RESOURCE_ACCOUNT_INDEX( + "getdelegatedresourceaccountindex", + GetDelegatedResourceAccountIndexServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_EXCHANGE_BY_ID("getexchangebyid", GetExchangeByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + LIST_EXCHANGES("listexchanges", ListExchangesServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_ACCOUNT_BY_ID("getaccountbyid", GetAccountByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BLOCK_BY_ID("getblockbyid", GetBlockByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BLOCK_BY_LIMIT_NEXT("getblockbylimitnext", GetBlockByLimitNextServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BLOCK_BY_LATEST_NUM("getblockbylatestnum", GetBlockByLatestNumServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_MERKLE_TREE_VOUCHER_INFO("getmerkletreevoucherinfo", GetMerkleTreeVoucherInfoServlet.class, + Access.READ, Surface.PBFT), + + SCAN_AND_MARK_NOTE_BY_IVK("scanandmarknotebyivk", ScanAndMarkNoteByIvkServlet.class, + Access.READ, Surface.PBFT), + + SCAN_NOTE_BY_IVK("scannotebyivk", ScanNoteByIvkServlet.class, + Access.READ, Surface.FULL, Surface.PBFT), + + SCAN_NOTE_BY_OVK("scannotebyovk", ScanNoteByOvkServlet.class, + Access.READ, Surface.FULL, Surface.PBFT), + + IS_SPEND("isspend", IsSpendServlet.class, + Access.READ, Surface.FULL, Surface.PBFT), + + TRIGGER_CONSTANT_CONTRACT("triggerconstantcontract", TriggerConstantContractServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + ESTIMATE_ENERGY("estimateenergy", EstimateEnergyServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_TRANSACTION_BY_ID("gettransactionbyid", GetTransactionByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_TRANSACTION_INFO_BY_ID("gettransactioninfobyid", GetTransactionInfoByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_TRANSACTION_COUNT_BY_BLOCK_NUM( + "gettransactioncountbyblocknum", + GetTransactionCountByBlockNumServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_NODE_INFO("getnodeinfo", GetNodeInfoServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BROKERAGE("getBrokerage", GetBrokerageServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_REWARD("getReward", GetRewardServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_MARKET_ORDER_BY_ACCOUNT("getmarketorderbyaccount", GetMarketOrderByAccountServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_MARKET_ORDER_BY_ID("getmarketorderbyid", GetMarketOrderByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_MARKET_PRICE_BY_PAIR("getmarketpricebypair", GetMarketPriceByPairServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_MARKET_ORDER_LIST_BY_PAIR("getmarketorderlistbypair", GetMarketOrderListByPairServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_MARKET_PAIR_LIST("getmarketpairlist", GetMarketPairListServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + SCAN_SHIELDED_TRC20_NOTES_BY_IVK( + "scanshieldedtrc20notesbyivk", + ScanShieldedTRC20NotesByIvkServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + SCAN_SHIELDED_TRC20_NOTES_BY_OVK( + "scanshieldedtrc20notesbyovk", + ScanShieldedTRC20NotesByOvkServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + IS_SHIELDED_TRC20_CONTRACT_NOTE_SPENT( + "isshieldedtrc20contractnotespent", + IsShieldedTRC20ContractNoteSpentServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BURN_TRX("getburntrx", GetBurnTrxServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BANDWIDTH_PRICES("getbandwidthprices", GetBandwidthPricesServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_ENERGY_PRICES("getenergyprices", GetEnergyPricesServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BLOCK("getblock", GetBlockServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_AVAILABLE_UNFREEZE_COUNT("getavailableunfreezecount", GetAvailableUnfreezeCountServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_CAN_DELEGATED_MAX_SIZE("getcandelegatedmaxsize", GetCanDelegatedMaxSizeServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_CAN_WITHDRAW_UNFREEZE_AMOUNT( + "getcanwithdrawunfreezeamount", + GetCanWithdrawUnfreezeAmountServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_DELEGATED_RESOURCE_ACCOUNT_INDEX_V2( + "getdelegatedresourceaccountindexv2", + GetDelegatedResourceAccountIndexV2Servlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_DELEGATED_RESOURCE_V2("getdelegatedresourcev2", GetDelegatedResourceV2Servlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE); + + /** Http services an endpoint can be exposed on. */ + public enum Surface { + FULL, SOLIDITY, PBFT, SOLIDITY_NODE + } + + /** READ: query only; BUILD: creates an unsigned transaction; WRITE: pushes into the chain. */ + public enum Access { + READ, BUILD, WRITE + } + + private final String suffix; + private final Class servlet; + private final Access access; + private final EnumSet surfaces; + + HttpApiDef(String suffix, Class servlet, Access access, + Surface first, Surface... rest) { + this.suffix = suffix; + this.servlet = servlet; + this.access = access; + this.surfaces = EnumSet.of(first, rest); + } + + public static List forSurface(Surface surface) { + List result = new ArrayList<>(); + for (HttpApiDef def : values()) { + if (def.surfaces.contains(surface)) { + result.add(def); + } + } + return Collections.unmodifiableList(result); + } + + public String getSuffix() { + return suffix; + } + + public Class getServlet() { + return servlet; + } + + public Access getAccess() { + return access; + } +} diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java index 0e91287db48..5230faf4fd1 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java @@ -7,170 +7,25 @@ import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.tron.common.application.HttpService; import org.tron.core.config.args.Args; import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; import org.tron.core.services.filter.PbftCursorFilter; -import org.tron.core.services.http.servlets.EstimateEnergyServlet; -import org.tron.core.services.http.servlets.GetAccountByIdServlet; -import org.tron.core.services.http.servlets.GetAccountServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; -import org.tron.core.services.http.servlets.GetBlockByIdServlet; -import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; -import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; -import org.tron.core.services.http.servlets.GetBlockByNumServlet; -import org.tron.core.services.http.servlets.GetBlockServlet; -import org.tron.core.services.http.servlets.GetBrokerageServlet; -import org.tron.core.services.http.servlets.GetBurnTrxServlet; -import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; -import org.tron.core.services.http.servlets.GetEnergyPricesServlet; -import org.tron.core.services.http.servlets.GetExchangeByIdServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; -import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; -import org.tron.core.services.http.servlets.GetMarketPairListServlet; -import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; -import org.tron.core.services.http.servlets.GetMerkleTreeVoucherInfoServlet; -import org.tron.core.services.http.servlets.GetNodeInfoServlet; -import org.tron.core.services.http.servlets.GetNowBlockServlet; -import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetRewardServlet; -import org.tron.core.services.http.servlets.GetTransactionByIdServlet; -import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; -import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.servlets.IsSpendServlet; -import org.tron.core.services.http.servlets.ListExchangesServlet; -import org.tron.core.services.http.servlets.ListWitnessesServlet; -import org.tron.core.services.http.servlets.ScanAndMarkNoteByIvkServlet; -import org.tron.core.services.http.servlets.ScanNoteByIvkServlet; -import org.tron.core.services.http.servlets.ScanNoteByOvkServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.http.servlets.TriggerConstantContractServlet; +import org.tron.core.services.http.HttpApiDef; @Slf4j(topic = "API") public class HttpApiOnPBFTService extends HttpService { - @Autowired - private GetAccountServlet accountServlet; - - @Autowired - private GetTransactionByIdServlet getTransactionByIdServlet; - @Autowired - private GetTransactionInfoByIdServlet getTransactionInfoByIdServlet; - @Autowired - private ListWitnessesServlet listWitnessesServlet; - @Autowired - private GetAssetIssueListServlet getAssetIssueListServlet; - @Autowired - private GetPaginatedAssetIssueListServlet getPaginatedAssetIssueListServlet; - @Autowired - private GetNowBlockServlet getNowBlockServlet; - @Autowired - private GetBlockByNumServlet getBlockByNumServlet; - - @Autowired - private GetNodeInfoServlet getNodeInfoServlet; - - @Autowired - private GetDelegatedResourceServlet getDelegatedResourceServlet; - @Autowired - private GetDelegatedResourceAccountIndexServlet getDelegatedResourceAccountIndexServlet; - @Autowired - private GetExchangeByIdServlet getExchangeByIdServlet; - @Autowired - private ListExchangesServlet listExchangesServlet; - @Autowired - private GetTransactionCountByBlockNumServlet getTransactionCountByBlockNumServlet; - @Autowired - private GetAssetIssueByNameServlet getAssetIssueByNameServlet; - @Autowired - private GetAssetIssueByIdServlet getAssetIssueByIdServlet; - @Autowired - private GetAssetIssueListByNameServlet getAssetIssueListByNameServlet; - @Autowired - private GetAccountByIdServlet getAccountByIdServlet; - @Autowired - private GetBlockByIdServlet getBlockByIdServlet; - @Autowired - private GetBlockByLimitNextServlet getBlockByLimitNextServlet; - @Autowired - private GetBlockByLatestNumServlet getBlockByLatestNumServlet; - @Autowired - private GetMerkleTreeVoucherInfoServlet getMerkleTreeVoucherInfoServlet; - @Autowired - private ScanNoteByIvkServlet scanNoteByIvkServlet; - @Autowired - private ScanAndMarkNoteByIvkServlet scanAndMarkNoteByIvkServlet; - @Autowired - private ScanNoteByOvkServlet scanNoteByOvkServlet; - @Autowired - private IsSpendServlet isSpendServlet; - @Autowired - private GetBrokerageServlet getBrokerageServlet; - @Autowired - private GetRewardServlet getRewardServlet; - @Autowired - private TriggerConstantContractServlet triggerConstantContractServlet; - @Autowired - private EstimateEnergyServlet estimateEnergyServlet; @Autowired private LiteFnQueryHttpFilter liteFnQueryHttpFilter; @Autowired private HttpApiAccessFilter httpApiAccessFilter; @Autowired private PbftCursorFilter pbftCursorFilter; - - @Autowired - private GetMarketOrderByAccountServlet getMarketOrderByAccountServlet; - @Autowired - private GetMarketOrderByIdServlet getMarketOrderByIdServlet; - @Autowired - private GetMarketPriceByPairServlet getMarketPriceByPairServlet; - @Autowired - private GetMarketOrderListByPairServlet getMarketOrderListByPairServlet; - @Autowired - private GetMarketPairListServlet getMarketPairListServlet; - - @Autowired - private ScanShieldedTRC20NotesByIvkServlet scanShieldedTRC20NotesByIvkServlet; - @Autowired - private ScanShieldedTRC20NotesByOvkServlet scanShieldedTRC20NotesByOvkServlet; - @Autowired - private IsShieldedTRC20ContractNoteSpentServlet - isShieldedTRC20ContractNoteSpentServlet; - @Autowired - private GetBurnTrxServlet getBurnTrxServlet; - @Autowired - private GetBandwidthPricesServlet getBandwidthPricesServlet; @Autowired - private GetEnergyPricesServlet getEnergyPricesServlet; - - @Autowired - private GetBlockServlet getBlockServlet; - - @Autowired - private GetAvailableUnfreezeCountServlet getAvailableUnfreezeCountServlet; - @Autowired - private GetCanDelegatedMaxSizeServlet getCanDelegatedMaxSizeServlet; - @Autowired - private GetCanWithdrawUnfreezeAmountServlet getCanWithdrawUnfreezeAmountServlet; - @Autowired - private GetDelegatedResourceAccountIndexV2Servlet getDelegatedResourceAccountIndexV2Servlet; - @Autowired - private GetDelegatedResourceV2Servlet getDelegatedResourceV2Servlet; + private ApplicationContext appContext; public HttpApiOnPBFTService() { port = Args.getInstance().getPBFTHttpPort(); @@ -181,90 +36,18 @@ public HttpApiOnPBFTService() { @Override protected void addServlet(ServletContextHandler context) { - // same as FullNode - context.addServlet(new ServletHolder(accountServlet), "/getaccount"); - context.addServlet(new ServletHolder(listWitnessesServlet), "/listwitnesses"); - context.addServlet(new ServletHolder(getAssetIssueListServlet), "/getassetissuelist"); - context.addServlet(new ServletHolder(getPaginatedAssetIssueListServlet), - "/getpaginatedassetissuelist"); - context - .addServlet(new ServletHolder(getAssetIssueByNameServlet), "/getassetissuebyname"); - context.addServlet(new ServletHolder(getAssetIssueByIdServlet), "/getassetissuebyid"); - context.addServlet(new ServletHolder(getAssetIssueListByNameServlet), - "/getassetissuelistbyname"); - context.addServlet(new ServletHolder(getNowBlockServlet), "/getnowblock"); - context.addServlet(new ServletHolder(getBlockByNumServlet), "/getblockbynum"); - context.addServlet(new ServletHolder(getDelegatedResourceServlet), - "/getdelegatedresource"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexServlet), - "/getdelegatedresourceaccountindex"); - context.addServlet(new ServletHolder(getExchangeByIdServlet), "/getexchangebyid"); - context.addServlet(new ServletHolder(listExchangesServlet), "/listexchanges"); - context.addServlet(new ServletHolder(getAccountByIdServlet), "/getaccountbyid"); - context.addServlet(new ServletHolder(getBlockByIdServlet), "/getblockbyid"); - context - .addServlet(new ServletHolder(getBlockByLimitNextServlet), "/getblockbylimitnext"); - context - .addServlet(new ServletHolder(getBlockByLatestNumServlet), "/getblockbylatestnum"); - context.addServlet(new ServletHolder(getMerkleTreeVoucherInfoServlet), - "/getmerkletreevoucherinfo"); - context.addServlet(new ServletHolder(scanAndMarkNoteByIvkServlet), - "/scanandmarknotebyivk"); - context.addServlet(new ServletHolder(scanNoteByIvkServlet), "/scannotebyivk"); - context.addServlet(new ServletHolder(scanNoteByOvkServlet), "/scannotebyovk"); - context.addServlet(new ServletHolder(isSpendServlet), "/isspend"); - context.addServlet(new ServletHolder(triggerConstantContractServlet), - "/triggerconstantcontract"); - context.addServlet(new ServletHolder(estimateEnergyServlet), "/estimateenergy"); - - // only for PBFTNode - context.addServlet(new ServletHolder(getTransactionByIdServlet), "/gettransactionbyid"); - context.addServlet(new ServletHolder(getTransactionInfoByIdServlet), - "/gettransactioninfobyid"); - - context.addServlet(new ServletHolder(getTransactionCountByBlockNumServlet), - "/gettransactioncountbyblocknum"); - - context.addServlet(new ServletHolder(getNodeInfoServlet), "/getnodeinfo"); - context.addServlet(new ServletHolder(getBrokerageServlet), "/getBrokerage"); - context.addServlet(new ServletHolder(getRewardServlet), "/getReward"); - - context.addServlet(new ServletHolder(getMarketOrderByAccountServlet), - "/getmarketorderbyaccount"); - context.addServlet(new ServletHolder(getMarketOrderByIdServlet), - "/getmarketorderbyid"); - context.addServlet(new ServletHolder(getMarketPriceByPairServlet), - "/getmarketpricebypair"); - context.addServlet(new ServletHolder(getMarketOrderListByPairServlet), - "/getmarketorderlistbypair"); - context.addServlet(new ServletHolder(getMarketPairListServlet), - "/getmarketpairlist"); - - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkServlet), - "/scanshieldedtrc20notesbyivk"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkServlet), - "/scanshieldedtrc20notesbyovk"); - context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentServlet), - "/isshieldedtrc20contractnotespent"); - context.addServlet(new ServletHolder(getBurnTrxServlet), - "/getburntrx"); - context.addServlet(new ServletHolder(getBandwidthPricesServlet), - "/getbandwidthprices"); - context.addServlet(new ServletHolder(getEnergyPricesServlet), - "/getenergyprices"); - context.addServlet(new ServletHolder(getBlockServlet), - "/getblock"); + addServletsFromRegistry(context); + } - context.addServlet(new ServletHolder(getAvailableUnfreezeCountServlet), - "/getavailableunfreezecount"); - context.addServlet(new ServletHolder(getCanDelegatedMaxSizeServlet), - "/getcandelegatedmaxsize"); - context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountServlet), - "/getcanwithdrawunfreezeamount"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexV2Servlet), - "/getdelegatedresourceaccountindexv2"); - context.addServlet(new ServletHolder(getDelegatedResourceV2Servlet), - "/getdelegatedresourcev2"); + /** + * Registry-driven registration: mounts every endpoint the registry declares for the PBFT + * surface, resolving servlet beans from the application context. + */ + protected void addServletsFromRegistry(ServletContextHandler context) { + for (HttpApiDef def : HttpApiDef.forSurface(HttpApiDef.Surface.PBFT)) { + context.addServlet(new ServletHolder(appContext.getBean(def.getServlet())), + "/" + def.getSuffix()); + } } @Override From ecf0ea834a858c60597b11ea65546f29cc748997 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Wed, 5 Aug 2026 14:18:54 +0800 Subject: [PATCH 09/27] refactor(http): drive solidity http endpoints from the api registry --- .../tron/core/services/http/HttpApiDef.java | 12 + .../HttpApiOnSolidityService.java | 246 ++---------------- 2 files changed, 30 insertions(+), 228 deletions(-) diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java index d66e0785fd6..6a773af1340 100644 --- a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java @@ -38,9 +38,11 @@ import org.tron.core.services.http.servlets.GetNodeInfoServlet; import org.tron.core.services.http.servlets.GetNowBlockServlet; import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetPaginatedNowWitnessListServlet; import org.tron.core.services.http.servlets.GetRewardServlet; import org.tron.core.services.http.servlets.GetTransactionByIdServlet; import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; import org.tron.core.services.http.servlets.IsSpendServlet; @@ -71,6 +73,11 @@ public enum HttpApiDef { LIST_WITNESSES("listwitnesses", ListWitnessesServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_PAGINATED_NOW_WITNESS_LIST( + "getpaginatednowwitnesslist", + GetPaginatedNowWitnessListServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.SOLIDITY_NODE), + GET_ASSET_ISSUE_LIST("getassetissuelist", GetAssetIssueListServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), @@ -141,6 +148,11 @@ public enum HttpApiDef { ESTIMATE_ENERGY("estimateenergy", EstimateEnergyServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_TRANSACTION_INFO_BY_BLOCK_NUM( + "gettransactioninfobyblocknum", + GetTransactionInfoByBlockNumServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.SOLIDITY_NODE), + GET_TRANSACTION_BY_ID("gettransactionbyid", GetTransactionByIdServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java index 18bd6cf873e..25d3de4f432 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java @@ -7,152 +7,18 @@ import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.tron.common.application.HttpService; import org.tron.core.config.args.Args; import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; import org.tron.core.services.filter.SolidityCursorFilter; -import org.tron.core.services.http.servlets.EstimateEnergyServlet; -import org.tron.core.services.http.servlets.GetAccountByIdServlet; -import org.tron.core.services.http.servlets.GetAccountServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; -import org.tron.core.services.http.servlets.GetBlockByIdServlet; -import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; -import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; -import org.tron.core.services.http.servlets.GetBlockByNumServlet; -import org.tron.core.services.http.servlets.GetBlockServlet; -import org.tron.core.services.http.servlets.GetBrokerageServlet; -import org.tron.core.services.http.servlets.GetBurnTrxServlet; -import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; -import org.tron.core.services.http.servlets.GetEnergyPricesServlet; -import org.tron.core.services.http.servlets.GetExchangeByIdServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; -import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; -import org.tron.core.services.http.servlets.GetMarketPairListServlet; -import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; +import org.tron.core.services.http.HttpApiDef; import org.tron.core.services.http.servlets.GetNodeInfoServlet; -import org.tron.core.services.http.servlets.GetNowBlockServlet; -import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetPaginatedNowWitnessListServlet; -import org.tron.core.services.http.servlets.GetRewardServlet; -import org.tron.core.services.http.servlets.GetTransactionByIdServlet; -import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; -import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; -import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.servlets.ListExchangesServlet; -import org.tron.core.services.http.servlets.ListWitnessesServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.http.servlets.TriggerConstantContractServlet; @Slf4j(topic = "API") public class HttpApiOnSolidityService extends HttpService { - @Autowired - private GetAccountServlet getAccountServlet; - - @Autowired - private GetTransactionByIdServlet getTransactionByIdServlet; - @Autowired - private GetTransactionInfoByIdServlet getTransactionInfoByIdServlet; - @Autowired - private ListWitnessesServlet listWitnessesServlet; - @Autowired - private GetPaginatedNowWitnessListServlet getPaginatedNowWitnessListServlet; - @Autowired - private GetAssetIssueListServlet getAssetIssueListServlet; - @Autowired - private GetPaginatedAssetIssueListServlet getPaginatedAssetIssueListServlet; - @Autowired - private GetNowBlockServlet getNowBlockServlet; - @Autowired - private GetBlockByNumServlet getBlockByNumServlet; - - @Autowired - private GetNodeInfoServlet getNodeInfoServlet; - - @Autowired - private GetDelegatedResourceServlet getDelegatedResourceServlet; - @Autowired - private GetDelegatedResourceV2Servlet getDelegatedResourceV2Servlet; - @Autowired - private GetCanDelegatedMaxSizeServlet getCanDelegatedMaxSizeServlet; - @Autowired - private GetAvailableUnfreezeCountServlet getAvailableUnfreezeCountServlet; - @Autowired - private GetCanWithdrawUnfreezeAmountServlet getCanWithdrawUnfreezeAmountServlet; - @Autowired - private GetDelegatedResourceAccountIndexServlet getDelegatedResourceAccountIndexServlet; - @Autowired - private GetDelegatedResourceAccountIndexV2Servlet - getDelegatedResourceAccountIndexV2Servlet; - @Autowired - private GetExchangeByIdServlet getExchangeByIdServlet; - @Autowired - private ListExchangesServlet listExchangesServlet; - @Autowired - private GetTransactionCountByBlockNumServlet getTransactionCountByBlockNumServlet; - @Autowired - private GetAssetIssueByNameServlet getAssetIssueByNameServlet; - @Autowired - private GetAssetIssueByIdServlet getAssetIssueByIdServlet; - @Autowired - private GetAssetIssueListByNameServlet getAssetIssueListByNameServlet; - @Autowired - private GetAccountByIdServlet getAccountByIdServlet; - @Autowired - private GetBlockByIdServlet getBlockByIdServlet; - @Autowired - private GetBlockByLimitNextServlet getBlockByLimitNextServlet; - @Autowired - private GetBlockByLatestNumServlet getBlockByLatestNumServlet; - @Autowired - private ScanShieldedTRC20NotesByIvkServlet scanShieldedTRC20NotesByIvkServlet; - @Autowired - private ScanShieldedTRC20NotesByOvkServlet scanShieldedTRC20NotesByOvkServlet; - @Autowired - private IsShieldedTRC20ContractNoteSpentServlet - isShieldedTRC20ContractNoteSpentServlet; - @Autowired - private GetBrokerageServlet getBrokerageServlet; - @Autowired - private GetRewardServlet getRewardServlet; - @Autowired - private GetBurnTrxServlet getBurnTrxServlet; - @Autowired - private TriggerConstantContractServlet triggerConstantContractServlet; - @Autowired - private EstimateEnergyServlet estimateEnergyServlet; - @Autowired - private GetTransactionInfoByBlockNumServlet - getTransactionInfoByBlockNumServlet; - @Autowired - private GetMarketOrderByAccountServlet getMarketOrderByAccountServlet; - @Autowired - private GetMarketOrderByIdServlet getMarketOrderByIdServlet; - @Autowired - private GetMarketPriceByPairServlet getMarketPriceByPairServlet; - @Autowired - private GetMarketOrderListByPairServlet getMarketOrderListByPairServlet; - @Autowired - private GetMarketPairListServlet getMarketPairListServlet; - @Autowired - private GetBandwidthPricesServlet getBandwidthPricesServlet; - @Autowired - private GetEnergyPricesServlet getEnergyPricesServlet; - @Autowired private LiteFnQueryHttpFilter liteFnQueryHttpFilter; @@ -163,7 +29,7 @@ public class HttpApiOnSolidityService extends HttpService { private SolidityCursorFilter solidityCursorFilter; @Autowired - private GetBlockServlet getBlockServlet; + private ApplicationContext appContext; public HttpApiOnSolidityService() { port = Args.getInstance().getSolidityHttpPort(); @@ -174,98 +40,22 @@ public HttpApiOnSolidityService() { @Override protected void addServlet(ServletContextHandler context) { - // same as FullNode - context.addServlet(new ServletHolder(getAccountServlet), "/walletsolidity/getaccount"); - context.addServlet(new ServletHolder(listWitnessesServlet), - "/walletsolidity/listwitnesses"); - context.addServlet(new ServletHolder(getPaginatedNowWitnessListServlet), - "/walletsolidity/getpaginatednowwitnesslist"); - context.addServlet(new ServletHolder(getAssetIssueListServlet), - "/walletsolidity/getassetissuelist"); - context.addServlet(new ServletHolder(getPaginatedAssetIssueListServlet), - "/walletsolidity/getpaginatedassetissuelist"); - context.addServlet(new ServletHolder(getAssetIssueByNameServlet), - "/walletsolidity/getassetissuebyname"); - context.addServlet(new ServletHolder(getAssetIssueByIdServlet), - "/walletsolidity/getassetissuebyid"); - context.addServlet(new ServletHolder(getAssetIssueListByNameServlet), - "/walletsolidity/getassetissuelistbyname"); - context.addServlet(new ServletHolder(getNowBlockServlet), - "/walletsolidity/getnowblock"); - context.addServlet(new ServletHolder(getBlockByNumServlet), - "/walletsolidity/getblockbynum"); - context.addServlet(new ServletHolder(getDelegatedResourceServlet), - "/walletsolidity/getdelegatedresource"); - context.addServlet(new ServletHolder(getDelegatedResourceV2Servlet), - "/walletsolidity/getdelegatedresourcev2"); - context.addServlet(new ServletHolder(getCanDelegatedMaxSizeServlet), - "/walletsolidity/getcandelegatedmaxsize"); - context.addServlet(new ServletHolder(getAvailableUnfreezeCountServlet), - "/walletsolidity/getavailableunfreezecount"); - context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountServlet), - "/walletsolidity/getcanwithdrawunfreezeamount"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexServlet), - "/walletsolidity/getdelegatedresourceaccountindex"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexV2Servlet), - "/walletsolidity/getdelegatedresourceaccountindexv2"); - context.addServlet(new ServletHolder(getExchangeByIdServlet), - "/walletsolidity/getexchangebyid"); - context.addServlet(new ServletHolder(listExchangesServlet), - "/walletsolidity/listexchanges"); - context.addServlet(new ServletHolder(getAccountByIdServlet), - "/walletsolidity/getaccountbyid"); - context.addServlet(new ServletHolder(getBlockByIdServlet), - "/walletsolidity/getblockbyid"); - context.addServlet(new ServletHolder(getBlockByLimitNextServlet), - "/walletsolidity/getblockbylimitnext"); - context.addServlet(new ServletHolder(getBlockByLatestNumServlet), - "/walletsolidity/getblockbylatestnum"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkServlet), - "/walletsolidity/scanshieldedtrc20notesbyivk"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkServlet), - "/walletsolidity/scanshieldedtrc20notesbyovk"); - context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentServlet), - "/walletsolidity/isshieldedtrc20contractnotespent"); - context.addServlet(new ServletHolder(triggerConstantContractServlet), - "/walletsolidity/triggerconstantcontract"); - context.addServlet(new ServletHolder(estimateEnergyServlet), - "/walletsolidity/estimateenergy"); - context.addServlet(new ServletHolder(getTransactionInfoByBlockNumServlet), - "/walletsolidity/gettransactioninfobyblocknum"); - context.addServlet(new ServletHolder(getMarketOrderByAccountServlet), - "/walletsolidity/getmarketorderbyaccount"); - context.addServlet(new ServletHolder(getMarketOrderByIdServlet), - "/walletsolidity/getmarketorderbyid"); - context.addServlet(new ServletHolder(getMarketPriceByPairServlet), - "/walletsolidity/getmarketpricebypair"); - context.addServlet(new ServletHolder(getMarketOrderListByPairServlet), - "/walletsolidity/getmarketorderlistbypair"); - context.addServlet(new ServletHolder(getMarketPairListServlet), - "/walletsolidity/getmarketpairlist"); - - // only for SolidityNode - context.addServlet(new ServletHolder(getTransactionByIdServlet), - "/walletsolidity/gettransactionbyid"); - context.addServlet(new ServletHolder(getTransactionInfoByIdServlet), - "/walletsolidity/gettransactioninfobyid"); - - context.addServlet(new ServletHolder(getTransactionCountByBlockNumServlet), - "/walletsolidity/gettransactioncountbyblocknum"); - - context.addServlet(new ServletHolder(getNodeInfoServlet), "/wallet/getnodeinfo"); - context.addServlet(new ServletHolder(getNodeInfoServlet), "/walletsolidity/getnodeinfo"); - context.addServlet(new ServletHolder(getBrokerageServlet), "/walletsolidity/getBrokerage"); - context.addServlet(new ServletHolder(getRewardServlet), "/walletsolidity/getReward"); - context - .addServlet(new ServletHolder(getBurnTrxServlet), "/walletsolidity/getburntrx"); - context.addServlet(new ServletHolder(getBandwidthPricesServlet), - "/walletsolidity/getbandwidthprices"); - context.addServlet(new ServletHolder(getEnergyPricesServlet), - "/walletsolidity/getenergyprices"); - - context.addServlet(new ServletHolder(getBlockServlet), - "/walletsolidity/getblock"); + addServletsFromRegistry(context); + } + /** + * Registry-driven registration: mounts every endpoint the registry declares for the SOLIDITY + * surface under the /walletsolidity prefix, resolving servlet beans from the application + * context; getnodeinfo is additionally reachable under the fullnode prefix on this port. + */ + protected void addServletsFromRegistry(ServletContextHandler context) { + for (HttpApiDef def : HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY)) { + context.addServlet(new ServletHolder(appContext.getBean(def.getServlet())), + "/walletsolidity/" + def.getSuffix()); + } + // surface-specific alias kept for compatibility: /wallet/getnodeinfo answers on this port + context.addServlet(new ServletHolder(appContext.getBean(GetNodeInfoServlet.class)), + "/wallet/getnodeinfo"); } @Override From 4e0c5b04d947cea1a8350bd4f307a9a0cb5eb756 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Wed, 5 Aug 2026 14:58:19 +0800 Subject: [PATCH 10/27] refactor(http): drive soliditynode http endpoints from the api registry --- .../services/http/FullNodeHttpApiService.java | 43 --- .../tron/core/services/http/HttpApiDef.java | 113 ++++---- .../http/SolidityNodeHttpApiService.java | 265 ++---------------- 3 files changed, 75 insertions(+), 346 deletions(-) diff --git a/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java b/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java index bc2627f02e7..1f063b9f0e1 100644 --- a/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java +++ b/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java @@ -23,11 +23,8 @@ import org.tron.core.services.http.servlets.CreateAccountServlet; import org.tron.core.services.http.servlets.CreateAssetIssueServlet; import org.tron.core.services.http.servlets.CreateCommonTransactionServlet; -import org.tron.core.services.http.servlets.CreateShieldNullifierServlet; import org.tron.core.services.http.servlets.CreateShieldedContractParametersServlet; import org.tron.core.services.http.servlets.CreateShieldedContractParametersWithoutAskServlet; -import org.tron.core.services.http.servlets.CreateShieldedTransactionServlet; -import org.tron.core.services.http.servlets.CreateShieldedTransactionWithoutSpendAuthSigServlet; import org.tron.core.services.http.servlets.CreateSpendAuthSigServlet; import org.tron.core.services.http.servlets.CreateWitnessServlet; import org.tron.core.services.http.servlets.DelegateResourceServlet; @@ -80,7 +77,6 @@ import org.tron.core.services.http.servlets.GetMarketPairListServlet; import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; import org.tron.core.services.http.servlets.GetMemoFeePricesServlet; -import org.tron.core.services.http.servlets.GetMerkleTreeVoucherInfoServlet; import org.tron.core.services.http.servlets.GetNewShieldedAddressServlet; import org.tron.core.services.http.servlets.GetNextMaintenanceTimeServlet; import org.tron.core.services.http.servlets.GetNkFromNskServlet; @@ -94,7 +90,6 @@ import org.tron.core.services.http.servlets.GetProposalByIdServlet; import org.tron.core.services.http.servlets.GetRcmServlet; import org.tron.core.services.http.servlets.GetRewardServlet; -import org.tron.core.services.http.servlets.GetShieldTransactionHashServlet; import org.tron.core.services.http.servlets.GetSpendingKeyServlet; import org.tron.core.services.http.servlets.GetTransactionApprovedListServlet; import org.tron.core.services.http.servlets.GetTransactionByIdServlet; @@ -108,7 +103,6 @@ import org.tron.core.services.http.servlets.GetTriggerInputForShieldedTRC20ContractServlet; import org.tron.core.services.http.servlets.GetZenPaymentAddressServlet; import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.servlets.IsSpendServlet; import org.tron.core.services.http.servlets.ListExchangesServlet; import org.tron.core.services.http.servlets.ListNodesServlet; import org.tron.core.services.http.servlets.ListProposalsServlet; @@ -120,9 +114,6 @@ import org.tron.core.services.http.servlets.ProposalApproveServlet; import org.tron.core.services.http.servlets.ProposalCreateServlet; import org.tron.core.services.http.servlets.ProposalDeleteServlet; -import org.tron.core.services.http.servlets.ScanAndMarkNoteByIvkServlet; -import org.tron.core.services.http.servlets.ScanNoteByIvkServlet; -import org.tron.core.services.http.servlets.ScanNoteByOvkServlet; import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; import org.tron.core.services.http.servlets.SetAccountIdServlet; @@ -317,29 +308,10 @@ public class FullNodeHttpApiService extends HttpService { @Autowired private GetZenPaymentAddressServlet getZenPaymentAddressServlet; @Autowired - private CreateShieldedTransactionServlet createShieldedTransactionServlet; - @Autowired - private ScanNoteByIvkServlet scanNoteByIvkServlet; - @Autowired - private ScanAndMarkNoteByIvkServlet scanAndMarkNoteByIvkServlet; - @Autowired - private ScanNoteByOvkServlet scanNoteByOvkServlet; - @Autowired private GetRcmServlet getRcmServlet; @Autowired private CreateSpendAuthSigServlet createSpendAuthSigServlet; @Autowired - private CreateShieldNullifierServlet createShieldNullifierServlet; - @Autowired - private GetShieldTransactionHashServlet getShieldTransactionHashServlet; - @Autowired - private GetMerkleTreeVoucherInfoServlet getMerkleTreeVoucherInfoServlet; - @Autowired - private IsSpendServlet isSpendServlet; - @Autowired - private CreateShieldedTransactionWithoutSpendAuthSigServlet - createShieldedTransactionWithoutSpendAuthSigServlet; - @Autowired private BroadcastHexServlet broadcastHexServlet; @Autowired private GetBurnTrxServlet getBurnTrxServlet; @@ -557,24 +529,9 @@ protected void addServlet(ServletContextHandler context) { "/wallet/getincomingviewingkey"); context.addServlet(new ServletHolder(getZenPaymentAddressServlet), "/wallet/getzenpaymentaddress"); - // context.addServlet(new ServletHolder(createShieldedTransactionServlet), - // "/wallet/createshieldedtransaction"); - // context.addServlet(new ServletHolder(createShieldedTransactionWithoutSpendAuthSigServlet), - // "/wallet/createshieldedtransactionwithoutspendauthsig"); - // context.addServlet(new ServletHolder(scanNoteByIvkServlet), "/wallet/scannotebyivk"); - // context.addServlet(new ServletHolder(scanAndMarkNoteByIvkServlet), - // "/wallet/scanandmarknotebyivk"); - // context.addServlet(new ServletHolder(scanNoteByOvkServlet), "/wallet/scannotebyovk"); context.addServlet(new ServletHolder(getRcmServlet), "/wallet/getrcm"); - // context.addServlet(new ServletHolder(getMerkleTreeVoucherInfoServlet), - // "/wallet/getmerkletreevoucherinfo"); - // context.addServlet(new ServletHolder(isSpendServlet), "/wallet/isspend"); context.addServlet(new ServletHolder(createSpendAuthSigServlet), "/wallet/createspendauthsig"); - // context.addServlet(new ServletHolder(createShieldNullifierServlet), - // "/wallet/createshieldnullifier"); - // context.addServlet(new ServletHolder(getShieldTransactionHashServlet), - // "/wallet/getshieldtransactionhash"); context .addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentServlet), diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java index 6a773af1340..fd7757c21c5 100644 --- a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java @@ -104,11 +104,30 @@ public enum HttpApiDef { GET_DELEGATED_RESOURCE("getdelegatedresource", GetDelegatedResourceServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_DELEGATED_RESOURCE_V2("getdelegatedresourcev2", GetDelegatedResourceV2Servlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_CAN_DELEGATED_MAX_SIZE("getcandelegatedmaxsize", GetCanDelegatedMaxSizeServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_AVAILABLE_UNFREEZE_COUNT("getavailableunfreezecount", GetAvailableUnfreezeCountServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_CAN_WITHDRAW_UNFREEZE_AMOUNT( + "getcanwithdrawunfreezeamount", + GetCanWithdrawUnfreezeAmountServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_DELEGATED_RESOURCE_ACCOUNT_INDEX( "getdelegatedresourceaccountindex", GetDelegatedResourceAccountIndexServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_DELEGATED_RESOURCE_ACCOUNT_INDEX_V2( + "getdelegatedresourceaccountindexv2", + GetDelegatedResourceAccountIndexV2Servlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_EXCHANGE_BY_ID("getexchangebyid", GetExchangeByIdServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), @@ -127,25 +146,19 @@ public enum HttpApiDef { GET_BLOCK_BY_LATEST_NUM("getblockbylatestnum", GetBlockByLatestNumServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_MERKLE_TREE_VOUCHER_INFO("getmerkletreevoucherinfo", GetMerkleTreeVoucherInfoServlet.class, - Access.READ, Surface.PBFT), - - SCAN_AND_MARK_NOTE_BY_IVK("scanandmarknotebyivk", ScanAndMarkNoteByIvkServlet.class, - Access.READ, Surface.PBFT), - - SCAN_NOTE_BY_IVK("scannotebyivk", ScanNoteByIvkServlet.class, - Access.READ, Surface.FULL, Surface.PBFT), - - SCAN_NOTE_BY_OVK("scannotebyovk", ScanNoteByOvkServlet.class, - Access.READ, Surface.FULL, Surface.PBFT), - - IS_SPEND("isspend", IsSpendServlet.class, - Access.READ, Surface.FULL, Surface.PBFT), + SCAN_SHIELDED_TRC20_NOTES_BY_IVK( + "scanshieldedtrc20notesbyivk", + ScanShieldedTRC20NotesByIvkServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - TRIGGER_CONSTANT_CONTRACT("triggerconstantcontract", TriggerConstantContractServlet.class, + SCAN_SHIELDED_TRC20_NOTES_BY_OVK( + "scanshieldedtrc20notesbyovk", + ScanShieldedTRC20NotesByOvkServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - ESTIMATE_ENERGY("estimateenergy", EstimateEnergyServlet.class, + IS_SHIELDED_TRC20_CONTRACT_NOTE_SPENT( + "isshieldedtrc20contractnotespent", + IsShieldedTRC20ContractNoteSpentServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), GET_TRANSACTION_INFO_BY_BLOCK_NUM( @@ -153,86 +166,74 @@ public enum HttpApiDef { GetTransactionInfoByBlockNumServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.SOLIDITY_NODE), - GET_TRANSACTION_BY_ID("gettransactionbyid", GetTransactionByIdServlet.class, + GET_MARKET_ORDER_BY_ACCOUNT("getmarketorderbyaccount", GetMarketOrderByAccountServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_TRANSACTION_INFO_BY_ID("gettransactioninfobyid", GetTransactionInfoByIdServlet.class, + GET_MARKET_ORDER_BY_ID("getmarketorderbyid", GetMarketOrderByIdServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_TRANSACTION_COUNT_BY_BLOCK_NUM( - "gettransactioncountbyblocknum", - GetTransactionCountByBlockNumServlet.class, + GET_MARKET_PRICE_BY_PAIR("getmarketpricebypair", GetMarketPriceByPairServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_NODE_INFO("getnodeinfo", GetNodeInfoServlet.class, + GET_MARKET_ORDER_LIST_BY_PAIR("getmarketorderlistbypair", GetMarketOrderListByPairServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_BROKERAGE("getBrokerage", GetBrokerageServlet.class, + GET_MARKET_PAIR_LIST("getmarketpairlist", GetMarketPairListServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_REWARD("getReward", GetRewardServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_MARKET_ORDER_BY_ACCOUNT("getmarketorderbyaccount", GetMarketOrderByAccountServlet.class, + GET_TRANSACTION_BY_ID("gettransactionbyid", GetTransactionByIdServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_MARKET_ORDER_BY_ID("getmarketorderbyid", GetMarketOrderByIdServlet.class, + GET_TRANSACTION_INFO_BY_ID("gettransactioninfobyid", GetTransactionInfoByIdServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_MARKET_PRICE_BY_PAIR("getmarketpricebypair", GetMarketPriceByPairServlet.class, + GET_TRANSACTION_COUNT_BY_BLOCK_NUM( + "gettransactioncountbyblocknum", + GetTransactionCountByBlockNumServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_MARKET_ORDER_LIST_BY_PAIR("getmarketorderlistbypair", GetMarketOrderListByPairServlet.class, + TRIGGER_CONSTANT_CONTRACT("triggerconstantcontract", TriggerConstantContractServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_MARKET_PAIR_LIST("getmarketpairlist", GetMarketPairListServlet.class, + ESTIMATE_ENERGY("estimateenergy", EstimateEnergyServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - SCAN_SHIELDED_TRC20_NOTES_BY_IVK( - "scanshieldedtrc20notesbyivk", - ScanShieldedTRC20NotesByIvkServlet.class, + GET_NODE_INFO("getnodeinfo", GetNodeInfoServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - SCAN_SHIELDED_TRC20_NOTES_BY_OVK( - "scanshieldedtrc20notesbyovk", - ScanShieldedTRC20NotesByOvkServlet.class, + GET_BROKERAGE("getBrokerage", GetBrokerageServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - IS_SHIELDED_TRC20_CONTRACT_NOTE_SPENT( - "isshieldedtrc20contractnotespent", - IsShieldedTRC20ContractNoteSpentServlet.class, + GET_REWARD("getReward", GetRewardServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), GET_BURN_TRX("getburntrx", GetBurnTrxServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_BANDWIDTH_PRICES("getbandwidthprices", GetBandwidthPricesServlet.class, + GET_BLOCK("getblock", GetBlockServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_ENERGY_PRICES("getenergyprices", GetEnergyPricesServlet.class, + GET_BANDWIDTH_PRICES("getbandwidthprices", GetBandwidthPricesServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_BLOCK("getblock", GetBlockServlet.class, + GET_ENERGY_PRICES("getenergyprices", GetEnergyPricesServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_AVAILABLE_UNFREEZE_COUNT("getavailableunfreezecount", GetAvailableUnfreezeCountServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_MERKLE_TREE_VOUCHER_INFO("getmerkletreevoucherinfo", GetMerkleTreeVoucherInfoServlet.class, + Access.READ, Surface.PBFT), - GET_CAN_DELEGATED_MAX_SIZE("getcandelegatedmaxsize", GetCanDelegatedMaxSizeServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + SCAN_AND_MARK_NOTE_BY_IVK("scanandmarknotebyivk", ScanAndMarkNoteByIvkServlet.class, + Access.READ, Surface.PBFT), - GET_CAN_WITHDRAW_UNFREEZE_AMOUNT( - "getcanwithdrawunfreezeamount", - GetCanWithdrawUnfreezeAmountServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + SCAN_NOTE_BY_IVK("scannotebyivk", ScanNoteByIvkServlet.class, + Access.READ, Surface.FULL, Surface.PBFT), - GET_DELEGATED_RESOURCE_ACCOUNT_INDEX_V2( - "getdelegatedresourceaccountindexv2", - GetDelegatedResourceAccountIndexV2Servlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + SCAN_NOTE_BY_OVK("scannotebyovk", ScanNoteByOvkServlet.class, + Access.READ, Surface.FULL, Surface.PBFT), - GET_DELEGATED_RESOURCE_V2("getdelegatedresourcev2", GetDelegatedResourceV2Servlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE); + IS_SPEND("isspend", IsSpendServlet.class, + Access.READ, Surface.FULL, Surface.PBFT); /** Http services an endpoint can be exposed on. */ public enum Surface { diff --git a/framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java b/framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java index ef9d89345ec..a0822e2a816 100644 --- a/framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java +++ b/framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java @@ -7,165 +7,22 @@ import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component; import org.tron.common.application.HttpService; import org.tron.core.config.args.Args; import org.tron.core.services.filter.HttpApiAccessFilter; -import org.tron.core.services.http.servlets.EstimateEnergyServlet; -import org.tron.core.services.http.servlets.GetAccountByIdServlet; -import org.tron.core.services.http.servlets.GetAccountServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; -import org.tron.core.services.http.servlets.GetBlockByIdServlet; -import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; -import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; -import org.tron.core.services.http.servlets.GetBlockByNumServlet; -import org.tron.core.services.http.servlets.GetBlockServlet; -import org.tron.core.services.http.servlets.GetBrokerageServlet; -import org.tron.core.services.http.servlets.GetBurnTrxServlet; -import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; -import org.tron.core.services.http.servlets.GetEnergyPricesServlet; -import org.tron.core.services.http.servlets.GetExchangeByIdServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; -import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; -import org.tron.core.services.http.servlets.GetMarketPairListServlet; -import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; -import org.tron.core.services.http.servlets.GetMerkleTreeVoucherInfoServlet; import org.tron.core.services.http.servlets.GetNodeInfoServlet; -import org.tron.core.services.http.servlets.GetNowBlockServlet; -import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetPaginatedNowWitnessListServlet; -import org.tron.core.services.http.servlets.GetRewardServlet; -import org.tron.core.services.http.servlets.GetTransactionByIdServlet; -import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; -import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; -import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.servlets.IsSpendServlet; -import org.tron.core.services.http.servlets.ListExchangesServlet; -import org.tron.core.services.http.servlets.ListWitnessesServlet; -import org.tron.core.services.http.servlets.ScanAndMarkNoteByIvkServlet; -import org.tron.core.services.http.servlets.ScanNoteByIvkServlet; -import org.tron.core.services.http.servlets.ScanNoteByOvkServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.http.servlets.TriggerConstantContractServlet; @Component @Slf4j(topic = "API") public class SolidityNodeHttpApiService extends HttpService { - @Autowired - private GetAccountServlet getAccountServlet; - @Autowired - private GetTransactionByIdServlet getTransactionByIdServlet; - @Autowired - private GetTransactionInfoByIdServlet getTransactionInfoByIdServlet; - @Autowired - private GetTransactionCountByBlockNumServlet getTransactionCountByBlockNumServlet; - @Autowired - private GetDelegatedResourceServlet getDelegatedResourceServlet; - @Autowired - private GetDelegatedResourceV2Servlet getDelegatedResourceV2Servlet; - @Autowired - private GetCanDelegatedMaxSizeServlet getCanDelegatedMaxSizeServlet; - @Autowired - private GetAvailableUnfreezeCountServlet getAvailableUnfreezeCountServlet; - @Autowired - private GetCanWithdrawUnfreezeAmountServlet getCanWithdrawUnfreezeAmountServlet; - @Autowired - private GetDelegatedResourceAccountIndexServlet getDelegatedResourceAccountIndexServlet; - @Autowired - private GetDelegatedResourceAccountIndexV2Servlet getDelegatedResourceAccountIndexV2Servlet; - @Autowired - private GetExchangeByIdServlet getExchangeByIdServlet; - @Autowired - private ListExchangesServlet listExchangesServlet; - @Autowired - private ListWitnessesServlet listWitnessesServlet; - @Autowired - private GetPaginatedNowWitnessListServlet getPaginatedNowWitnessListServlet; - @Autowired - private GetAssetIssueListServlet getAssetIssueListServlet; - @Autowired - private GetPaginatedAssetIssueListServlet getPaginatedAssetIssueListServlet; - @Autowired - private GetAssetIssueByNameServlet getAssetIssueByNameServlet; - @Autowired - private GetAssetIssueByIdServlet getAssetIssueByIdServlet; - @Autowired - private GetAssetIssueListByNameServlet getAssetIssueListByNameServlet; - @Autowired - private GetNowBlockServlet getNowBlockServlet; - @Autowired - private GetBlockByNumServlet getBlockByNumServlet; - @Autowired - private GetNodeInfoServlet getNodeInfoServlet; - @Autowired - private GetAccountByIdServlet getAccountByIdServlet; - @Autowired - private GetBlockByIdServlet getBlockByIdServlet; - @Autowired - private GetBlockByLimitNextServlet getBlockByLimitNextServlet; - @Autowired - private GetBlockByLatestNumServlet getBlockByLatestNumServlet; - @Autowired - private ScanAndMarkNoteByIvkServlet scanAndMarkNoteByIvkServlet; - @Autowired - private ScanNoteByIvkServlet scanNoteByIvkServlet; - @Autowired - private ScanNoteByOvkServlet scanNoteByOvkServlet; - @Autowired - private GetMerkleTreeVoucherInfoServlet getMerkleTreeVoucherInfoServlet; - @Autowired - private IsSpendServlet isSpendServlet; - @Autowired - private ScanShieldedTRC20NotesByIvkServlet scanShieldedTRC20NotesByIvkServlet; - @Autowired - private ScanShieldedTRC20NotesByOvkServlet scanShieldedTRC20NotesByOvkServlet; - @Autowired - private IsShieldedTRC20ContractNoteSpentServlet isShieldedTRC20ContractNoteSpentServlet; - @Autowired - private GetMarketOrderByAccountServlet getMarketOrderByAccountServlet; - @Autowired - private GetMarketOrderByIdServlet getMarketOrderByIdServlet; - @Autowired - private GetMarketPriceByPairServlet getMarketPriceByPairServlet; - @Autowired - private GetMarketOrderListByPairServlet getMarketOrderListByPairServlet; - @Autowired - private GetMarketPairListServlet getMarketPairListServlet; - @Autowired - private GetBurnTrxServlet getBurnTrxServlet; - @Autowired - private GetBrokerageServlet getBrokerageServlet; - @Autowired - private GetRewardServlet getRewardServlet; - @Autowired - private TriggerConstantContractServlet triggerConstantContractServlet; - @Autowired - private EstimateEnergyServlet estimateEnergyServlet; - @Autowired - private GetTransactionInfoByBlockNumServlet getTransactionInfoByBlockNumServlet; @Autowired private HttpApiAccessFilter httpApiAccessFilter; - @Autowired - private GetBlockServlet getBlockServlet; - @Autowired - private GetBandwidthPricesServlet getBandwidthPricesServlet; - @Autowired - private GetEnergyPricesServlet getEnergyPricesServlet; + @Autowired + private ApplicationContext appContext; public SolidityNodeHttpApiService() { port = Args.getInstance().getSolidityHttpPort(); @@ -176,108 +33,22 @@ public SolidityNodeHttpApiService() { @Override protected void addServlet(ServletContextHandler context) { - // same as FullNode - context.addServlet(new ServletHolder(getAccountServlet), "/walletsolidity/getaccount"); - context.addServlet(new ServletHolder(listWitnessesServlet), "/walletsolidity/listwitnesses"); - context.addServlet(new ServletHolder(getPaginatedNowWitnessListServlet), - "/walletsolidity/getpaginatednowwitnesslist"); - context.addServlet(new ServletHolder(getAssetIssueListServlet), - "/walletsolidity/getassetissuelist"); - context.addServlet(new ServletHolder(getPaginatedAssetIssueListServlet), - "/walletsolidity/getpaginatedassetissuelist"); - context.addServlet(new ServletHolder(getAssetIssueByNameServlet), - "/walletsolidity/getassetissuebyname"); - context.addServlet(new ServletHolder(getAssetIssueByIdServlet), - "/walletsolidity/getassetissuebyid"); - context.addServlet(new ServletHolder(getAssetIssueListByNameServlet), - "/walletsolidity/getassetissuelistbyname"); - context.addServlet(new ServletHolder(getNowBlockServlet), "/walletsolidity/getnowblock"); - context.addServlet(new ServletHolder(getBlockByNumServlet), "/walletsolidity/getblockbynum"); - context.addServlet(new ServletHolder(getDelegatedResourceServlet), - "/walletsolidity/getdelegatedresource"); - context.addServlet(new ServletHolder(getDelegatedResourceV2Servlet), - "/walletsolidity/getdelegatedresourcev2"); - context.addServlet(new ServletHolder(getCanDelegatedMaxSizeServlet), - "/walletsolidity/getcandelegatedmaxsize"); - context.addServlet(new ServletHolder(getAvailableUnfreezeCountServlet), - "/walletsolidity/getavailableunfreezecount"); - context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountServlet), - "/walletsolidity/getcanwithdrawunfreezeamount"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexServlet), - "/walletsolidity/getdelegatedresourceaccountindex"); - context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexV2Servlet), - "/walletsolidity/getdelegatedresourceaccountindexv2"); - context - .addServlet(new ServletHolder(getExchangeByIdServlet), - "/walletsolidity/getexchangebyid"); - context.addServlet(new ServletHolder(listExchangesServlet), - "/walletsolidity/listexchanges"); - - context.addServlet(new ServletHolder(getAccountByIdServlet), - "/walletsolidity/getaccountbyid"); - context.addServlet(new ServletHolder(getBlockByIdServlet), - "/walletsolidity/getblockbyid"); - context.addServlet(new ServletHolder(getBlockByLimitNextServlet), - "/walletsolidity/getblockbylimitnext"); - context.addServlet(new ServletHolder(getBlockByLatestNumServlet), - "/walletsolidity/getblockbylatestnum"); - - // context.addServlet(new ServletHolder(getMerkleTreeVoucherInfoServlet), - // "/walletsolidity/getmerkletreevoucherinfo"); - // context.addServlet(new ServletHolder(scanAndMarkNoteByIvkServlet), - // "/walletsolidity/scanandmarknotebyivk"); - // context.addServlet(new ServletHolder(scanNoteByIvkServlet), - // "/walletsolidity/scannotebyivk"); - // context.addServlet(new ServletHolder(scanNoteByOvkServlet), - // "/walletsolidity/scannotebyovk"); - // context.addServlet(new ServletHolder(isSpendServlet), - // "/walletsolidity/isspend"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkServlet), - "/walletsolidity/scanshieldedtrc20notesbyivk"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkServlet), - "/walletsolidity/scanshieldedtrc20notesbyovk"); - context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentServlet), - "/walletsolidity/isshieldedtrc20contractnotespent"); - - context.addServlet(new ServletHolder(getTransactionInfoByBlockNumServlet), - "/walletsolidity/gettransactioninfobyblocknum"); - - context.addServlet(new ServletHolder(getMarketOrderByAccountServlet), - "/walletsolidity/getmarketorderbyaccount"); - context.addServlet(new ServletHolder(getMarketOrderByIdServlet), - "/walletsolidity/getmarketorderbyid"); - context.addServlet(new ServletHolder(getMarketPriceByPairServlet), - "/walletsolidity/getmarketpricebypair"); - context.addServlet(new ServletHolder(getMarketOrderListByPairServlet), - "/walletsolidity/getmarketorderlistbypair"); - context.addServlet(new ServletHolder(getMarketPairListServlet), - "/walletsolidity/getmarketpairlist"); - - // only for SolidityNode - context.addServlet(new ServletHolder(getTransactionByIdServlet), - "/walletsolidity/gettransactionbyid"); - - context - .addServlet(new ServletHolder(getTransactionInfoByIdServlet), - "/walletsolidity/gettransactioninfobyid"); - context - .addServlet(new ServletHolder(getTransactionCountByBlockNumServlet), - "/walletsolidity/gettransactioncountbyblocknum"); - context.addServlet(new ServletHolder(triggerConstantContractServlet), - "/walletsolidity/triggerconstantcontract"); - context.addServlet(new ServletHolder(estimateEnergyServlet), - "/walletsolidity/estimateenergy"); + addServletsFromRegistry(context); + } - context.addServlet(new ServletHolder(getNodeInfoServlet), "/wallet/getnodeinfo"); - context.addServlet(new ServletHolder(getNodeInfoServlet), "/walletsolidity/getnodeinfo"); - context.addServlet(new ServletHolder(getBrokerageServlet), "/walletsolidity/getBrokerage"); - context.addServlet(new ServletHolder(getRewardServlet), "/walletsolidity/getReward"); - context.addServlet(new ServletHolder(getBurnTrxServlet), "/walletsolidity/getburntrx"); - context.addServlet(new ServletHolder(getBlockServlet), "/walletsolidity/getblock"); - context.addServlet(new ServletHolder(getBandwidthPricesServlet), - "/walletsolidity/getbandwidthprices"); - context.addServlet(new ServletHolder(getEnergyPricesServlet), - "/walletsolidity/getenergyprices"); + /** + * Registry-driven registration: mounts every endpoint the registry declares for the + * SOLIDITY_NODE surface under the /walletsolidity prefix, resolving servlet beans from the + * application context; getnodeinfo is additionally reachable under the fullnode prefix. + */ + protected void addServletsFromRegistry(ServletContextHandler context) { + for (HttpApiDef def : HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY_NODE)) { + context.addServlet(new ServletHolder(appContext.getBean(def.getServlet())), + "/walletsolidity/" + def.getSuffix()); + } + // surface-specific alias kept for compatibility: /wallet/getnodeinfo answers on this port + context.addServlet(new ServletHolder(appContext.getBean(GetNodeInfoServlet.class)), + "/wallet/getnodeinfo"); } @Override From 5005c7b72cfbad5a36539074c8b6b090dee26107 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Wed, 5 Aug 2026 16:00:26 +0800 Subject: [PATCH 11/27] fix(http): drop shielded trx endpoints missed on the pbft port --- .../tron/core/services/http/HttpApiDef.java | 23 +------------------ 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java index fd7757c21c5..43eb7872e3d 100644 --- a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java @@ -34,7 +34,6 @@ import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; import org.tron.core.services.http.servlets.GetMarketPairListServlet; import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; -import org.tron.core.services.http.servlets.GetMerkleTreeVoucherInfoServlet; import org.tron.core.services.http.servlets.GetNodeInfoServlet; import org.tron.core.services.http.servlets.GetNowBlockServlet; import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; @@ -45,12 +44,8 @@ import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.servlets.IsSpendServlet; import org.tron.core.services.http.servlets.ListExchangesServlet; import org.tron.core.services.http.servlets.ListWitnessesServlet; -import org.tron.core.services.http.servlets.ScanAndMarkNoteByIvkServlet; -import org.tron.core.services.http.servlets.ScanNoteByIvkServlet; -import org.tron.core.services.http.servlets.ScanNoteByOvkServlet; import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; import org.tron.core.services.http.servlets.TriggerConstantContractServlet; @@ -181,7 +176,6 @@ public enum HttpApiDef { GET_MARKET_PAIR_LIST("getmarketpairlist", GetMarketPairListServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_TRANSACTION_BY_ID("gettransactionbyid", GetTransactionByIdServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), @@ -218,22 +212,7 @@ public enum HttpApiDef { Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), GET_ENERGY_PRICES("getenergyprices", GetEnergyPricesServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_MERKLE_TREE_VOUCHER_INFO("getmerkletreevoucherinfo", GetMerkleTreeVoucherInfoServlet.class, - Access.READ, Surface.PBFT), - - SCAN_AND_MARK_NOTE_BY_IVK("scanandmarknotebyivk", ScanAndMarkNoteByIvkServlet.class, - Access.READ, Surface.PBFT), - - SCAN_NOTE_BY_IVK("scannotebyivk", ScanNoteByIvkServlet.class, - Access.READ, Surface.FULL, Surface.PBFT), - - SCAN_NOTE_BY_OVK("scannotebyovk", ScanNoteByOvkServlet.class, - Access.READ, Surface.FULL, Surface.PBFT), - - IS_SPEND("isspend", IsSpendServlet.class, - Access.READ, Surface.FULL, Surface.PBFT); + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE); /** Http services an endpoint can be exposed on. */ public enum Surface { From fecf2fe6cdd65b3e097e09ba63a7e703d3452dd1 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Wed, 5 Aug 2026 17:20:53 +0800 Subject: [PATCH 12/27] refactor(http): add full surface rows to the http api registry --- .../services/http/FullNodeHttpApiService.java | 584 +----------------- .../tron/core/services/http/HttpApiDef.java | 414 +++++++++++-- 2 files changed, 391 insertions(+), 607 deletions(-) diff --git a/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java b/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java index 1f063b9f0e1..ea722492b10 100644 --- a/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java +++ b/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java @@ -9,390 +9,28 @@ import org.eclipse.jetty.servlet.ServletHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component; import org.tron.common.application.HttpService; import org.tron.core.config.args.Args; import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.HttpInterceptor; import org.tron.core.services.filter.LiteFnQueryHttpFilter; -import org.tron.core.services.http.servlets.AccountPermissionUpdateServlet; -import org.tron.core.services.http.servlets.BroadcastHexServlet; -import org.tron.core.services.http.servlets.BroadcastServlet; -import org.tron.core.services.http.servlets.CancelAllUnfreezeV2Servlet; -import org.tron.core.services.http.servlets.ClearABIServlet; -import org.tron.core.services.http.servlets.CreateAccountServlet; -import org.tron.core.services.http.servlets.CreateAssetIssueServlet; -import org.tron.core.services.http.servlets.CreateCommonTransactionServlet; -import org.tron.core.services.http.servlets.CreateShieldedContractParametersServlet; -import org.tron.core.services.http.servlets.CreateShieldedContractParametersWithoutAskServlet; -import org.tron.core.services.http.servlets.CreateSpendAuthSigServlet; -import org.tron.core.services.http.servlets.CreateWitnessServlet; -import org.tron.core.services.http.servlets.DelegateResourceServlet; -import org.tron.core.services.http.servlets.DeployContractServlet; -import org.tron.core.services.http.servlets.EstimateEnergyServlet; -import org.tron.core.services.http.servlets.ExchangeCreateServlet; -import org.tron.core.services.http.servlets.ExchangeInjectServlet; -import org.tron.core.services.http.servlets.ExchangeTransactionServlet; -import org.tron.core.services.http.servlets.ExchangeWithdrawServlet; -import org.tron.core.services.http.servlets.FreezeBalanceServlet; -import org.tron.core.services.http.servlets.FreezeBalanceV2Servlet; -import org.tron.core.services.http.servlets.GetAccountBalanceServlet; -import org.tron.core.services.http.servlets.GetAccountByIdServlet; -import org.tron.core.services.http.servlets.GetAccountNetServlet; -import org.tron.core.services.http.servlets.GetAccountResourceServlet; -import org.tron.core.services.http.servlets.GetAccountServlet; -import org.tron.core.services.http.servlets.GetAkFromAskServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByAccountServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; -import org.tron.core.services.http.servlets.GetBlockBalanceServlet; -import org.tron.core.services.http.servlets.GetBlockByIdServlet; -import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; -import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; -import org.tron.core.services.http.servlets.GetBlockByNumServlet; -import org.tron.core.services.http.servlets.GetBlockServlet; -import org.tron.core.services.http.servlets.GetBrokerageServlet; -import org.tron.core.services.http.servlets.GetBurnTrxServlet; -import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.http.servlets.GetChainParametersServlet; -import org.tron.core.services.http.servlets.GetContractInfoServlet; -import org.tron.core.services.http.servlets.GetContractServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; -import org.tron.core.services.http.servlets.GetDiversifierServlet; -import org.tron.core.services.http.servlets.GetEnergyPricesServlet; -import org.tron.core.services.http.servlets.GetExchangeByIdServlet; -import org.tron.core.services.http.servlets.GetExpandedSpendingKeyServlet; -import org.tron.core.services.http.servlets.GetIncomingViewingKeyServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; -import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; -import org.tron.core.services.http.servlets.GetMarketPairListServlet; -import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; -import org.tron.core.services.http.servlets.GetMemoFeePricesServlet; -import org.tron.core.services.http.servlets.GetNewShieldedAddressServlet; -import org.tron.core.services.http.servlets.GetNextMaintenanceTimeServlet; -import org.tron.core.services.http.servlets.GetNkFromNskServlet; import org.tron.core.services.http.servlets.GetNodeInfoServlet; -import org.tron.core.services.http.servlets.GetNowBlockServlet; -import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetPaginatedExchangeListServlet; -import org.tron.core.services.http.servlets.GetPaginatedNowWitnessListServlet; -import org.tron.core.services.http.servlets.GetPaginatedProposalListServlet; -import org.tron.core.services.http.servlets.GetPendingSizeServlet; -import org.tron.core.services.http.servlets.GetProposalByIdServlet; -import org.tron.core.services.http.servlets.GetRcmServlet; -import org.tron.core.services.http.servlets.GetRewardServlet; -import org.tron.core.services.http.servlets.GetSpendingKeyServlet; -import org.tron.core.services.http.servlets.GetTransactionApprovedListServlet; -import org.tron.core.services.http.servlets.GetTransactionByIdServlet; -import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.http.servlets.GetTransactionFromPendingServlet; -import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; -import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; -import org.tron.core.services.http.servlets.GetTransactionListFromPendingServlet; -import org.tron.core.services.http.servlets.GetTransactionReceiptByIdServlet; -import org.tron.core.services.http.servlets.GetTransactionSignWeightServlet; -import org.tron.core.services.http.servlets.GetTriggerInputForShieldedTRC20ContractServlet; -import org.tron.core.services.http.servlets.GetZenPaymentAddressServlet; -import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.servlets.ListExchangesServlet; import org.tron.core.services.http.servlets.ListNodesServlet; -import org.tron.core.services.http.servlets.ListProposalsServlet; -import org.tron.core.services.http.servlets.ListWitnessesServlet; -import org.tron.core.services.http.servlets.MarketCancelOrderServlet; -import org.tron.core.services.http.servlets.MarketSellAssetServlet; import org.tron.core.services.http.servlets.MetricsServlet; -import org.tron.core.services.http.servlets.ParticipateAssetIssueServlet; -import org.tron.core.services.http.servlets.ProposalApproveServlet; -import org.tron.core.services.http.servlets.ProposalCreateServlet; -import org.tron.core.services.http.servlets.ProposalDeleteServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.http.servlets.SetAccountIdServlet; -import org.tron.core.services.http.servlets.TotalTransactionServlet; -import org.tron.core.services.http.servlets.TransferAssetServlet; -import org.tron.core.services.http.servlets.TransferServlet; -import org.tron.core.services.http.servlets.TriggerConstantContractServlet; -import org.tron.core.services.http.servlets.TriggerSmartContractServlet; -import org.tron.core.services.http.servlets.UnDelegateResourceServlet; -import org.tron.core.services.http.servlets.UnFreezeAssetServlet; -import org.tron.core.services.http.servlets.UnFreezeBalanceServlet; -import org.tron.core.services.http.servlets.UnFreezeBalanceV2Servlet; -import org.tron.core.services.http.servlets.UpdateAccountServlet; -import org.tron.core.services.http.servlets.UpdateAssetServlet; -import org.tron.core.services.http.servlets.UpdateBrokerageServlet; -import org.tron.core.services.http.servlets.UpdateEnergyLimitServlet; -import org.tron.core.services.http.servlets.UpdateSettingServlet; -import org.tron.core.services.http.servlets.UpdateWitnessServlet; -import org.tron.core.services.http.servlets.ValidateAddressServlet; -import org.tron.core.services.http.servlets.VoteWitnessAccountServlet; -import org.tron.core.services.http.servlets.WithdrawBalanceServlet; -import org.tron.core.services.http.servlets.WithdrawExpireUnfreezeServlet; @Component("fullNodeHttpApiService") @Slf4j(topic = "API") public class FullNodeHttpApiService extends HttpService { - @Autowired - private GetAccountServlet getAccountServlet; - @Autowired - private TransferServlet transferServlet; - @Autowired - private BroadcastServlet broadcastServlet; - @Autowired - private UpdateAccountServlet updateAccountServlet; - @Autowired - private VoteWitnessAccountServlet voteWitnessAccountServlet; - @Autowired - private CreateAssetIssueServlet createAssetIssueServlet; - @Autowired - private UpdateWitnessServlet updateWitnessServlet; - @Autowired - private CreateAccountServlet createAccountServlet; - @Autowired - private CreateWitnessServlet createWitnessServlet; - @Autowired - private TransferAssetServlet transferAssetServlet; - @Autowired - private ParticipateAssetIssueServlet participateAssetIssueServlet; - @Autowired - private FreezeBalanceServlet freezeBalanceServlet; - @Autowired - private UnFreezeBalanceServlet unFreezeBalanceServlet; - @Autowired - private UnFreezeAssetServlet unFreezeAssetServlet; - @Autowired - private WithdrawBalanceServlet withdrawBalanceServlet; - @Autowired - private UpdateAssetServlet updateAssetServlet; - @Autowired - private ListNodesServlet listNodesServlet; - @Autowired - private GetAssetIssueByAccountServlet getAssetIssueByAccountServlet; - @Autowired - private GetAccountNetServlet getAccountNetServlet; - @Autowired - private GetAssetIssueByNameServlet getAssetIssueByNameServlet; - @Autowired - private GetAssetIssueListByNameServlet getAssetIssueListByNameServlet; - @Autowired - private GetAssetIssueByIdServlet getAssetIssueByIdServlet; - @Autowired - private GetNowBlockServlet getNowBlockServlet; - @Autowired - private GetBlockByNumServlet getBlockByNumServlet; - @Autowired - private GetBlockByIdServlet getBlockByIdServlet; - @Autowired - private GetBlockByLimitNextServlet getBlockByLimitNextServlet; - @Autowired - private GetBlockByLatestNumServlet getBlockByLatestNumServlet; - @Autowired - private GetTransactionByIdServlet getTransactionByIdServlet; - @Autowired - private GetTransactionInfoByIdServlet getTransactionInfoByIdServlet; - @Autowired - private GetTransactionReceiptByIdServlet getTransactionReceiptByIdServlet; - @Autowired - private GetTransactionCountByBlockNumServlet getTransactionCountByBlockNumServlet; - @Autowired - private ListWitnessesServlet listWitnessesServlet; - @Autowired - private GetPaginatedNowWitnessListServlet getPaginatedNowWitnessListServlet; - @Autowired - private GetAssetIssueListServlet getAssetIssueListServlet; - @Autowired - private GetPaginatedAssetIssueListServlet getPaginatedAssetIssueListServlet; - @Autowired - private GetPaginatedProposalListServlet getPaginatedProposalListServlet; - @Autowired - private GetPaginatedExchangeListServlet getPaginatedExchangeListServlet; - @Autowired - private TotalTransactionServlet totalTransactionServlet; - @Autowired - private GetNextMaintenanceTimeServlet getNextMaintenanceTimeServlet; - @Autowired - private ValidateAddressServlet validateAddressServlet; - @Autowired - private DeployContractServlet deployContractServlet; - @Autowired - private TriggerSmartContractServlet triggerSmartContractServlet; - @Autowired - private TriggerConstantContractServlet triggerConstantContractServlet; - @Autowired - private EstimateEnergyServlet estimateEnergyServlet; - @Autowired - private GetContractServlet getContractServlet; - @Autowired - private GetContractInfoServlet getContractInfoServlet; - @Autowired - private ClearABIServlet clearABIServlet; - @Autowired - private ProposalCreateServlet proposalCreateServlet; - @Autowired - private ProposalApproveServlet proposalApproveServlet; - @Autowired - private ProposalDeleteServlet proposalDeleteServlet; - @Autowired - private ListProposalsServlet listProposalsServlet; - @Autowired - private GetProposalByIdServlet getProposalByIdServlet; - @Autowired - private ExchangeCreateServlet exchangeCreateServlet; - @Autowired - private ExchangeInjectServlet exchangeInjectServlet; - @Autowired - private ExchangeTransactionServlet exchangeTransactionServlet; - @Autowired - private ExchangeWithdrawServlet exchangeWithdrawServlet; - @Autowired - private GetExchangeByIdServlet getExchangeByIdServlet; - @Autowired - private ListExchangesServlet listExchangesServlet; - @Autowired - private GetChainParametersServlet getChainParametersServlet; - @Autowired - private GetAccountResourceServlet getAccountResourceServlet; - @Autowired - private GetNodeInfoServlet getNodeInfoServlet; - @Autowired - private GetTransactionSignWeightServlet getTransactionSignWeightServlet; - @Autowired - private GetTransactionApprovedListServlet getTransactionApprovedListServlet; - @Autowired - private AccountPermissionUpdateServlet accountPermissionUpdateServlet; - @Autowired - private UpdateSettingServlet updateSettingServlet; - @Autowired - private UpdateEnergyLimitServlet updateEnergyLimitServlet; - @Autowired - private GetDelegatedResourceAccountIndexServlet getDelegatedResourceAccountIndexServlet; - @Autowired - private GetDelegatedResourceAccountIndexV2Servlet getDelegatedResourceAccountIndexV2Servlet; - @Autowired - private GetDelegatedResourceServlet getDelegatedResourceServlet; - @Autowired - private GetDelegatedResourceV2Servlet getDelegatedResourceV2Servlet; - @Autowired - private GetCanDelegatedMaxSizeServlet getCanDelegatedMaxSizeServlet; - @Autowired - private GetAvailableUnfreezeCountServlet getAvailableUnfreezeCountServlet; - @Autowired - private GetCanWithdrawUnfreezeAmountServlet getCanWithdrawUnfreezeAmountServlet; - @Autowired - private SetAccountIdServlet setAccountServlet; - @Autowired - private GetAccountByIdServlet getAccountByIdServlet; - @Autowired - private GetExpandedSpendingKeyServlet getExpandedSpendingKeyServlet; - @Autowired - private GetAkFromAskServlet getAkFromAskServlet; - @Autowired - private GetNkFromNskServlet getNkFromNskServlet; - @Autowired - private GetSpendingKeyServlet getSpendingKeyServlet; - @Autowired - private GetNewShieldedAddressServlet getNewShieldedAddressServlet; - @Autowired - private GetDiversifierServlet getDiversifierServlet; - @Autowired - private GetIncomingViewingKeyServlet getIncomingViewingKeyServlet; - @Autowired - private GetZenPaymentAddressServlet getZenPaymentAddressServlet; - @Autowired - private GetRcmServlet getRcmServlet; - @Autowired - private CreateSpendAuthSigServlet createSpendAuthSigServlet; - @Autowired - private BroadcastHexServlet broadcastHexServlet; - @Autowired - private GetBurnTrxServlet getBurnTrxServlet; - @Autowired - private GetBrokerageServlet getBrokerageServlet; - @Autowired - private GetRewardServlet getRewardServlet; - @Autowired - private UpdateBrokerageServlet updateBrokerageServlet; - @Autowired - private CreateCommonTransactionServlet createCommonTransactionServlet; - @Autowired - private GetTransactionInfoByBlockNumServlet getTransactionInfoByBlockNumServlet; - @Autowired - private IsShieldedTRC20ContractNoteSpentServlet isShieldedTRC20ContractNoteSpentServlet; - @Autowired - private CreateShieldedContractParametersServlet createShieldedContractParametersServlet; - @Autowired - private CreateShieldedContractParametersWithoutAskServlet - createShieldedContractParametersWithoutAskServlet; - @Autowired - private ScanShieldedTRC20NotesByIvkServlet scanShieldedTRC20NotesByIvkServlet; - @Autowired - private ScanShieldedTRC20NotesByOvkServlet scanShieldedTRC20NotesByOvkServlet; - @Autowired - private GetTriggerInputForShieldedTRC20ContractServlet - getTriggerInputForShieldedTRC20ContractServlet; - @Autowired - private MetricsServlet metricsServlet; - @Autowired - private MarketSellAssetServlet marketSellAssetServlet; - @Autowired - private MarketCancelOrderServlet marketCancelOrderServlet; - @Autowired - private GetMarketOrderByAccountServlet getMarketOrderByAccountServlet; - @Autowired - private GetMarketOrderByIdServlet getMarketOrderByIdServlet; - @Autowired - private GetMarketPriceByPairServlet getMarketPriceByPairServlet; - @Autowired - private GetMarketOrderListByPairServlet getMarketOrderListByPairServlet; - @Autowired - private GetMarketPairListServlet getMarketPairListServlet; - - @Autowired - private GetAccountBalanceServlet getAccountBalanceServlet; - - @Autowired - private GetBlockBalanceServlet getBlockBalanceServlet; - @Autowired private LiteFnQueryHttpFilter liteFnQueryHttpFilter; @Autowired private HttpApiAccessFilter httpApiAccessFilter; - @Autowired - private GetTransactionFromPendingServlet getTransactionFromPendingServlet; - @Autowired - private GetTransactionListFromPendingServlet getTransactionListFromPendingServlet; - @Autowired - private GetPendingSizeServlet getPendingSizeServlet; - @Autowired - private GetEnergyPricesServlet getEnergyPricesServlet; - @Autowired - private GetBandwidthPricesServlet getBandwidthPricesServlet; - @Autowired - private GetBlockServlet getBlockServlet; - @Autowired - private GetMemoFeePricesServlet getMemoFeePricesServlet; @Autowired - private FreezeBalanceV2Servlet freezeBalanceV2Servlet; - @Autowired - private UnFreezeBalanceV2Servlet unFreezeBalanceV2Servlet; - @Autowired - private WithdrawExpireUnfreezeServlet withdrawExpireUnfreezeServlet; - @Autowired - private DelegateResourceServlet delegateResourceServlet; - @Autowired - private UnDelegateResourceServlet unDelegateResourceServlet; - @Autowired - private CancelAllUnfreezeV2Servlet cancelAllUnfreezeV2Servlet; + private ApplicationContext appContext; public FullNodeHttpApiService() { port = Args.getInstance().getFullNodeHttpPort(); @@ -403,204 +41,28 @@ public FullNodeHttpApiService() { @Override protected void addServlet(ServletContextHandler context) { - context.addServlet(new ServletHolder(getAccountServlet), "/wallet/getaccount"); - context.addServlet(new ServletHolder(transferServlet), "/wallet/createtransaction"); - context.addServlet(new ServletHolder(broadcastServlet), "/wallet/broadcasttransaction"); - context.addServlet(new ServletHolder(updateAccountServlet), "/wallet/updateaccount"); - context.addServlet(new ServletHolder(voteWitnessAccountServlet), - "/wallet/votewitnessaccount"); - context.addServlet(new ServletHolder(createAssetIssueServlet), "/wallet/createassetissue"); - context.addServlet(new ServletHolder(updateWitnessServlet), "/wallet/updatewitness"); - context.addServlet(new ServletHolder(createAccountServlet), "/wallet/createaccount"); - context.addServlet(new ServletHolder(createWitnessServlet), "/wallet/createwitness"); - context.addServlet(new ServletHolder(transferAssetServlet), "/wallet/transferasset"); - context.addServlet(new ServletHolder(participateAssetIssueServlet), - "/wallet/participateassetissue"); - context.addServlet(new ServletHolder(freezeBalanceServlet), "/wallet/freezebalance"); - context.addServlet(new ServletHolder(unFreezeBalanceServlet), "/wallet/unfreezebalance"); - context.addServlet(new ServletHolder(unFreezeAssetServlet), "/wallet/unfreezeasset"); - context.addServlet(new ServletHolder(withdrawBalanceServlet), "/wallet/withdrawbalance"); - context.addServlet(new ServletHolder(updateAssetServlet), "/wallet/updateasset"); - context.addServlet(new ServletHolder(listNodesServlet), "/wallet/listnodes"); - context.addServlet( - new ServletHolder(getAssetIssueByAccountServlet), "/wallet/getassetissuebyaccount"); - context.addServlet(new ServletHolder(getAccountNetServlet), "/wallet/getaccountnet"); - context.addServlet(new ServletHolder(getAssetIssueByNameServlet), - "/wallet/getassetissuebyname"); - context.addServlet(new ServletHolder(getAssetIssueListByNameServlet), - "/wallet/getassetissuelistbyname"); - context.addServlet(new ServletHolder(getAssetIssueByIdServlet), "/wallet/getassetissuebyid"); - context.addServlet(new ServletHolder(getNowBlockServlet), "/wallet/getnowblock"); - context.addServlet(new ServletHolder(getBlockByNumServlet), "/wallet/getblockbynum"); - context.addServlet(new ServletHolder(getBlockByIdServlet), "/wallet/getblockbyid"); - context.addServlet(new ServletHolder(getBlockByLimitNextServlet), - "/wallet/getblockbylimitnext"); - context.addServlet(new ServletHolder(getBlockByLatestNumServlet), - "/wallet/getblockbylatestnum"); - context.addServlet(new ServletHolder(getTransactionByIdServlet), - "/wallet/gettransactionbyid"); - context.addServlet( - new ServletHolder(getTransactionInfoByIdServlet), "/wallet/gettransactioninfobyid"); - context.addServlet( - new ServletHolder(getTransactionReceiptByIdServlet), "/wallet/gettransactionreceiptbyid"); - context.addServlet( - new ServletHolder(getTransactionCountByBlockNumServlet), - "/wallet/gettransactioncountbyblocknum"); - // Get the list of witnesses info with contains vote counts for last epoch/maintenance - context.addServlet(new ServletHolder(listWitnessesServlet), "/wallet/listwitnesses"); - // Get the paged list of witnesses info with realtime vote counts - context.addServlet(new ServletHolder(getPaginatedNowWitnessListServlet), - "/wallet/getpaginatednowwitnesslist"); - context.addServlet(new ServletHolder(getAssetIssueListServlet), "/wallet/getassetissuelist"); - context.addServlet( - new ServletHolder(getPaginatedAssetIssueListServlet), - "/wallet/getpaginatedassetissuelist"); - context.addServlet( - new ServletHolder(getPaginatedProposalListServlet), "/wallet/getpaginatedproposallist"); - context.addServlet( - new ServletHolder(getPaginatedExchangeListServlet), "/wallet/getpaginatedexchangelist"); - context.addServlet(new ServletHolder(totalTransactionServlet), "/wallet/totaltransaction"); - context.addServlet( - new ServletHolder(getNextMaintenanceTimeServlet), "/wallet/getnextmaintenancetime"); - context.addServlet(new ServletHolder(validateAddressServlet), "/wallet/validateaddress"); - context.addServlet(new ServletHolder(deployContractServlet), "/wallet/deploycontract"); - context.addServlet(new ServletHolder(triggerSmartContractServlet), - "/wallet/triggersmartcontract"); - context.addServlet(new ServletHolder(triggerConstantContractServlet), - "/wallet/triggerconstantcontract"); - context.addServlet(new ServletHolder(estimateEnergyServlet), "/wallet/estimateenergy"); - context.addServlet(new ServletHolder(getContractServlet), "/wallet/getcontract"); - context.addServlet(new ServletHolder(getContractInfoServlet), "/wallet/getcontractinfo"); - context.addServlet(new ServletHolder(clearABIServlet), "/wallet/clearabi"); - context.addServlet(new ServletHolder(proposalCreateServlet), "/wallet/proposalcreate"); - context.addServlet(new ServletHolder(proposalApproveServlet), "/wallet/proposalapprove"); - context.addServlet(new ServletHolder(proposalDeleteServlet), "/wallet/proposaldelete"); - context.addServlet(new ServletHolder(listProposalsServlet), "/wallet/listproposals"); - context.addServlet(new ServletHolder(getProposalByIdServlet), "/wallet/getproposalbyid"); - context.addServlet(new ServletHolder(exchangeCreateServlet), "/wallet/exchangecreate"); - context.addServlet(new ServletHolder(exchangeInjectServlet), "/wallet/exchangeinject"); - context.addServlet(new ServletHolder(exchangeTransactionServlet), - "/wallet/exchangetransaction"); - context.addServlet(new ServletHolder(exchangeWithdrawServlet), "/wallet/exchangewithdraw"); - context.addServlet(new ServletHolder(getExchangeByIdServlet), "/wallet/getexchangebyid"); - context.addServlet(new ServletHolder(listExchangesServlet), "/wallet/listexchanges"); - context.addServlet(new ServletHolder(getChainParametersServlet), - "/wallet/getchainparameters"); - context.addServlet(new ServletHolder(getAccountResourceServlet), - "/wallet/getaccountresource"); - context.addServlet(new ServletHolder(getTransactionSignWeightServlet), - "/wallet/getsignweight"); - context.addServlet(new ServletHolder(getTransactionApprovedListServlet), - "/wallet/getapprovedlist"); - context.addServlet(new ServletHolder(accountPermissionUpdateServlet), - "/wallet/accountpermissionupdate"); - context.addServlet(new ServletHolder(getNodeInfoServlet), "/wallet/getnodeinfo"); - context.addServlet(new ServletHolder(updateSettingServlet), "/wallet/updatesetting"); - context.addServlet(new ServletHolder(updateEnergyLimitServlet), "/wallet/updateenergylimit"); - context.addServlet(new ServletHolder(getDelegatedResourceServlet), - "/wallet/getdelegatedresource"); - context.addServlet(new ServletHolder(getDelegatedResourceV2Servlet), - "/wallet/getdelegatedresourcev2"); - context.addServlet(new ServletHolder(getCanDelegatedMaxSizeServlet), - "/wallet/getcandelegatedmaxsize"); - context.addServlet(new ServletHolder(getAvailableUnfreezeCountServlet), - "/wallet/getavailableunfreezecount"); - context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountServlet), - "/wallet/getcanwithdrawunfreezeamount"); - context.addServlet( - new ServletHolder(getDelegatedResourceAccountIndexServlet), - "/wallet/getdelegatedresourceaccountindex"); - context.addServlet( - new ServletHolder(getDelegatedResourceAccountIndexV2Servlet), - "/wallet/getdelegatedresourceaccountindexv2"); - context.addServlet(new ServletHolder(setAccountServlet), "/wallet/setaccountid"); - context.addServlet(new ServletHolder(getAccountByIdServlet), "/wallet/getaccountbyid"); - context - .addServlet(new ServletHolder(getExpandedSpendingKeyServlet), - "/wallet/getexpandedspendingkey"); - context.addServlet(new ServletHolder(getAkFromAskServlet), "/wallet/getakfromask"); - context.addServlet(new ServletHolder(getNkFromNskServlet), "/wallet/getnkfromnsk"); - context.addServlet(new ServletHolder(getSpendingKeyServlet), "/wallet/getspendingkey"); - context - .addServlet(new ServletHolder(getNewShieldedAddressServlet), - "/wallet/getnewshieldedaddress"); - context.addServlet(new ServletHolder(getDiversifierServlet), "/wallet/getdiversifier"); - context.addServlet(new ServletHolder(getIncomingViewingKeyServlet), - "/wallet/getincomingviewingkey"); - context.addServlet(new ServletHolder(getZenPaymentAddressServlet), - "/wallet/getzenpaymentaddress"); - context.addServlet(new ServletHolder(getRcmServlet), "/wallet/getrcm"); - context.addServlet(new ServletHolder(createSpendAuthSigServlet), - "/wallet/createspendauthsig"); - - context - .addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentServlet), - "/wallet/isshieldedtrc20contractnotespent"); - context.addServlet(new ServletHolder(createShieldedContractParametersServlet), - "/wallet/createshieldedcontractparameters"); - context.addServlet(new ServletHolder(createShieldedContractParametersWithoutAskServlet), - "/wallet/createshieldedcontractparameterswithoutask"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkServlet), - "/wallet/scanshieldedtrc20notesbyivk"); - context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkServlet), - "/wallet/scanshieldedtrc20notesbyovk"); - context.addServlet(new ServletHolder(getTriggerInputForShieldedTRC20ContractServlet), - "/wallet/gettriggerinputforshieldedtrc20contract"); - - context.addServlet(new ServletHolder(broadcastHexServlet), "/wallet/broadcasthex"); - context.addServlet(new ServletHolder(getBrokerageServlet), "/wallet/getBrokerage"); - context.addServlet(new ServletHolder(getRewardServlet), "/wallet/getReward"); - context.addServlet(new ServletHolder(updateBrokerageServlet), "/wallet/updateBrokerage"); - context.addServlet(new ServletHolder(createCommonTransactionServlet), - "/wallet/createCommonTransaction"); - context.addServlet(new ServletHolder(getTransactionInfoByBlockNumServlet), - "/wallet/gettransactioninfobyblocknum"); - context.addServlet(new ServletHolder(listNodesServlet), "/net/listnodes"); - - context.addServlet(new ServletHolder(metricsServlet), "/monitor/getstatsinfo"); - context.addServlet(new ServletHolder(getNodeInfoServlet), "/monitor/getnodeinfo"); - context.addServlet(new ServletHolder(marketSellAssetServlet), "/wallet/marketsellasset"); - context.addServlet(new ServletHolder(marketCancelOrderServlet), "/wallet/marketcancelorder"); - context.addServlet(new ServletHolder(getMarketOrderByAccountServlet), - "/wallet/getmarketorderbyaccount"); - context.addServlet(new ServletHolder(getMarketOrderByIdServlet), - "/wallet/getmarketorderbyid"); - context.addServlet(new ServletHolder(getMarketPriceByPairServlet), - "/wallet/getmarketpricebypair"); - context.addServlet(new ServletHolder(getMarketOrderListByPairServlet), - "/wallet/getmarketorderlistbypair"); - context.addServlet(new ServletHolder(getMarketPairListServlet), - "/wallet/getmarketpairlist"); - - context.addServlet(new ServletHolder(getAccountBalanceServlet), - "/wallet/getaccountbalance"); - context.addServlet(new ServletHolder(getBlockBalanceServlet), - "/wallet/getblockbalance"); - context.addServlet(new ServletHolder(getBurnTrxServlet), "/wallet/getburntrx"); - context.addServlet(new ServletHolder(getTransactionFromPendingServlet), - "/wallet/gettransactionfrompending"); - context.addServlet(new ServletHolder(getTransactionListFromPendingServlet), - "/wallet/gettransactionlistfrompending"); - context.addServlet(new ServletHolder(getPendingSizeServlet), "/wallet/getpendingsize"); - context.addServlet(new ServletHolder(getEnergyPricesServlet), "/wallet/getenergyprices"); - context.addServlet(new ServletHolder(getBandwidthPricesServlet), - "/wallet/getbandwidthprices"); - context.addServlet(new ServletHolder(getBlockServlet), "/wallet/getblock"); - context.addServlet(new ServletHolder(getMemoFeePricesServlet), "/wallet/getmemofee"); - - context.addServlet(new ServletHolder(freezeBalanceV2Servlet), - "/wallet/freezebalancev2"); - context.addServlet(new ServletHolder(unFreezeBalanceV2Servlet), - "/wallet/unfreezebalancev2"); - context.addServlet(new ServletHolder(withdrawExpireUnfreezeServlet), - "/wallet/withdrawexpireunfreeze"); - context.addServlet(new ServletHolder(delegateResourceServlet), - "/wallet/delegateresource"); - context.addServlet(new ServletHolder(unDelegateResourceServlet), - "/wallet/undelegateresource"); - context.addServlet(new ServletHolder(cancelAllUnfreezeV2Servlet), - "/wallet/cancelallunfreezev2"); + addServletsFromRegistry(context); + } + /** + * Registry-driven registration: mounts every endpoint the registry declares for the FULL + * surface under the /wallet prefix, resolving servlet beans from the application context. + * The three root-mounted endpoints (net / monitor) are not under /wallet and are mounted + * explicitly; their paths must stay listed in the access-filter pathSpecs in + * {@link #addFilter}. + */ + protected void addServletsFromRegistry(ServletContextHandler context) { + for (HttpApiDef def : HttpApiDef.forSurface(HttpApiDef.Surface.FULL)) { + context.addServlet(new ServletHolder(appContext.getBean(def.getServlet())), + "/wallet/" + def.getSuffix()); + } + // root-mounted endpoints, not under the /wallet prefix + context.addServlet(new ServletHolder(appContext.getBean(ListNodesServlet.class)), + "/net/listnodes"); + context.addServlet(new ServletHolder(appContext.getBean(MetricsServlet.class)), + "/monitor/getstatsinfo"); + context.addServlet(new ServletHolder(appContext.getBean(GetNodeInfoServlet.class)), + "/monitor/getnodeinfo"); } @Override diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java index 43eb7872e3d..6e31882da27 100644 --- a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java @@ -5,15 +5,41 @@ import java.util.EnumSet; import java.util.List; import javax.servlet.http.HttpServlet; +import org.tron.core.services.http.servlets.AccountPermissionUpdateServlet; +import org.tron.core.services.http.servlets.BroadcastHexServlet; +import org.tron.core.services.http.servlets.BroadcastServlet; +import org.tron.core.services.http.servlets.CancelAllUnfreezeV2Servlet; +import org.tron.core.services.http.servlets.ClearABIServlet; +import org.tron.core.services.http.servlets.CreateAccountServlet; +import org.tron.core.services.http.servlets.CreateAssetIssueServlet; +import org.tron.core.services.http.servlets.CreateCommonTransactionServlet; +import org.tron.core.services.http.servlets.CreateShieldedContractParametersServlet; +import org.tron.core.services.http.servlets.CreateShieldedContractParametersWithoutAskServlet; +import org.tron.core.services.http.servlets.CreateSpendAuthSigServlet; +import org.tron.core.services.http.servlets.CreateWitnessServlet; +import org.tron.core.services.http.servlets.DelegateResourceServlet; +import org.tron.core.services.http.servlets.DeployContractServlet; import org.tron.core.services.http.servlets.EstimateEnergyServlet; +import org.tron.core.services.http.servlets.ExchangeCreateServlet; +import org.tron.core.services.http.servlets.ExchangeInjectServlet; +import org.tron.core.services.http.servlets.ExchangeTransactionServlet; +import org.tron.core.services.http.servlets.ExchangeWithdrawServlet; +import org.tron.core.services.http.servlets.FreezeBalanceServlet; +import org.tron.core.services.http.servlets.FreezeBalanceV2Servlet; +import org.tron.core.services.http.servlets.GetAccountBalanceServlet; import org.tron.core.services.http.servlets.GetAccountByIdServlet; +import org.tron.core.services.http.servlets.GetAccountNetServlet; +import org.tron.core.services.http.servlets.GetAccountResourceServlet; import org.tron.core.services.http.servlets.GetAccountServlet; +import org.tron.core.services.http.servlets.GetAkFromAskServlet; +import org.tron.core.services.http.servlets.GetAssetIssueByAccountServlet; import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; import org.tron.core.services.http.servlets.GetAssetIssueListServlet; import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; +import org.tron.core.services.http.servlets.GetBlockBalanceServlet; import org.tron.core.services.http.servlets.GetBlockByIdServlet; import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; @@ -23,48 +49,193 @@ import org.tron.core.services.http.servlets.GetBurnTrxServlet; import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; +import org.tron.core.services.http.servlets.GetChainParametersServlet; +import org.tron.core.services.http.servlets.GetContractInfoServlet; +import org.tron.core.services.http.servlets.GetContractServlet; import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; +import org.tron.core.services.http.servlets.GetDiversifierServlet; import org.tron.core.services.http.servlets.GetEnergyPricesServlet; import org.tron.core.services.http.servlets.GetExchangeByIdServlet; +import org.tron.core.services.http.servlets.GetExpandedSpendingKeyServlet; +import org.tron.core.services.http.servlets.GetIncomingViewingKeyServlet; import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; import org.tron.core.services.http.servlets.GetMarketPairListServlet; import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; +import org.tron.core.services.http.servlets.GetMemoFeePricesServlet; +import org.tron.core.services.http.servlets.GetNewShieldedAddressServlet; +import org.tron.core.services.http.servlets.GetNextMaintenanceTimeServlet; +import org.tron.core.services.http.servlets.GetNkFromNskServlet; import org.tron.core.services.http.servlets.GetNodeInfoServlet; import org.tron.core.services.http.servlets.GetNowBlockServlet; import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; +import org.tron.core.services.http.servlets.GetPaginatedExchangeListServlet; import org.tron.core.services.http.servlets.GetPaginatedNowWitnessListServlet; +import org.tron.core.services.http.servlets.GetPaginatedProposalListServlet; +import org.tron.core.services.http.servlets.GetPendingSizeServlet; +import org.tron.core.services.http.servlets.GetProposalByIdServlet; +import org.tron.core.services.http.servlets.GetRcmServlet; import org.tron.core.services.http.servlets.GetRewardServlet; +import org.tron.core.services.http.servlets.GetSpendingKeyServlet; +import org.tron.core.services.http.servlets.GetTransactionApprovedListServlet; import org.tron.core.services.http.servlets.GetTransactionByIdServlet; import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; +import org.tron.core.services.http.servlets.GetTransactionFromPendingServlet; import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; +import org.tron.core.services.http.servlets.GetTransactionListFromPendingServlet; +import org.tron.core.services.http.servlets.GetTransactionReceiptByIdServlet; +import org.tron.core.services.http.servlets.GetTransactionSignWeightServlet; +import org.tron.core.services.http.servlets.GetTriggerInputForShieldedTRC20ContractServlet; +import org.tron.core.services.http.servlets.GetZenPaymentAddressServlet; import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; import org.tron.core.services.http.servlets.ListExchangesServlet; +import org.tron.core.services.http.servlets.ListNodesServlet; +import org.tron.core.services.http.servlets.ListProposalsServlet; import org.tron.core.services.http.servlets.ListWitnessesServlet; +import org.tron.core.services.http.servlets.MarketCancelOrderServlet; +import org.tron.core.services.http.servlets.MarketSellAssetServlet; +import org.tron.core.services.http.servlets.ParticipateAssetIssueServlet; +import org.tron.core.services.http.servlets.ProposalApproveServlet; +import org.tron.core.services.http.servlets.ProposalCreateServlet; +import org.tron.core.services.http.servlets.ProposalDeleteServlet; import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; +import org.tron.core.services.http.servlets.SetAccountIdServlet; +import org.tron.core.services.http.servlets.TotalTransactionServlet; +import org.tron.core.services.http.servlets.TransferAssetServlet; +import org.tron.core.services.http.servlets.TransferServlet; import org.tron.core.services.http.servlets.TriggerConstantContractServlet; +import org.tron.core.services.http.servlets.TriggerSmartContractServlet; +import org.tron.core.services.http.servlets.UnDelegateResourceServlet; +import org.tron.core.services.http.servlets.UnFreezeAssetServlet; +import org.tron.core.services.http.servlets.UnFreezeBalanceServlet; +import org.tron.core.services.http.servlets.UnFreezeBalanceV2Servlet; +import org.tron.core.services.http.servlets.UpdateAccountServlet; +import org.tron.core.services.http.servlets.UpdateAssetServlet; +import org.tron.core.services.http.servlets.UpdateBrokerageServlet; +import org.tron.core.services.http.servlets.UpdateEnergyLimitServlet; +import org.tron.core.services.http.servlets.UpdateSettingServlet; +import org.tron.core.services.http.servlets.UpdateWitnessServlet; +import org.tron.core.services.http.servlets.ValidateAddressServlet; +import org.tron.core.services.http.servlets.VoteWitnessAccountServlet; +import org.tron.core.services.http.servlets.WithdrawBalanceServlet; +import org.tron.core.services.http.servlets.WithdrawExpireUnfreezeServlet; /** * Declarative registry of the node's http endpoints: one row per endpoint, carrying its path * suffix, servlet class, access nature and the surfaces (http services) it is exposed on. * - *

The four http services build their servlet mappings from this table instead of keeping a - * hand-written list each, so an endpoint is declared exactly once and every surface stays in - * sync by construction. Rows marked BUILD or WRITE must stay FULL-only: the cursor surfaces - * (SOLIDITY / PBFT) must never run a write path on a cursor-switched thread, and the standalone - * SolidityNode surface only syncs solidified blocks and cannot propagate transactions. + *

Different http services build their servlet mappings from this table instead of keeping a + * list each, so an endpoint is declared exactly once and every surface stays in + * sync by construction. + * + *

Rows marked BUILD or WRITE may declare the FULL surface only — the one whose threads always + * read with the default HEAD cursor. The cursor surfaces (SOLIDITY / PBFT) must never run a + * write path on a cursor-switched thread, and the standalone SolidityNode surface only syncs + * solidified blocks and cannot propagate transactions. */ public enum HttpApiDef { GET_ACCOUNT("getaccount", GetAccountServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + TRANSFER("createtransaction", TransferServlet.class, + Access.BUILD, Surface.FULL), + + BROADCAST("broadcasttransaction", BroadcastServlet.class, + Access.WRITE, Surface.FULL), + + UPDATE_ACCOUNT("updateaccount", UpdateAccountServlet.class, + Access.BUILD, Surface.FULL), + + VOTE_WITNESS_ACCOUNT("votewitnessaccount", VoteWitnessAccountServlet.class, + Access.BUILD, Surface.FULL), + + CREATE_ASSET_ISSUE("createassetissue", CreateAssetIssueServlet.class, + Access.BUILD, Surface.FULL), + + UPDATE_WITNESS("updatewitness", UpdateWitnessServlet.class, + Access.BUILD, Surface.FULL), + + CREATE_ACCOUNT("createaccount", CreateAccountServlet.class, + Access.BUILD, Surface.FULL), + + CREATE_WITNESS("createwitness", CreateWitnessServlet.class, + Access.BUILD, Surface.FULL), + + TRANSFER_ASSET("transferasset", TransferAssetServlet.class, + Access.BUILD, Surface.FULL), + + PARTICIPATE_ASSET_ISSUE("participateassetissue", ParticipateAssetIssueServlet.class, + Access.BUILD, Surface.FULL), + + FREEZE_BALANCE("freezebalance", FreezeBalanceServlet.class, + Access.BUILD, Surface.FULL), + + UN_FREEZE_BALANCE("unfreezebalance", UnFreezeBalanceServlet.class, + Access.BUILD, Surface.FULL), + + UN_FREEZE_ASSET("unfreezeasset", UnFreezeAssetServlet.class, + Access.BUILD, Surface.FULL), + + WITHDRAW_BALANCE("withdrawbalance", WithdrawBalanceServlet.class, + Access.BUILD, Surface.FULL), + + UPDATE_ASSET("updateasset", UpdateAssetServlet.class, + Access.BUILD, Surface.FULL), + + LIST_NODES("listnodes", ListNodesServlet.class, + Access.READ, Surface.FULL), + + GET_ASSET_ISSUE_BY_ACCOUNT("getassetissuebyaccount", GetAssetIssueByAccountServlet.class, + Access.READ, Surface.FULL), + + GET_ACCOUNT_NET("getaccountnet", GetAccountNetServlet.class, + Access.READ, Surface.FULL), + + GET_ASSET_ISSUE_BY_NAME("getassetissuebyname", GetAssetIssueByNameServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_ASSET_ISSUE_LIST_BY_NAME("getassetissuelistbyname", GetAssetIssueListByNameServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_ASSET_ISSUE_BY_ID("getassetissuebyid", GetAssetIssueByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_NOW_BLOCK("getnowblock", GetNowBlockServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BLOCK_BY_NUM("getblockbynum", GetBlockByNumServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BLOCK_BY_ID("getblockbyid", GetBlockByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BLOCK_BY_LIMIT_NEXT("getblockbylimitnext", GetBlockByLimitNextServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_BLOCK_BY_LATEST_NUM("getblockbylatestnum", GetBlockByLatestNumServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_TRANSACTION_BY_ID("gettransactionbyid", GetTransactionByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_TRANSACTION_INFO_BY_ID("gettransactioninfobyid", GetTransactionInfoByIdServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_TRANSACTION_RECEIPT_BY_ID("gettransactionreceiptbyid", GetTransactionReceiptByIdServlet.class, + Access.READ, Surface.FULL), + + GET_TRANSACTION_COUNT_BY_BLOCK_NUM( + "gettransactioncountbyblocknum", + GetTransactionCountByBlockNumServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + LIST_WITNESSES("listwitnesses", ListWitnessesServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), @@ -81,21 +252,101 @@ public enum HttpApiDef { GetPaginatedAssetIssueListServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_ASSET_ISSUE_BY_NAME("getassetissuebyname", GetAssetIssueByNameServlet.class, + GET_PAGINATED_PROPOSAL_LIST("getpaginatedproposallist", GetPaginatedProposalListServlet.class, + Access.READ, Surface.FULL), + + GET_PAGINATED_EXCHANGE_LIST("getpaginatedexchangelist", GetPaginatedExchangeListServlet.class, + Access.READ, Surface.FULL), + + TOTAL_TRANSACTION("totaltransaction", TotalTransactionServlet.class, + Access.READ, Surface.FULL), + + GET_NEXT_MAINTENANCE_TIME("getnextmaintenancetime", GetNextMaintenanceTimeServlet.class, + Access.READ, Surface.FULL), + + VALIDATE_ADDRESS("validateaddress", ValidateAddressServlet.class, + Access.READ, Surface.FULL), + + DEPLOY_CONTRACT("deploycontract", DeployContractServlet.class, + Access.BUILD, Surface.FULL), + + TRIGGER_SMART_CONTRACT("triggersmartcontract", TriggerSmartContractServlet.class, + Access.BUILD, Surface.FULL), + + // constant VM call: read-only (never committed); the unsigned tx in the response is an echo + TRIGGER_CONSTANT_CONTRACT("triggerconstantcontract", TriggerConstantContractServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_ASSET_ISSUE_BY_ID("getassetissuebyid", GetAssetIssueByIdServlet.class, + // constant VM call: read-only (never committed); the unsigned tx in the response is an echo + ESTIMATE_ENERGY("estimateenergy", EstimateEnergyServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_ASSET_ISSUE_LIST_BY_NAME("getassetissuelistbyname", GetAssetIssueListByNameServlet.class, + GET_CONTRACT("getcontract", GetContractServlet.class, + Access.READ, Surface.FULL), + + GET_CONTRACT_INFO("getcontractinfo", GetContractInfoServlet.class, + Access.READ, Surface.FULL), + + CLEAR_ABI("clearabi", ClearABIServlet.class, + Access.BUILD, Surface.FULL), + + PROPOSAL_CREATE("proposalcreate", ProposalCreateServlet.class, + Access.BUILD, Surface.FULL), + + PROPOSAL_APPROVE("proposalapprove", ProposalApproveServlet.class, + Access.BUILD, Surface.FULL), + + PROPOSAL_DELETE("proposaldelete", ProposalDeleteServlet.class, + Access.BUILD, Surface.FULL), + + LIST_PROPOSALS("listproposals", ListProposalsServlet.class, + Access.READ, Surface.FULL), + + GET_PROPOSAL_BY_ID("getproposalbyid", GetProposalByIdServlet.class, + Access.READ, Surface.FULL), + + EXCHANGE_CREATE("exchangecreate", ExchangeCreateServlet.class, + Access.BUILD, Surface.FULL), + + EXCHANGE_INJECT("exchangeinject", ExchangeInjectServlet.class, + Access.BUILD, Surface.FULL), + + EXCHANGE_TRANSACTION("exchangetransaction", ExchangeTransactionServlet.class, + Access.BUILD, Surface.FULL), + + EXCHANGE_WITHDRAW("exchangewithdraw", ExchangeWithdrawServlet.class, + Access.BUILD, Surface.FULL), + + GET_EXCHANGE_BY_ID("getexchangebyid", GetExchangeByIdServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_NOW_BLOCK("getnowblock", GetNowBlockServlet.class, + LIST_EXCHANGES("listexchanges", ListExchangesServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_BLOCK_BY_NUM("getblockbynum", GetBlockByNumServlet.class, + GET_CHAIN_PARAMETERS("getchainparameters", GetChainParametersServlet.class, + Access.READ, Surface.FULL), + + GET_ACCOUNT_RESOURCE("getaccountresource", GetAccountResourceServlet.class, + Access.READ, Surface.FULL), + + GET_TRANSACTION_SIGN_WEIGHT("getsignweight", GetTransactionSignWeightServlet.class, + Access.READ, Surface.FULL), + + GET_TRANSACTION_APPROVED_LIST("getapprovedlist", GetTransactionApprovedListServlet.class, + Access.READ, Surface.FULL), + + ACCOUNT_PERMISSION_UPDATE("accountpermissionupdate", AccountPermissionUpdateServlet.class, + Access.BUILD, Surface.FULL), + + GET_NODE_INFO("getnodeinfo", GetNodeInfoServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + UPDATE_SETTING("updatesetting", UpdateSettingServlet.class, + Access.BUILD, Surface.FULL), + + UPDATE_ENERGY_LIMIT("updateenergylimit", UpdateEnergyLimitServlet.class, + Access.BUILD, Surface.FULL), + GET_DELEGATED_RESOURCE("getdelegatedresource", GetDelegatedResourceServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), @@ -123,24 +374,58 @@ public enum HttpApiDef { GetDelegatedResourceAccountIndexV2Servlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_EXCHANGE_BY_ID("getexchangebyid", GetExchangeByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - LIST_EXCHANGES("listexchanges", ListExchangesServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + SET_ACCOUNT_ID("setaccountid", SetAccountIdServlet.class, + Access.BUILD, Surface.FULL), GET_ACCOUNT_BY_ID("getaccountbyid", GetAccountByIdServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_BLOCK_BY_ID("getblockbyid", GetBlockByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_EXPANDED_SPENDING_KEY("getexpandedspendingkey", GetExpandedSpendingKeyServlet.class, + Access.READ, Surface.FULL), - GET_BLOCK_BY_LIMIT_NEXT("getblockbylimitnext", GetBlockByLimitNextServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_AK_FROM_ASK("getakfromask", GetAkFromAskServlet.class, + Access.READ, Surface.FULL), - GET_BLOCK_BY_LATEST_NUM("getblockbylatestnum", GetBlockByLatestNumServlet.class, + GET_NK_FROM_NSK("getnkfromnsk", GetNkFromNskServlet.class, + Access.READ, Surface.FULL), + + GET_SPENDING_KEY("getspendingkey", GetSpendingKeyServlet.class, + Access.READ, Surface.FULL), + + GET_NEW_SHIELDED_ADDRESS("getnewshieldedaddress", GetNewShieldedAddressServlet.class, + Access.READ, Surface.FULL), + + GET_DIVERSIFIER("getdiversifier", GetDiversifierServlet.class, + Access.READ, Surface.FULL), + + GET_INCOMING_VIEWING_KEY("getincomingviewingkey", GetIncomingViewingKeyServlet.class, + Access.READ, Surface.FULL), + + GET_ZEN_PAYMENT_ADDRESS("getzenpaymentaddress", GetZenPaymentAddressServlet.class, + Access.READ, Surface.FULL), + + GET_RCM("getrcm", GetRcmServlet.class, + Access.READ, Surface.FULL), + + // shielded crypto material generation (no transaction is composed): read-only + CREATE_SPEND_AUTH_SIG("createspendauthsig", CreateSpendAuthSigServlet.class, + Access.READ, Surface.FULL), + + IS_SHIELDED_TRC20_CONTRACT_NOTE_SPENT( + "isshieldedtrc20contractnotespent", + IsShieldedTRC20ContractNoteSpentServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + CREATE_SHIELDED_CONTRACT_PARAMETERS( + "createshieldedcontractparameters", + CreateShieldedContractParametersServlet.class, + Access.READ, Surface.FULL), + + CREATE_SHIELDED_CONTRACT_PARAMETERS_WITHOUT_ASK( + "createshieldedcontractparameterswithoutask", + CreateShieldedContractParametersWithoutAskServlet.class, + Access.READ, Surface.FULL), + SCAN_SHIELDED_TRC20_NOTES_BY_IVK( "scanshieldedtrc20notesbyivk", ScanShieldedTRC20NotesByIvkServlet.class, @@ -151,16 +436,37 @@ public enum HttpApiDef { ScanShieldedTRC20NotesByOvkServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - IS_SHIELDED_TRC20_CONTRACT_NOTE_SPENT( - "isshieldedtrc20contractnotespent", - IsShieldedTRC20ContractNoteSpentServlet.class, + GET_TRIGGER_INPUT_FOR_SHIELDED_TRC20_CONTRACT( + "gettriggerinputforshieldedtrc20contract", + GetTriggerInputForShieldedTRC20ContractServlet.class, + Access.READ, Surface.FULL), + + BROADCAST_HEX("broadcasthex", BroadcastHexServlet.class, + Access.WRITE, Surface.FULL), + + GET_BROKERAGE("getBrokerage", GetBrokerageServlet.class, + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + + GET_REWARD("getReward", GetRewardServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + UPDATE_BROKERAGE("updateBrokerage", UpdateBrokerageServlet.class, + Access.BUILD, Surface.FULL), + + CREATE_COMMON_TRANSACTION("createCommonTransaction", CreateCommonTransactionServlet.class, + Access.BUILD, Surface.FULL), + GET_TRANSACTION_INFO_BY_BLOCK_NUM( "gettransactioninfobyblocknum", GetTransactionInfoByBlockNumServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.SOLIDITY_NODE), + MARKET_SELL_ASSET("marketsellasset", MarketSellAssetServlet.class, + Access.BUILD, Surface.FULL), + + MARKET_CANCEL_ORDER("marketcancelorder", MarketCancelOrderServlet.class, + Access.BUILD, Surface.FULL), + GET_MARKET_ORDER_BY_ACCOUNT("getmarketorderbyaccount", GetMarketOrderByAccountServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), @@ -176,50 +482,66 @@ public enum HttpApiDef { GET_MARKET_PAIR_LIST("getmarketpairlist", GetMarketPairListServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_TRANSACTION_BY_ID("gettransactionbyid", GetTransactionByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_TRANSACTION_INFO_BY_ID("gettransactioninfobyid", GetTransactionInfoByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_ACCOUNT_BALANCE("getaccountbalance", GetAccountBalanceServlet.class, + Access.READ, Surface.FULL), - GET_TRANSACTION_COUNT_BY_BLOCK_NUM( - "gettransactioncountbyblocknum", - GetTransactionCountByBlockNumServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_BLOCK_BALANCE("getblockbalance", GetBlockBalanceServlet.class, + Access.READ, Surface.FULL), - TRIGGER_CONSTANT_CONTRACT("triggerconstantcontract", TriggerConstantContractServlet.class, + GET_BURN_TRX("getburntrx", GetBurnTrxServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - ESTIMATE_ENERGY("estimateenergy", EstimateEnergyServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_TRANSACTION_FROM_PENDING("gettransactionfrompending", GetTransactionFromPendingServlet.class, + Access.READ, Surface.FULL), - GET_NODE_INFO("getnodeinfo", GetNodeInfoServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_TRANSACTION_LIST_FROM_PENDING( + "gettransactionlistfrompending", + GetTransactionListFromPendingServlet.class, + Access.READ, Surface.FULL), - GET_BROKERAGE("getBrokerage", GetBrokerageServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_PENDING_SIZE("getpendingsize", GetPendingSizeServlet.class, + Access.READ, Surface.FULL), - GET_REWARD("getReward", GetRewardServlet.class, + GET_ENERGY_PRICES("getenergyprices", GetEnergyPricesServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_BURN_TRX("getburntrx", GetBurnTrxServlet.class, + GET_BANDWIDTH_PRICES("getbandwidthprices", GetBandwidthPricesServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), GET_BLOCK("getblock", GetBlockServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - GET_BANDWIDTH_PRICES("getbandwidthprices", GetBandwidthPricesServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), + GET_MEMO_FEE_PRICES("getmemofee", GetMemoFeePricesServlet.class, + Access.READ, Surface.FULL), - GET_ENERGY_PRICES("getenergyprices", GetEnergyPricesServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE); + FREEZE_BALANCE_V2("freezebalancev2", FreezeBalanceV2Servlet.class, + Access.BUILD, Surface.FULL), + + UN_FREEZE_BALANCE_V2("unfreezebalancev2", UnFreezeBalanceV2Servlet.class, + Access.BUILD, Surface.FULL), + + WITHDRAW_EXPIRE_UNFREEZE("withdrawexpireunfreeze", WithdrawExpireUnfreezeServlet.class, + Access.BUILD, Surface.FULL), + + DELEGATE_RESOURCE("delegateresource", DelegateResourceServlet.class, + Access.BUILD, Surface.FULL), + + UN_DELEGATE_RESOURCE("undelegateresource", UnDelegateResourceServlet.class, + Access.BUILD, Surface.FULL), + + CANCEL_ALL_UNFREEZE_V2("cancelallunfreezev2", CancelAllUnfreezeV2Servlet.class, + Access.BUILD, Surface.FULL); /** Http services an endpoint can be exposed on. */ public enum Surface { FULL, SOLIDITY, PBFT, SOLIDITY_NODE } - /** READ: query only; BUILD: creates an unsigned transaction; WRITE: pushes into the chain. */ + /** + * READ: no state mutation — queries, crypto derivation and constant VM calls. + * BUILD: composes an unsigned transaction for the client to sign. + * WRITE: pushes a transaction into the chain. + */ public enum Access { READ, BUILD, WRITE } From 2b0f0a288d25f7e531ae45af61ed2495322f5b9b Mon Sep 17 00:00:00 2001 From: GrapeS Date: Wed, 5 Aug 2026 17:43:17 +0800 Subject: [PATCH 13/27] feat(http): validate api registry at startup and test endpoint parity --- .../tron/core/services/http/HttpApiDef.java | 28 ++++ .../core/services/http/HttpApiDefTest.java | 132 ++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java index 6e31882da27..5a8cad0eaef 100644 --- a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java @@ -3,7 +3,9 @@ import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; +import java.util.HashSet; import java.util.List; +import java.util.Set; import javax.servlet.http.HttpServlet; import org.tron.core.services.http.servlets.AccountPermissionUpdateServlet; import org.tron.core.services.http.servlets.BroadcastHexServlet; @@ -551,6 +553,11 @@ public enum Access { private final Access access; private final EnumSet surfaces; + static { + // a table that breaks its invariants must not boot the node + validate(); + } + HttpApiDef(String suffix, Class servlet, Access access, Surface first, Surface... rest) { this.suffix = suffix; @@ -559,6 +566,27 @@ public enum Access { this.surfaces = EnumSet.of(first, rest); } + /** + * Structural invariants of the table, checked when the class loads (i.e. before any http + * service can mount an endpoint): suffixes are unique, and every BUILD / WRITE row is + * exposed on the FULL surface only — the cursor surfaces (SOLIDITY / PBFT) must never run + * a write path on a cursor-switched thread, and the standalone SolidityNode surface cannot + * propagate transactions. + */ + static void validate() { + Set seen = new HashSet<>(); + for (HttpApiDef def : values()) { + if (!seen.add(def.suffix)) { + throw new IllegalStateException("duplicate endpoint suffix in HttpApiDef: " + def.suffix); + } + if (def.access != Access.READ && !EnumSet.of(Surface.FULL).equals(def.surfaces)) { + throw new IllegalStateException(String.format( + "%s is %s and may only be exposed on the FULL surface, found %s", + def.name(), def.access, def.surfaces)); + } + } + } + public static List forSurface(Surface surface) { List result = new ArrayList<>(); for (HttpApiDef def : values()) { diff --git a/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java b/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java new file mode 100644 index 00000000000..337064d0a19 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java @@ -0,0 +1,132 @@ +package org.tron.core.services.http; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.withSettings; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletMapping; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Answers; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; +import org.tron.core.services.interfaceOnPBFT.HttpApiOnPBFTService; +import org.tron.core.services.interfaceOnSolidity.HttpApiOnSolidityService; + +public class HttpApiDefTest { + + @Test + public void testTableInvariantsHold() { + // must not throw: unique suffixes, non-READ rows are FULL-only + HttpApiDef.validate(); + for (HttpApiDef def : HttpApiDef.values()) { + if (def.getAccess() != HttpApiDef.Access.READ) { + Assert.assertEquals(def.name() + " must be FULL-only", + new HashSet<>(Arrays.asList(HttpApiDef.Surface.FULL)), + surfacesOf(def)); + } + Assert.assertFalse(def.name() + " suffix must not contain '/'", + def.getSuffix().contains("/")); + } + } + + @Test + public void testEveryServletIsASpringComponent() { + // registry mounting resolves servlets from the context; a non-bean class fails the boot + for (HttpApiDef def : HttpApiDef.values()) { + Assert.assertTrue(def.getServlet().getName() + " must be annotated with @Component", + def.getServlet().isAnnotationPresent(Component.class)); + } + } + + @Test + public void testSurfaceRowCounts() { + Assert.assertEquals(120, HttpApiDef.values().length); + Assert.assertEquals(120, HttpApiDef.forSurface(HttpApiDef.Surface.FULL).size()); + Assert.assertEquals(44, HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY).size()); + Assert.assertEquals(42, HttpApiDef.forSurface(HttpApiDef.Surface.PBFT).size()); + Assert.assertEquals(44, HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY_NODE).size()); + } + + @Test + public void testFullNodeServiceMountsExactlyTheRegistry() throws Exception { + Set expected = pathsOf(HttpApiDef.Surface.FULL, "/wallet/"); + expected.add("/net/listnodes"); + expected.add("/monitor/getstatsinfo"); + expected.add("/monitor/getnodeinfo"); + Assert.assertEquals(expected, mountedPaths(FullNodeHttpApiService.class)); + } + + @Test + public void testSolidityServiceMountsExactlyTheRegistry() throws Exception { + Set expected = pathsOf(HttpApiDef.Surface.SOLIDITY, "/walletsolidity/"); + expected.add("/wallet/getnodeinfo"); + Assert.assertEquals(expected, mountedPaths(HttpApiOnSolidityService.class)); + } + + @Test + public void testPbftServiceMountsExactlyTheRegistry() throws Exception { + Set expected = pathsOf(HttpApiDef.Surface.PBFT, "/"); + Assert.assertEquals(expected, mountedPaths(HttpApiOnPBFTService.class)); + } + + @Test + public void testSolidityNodeServiceMountsExactlyTheRegistry() throws Exception { + Set expected = pathsOf(HttpApiDef.Surface.SOLIDITY_NODE, "/walletsolidity/"); + expected.add("/wallet/getnodeinfo"); + Assert.assertEquals(expected, mountedPaths(SolidityNodeHttpApiService.class)); + } + + private static Set pathsOf(HttpApiDef.Surface surface, String prefix) { + Set paths = new HashSet<>(); + for (HttpApiDef def : HttpApiDef.forSurface(surface)) { + paths.add(prefix + def.getSuffix()); + } + return paths; + } + + private static Set surfacesOf(HttpApiDef def) { + Set surfaces = new HashSet<>(); + for (HttpApiDef.Surface surface : HttpApiDef.Surface.values()) { + if (HttpApiDef.forSurface(surface).contains(def)) { + surfaces.add(surface); + } + } + return surfaces; + } + + /** + * Instantiates the service without running its constructor, injects a mock application + * context whose beans are mocks, runs the registry-driven registration against a real + * jetty context and returns every mounted path spec. + */ + private static Set mountedPaths(Class serviceClass) throws Exception { + ApplicationContext ctx = mock(ApplicationContext.class); + given(ctx.getBean(any(Class.class))).willAnswer(inv -> mock((Class) inv.getArgument(0))); + + Object service = mock(serviceClass, + withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS)); + Field appContext = serviceClass.getDeclaredField("appContext"); + appContext.setAccessible(true); + appContext.set(service, ctx); + + ServletContextHandler context = new ServletContextHandler(); + Method register = serviceClass + .getDeclaredMethod("addServletsFromRegistry", ServletContextHandler.class); + register.setAccessible(true); + register.invoke(service, context); + + Set mounted = new HashSet<>(); + for (ServletMapping mapping : context.getServletHandler().getServletMappings()) { + mounted.addAll(Arrays.asList(mapping.getPathSpecs())); + } + return mounted; + } +} From d715c9e5156e54c65eabe3d71208724864eb02b9 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 18 Aug 2026 16:39:27 +0800 Subject: [PATCH 14/27] feat(http): expose two solidity read endpoints on pbft surface --- .../src/main/java/org/tron/core/services/http/HttpApiDef.java | 4 ++-- .../test/java/org/tron/core/services/http/HttpApiDefTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java index 5a8cad0eaef..b90780d9ddc 100644 --- a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java @@ -244,7 +244,7 @@ public enum HttpApiDef { GET_PAGINATED_NOW_WITNESS_LIST( "getpaginatednowwitnesslist", GetPaginatedNowWitnessListServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.SOLIDITY_NODE), + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), GET_ASSET_ISSUE_LIST("getassetissuelist", GetAssetIssueListServlet.class, Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), @@ -461,7 +461,7 @@ public enum HttpApiDef { GET_TRANSACTION_INFO_BY_BLOCK_NUM( "gettransactioninfobyblocknum", GetTransactionInfoByBlockNumServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.SOLIDITY_NODE), + Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), MARKET_SELL_ASSET("marketsellasset", MarketSellAssetServlet.class, Access.BUILD, Surface.FULL), diff --git a/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java b/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java index 337064d0a19..e64b47d4e1b 100644 --- a/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java +++ b/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java @@ -51,7 +51,7 @@ public void testSurfaceRowCounts() { Assert.assertEquals(120, HttpApiDef.values().length); Assert.assertEquals(120, HttpApiDef.forSurface(HttpApiDef.Surface.FULL).size()); Assert.assertEquals(44, HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY).size()); - Assert.assertEquals(42, HttpApiDef.forSurface(HttpApiDef.Surface.PBFT).size()); + Assert.assertEquals(44, HttpApiDef.forSurface(HttpApiDef.Surface.PBFT).size()); Assert.assertEquals(44, HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY_NODE).size()); } From 4a99586b9fe1d0895c93d1d6571d2013eb97c284 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Mon, 24 Aug 2026 15:38:21 +0800 Subject: [PATCH 15/27] refactor(http): derive endpoint registry from @HttpApi annotations Replace the hand-written HttpApiDef enum with HttpApiRegistry, built at class-load from a single @HttpApi(value, access, surfaces) declaration on each servlet. The four http services mount from the derived registry, so an endpoint is declared once and every surface stays in sync by construction. - @HttpApi is never @Inherited and is read only via getDeclaredAnnotation, so a servlet subclass can never inherit its parent's exposure. - Every concrete servlet in the package must declare @HttpApi or @HttpApiExcluded; the registry fails the boot otherwise, before any Jetty bind, and also refuses to boot on an empty scan. - The API x surface x access audit matrix is generated and checked against a committed snapshot; an independent fixture of the pre-refactor hand-written routes is the parity baseline, so the derived table cannot validate itself. That baseline caught five shielded read endpoints (getmerkletreevoucherinfo, scanandmarknotebyivk, scannotebyivk, scannotebyovk, isspend) that the enum had dropped from the PBFT surface though they are live on develop; restored. Tests: HttpApiRegistryTest with negative fixtures for each invariant, plus WalletCursorFilterTest and CursorFilterInstallationTest pinning the read-cursor filter behaviour and installation. Co-Authored-By: Claude Opus 5 --- .../org/tron/core/services/RpcApiService.java | 2 +- .../services/http/FullNodeHttpApiService.java | 2 +- .../org/tron/core/services/http/HttpApi.java | 54 ++ .../tron/core/services/http/HttpApiDef.java | 611 ------------------ .../core/services/http/HttpApiExcluded.java | 27 + .../core/services/http/HttpApiRegistry.java | 207 ++++++ .../AccountPermissionUpdateServlet.java | 8 +- .../http/servlets/BroadcastHexServlet.java | 7 +- .../http/servlets/BroadcastServlet.java | 8 +- .../servlets/CancelAllUnfreezeV2Servlet.java | 8 +- .../http/servlets/ClearABIServlet.java | 8 +- .../http/servlets/CreateAccountServlet.java | 8 +- .../servlets/CreateAssetIssueServlet.java | 8 +- .../CreateCommonTransactionServlet.java | 8 +- .../CreateShieldNullifierServlet.java | 5 +- ...eateShieldedContractParametersServlet.java | 7 +- ...edContractParametersWithoutAskServlet.java | 8 +- .../CreateShieldedTransactionServlet.java | 5 +- ...TransactionWithoutSpendAuthSigServlet.java | 5 +- .../servlets/CreateSpendAuthSigServlet.java | 8 +- .../http/servlets/CreateWitnessServlet.java | 8 +- .../servlets/DelegateResourceServlet.java | 8 +- .../http/servlets/DeployContractServlet.java | 12 +- .../http/servlets/EstimateEnergyServlet.java | 7 +- .../http/servlets/ExchangeCreateServlet.java | 8 +- .../http/servlets/ExchangeInjectServlet.java | 8 +- .../servlets/ExchangeTransactionServlet.java | 8 +- .../servlets/ExchangeWithdrawServlet.java | 8 +- .../http/servlets/FreezeBalanceServlet.java | 8 +- .../http/servlets/FreezeBalanceV2Servlet.java | 8 +- .../servlets/GetAccountBalanceServlet.java | 8 +- .../http/servlets/GetAccountByIdServlet.java | 8 +- .../http/servlets/GetAccountNetServlet.java | 8 +- .../servlets/GetAccountResourceServlet.java | 8 +- .../http/servlets/GetAccountServlet.java | 8 +- .../http/servlets/GetAkFromAskServlet.java | 8 +- .../GetAssetIssueByAccountServlet.java | 8 +- .../servlets/GetAssetIssueByIdServlet.java | 8 +- .../servlets/GetAssetIssueByNameServlet.java | 8 +- .../GetAssetIssueListByNameServlet.java | 8 +- .../servlets/GetAssetIssueListServlet.java | 7 +- .../GetAvailableUnfreezeCountServlet.java | 8 +- .../servlets/GetBandwidthPricesServlet.java | 7 +- .../http/servlets/GetBlockBalanceServlet.java | 8 +- .../http/servlets/GetBlockByIdServlet.java | 8 +- .../servlets/GetBlockByLatestNumServlet.java | 8 +- .../servlets/GetBlockByLimitNextServlet.java | 8 +- .../http/servlets/GetBlockByNumServlet.java | 8 +- .../http/servlets/GetBlockServlet.java | 8 +- .../http/servlets/GetBrokerageServlet.java | 6 +- .../http/servlets/GetBurnTrxServlet.java | 7 +- .../GetCanDelegatedMaxSizeServlet.java | 8 +- .../GetCanWithdrawUnfreezeAmountServlet.java | 8 +- .../servlets/GetChainParametersServlet.java | 7 +- .../http/servlets/GetContractInfoServlet.java | 8 +- .../http/servlets/GetContractServlet.java | 10 +- ...tDelegatedResourceAccountIndexServlet.java | 8 +- ...elegatedResourceAccountIndexV2Servlet.java | 8 +- .../servlets/GetDelegatedResourceServlet.java | 8 +- .../GetDelegatedResourceV2Servlet.java | 8 +- .../http/servlets/GetDiversifierServlet.java | 8 +- .../http/servlets/GetEnergyPricesServlet.java | 7 +- .../http/servlets/GetExchangeByIdServlet.java | 8 +- .../GetExpandedSpendingKeyServlet.java | 8 +- .../GetIncomingViewingKeyServlet.java | 8 +- .../GetMarketOrderByAccountServlet.java | 8 +- .../servlets/GetMarketOrderByIdServlet.java | 7 +- .../GetMarketOrderListByPairServlet.java | 7 +- .../servlets/GetMarketPairListServlet.java | 7 +- .../servlets/GetMarketPriceByPairServlet.java | 7 +- .../servlets/GetMemoFeePricesServlet.java | 7 +- .../GetMerkleTreeVoucherInfoServlet.java | 8 +- .../GetNewShieldedAddressServlet.java | 8 +- .../GetNextMaintenanceTimeServlet.java | 7 +- .../http/servlets/GetNkFromNskServlet.java | 8 +- .../http/servlets/GetNodeInfoServlet.java | 6 +- .../http/servlets/GetNowBlockServlet.java | 6 +- .../GetPaginatedAssetIssueListServlet.java | 8 +- .../GetPaginatedExchangeListServlet.java | 8 +- .../GetPaginatedNowWitnessListServlet.java | 8 +- .../GetPaginatedProposalListServlet.java | 7 +- .../http/servlets/GetPendingSizeServlet.java | 7 +- .../http/servlets/GetProposalByIdServlet.java | 8 +- .../services/http/servlets/GetRcmServlet.java | 7 +- .../http/servlets/GetRewardServlet.java | 7 +- .../GetShieldTransactionHashServlet.java | 4 +- .../http/servlets/GetSpendingKeyServlet.java | 8 +- .../GetTransactionApprovedListServlet.java | 7 +- .../servlets/GetTransactionByIdServlet.java | 8 +- .../GetTransactionCountByBlockNumServlet.java | 8 +- .../GetTransactionFromPendingServlet.java | 8 +- .../GetTransactionInfoByBlockNumServlet.java | 8 +- .../GetTransactionInfoByIdServlet.java | 8 +- .../GetTransactionListFromPendingServlet.java | 7 +- .../GetTransactionReceiptByIdServlet.java | 8 +- .../GetTransactionSignWeightServlet.java | 7 +- ...rInputForShieldedTRC20ContractServlet.java | 8 +- .../servlets/GetZenPaymentAddressServlet.java | 7 +- ...ShieldedTRC20ContractNoteSpentServlet.java | 8 +- .../http/servlets/IsSpendServlet.java | 8 +- .../http/{ => servlets}/JsonFormat.java | 3 +- .../http/servlets/ListExchangesServlet.java | 7 +- .../http/servlets/ListNodesServlet.java | 7 +- .../http/servlets/ListProposalsServlet.java | 7 +- .../http/servlets/ListWitnessesServlet.java | 7 +- .../servlets/MarketCancelOrderServlet.java | 8 +- .../http/servlets/MarketSellAssetServlet.java | 7 +- .../http/servlets/MetricsServlet.java | 3 +- .../ParticipateAssetIssueServlet.java | 7 +- .../http/{ => servlets}/PostParams.java | 4 +- .../http/servlets/ProposalApproveServlet.java | 7 +- .../http/servlets/ProposalCreateServlet.java | 7 +- .../http/servlets/ProposalDeleteServlet.java | 7 +- .../http/servlets/RateLimiterServlet.java | 2 - .../servlets/ScanAndMarkNoteByIvkServlet.java | 8 +- .../http/servlets/ScanNoteByIvkServlet.java | 8 +- .../http/servlets/ScanNoteByOvkServlet.java | 8 +- .../ScanShieldedTRC20NotesByIvkServlet.java | 8 +- .../ScanShieldedTRC20NotesByOvkServlet.java | 8 +- .../http/servlets/SetAccountIdServlet.java | 7 +- .../servlets/TotalTransactionServlet.java | 7 +- .../http/servlets/TransferAssetServlet.java | 7 +- .../http/servlets/TransferServlet.java | 7 +- .../TriggerConstantContractServlet.java | 7 +- .../servlets/TriggerSmartContractServlet.java | 7 +- .../servlets/UnDelegateResourceServlet.java | 8 +- .../http/servlets/UnFreezeAssetServlet.java | 8 +- .../http/servlets/UnFreezeBalanceServlet.java | 8 +- .../servlets/UnFreezeBalanceV2Servlet.java | 8 +- .../http/servlets/UpdateAccountServlet.java | 8 +- .../http/servlets/UpdateAssetServlet.java | 8 +- .../http/servlets/UpdateBrokerageServlet.java | 8 +- .../servlets/UpdateEnergyLimitServlet.java | 8 +- .../http/servlets/UpdateSettingServlet.java | 8 +- .../http/servlets/UpdateWitnessServlet.java | 8 +- .../services/http/{ => servlets}/Util.java | 4 +- .../http/servlets/ValidateAddressServlet.java | 6 +- .../servlets/VoteWitnessAccountServlet.java | 7 +- .../http/servlets/WithdrawBalanceServlet.java | 7 +- .../WithdrawExpireUnfreezeServlet.java | 7 +- .../SolidityNodeHttpApiService.java | 6 +- .../interfaceOnPBFT/HttpApiOnPBFTService.java | 5 +- .../HttpApiOnSolidityService.java | 5 +- .../services/jsonrpc/TronJsonRpcImpl.java | 8 +- .../utils/client/utils/TransactionUtils.java | 2 +- .../java/org/tron/core/ShieldWalletTest.java | 4 +- .../filter/WalletCursorFilterTest.java | 82 ++- .../http/CursorFilterInstallationTest.java | 109 ++++ .../core/services/http/HttpApiDefTest.java | 132 ---- .../services/http/HttpApiRegistryTest.java | 300 +++++++++ .../http/RateLimiterServletInt64Test.java | 1 + .../http/regtest/blank/BlankServlet.java | 13 + .../http/regtest/both/BothServlet.java | 15 + .../buildcursor/BuildOnPbftServlet.java | 13 + .../http/regtest/dupsuffix/DupOneServlet.java | 13 + .../http/regtest/dupsuffix/DupTwoServlet.java | 13 + .../emptysurface/EmptySurfaceServlet.java | 13 + .../http/regtest/noanno/NoAnnoServlet.java | 8 + .../notcomponent/NotComponentServlet.java | 11 + .../http/regtest/slash/SlashServlet.java | 13 + .../regtest/valid/ValidExcludedServlet.java | 9 + .../http/regtest/valid/ValidReadServlet.java | 14 + .../http/regtest/valid/ValidWriteServlet.java | 13 + .../writecursor/WriteOnSolidityServlet.java | 13 + ...atedResourceAccountIndexV2ServletTest.java | 1 - .../{ => servlets}/JsonFormatEscapeTest.java | 3 +- .../JsonFormatInt64AsStringTest.java | 2 +- .../http/{ => servlets}/JsonFormatTest.java | 4 +- .../ScanShieldedTRC20NotesServletTest.java | 2 +- .../http/{ => servlets}/UtilMockTest.java | 2 +- .../http/{ => servlets}/UtilTest.java | 2 +- .../org/tron/program/SolidityNodeTest.java | 2 +- .../test/resources/http/api-audit-matrix.txt | 130 ++++ .../resources/http/pre-refactor-routes.txt | 262 ++++++++ 174 files changed, 1974 insertions(+), 1147 deletions(-) create mode 100644 framework/src/main/java/org/tron/core/services/http/HttpApi.java delete mode 100644 framework/src/main/java/org/tron/core/services/http/HttpApiDef.java create mode 100644 framework/src/main/java/org/tron/core/services/http/HttpApiExcluded.java create mode 100644 framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/JsonFormat.java (99%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/PostParams.java (88%) rename framework/src/main/java/org/tron/core/services/http/{ => servlets}/Util.java (99%) rename framework/src/main/java/org/tron/core/services/http/{ => solidity}/SolidityNodeHttpApiService.java (90%) create mode 100644 framework/src/test/java/org/tron/core/services/http/CursorFilterInstallationTest.java delete mode 100644 framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java create mode 100644 framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/blank/BlankServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/both/BothServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/buildcursor/BuildOnPbftServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/dupsuffix/DupOneServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/dupsuffix/DupTwoServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/emptysurface/EmptySurfaceServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/noanno/NoAnnoServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/notcomponent/NotComponentServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/slash/SlashServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidExcludedServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidReadServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidWriteServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/writecursor/WriteOnSolidityServlet.java rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/JsonFormatEscapeTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/JsonFormatInt64AsStringTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/JsonFormatTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UtilMockTest.java (99%) rename framework/src/test/java/org/tron/core/services/http/{ => servlets}/UtilTest.java (99%) create mode 100644 framework/src/test/resources/http/api-audit-matrix.txt create mode 100644 framework/src/test/resources/http/pre-refactor-routes.txt diff --git a/framework/src/main/java/org/tron/core/services/RpcApiService.java b/framework/src/main/java/org/tron/core/services/RpcApiService.java index b9cb05a3b14..9e208f25137 100755 --- a/framework/src/main/java/org/tron/core/services/RpcApiService.java +++ b/framework/src/main/java/org/tron/core/services/RpcApiService.java @@ -95,7 +95,7 @@ import org.tron.core.exception.VMIllegalException; import org.tron.core.exception.ZksnarkException; import org.tron.core.metrics.MetricsApiService; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.servlets.Util; import org.tron.core.utils.TransactionUtil; import org.tron.core.zen.address.DiversifierT; import org.tron.core.zen.address.IncomingViewingKey; diff --git a/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java b/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java index ea722492b10..240b2b8e7f2 100644 --- a/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java +++ b/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java @@ -52,7 +52,7 @@ protected void addServlet(ServletContextHandler context) { * {@link #addFilter}. */ protected void addServletsFromRegistry(ServletContextHandler context) { - for (HttpApiDef def : HttpApiDef.forSurface(HttpApiDef.Surface.FULL)) { + for (HttpApiRegistry.Entry def : HttpApiRegistry.forSurface(HttpApi.Surface.FULL)) { context.addServlet(new ServletHolder(appContext.getBean(def.getServlet())), "/wallet/" + def.getSuffix()); } diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApi.java b/framework/src/main/java/org/tron/core/services/http/HttpApi.java new file mode 100644 index 00000000000..7d20e75bbd0 --- /dev/null +++ b/framework/src/main/java/org/tron/core/services/http/HttpApi.java @@ -0,0 +1,54 @@ +package org.tron.core.services.http; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Declares one http endpoint on the servlet that serves it: the path suffix it is mounted under, + * whether it mutates state, and the surfaces (http services) it is exposed on. + * + *

This annotation is the single declaration of an endpoint's exposure. {@link HttpApiRegistry} + * derives a read-only registry and the audit matrix from it, so no hand-maintained table repeats + * the information and an endpoint cannot drift between its implementation and its registration. + * + *

Deliberately not {@code @Inherited}, and read only via + * {@link Class#getDeclaredAnnotation}. Servlets in this code base have historically been + * subclassed to vary behaviour — the cursor wrappers this refactor removes were 96 classes of the + * form {@code GetAccountOnSolidityServlet extends GetAccountServlet}. If the annotation were + * inheritable, or were looked up with a superclass-walking helper such as Spring's + * {@code AnnotatedElementUtils#findMergedAnnotation}, any future subclass would silently inherit + * its parent's suffix, access and surfaces: a {@code WRITE} endpoint could reach a cursor surface + * without anyone declaring it. {@link HttpApiRegistry} asserts both properties at startup so the + * guarantee cannot be removed by accident. + */ +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface HttpApi { + + /** Path suffix the endpoint is mounted under, with no leading slash and no {@code '/'}. */ + String value(); + + /** Whether the endpoint mutates chain state. */ + Access access(); + + /** Http services the endpoint is exposed on; must not be empty. */ + Surface[] surfaces(); + + /** Http services an endpoint can be exposed on. */ + enum Surface { + FULL, SOLIDITY, PBFT, SOLIDITY_NODE + } + + /** + * READ: no state mutation — queries, crypto derivation and constant VM calls. + * BUILD: composes an unsigned transaction for the client to sign. + * WRITE: pushes a transaction into the chain. + */ + enum Access { + READ, BUILD, WRITE + } +} diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java deleted file mode 100644 index b90780d9ddc..00000000000 --- a/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java +++ /dev/null @@ -1,611 +0,0 @@ -package org.tron.core.services.http; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import javax.servlet.http.HttpServlet; -import org.tron.core.services.http.servlets.AccountPermissionUpdateServlet; -import org.tron.core.services.http.servlets.BroadcastHexServlet; -import org.tron.core.services.http.servlets.BroadcastServlet; -import org.tron.core.services.http.servlets.CancelAllUnfreezeV2Servlet; -import org.tron.core.services.http.servlets.ClearABIServlet; -import org.tron.core.services.http.servlets.CreateAccountServlet; -import org.tron.core.services.http.servlets.CreateAssetIssueServlet; -import org.tron.core.services.http.servlets.CreateCommonTransactionServlet; -import org.tron.core.services.http.servlets.CreateShieldedContractParametersServlet; -import org.tron.core.services.http.servlets.CreateShieldedContractParametersWithoutAskServlet; -import org.tron.core.services.http.servlets.CreateSpendAuthSigServlet; -import org.tron.core.services.http.servlets.CreateWitnessServlet; -import org.tron.core.services.http.servlets.DelegateResourceServlet; -import org.tron.core.services.http.servlets.DeployContractServlet; -import org.tron.core.services.http.servlets.EstimateEnergyServlet; -import org.tron.core.services.http.servlets.ExchangeCreateServlet; -import org.tron.core.services.http.servlets.ExchangeInjectServlet; -import org.tron.core.services.http.servlets.ExchangeTransactionServlet; -import org.tron.core.services.http.servlets.ExchangeWithdrawServlet; -import org.tron.core.services.http.servlets.FreezeBalanceServlet; -import org.tron.core.services.http.servlets.FreezeBalanceV2Servlet; -import org.tron.core.services.http.servlets.GetAccountBalanceServlet; -import org.tron.core.services.http.servlets.GetAccountByIdServlet; -import org.tron.core.services.http.servlets.GetAccountNetServlet; -import org.tron.core.services.http.servlets.GetAccountResourceServlet; -import org.tron.core.services.http.servlets.GetAccountServlet; -import org.tron.core.services.http.servlets.GetAkFromAskServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByAccountServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByIdServlet; -import org.tron.core.services.http.servlets.GetAssetIssueByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListByNameServlet; -import org.tron.core.services.http.servlets.GetAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetAvailableUnfreezeCountServlet; -import org.tron.core.services.http.servlets.GetBandwidthPricesServlet; -import org.tron.core.services.http.servlets.GetBlockBalanceServlet; -import org.tron.core.services.http.servlets.GetBlockByIdServlet; -import org.tron.core.services.http.servlets.GetBlockByLatestNumServlet; -import org.tron.core.services.http.servlets.GetBlockByLimitNextServlet; -import org.tron.core.services.http.servlets.GetBlockByNumServlet; -import org.tron.core.services.http.servlets.GetBlockServlet; -import org.tron.core.services.http.servlets.GetBrokerageServlet; -import org.tron.core.services.http.servlets.GetBurnTrxServlet; -import org.tron.core.services.http.servlets.GetCanDelegatedMaxSizeServlet; -import org.tron.core.services.http.servlets.GetCanWithdrawUnfreezeAmountServlet; -import org.tron.core.services.http.servlets.GetChainParametersServlet; -import org.tron.core.services.http.servlets.GetContractInfoServlet; -import org.tron.core.services.http.servlets.GetContractServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceAccountIndexV2Servlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceServlet; -import org.tron.core.services.http.servlets.GetDelegatedResourceV2Servlet; -import org.tron.core.services.http.servlets.GetDiversifierServlet; -import org.tron.core.services.http.servlets.GetEnergyPricesServlet; -import org.tron.core.services.http.servlets.GetExchangeByIdServlet; -import org.tron.core.services.http.servlets.GetExpandedSpendingKeyServlet; -import org.tron.core.services.http.servlets.GetIncomingViewingKeyServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByAccountServlet; -import org.tron.core.services.http.servlets.GetMarketOrderByIdServlet; -import org.tron.core.services.http.servlets.GetMarketOrderListByPairServlet; -import org.tron.core.services.http.servlets.GetMarketPairListServlet; -import org.tron.core.services.http.servlets.GetMarketPriceByPairServlet; -import org.tron.core.services.http.servlets.GetMemoFeePricesServlet; -import org.tron.core.services.http.servlets.GetNewShieldedAddressServlet; -import org.tron.core.services.http.servlets.GetNextMaintenanceTimeServlet; -import org.tron.core.services.http.servlets.GetNkFromNskServlet; -import org.tron.core.services.http.servlets.GetNodeInfoServlet; -import org.tron.core.services.http.servlets.GetNowBlockServlet; -import org.tron.core.services.http.servlets.GetPaginatedAssetIssueListServlet; -import org.tron.core.services.http.servlets.GetPaginatedExchangeListServlet; -import org.tron.core.services.http.servlets.GetPaginatedNowWitnessListServlet; -import org.tron.core.services.http.servlets.GetPaginatedProposalListServlet; -import org.tron.core.services.http.servlets.GetPendingSizeServlet; -import org.tron.core.services.http.servlets.GetProposalByIdServlet; -import org.tron.core.services.http.servlets.GetRcmServlet; -import org.tron.core.services.http.servlets.GetRewardServlet; -import org.tron.core.services.http.servlets.GetSpendingKeyServlet; -import org.tron.core.services.http.servlets.GetTransactionApprovedListServlet; -import org.tron.core.services.http.servlets.GetTransactionByIdServlet; -import org.tron.core.services.http.servlets.GetTransactionCountByBlockNumServlet; -import org.tron.core.services.http.servlets.GetTransactionFromPendingServlet; -import org.tron.core.services.http.servlets.GetTransactionInfoByBlockNumServlet; -import org.tron.core.services.http.servlets.GetTransactionInfoByIdServlet; -import org.tron.core.services.http.servlets.GetTransactionListFromPendingServlet; -import org.tron.core.services.http.servlets.GetTransactionReceiptByIdServlet; -import org.tron.core.services.http.servlets.GetTransactionSignWeightServlet; -import org.tron.core.services.http.servlets.GetTriggerInputForShieldedTRC20ContractServlet; -import org.tron.core.services.http.servlets.GetZenPaymentAddressServlet; -import org.tron.core.services.http.servlets.IsShieldedTRC20ContractNoteSpentServlet; -import org.tron.core.services.http.servlets.ListExchangesServlet; -import org.tron.core.services.http.servlets.ListNodesServlet; -import org.tron.core.services.http.servlets.ListProposalsServlet; -import org.tron.core.services.http.servlets.ListWitnessesServlet; -import org.tron.core.services.http.servlets.MarketCancelOrderServlet; -import org.tron.core.services.http.servlets.MarketSellAssetServlet; -import org.tron.core.services.http.servlets.ParticipateAssetIssueServlet; -import org.tron.core.services.http.servlets.ProposalApproveServlet; -import org.tron.core.services.http.servlets.ProposalCreateServlet; -import org.tron.core.services.http.servlets.ProposalDeleteServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByIvkServlet; -import org.tron.core.services.http.servlets.ScanShieldedTRC20NotesByOvkServlet; -import org.tron.core.services.http.servlets.SetAccountIdServlet; -import org.tron.core.services.http.servlets.TotalTransactionServlet; -import org.tron.core.services.http.servlets.TransferAssetServlet; -import org.tron.core.services.http.servlets.TransferServlet; -import org.tron.core.services.http.servlets.TriggerConstantContractServlet; -import org.tron.core.services.http.servlets.TriggerSmartContractServlet; -import org.tron.core.services.http.servlets.UnDelegateResourceServlet; -import org.tron.core.services.http.servlets.UnFreezeAssetServlet; -import org.tron.core.services.http.servlets.UnFreezeBalanceServlet; -import org.tron.core.services.http.servlets.UnFreezeBalanceV2Servlet; -import org.tron.core.services.http.servlets.UpdateAccountServlet; -import org.tron.core.services.http.servlets.UpdateAssetServlet; -import org.tron.core.services.http.servlets.UpdateBrokerageServlet; -import org.tron.core.services.http.servlets.UpdateEnergyLimitServlet; -import org.tron.core.services.http.servlets.UpdateSettingServlet; -import org.tron.core.services.http.servlets.UpdateWitnessServlet; -import org.tron.core.services.http.servlets.ValidateAddressServlet; -import org.tron.core.services.http.servlets.VoteWitnessAccountServlet; -import org.tron.core.services.http.servlets.WithdrawBalanceServlet; -import org.tron.core.services.http.servlets.WithdrawExpireUnfreezeServlet; - -/** - * Declarative registry of the node's http endpoints: one row per endpoint, carrying its path - * suffix, servlet class, access nature and the surfaces (http services) it is exposed on. - * - *

Different http services build their servlet mappings from this table instead of keeping a - * list each, so an endpoint is declared exactly once and every surface stays in - * sync by construction. - * - *

Rows marked BUILD or WRITE may declare the FULL surface only — the one whose threads always - * read with the default HEAD cursor. The cursor surfaces (SOLIDITY / PBFT) must never run a - * write path on a cursor-switched thread, and the standalone SolidityNode surface only syncs - * solidified blocks and cannot propagate transactions. - */ -public enum HttpApiDef { - - GET_ACCOUNT("getaccount", GetAccountServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - TRANSFER("createtransaction", TransferServlet.class, - Access.BUILD, Surface.FULL), - - BROADCAST("broadcasttransaction", BroadcastServlet.class, - Access.WRITE, Surface.FULL), - - UPDATE_ACCOUNT("updateaccount", UpdateAccountServlet.class, - Access.BUILD, Surface.FULL), - - VOTE_WITNESS_ACCOUNT("votewitnessaccount", VoteWitnessAccountServlet.class, - Access.BUILD, Surface.FULL), - - CREATE_ASSET_ISSUE("createassetissue", CreateAssetIssueServlet.class, - Access.BUILD, Surface.FULL), - - UPDATE_WITNESS("updatewitness", UpdateWitnessServlet.class, - Access.BUILD, Surface.FULL), - - CREATE_ACCOUNT("createaccount", CreateAccountServlet.class, - Access.BUILD, Surface.FULL), - - CREATE_WITNESS("createwitness", CreateWitnessServlet.class, - Access.BUILD, Surface.FULL), - - TRANSFER_ASSET("transferasset", TransferAssetServlet.class, - Access.BUILD, Surface.FULL), - - PARTICIPATE_ASSET_ISSUE("participateassetissue", ParticipateAssetIssueServlet.class, - Access.BUILD, Surface.FULL), - - FREEZE_BALANCE("freezebalance", FreezeBalanceServlet.class, - Access.BUILD, Surface.FULL), - - UN_FREEZE_BALANCE("unfreezebalance", UnFreezeBalanceServlet.class, - Access.BUILD, Surface.FULL), - - UN_FREEZE_ASSET("unfreezeasset", UnFreezeAssetServlet.class, - Access.BUILD, Surface.FULL), - - WITHDRAW_BALANCE("withdrawbalance", WithdrawBalanceServlet.class, - Access.BUILD, Surface.FULL), - - UPDATE_ASSET("updateasset", UpdateAssetServlet.class, - Access.BUILD, Surface.FULL), - - LIST_NODES("listnodes", ListNodesServlet.class, - Access.READ, Surface.FULL), - - GET_ASSET_ISSUE_BY_ACCOUNT("getassetissuebyaccount", GetAssetIssueByAccountServlet.class, - Access.READ, Surface.FULL), - - GET_ACCOUNT_NET("getaccountnet", GetAccountNetServlet.class, - Access.READ, Surface.FULL), - - GET_ASSET_ISSUE_BY_NAME("getassetissuebyname", GetAssetIssueByNameServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_ASSET_ISSUE_LIST_BY_NAME("getassetissuelistbyname", GetAssetIssueListByNameServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_ASSET_ISSUE_BY_ID("getassetissuebyid", GetAssetIssueByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_NOW_BLOCK("getnowblock", GetNowBlockServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_BLOCK_BY_NUM("getblockbynum", GetBlockByNumServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_BLOCK_BY_ID("getblockbyid", GetBlockByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_BLOCK_BY_LIMIT_NEXT("getblockbylimitnext", GetBlockByLimitNextServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_BLOCK_BY_LATEST_NUM("getblockbylatestnum", GetBlockByLatestNumServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_TRANSACTION_BY_ID("gettransactionbyid", GetTransactionByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_TRANSACTION_INFO_BY_ID("gettransactioninfobyid", GetTransactionInfoByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_TRANSACTION_RECEIPT_BY_ID("gettransactionreceiptbyid", GetTransactionReceiptByIdServlet.class, - Access.READ, Surface.FULL), - - GET_TRANSACTION_COUNT_BY_BLOCK_NUM( - "gettransactioncountbyblocknum", - GetTransactionCountByBlockNumServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - LIST_WITNESSES("listwitnesses", ListWitnessesServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_PAGINATED_NOW_WITNESS_LIST( - "getpaginatednowwitnesslist", - GetPaginatedNowWitnessListServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_ASSET_ISSUE_LIST("getassetissuelist", GetAssetIssueListServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_PAGINATED_ASSET_ISSUE_LIST( - "getpaginatedassetissuelist", - GetPaginatedAssetIssueListServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_PAGINATED_PROPOSAL_LIST("getpaginatedproposallist", GetPaginatedProposalListServlet.class, - Access.READ, Surface.FULL), - - GET_PAGINATED_EXCHANGE_LIST("getpaginatedexchangelist", GetPaginatedExchangeListServlet.class, - Access.READ, Surface.FULL), - - TOTAL_TRANSACTION("totaltransaction", TotalTransactionServlet.class, - Access.READ, Surface.FULL), - - GET_NEXT_MAINTENANCE_TIME("getnextmaintenancetime", GetNextMaintenanceTimeServlet.class, - Access.READ, Surface.FULL), - - VALIDATE_ADDRESS("validateaddress", ValidateAddressServlet.class, - Access.READ, Surface.FULL), - - DEPLOY_CONTRACT("deploycontract", DeployContractServlet.class, - Access.BUILD, Surface.FULL), - - TRIGGER_SMART_CONTRACT("triggersmartcontract", TriggerSmartContractServlet.class, - Access.BUILD, Surface.FULL), - - // constant VM call: read-only (never committed); the unsigned tx in the response is an echo - TRIGGER_CONSTANT_CONTRACT("triggerconstantcontract", TriggerConstantContractServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - // constant VM call: read-only (never committed); the unsigned tx in the response is an echo - ESTIMATE_ENERGY("estimateenergy", EstimateEnergyServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_CONTRACT("getcontract", GetContractServlet.class, - Access.READ, Surface.FULL), - - GET_CONTRACT_INFO("getcontractinfo", GetContractInfoServlet.class, - Access.READ, Surface.FULL), - - CLEAR_ABI("clearabi", ClearABIServlet.class, - Access.BUILD, Surface.FULL), - - PROPOSAL_CREATE("proposalcreate", ProposalCreateServlet.class, - Access.BUILD, Surface.FULL), - - PROPOSAL_APPROVE("proposalapprove", ProposalApproveServlet.class, - Access.BUILD, Surface.FULL), - - PROPOSAL_DELETE("proposaldelete", ProposalDeleteServlet.class, - Access.BUILD, Surface.FULL), - - LIST_PROPOSALS("listproposals", ListProposalsServlet.class, - Access.READ, Surface.FULL), - - GET_PROPOSAL_BY_ID("getproposalbyid", GetProposalByIdServlet.class, - Access.READ, Surface.FULL), - - EXCHANGE_CREATE("exchangecreate", ExchangeCreateServlet.class, - Access.BUILD, Surface.FULL), - - EXCHANGE_INJECT("exchangeinject", ExchangeInjectServlet.class, - Access.BUILD, Surface.FULL), - - EXCHANGE_TRANSACTION("exchangetransaction", ExchangeTransactionServlet.class, - Access.BUILD, Surface.FULL), - - EXCHANGE_WITHDRAW("exchangewithdraw", ExchangeWithdrawServlet.class, - Access.BUILD, Surface.FULL), - - GET_EXCHANGE_BY_ID("getexchangebyid", GetExchangeByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - LIST_EXCHANGES("listexchanges", ListExchangesServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_CHAIN_PARAMETERS("getchainparameters", GetChainParametersServlet.class, - Access.READ, Surface.FULL), - - GET_ACCOUNT_RESOURCE("getaccountresource", GetAccountResourceServlet.class, - Access.READ, Surface.FULL), - - GET_TRANSACTION_SIGN_WEIGHT("getsignweight", GetTransactionSignWeightServlet.class, - Access.READ, Surface.FULL), - - GET_TRANSACTION_APPROVED_LIST("getapprovedlist", GetTransactionApprovedListServlet.class, - Access.READ, Surface.FULL), - - ACCOUNT_PERMISSION_UPDATE("accountpermissionupdate", AccountPermissionUpdateServlet.class, - Access.BUILD, Surface.FULL), - - GET_NODE_INFO("getnodeinfo", GetNodeInfoServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - UPDATE_SETTING("updatesetting", UpdateSettingServlet.class, - Access.BUILD, Surface.FULL), - - UPDATE_ENERGY_LIMIT("updateenergylimit", UpdateEnergyLimitServlet.class, - Access.BUILD, Surface.FULL), - - GET_DELEGATED_RESOURCE("getdelegatedresource", GetDelegatedResourceServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_DELEGATED_RESOURCE_V2("getdelegatedresourcev2", GetDelegatedResourceV2Servlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_CAN_DELEGATED_MAX_SIZE("getcandelegatedmaxsize", GetCanDelegatedMaxSizeServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_AVAILABLE_UNFREEZE_COUNT("getavailableunfreezecount", GetAvailableUnfreezeCountServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_CAN_WITHDRAW_UNFREEZE_AMOUNT( - "getcanwithdrawunfreezeamount", - GetCanWithdrawUnfreezeAmountServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_DELEGATED_RESOURCE_ACCOUNT_INDEX( - "getdelegatedresourceaccountindex", - GetDelegatedResourceAccountIndexServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_DELEGATED_RESOURCE_ACCOUNT_INDEX_V2( - "getdelegatedresourceaccountindexv2", - GetDelegatedResourceAccountIndexV2Servlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - SET_ACCOUNT_ID("setaccountid", SetAccountIdServlet.class, - Access.BUILD, Surface.FULL), - - GET_ACCOUNT_BY_ID("getaccountbyid", GetAccountByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_EXPANDED_SPENDING_KEY("getexpandedspendingkey", GetExpandedSpendingKeyServlet.class, - Access.READ, Surface.FULL), - - GET_AK_FROM_ASK("getakfromask", GetAkFromAskServlet.class, - Access.READ, Surface.FULL), - - GET_NK_FROM_NSK("getnkfromnsk", GetNkFromNskServlet.class, - Access.READ, Surface.FULL), - - GET_SPENDING_KEY("getspendingkey", GetSpendingKeyServlet.class, - Access.READ, Surface.FULL), - - GET_NEW_SHIELDED_ADDRESS("getnewshieldedaddress", GetNewShieldedAddressServlet.class, - Access.READ, Surface.FULL), - - GET_DIVERSIFIER("getdiversifier", GetDiversifierServlet.class, - Access.READ, Surface.FULL), - - GET_INCOMING_VIEWING_KEY("getincomingviewingkey", GetIncomingViewingKeyServlet.class, - Access.READ, Surface.FULL), - - GET_ZEN_PAYMENT_ADDRESS("getzenpaymentaddress", GetZenPaymentAddressServlet.class, - Access.READ, Surface.FULL), - - GET_RCM("getrcm", GetRcmServlet.class, - Access.READ, Surface.FULL), - - // shielded crypto material generation (no transaction is composed): read-only - CREATE_SPEND_AUTH_SIG("createspendauthsig", CreateSpendAuthSigServlet.class, - Access.READ, Surface.FULL), - - IS_SHIELDED_TRC20_CONTRACT_NOTE_SPENT( - "isshieldedtrc20contractnotespent", - IsShieldedTRC20ContractNoteSpentServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - CREATE_SHIELDED_CONTRACT_PARAMETERS( - "createshieldedcontractparameters", - CreateShieldedContractParametersServlet.class, - Access.READ, Surface.FULL), - - CREATE_SHIELDED_CONTRACT_PARAMETERS_WITHOUT_ASK( - "createshieldedcontractparameterswithoutask", - CreateShieldedContractParametersWithoutAskServlet.class, - Access.READ, Surface.FULL), - - SCAN_SHIELDED_TRC20_NOTES_BY_IVK( - "scanshieldedtrc20notesbyivk", - ScanShieldedTRC20NotesByIvkServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - SCAN_SHIELDED_TRC20_NOTES_BY_OVK( - "scanshieldedtrc20notesbyovk", - ScanShieldedTRC20NotesByOvkServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_TRIGGER_INPUT_FOR_SHIELDED_TRC20_CONTRACT( - "gettriggerinputforshieldedtrc20contract", - GetTriggerInputForShieldedTRC20ContractServlet.class, - Access.READ, Surface.FULL), - - BROADCAST_HEX("broadcasthex", BroadcastHexServlet.class, - Access.WRITE, Surface.FULL), - - GET_BROKERAGE("getBrokerage", GetBrokerageServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_REWARD("getReward", GetRewardServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - UPDATE_BROKERAGE("updateBrokerage", UpdateBrokerageServlet.class, - Access.BUILD, Surface.FULL), - - CREATE_COMMON_TRANSACTION("createCommonTransaction", CreateCommonTransactionServlet.class, - Access.BUILD, Surface.FULL), - - GET_TRANSACTION_INFO_BY_BLOCK_NUM( - "gettransactioninfobyblocknum", - GetTransactionInfoByBlockNumServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - MARKET_SELL_ASSET("marketsellasset", MarketSellAssetServlet.class, - Access.BUILD, Surface.FULL), - - MARKET_CANCEL_ORDER("marketcancelorder", MarketCancelOrderServlet.class, - Access.BUILD, Surface.FULL), - - GET_MARKET_ORDER_BY_ACCOUNT("getmarketorderbyaccount", GetMarketOrderByAccountServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_MARKET_ORDER_BY_ID("getmarketorderbyid", GetMarketOrderByIdServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_MARKET_PRICE_BY_PAIR("getmarketpricebypair", GetMarketPriceByPairServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_MARKET_ORDER_LIST_BY_PAIR("getmarketorderlistbypair", GetMarketOrderListByPairServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_MARKET_PAIR_LIST("getmarketpairlist", GetMarketPairListServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_ACCOUNT_BALANCE("getaccountbalance", GetAccountBalanceServlet.class, - Access.READ, Surface.FULL), - - GET_BLOCK_BALANCE("getblockbalance", GetBlockBalanceServlet.class, - Access.READ, Surface.FULL), - - GET_BURN_TRX("getburntrx", GetBurnTrxServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_TRANSACTION_FROM_PENDING("gettransactionfrompending", GetTransactionFromPendingServlet.class, - Access.READ, Surface.FULL), - - GET_TRANSACTION_LIST_FROM_PENDING( - "gettransactionlistfrompending", - GetTransactionListFromPendingServlet.class, - Access.READ, Surface.FULL), - - GET_PENDING_SIZE("getpendingsize", GetPendingSizeServlet.class, - Access.READ, Surface.FULL), - - GET_ENERGY_PRICES("getenergyprices", GetEnergyPricesServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_BANDWIDTH_PRICES("getbandwidthprices", GetBandwidthPricesServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_BLOCK("getblock", GetBlockServlet.class, - Access.READ, Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE), - - GET_MEMO_FEE_PRICES("getmemofee", GetMemoFeePricesServlet.class, - Access.READ, Surface.FULL), - - FREEZE_BALANCE_V2("freezebalancev2", FreezeBalanceV2Servlet.class, - Access.BUILD, Surface.FULL), - - UN_FREEZE_BALANCE_V2("unfreezebalancev2", UnFreezeBalanceV2Servlet.class, - Access.BUILD, Surface.FULL), - - WITHDRAW_EXPIRE_UNFREEZE("withdrawexpireunfreeze", WithdrawExpireUnfreezeServlet.class, - Access.BUILD, Surface.FULL), - - DELEGATE_RESOURCE("delegateresource", DelegateResourceServlet.class, - Access.BUILD, Surface.FULL), - - UN_DELEGATE_RESOURCE("undelegateresource", UnDelegateResourceServlet.class, - Access.BUILD, Surface.FULL), - - CANCEL_ALL_UNFREEZE_V2("cancelallunfreezev2", CancelAllUnfreezeV2Servlet.class, - Access.BUILD, Surface.FULL); - - /** Http services an endpoint can be exposed on. */ - public enum Surface { - FULL, SOLIDITY, PBFT, SOLIDITY_NODE - } - - /** - * READ: no state mutation — queries, crypto derivation and constant VM calls. - * BUILD: composes an unsigned transaction for the client to sign. - * WRITE: pushes a transaction into the chain. - */ - public enum Access { - READ, BUILD, WRITE - } - - private final String suffix; - private final Class servlet; - private final Access access; - private final EnumSet surfaces; - - static { - // a table that breaks its invariants must not boot the node - validate(); - } - - HttpApiDef(String suffix, Class servlet, Access access, - Surface first, Surface... rest) { - this.suffix = suffix; - this.servlet = servlet; - this.access = access; - this.surfaces = EnumSet.of(first, rest); - } - - /** - * Structural invariants of the table, checked when the class loads (i.e. before any http - * service can mount an endpoint): suffixes are unique, and every BUILD / WRITE row is - * exposed on the FULL surface only — the cursor surfaces (SOLIDITY / PBFT) must never run - * a write path on a cursor-switched thread, and the standalone SolidityNode surface cannot - * propagate transactions. - */ - static void validate() { - Set seen = new HashSet<>(); - for (HttpApiDef def : values()) { - if (!seen.add(def.suffix)) { - throw new IllegalStateException("duplicate endpoint suffix in HttpApiDef: " + def.suffix); - } - if (def.access != Access.READ && !EnumSet.of(Surface.FULL).equals(def.surfaces)) { - throw new IllegalStateException(String.format( - "%s is %s and may only be exposed on the FULL surface, found %s", - def.name(), def.access, def.surfaces)); - } - } - } - - public static List forSurface(Surface surface) { - List result = new ArrayList<>(); - for (HttpApiDef def : values()) { - if (def.surfaces.contains(surface)) { - result.add(def); - } - } - return Collections.unmodifiableList(result); - } - - public String getSuffix() { - return suffix; - } - - public Class getServlet() { - return servlet; - } - - public Access getAccess() { - return access; - } -} diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiExcluded.java b/framework/src/main/java/org/tron/core/services/http/HttpApiExcluded.java new file mode 100644 index 00000000000..1f126b6511b --- /dev/null +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiExcluded.java @@ -0,0 +1,27 @@ +package org.tron.core.services.http; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marks a concrete servlet under the registry-managed package as deliberately not exposed through + * {@link HttpApiRegistry}, with the reason recorded on the class itself. + * + *

{@link HttpApiRegistry} requires every concrete servlet in that package to carry either + * {@link HttpApi} or this annotation. Without that rule a servlet could be added and simply never + * registered — the silent-omission failure this refactor exists to remove, only moved from the + * registration lists to the annotations. Opting out is therefore an explicit, reviewable act. + * + *

Like {@link HttpApi} this is not {@code @Inherited} and is read only as a declared annotation. + */ +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface HttpApiExcluded { + + /** Why the servlet is not registered; must not be blank. */ + String value(); +} diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java b/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java new file mode 100644 index 00000000000..030fc61ba65 --- /dev/null +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java @@ -0,0 +1,207 @@ +package org.tron.core.services.http; + +import java.lang.annotation.Inherited; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.EnumSet; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import javax.servlet.http.HttpServlet; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; +import org.springframework.core.type.filter.AssignableTypeFilter; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** + * Read-only view of the node's http endpoints, derived at class-load from the {@link HttpApi} + * annotation declared on each servlet. No hand-maintained table repeats the metadata: the + * annotation is the single declaration and this registry is computed from it, so an endpoint + * cannot drift between its implementation and its registration. + * + *

The whole table is built and validated when this class is first touched — which happens + * while a service mounts its servlets, before any Jetty bind, and covers every surface whether + * or not that surface is enabled on the node. A table that breaks an invariant throws here and + * the node does not boot. Invariants: + * + *

+ * + *

Annotations are read with {@link Class#getDeclaredAnnotation} and {@link HttpApi} is not + * {@link Inherited}, asserted below, so a servlet subclass can never inherit its parent's + * exposure — the failure mode the removed cursor-wrapper subclasses would otherwise reintroduce. + */ +public final class HttpApiRegistry { + + static final String PACKAGE = "org.tron.core.services.http.servlets"; + + private static final List ENTRIES = init(); + + private HttpApiRegistry() { + } + + /** One declared endpoint: its suffix, servlet type, access nature and exposed surfaces. */ + public static final class Entry { + + private final String suffix; + private final Class servlet; + private final Access access; + private final EnumSet surfaces; + + private Entry(String suffix, Class servlet, Access access, + EnumSet surfaces) { + this.suffix = suffix; + this.servlet = servlet; + this.access = access; + this.surfaces = surfaces; + } + + public String getSuffix() { + return suffix; + } + + public Class getServlet() { + return servlet; + } + + public Access getAccess() { + return access; + } + + public Set getSurfaces() { + return Collections.unmodifiableSet(surfaces); + } + } + + /** Endpoints exposed on {@code surface}, ordered by suffix. */ + public static List forSurface(Surface surface) { + List result = new ArrayList<>(); + for (Entry entry : ENTRIES) { + if (entry.surfaces.contains(surface)) { + result.add(entry); + } + } + return Collections.unmodifiableList(result); + } + + /** All endpoints, ordered by suffix. */ + public static List all() { + return ENTRIES; + } + + /** + * Stable {@code suffix access [surfaces]} lines for the whole table, one per endpoint, sorted. + * Used by the checked-in audit snapshot so a change to any endpoint's exposure shows up as a + * one-line diff in review. + */ + public static List auditMatrix() { + List lines = new ArrayList<>(); + for (Entry entry : ENTRIES) { + lines.add(entry.suffix + " " + entry.access + " " + new TreeSet<>(entry.surfaces)); + } + Collections.sort(lines); + return Collections.unmodifiableList(lines); + } + + private static List init() { + List entries = buildFromPackage(PACKAGE); + if (entries.isEmpty()) { + // a broken classpath scan (packaging / classloader) would otherwise leave the node with no + // http api and no error; fail the boot loudly instead + throw new IllegalStateException("no http endpoints discovered in " + PACKAGE); + } + return entries; + } + + /** Concrete, top-level {@link HttpServlet} classes declared in {@code pkg}. */ + static List> scanConcreteServlets(String pkg) { + ClassPathScanningCandidateComponentProvider scanner = + new ClassPathScanningCandidateComponentProvider(false); + scanner.addIncludeFilter(new AssignableTypeFilter(HttpServlet.class)); + List> classes = new ArrayList<>(); + for (BeanDefinition bean : scanner.findCandidateComponents(pkg)) { + Class clazz = load(bean.getBeanClassName()); + // endpoint servlets are top-level classes; a nested servlet in this package is a helper + // (e.g. a test's inner servlet on the test classpath), never a mounted endpoint + if (clazz.getEnclosingClass() == null) { + classes.add(clazz); + } + } + return classes; + } + + /** Builds and validates the registry from the servlets in {@code pkg}; visible for testing. */ + static List buildFromPackage(String pkg) { + if (HttpApi.class.isAnnotationPresent(Inherited.class)) { + throw new IllegalStateException( + "@HttpApi must not be @Inherited: a subclass would inherit its parent's exposure"); + } + List entries = new ArrayList<>(); + Set mounts = new TreeSet<>(); + for (Class clazz : scanConcreteServlets(pkg)) { + HttpApi api = clazz.getDeclaredAnnotation(HttpApi.class); + HttpApiExcluded excluded = clazz.getDeclaredAnnotation(HttpApiExcluded.class); + if ((api == null) == (excluded == null)) { + throw new IllegalStateException(clazz.getName() + + " must declare exactly one of @HttpApi or @HttpApiExcluded"); + } + if (api == null) { + continue; + } + Entry entry = validate(clazz, api); + for (Surface surface : entry.surfaces) { + if (!mounts.add(surface + " " + entry.suffix)) { + throw new IllegalStateException( + "duplicate endpoint (" + surface + ", " + entry.suffix + ")"); + } + } + entries.add(entry); + } + entries.sort(Comparator.comparing(Entry::getSuffix)); + return Collections.unmodifiableList(entries); + } + + private static Entry validate(Class clazz, HttpApi api) { + if (clazz.getDeclaredAnnotation(Component.class) == null) { + throw new IllegalStateException(clazz.getName() + " with @HttpApi must be a @Component bean"); + } + String suffix = api.value(); + if (suffix == null || suffix.trim().isEmpty()) { + throw new IllegalStateException(clazz.getName() + " has a blank @HttpApi suffix"); + } + if (suffix.contains("/")) { + throw new IllegalStateException(clazz.getName() + " suffix must not contain '/': " + suffix); + } + if (api.surfaces().length == 0) { + throw new IllegalStateException(clazz.getName() + " must declare at least one surface"); + } + EnumSet surfaces = EnumSet.copyOf(Arrays.asList(api.surfaces())); + if (api.access() != Access.READ && !surfaces.equals(EnumSet.of(Surface.FULL))) { + throw new IllegalStateException(String.format( + "%s is %s and may only be exposed on the FULL surface, found %s", + clazz.getName(), api.access(), surfaces)); + } + return new Entry(suffix, clazz.asSubclass(HttpServlet.class), api.access(), surfaces); + } + + private static Class load(String name) { + try { + return Class.forName(name); + } catch (ClassNotFoundException e) { + throw new IllegalStateException("cannot load servlet " + name, e); + } + } +} diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServlet.java index 69599fd6f9e..8b45a7bff5f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/AccountPermissionUpdateServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "accountpermissionupdate", access = Access.BUILD, + surfaces = {Surface.FULL}) public class AccountPermissionUpdateServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastHexServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastHexServlet.java index e796788d02c..42ed9d5a168 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastHexServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastHexServlet.java @@ -10,13 +10,16 @@ import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; @Component @Slf4j(topic = "API") +@HttpApi(value = "broadcasthex", access = Access.WRITE, + surfaces = {Surface.FULL}) public class BroadcastHexServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastServlet.java index 1b2392962f0..706467569e0 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/BroadcastServlet.java @@ -9,14 +9,16 @@ import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; @Component @Slf4j(topic = "API") +@HttpApi(value = "broadcasttransaction", access = Access.WRITE, + surfaces = {Surface.FULL}) public class BroadcastServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2Servlet.java index 3b758923be8..3e0099c57b4 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CancelAllUnfreezeV2Servlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; @@ -17,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "cancelallunfreezev2", access = Access.BUILD, + surfaces = {Surface.FULL}) public class CancelAllUnfreezeV2Servlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ClearABIServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ClearABIServlet.java index 96b6c79e7df..9543c342c23 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ClearABIServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ClearABIServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "clearabi", access = Access.BUILD, + surfaces = {Surface.FULL}) public class ClearABIServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateAccountServlet.java index a03b1181583..c0c23400b55 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateAccountServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "createaccount", access = Access.BUILD, + surfaces = {Surface.FULL}) public class CreateAccountServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateAssetIssueServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateAssetIssueServlet.java index d7d26ee0260..6d35b5c2763 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateAssetIssueServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateAssetIssueServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "createassetissue", access = Access.BUILD, + surfaces = {Surface.FULL}) public class CreateAssetIssueServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateCommonTransactionServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateCommonTransactionServlet.java index 32a8013b958..b4f083afb38 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateCommonTransactionServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateCommonTransactionServlet.java @@ -12,15 +12,17 @@ import org.tron.core.Wallet; import org.tron.core.actuator.TransactionFactory; import org.tron.core.exception.ContractValidateException; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @Component @Slf4j(topic = "API") +@HttpApi(value = "createCommonTransaction", access = Access.BUILD, + surfaces = {Surface.FULL}) public class CreateCommonTransactionServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldNullifierServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldNullifierServlet.java index a6b4df7020a..31dbc0554df 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldNullifierServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldNullifierServlet.java @@ -8,12 +8,11 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.api.GrpcAPI.NfParameters; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApiExcluded; @Component @Slf4j(topic = "API") +@HttpApiExcluded("shielded note API disabled on every surface (commented out upstream)") public class CreateShieldNullifierServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java index 15082ae808d..af7b69058b1 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java @@ -9,11 +9,14 @@ import org.tron.api.GrpcAPI.PrivateShieldedTRC20Parameters; import org.tron.api.GrpcAPI.ShieldedTRC20Parameters; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "createshieldedcontractparameters", access = Access.READ, + surfaces = {Surface.FULL}) public class CreateShieldedContractParametersServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java index 9e2d338b058..87ca9e0c3ff 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.PrivateShieldedTRC20ParametersWithoutAsk; import org.tron.api.GrpcAPI.ShieldedTRC20Parameters; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "createshieldedcontractparameterswithoutask", access = Access.READ, + surfaces = {Surface.FULL}) public class CreateShieldedContractParametersWithoutAskServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionServlet.java index ae899d490ed..bd158e925c5 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionServlet.java @@ -7,13 +7,12 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PrivateParameters; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApiExcluded; import org.tron.protos.Protocol.Transaction; @Component @Slf4j(topic = "API") +@HttpApiExcluded("shielded note API disabled on every surface (commented out upstream)") public class CreateShieldedTransactionServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionWithoutSpendAuthSigServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionWithoutSpendAuthSigServlet.java index 7ce4693b5d3..58a5e7538eb 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionWithoutSpendAuthSigServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedTransactionWithoutSpendAuthSigServlet.java @@ -7,15 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PrivateParametersWithoutAsk; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApiExcluded; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; @Component @Slf4j(topic = "API") +@HttpApiExcluded("shielded note API disabled on every surface (commented out upstream)") public class CreateShieldedTransactionWithoutSpendAuthSigServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServlet.java index f98f5a18ab3..3c6ba93cf7f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateSpendAuthSigServlet.java @@ -8,12 +8,14 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.api.GrpcAPI.SpendAuthSigParameters; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "createspendauthsig", access = Access.READ, + surfaces = {Surface.FULL}) public class CreateSpendAuthSigServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateWitnessServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateWitnessServlet.java index bbad4ac17fd..6a3047ae8ee 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateWitnessServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateWitnessServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "createwitness", access = Access.BUILD, + surfaces = {Surface.FULL}) public class CreateWitnessServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/DelegateResourceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/DelegateResourceServlet.java index 0d99a5904d7..69d5a68af45 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/DelegateResourceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/DelegateResourceServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; @@ -17,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "delegateresource", access = Access.BUILD, + surfaces = {Surface.FULL}) public class DelegateResourceServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/DeployContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/DeployContractServlet.java index 847dc4bcddb..8aed6f71306 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/DeployContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/DeployContractServlet.java @@ -1,7 +1,7 @@ package org.tron.core.services.http.servlets; -import static org.tron.core.services.http.Util.getHexAddress; -import static org.tron.core.services.http.Util.setTransactionPermissionId; +import static org.tron.core.services.http.servlets.Util.getHexAddress; +import static org.tron.core.services.http.servlets.Util.setTransactionPermissionId; import com.google.common.base.Strings; import com.google.protobuf.ByteString; @@ -13,9 +13,9 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -25,6 +25,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "deploycontract", access = Access.BUILD, + surfaces = {Surface.FULL}) public class DeployContractServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/EstimateEnergyServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/EstimateEnergyServlet.java index 104c5688597..c39dc23b2ec 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/EstimateEnergyServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/EstimateEnergyServlet.java @@ -16,14 +16,17 @@ import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; import org.tron.core.exception.ContractValidateException; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol; import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract; @Component @Slf4j(topic = "API") +@HttpApi(value = "estimateenergy", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class EstimateEnergyServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeCreateServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeCreateServlet.java index 6fd9915a348..6ef1b773766 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeCreateServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeCreateServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "exchangecreate", access = Access.BUILD, + surfaces = {Surface.FULL}) public class ExchangeCreateServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeInjectServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeInjectServlet.java index b041dfeedaf..30d6f0f0def 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeInjectServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeInjectServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "exchangeinject", access = Access.BUILD, + surfaces = {Surface.FULL}) public class ExchangeInjectServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeTransactionServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeTransactionServlet.java index 2de93593763..073b37b50ad 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeTransactionServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeTransactionServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "exchangetransaction", access = Access.BUILD, + surfaces = {Surface.FULL}) public class ExchangeTransactionServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeWithdrawServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeWithdrawServlet.java index 380c7de3fe0..f778ee52d1f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeWithdrawServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ExchangeWithdrawServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "exchangewithdraw", access = Access.BUILD, + surfaces = {Surface.FULL}) public class ExchangeWithdrawServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceServlet.java index 2915b873382..b42dc6c1302 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "freezebalance", access = Access.BUILD, + surfaces = {Surface.FULL}) public class FreezeBalanceServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceV2Servlet.java index acd541e8626..567429c32c2 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/FreezeBalanceV2Servlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "freezebalancev2", access = Access.BUILD, + surfaces = {Surface.FULL}) public class FreezeBalanceV2Servlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountBalanceServlet.java index 33620aa0928..52007015aa8 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountBalanceServlet.java @@ -6,13 +6,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.contract.BalanceContract; @Component @Slf4j(topic = "API") +@HttpApi(value = "getaccountbalance", access = Access.READ, + surfaces = {Surface.FULL}) public class GetAccountBalanceServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountByIdServlet.java index ff1f65d60d5..aa7b3b5839e 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountByIdServlet.java @@ -7,14 +7,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Account; @Component @Slf4j(topic = "API") +@HttpApi(value = "getaccountbyid", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetAccountByIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountNetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountNetServlet.java index 18594e8f7d0..68507b1a6d3 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountNetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountNetServlet.java @@ -9,13 +9,15 @@ import org.tron.api.GrpcAPI.AccountNetMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.Account; @Component @Slf4j(topic = "API") +@HttpApi(value = "getaccountnet", access = Access.READ, + surfaces = {Surface.FULL}) public class GetAccountNetServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountResourceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountResourceServlet.java index 28244b9c1e9..a50c331664b 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountResourceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountResourceServlet.java @@ -9,13 +9,15 @@ import org.tron.api.GrpcAPI.AccountResourceMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") +@HttpApi(value = "getaccountresource", access = Access.READ, + surfaces = {Surface.FULL}) public class GetAccountResourceServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountServlet.java index 5b4953853b3..00a8e78f106 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAccountServlet.java @@ -6,14 +6,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Account; @Component @Slf4j(topic = "API") +@HttpApi(value = "getaccount", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetAccountServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAkFromAskServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAkFromAskServlet.java index 7b7be2205b3..e57062241e1 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAkFromAskServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAkFromAskServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getakfromask", access = Access.READ, + surfaces = {Surface.FULL}) public class GetAkFromAskServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByAccountServlet.java index d52cf6bfb57..c781d8755c5 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByAccountServlet.java @@ -9,13 +9,15 @@ import org.tron.api.GrpcAPI.AssetIssueList; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.Account; @Component @Slf4j(topic = "API") +@HttpApi(value = "getassetissuebyaccount", access = Access.READ, + surfaces = {Surface.FULL}) public class GetAssetIssueByAccountServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServlet.java index 2f759f958ba..85b712a3277 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByIdServlet.java @@ -6,14 +6,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.contract.AssetIssueContractOuterClass.AssetIssueContract; @Component @Slf4j(topic = "API") +@HttpApi(value = "getassetissuebyid", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetAssetIssueByIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServlet.java index 5ac59b7b03a..7d51cf31f36 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueByNameServlet.java @@ -8,15 +8,17 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.contract.AssetIssueContractOuterClass.AssetIssueContract; @Component @Slf4j(topic = "API") +@HttpApi(value = "getassetissuebyname", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetAssetIssueByNameServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServlet.java index 27f7b919bb1..0c61732a51e 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListByNameServlet.java @@ -10,14 +10,16 @@ import org.tron.api.GrpcAPI.AssetIssueList; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSON; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") +@HttpApi(value = "getassetissuelistbyname", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetAssetIssueListByNameServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListServlet.java index 8b11a910fe1..49dea552c11 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAssetIssueListServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.AssetIssueList; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getassetissuelist", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetAssetIssueListServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetAvailableUnfreezeCountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetAvailableUnfreezeCountServlet.java index 63d41d7db7d..b1f420f2f6b 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetAvailableUnfreezeCountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetAvailableUnfreezeCountServlet.java @@ -10,12 +10,14 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getavailableunfreezecount", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetAvailableUnfreezeCountServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetBandwidthPricesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBandwidthPricesServlet.java index 14cc8007b59..dab3de8f397 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetBandwidthPricesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBandwidthPricesServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PricesResponseMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getbandwidthprices", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetBandwidthPricesServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockBalanceServlet.java index 4f8c9beb114..3fa5343eecc 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockBalanceServlet.java @@ -6,13 +6,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.contract.BalanceContract.BlockBalanceTrace; @Component @Slf4j(topic = "API") +@HttpApi(value = "getblockbalance", access = Access.READ, + surfaces = {Surface.FULL}) public class GetBlockBalanceServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByIdServlet.java index c22520a3d6a..c069cec104f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByIdServlet.java @@ -10,13 +10,15 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.Block; @Component @Slf4j(topic = "API") +@HttpApi(value = "getblockbyid", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetBlockByIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLatestNumServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLatestNumServlet.java index 8a8e01bd11c..7a723444a8f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLatestNumServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLatestNumServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.BlockList; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getblockbylatestnum", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetBlockByLatestNumServlet extends RateLimiterServlet { private static final long BLOCK_LIMIT_NUM = 100; diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLimitNextServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLimitNextServlet.java index 818eba5872f..2b7e5555fe7 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLimitNextServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByLimitNextServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.BlockLimit; import org.tron.api.GrpcAPI.BlockList; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getblockbylimitnext", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetBlockByLimitNextServlet extends RateLimiterServlet { private static final long BLOCK_LIMIT_NUM = 100; diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByNumServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByNumServlet.java index 07f5641ae1d..8530a3e7227 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByNumServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockByNumServlet.java @@ -8,13 +8,15 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.Block; @Component @Slf4j(topic = "API") +@HttpApi(value = "getblockbynum", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetBlockByNumServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockServlet.java index e96b7e53275..cd3564d8fe4 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBlockServlet.java @@ -10,15 +10,17 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BlockReq; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Block; @Component @Slf4j(topic = "API") +@HttpApi(value = "getblock", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetBlockServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetBrokerageServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBrokerageServlet.java index 34c892e111e..9e08c8b023d 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetBrokerageServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBrokerageServlet.java @@ -8,10 +8,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.db.Manager; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getBrokerage", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetBrokerageServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetBurnTrxServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetBurnTrxServlet.java index 22d553ac483..22fbd2f88eb 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetBurnTrxServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetBurnTrxServlet.java @@ -7,11 +7,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.db.Manager; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getburntrx", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetBurnTrxServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetCanDelegatedMaxSizeServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetCanDelegatedMaxSizeServlet.java index 1d9c3c2df6d..ab7a8836429 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetCanDelegatedMaxSizeServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetCanDelegatedMaxSizeServlet.java @@ -10,12 +10,14 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getcandelegatedmaxsize", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetCanDelegatedMaxSizeServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetCanWithdrawUnfreezeAmountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetCanWithdrawUnfreezeAmountServlet.java index 3b6fdfab543..3b14599d05e 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetCanWithdrawUnfreezeAmountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetCanWithdrawUnfreezeAmountServlet.java @@ -10,12 +10,14 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getcanwithdrawunfreezeamount", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetCanWithdrawUnfreezeAmountServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetChainParametersServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetChainParametersServlet.java index d8be1885ec5..7ea45f751ca 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetChainParametersServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetChainParametersServlet.java @@ -6,11 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getchainparameters", access = Access.READ, + surfaces = {Surface.FULL}) public class GetChainParametersServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetContractInfoServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetContractInfoServlet.java index 12a123b0583..bada0ae6007 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetContractInfoServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetContractInfoServlet.java @@ -7,14 +7,16 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.contract.SmartContractOuterClass.SmartContractDataWrapper; @Component @Slf4j(topic = "API") +@HttpApi(value = "getcontractinfo", access = Access.READ, + surfaces = {Surface.FULL}) public class GetContractInfoServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetContractServlet.java index f4761c410ce..8bb2add9f01 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetContractServlet.java @@ -1,6 +1,6 @@ package org.tron.core.services.http.servlets; -import static org.tron.core.services.http.PostParams.S_VALUE; +import static org.tron.core.services.http.servlets.PostParams.S_VALUE; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -9,14 +9,16 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.contract.SmartContractOuterClass.SmartContract; @Component @Slf4j(topic = "API") +@HttpApi(value = "getcontract", access = Access.READ, + surfaces = {Surface.FULL}) public class GetContractServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServlet.java index ff76d9c99a4..744df1d63d0 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexServlet.java @@ -10,14 +10,16 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.DelegatedResourceAccountIndex; @Component @Slf4j(topic = "API") +@HttpApi(value = "getdelegatedresourceaccountindex", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetDelegatedResourceAccountIndexServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2Servlet.java index 44ab5d9ba8b..5ec1c7d738d 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2Servlet.java @@ -10,14 +10,16 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.DelegatedResourceAccountIndex; @Component @Slf4j(topic = "API") +@HttpApi(value = "getdelegatedresourceaccountindexv2", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetDelegatedResourceAccountIndexV2Servlet extends RateLimiterServlet { private static final String VALUE_FIELD_NAME = "value"; diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceServlet.java index 0fd7f37d2e1..aa5f11604e6 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceServlet.java @@ -12,12 +12,14 @@ import org.tron.api.GrpcAPI.DelegatedResourceMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getdelegatedresource", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetDelegatedResourceServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceV2Servlet.java index 2c00f9ba3f0..a7daf26587f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDelegatedResourceV2Servlet.java @@ -11,12 +11,14 @@ import org.tron.api.GrpcAPI.DelegatedResourceMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getdelegatedresourcev2", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetDelegatedResourceV2Servlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetDiversifierServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetDiversifierServlet.java index 6cb62eded5d..6dc1b38ed80 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetDiversifierServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetDiversifierServlet.java @@ -8,12 +8,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getdiversifier", access = Access.READ, + surfaces = {Surface.FULL}) public class GetDiversifierServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetEnergyPricesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetEnergyPricesServlet.java index 206092ade1a..47823238b7f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetEnergyPricesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetEnergyPricesServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PricesResponseMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getenergyprices", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetEnergyPricesServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetExchangeByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetExchangeByIdServlet.java index 7367b731ae5..abd0007d640 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetExchangeByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetExchangeByIdServlet.java @@ -9,13 +9,15 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") +@HttpApi(value = "getexchangebyid", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetExchangeByIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetExpandedSpendingKeyServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetExpandedSpendingKeyServlet.java index 742d0fd09ac..2cb50d82fdf 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetExpandedSpendingKeyServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetExpandedSpendingKeyServlet.java @@ -11,12 +11,14 @@ import org.tron.api.GrpcAPI.ExpandedSpendingKeyMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getexpandedspendingkey", access = Access.READ, + surfaces = {Surface.FULL}) public class GetExpandedSpendingKeyServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetIncomingViewingKeyServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetIncomingViewingKeyServlet.java index dcc1c57cd68..f81a151a7ba 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetIncomingViewingKeyServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetIncomingViewingKeyServlet.java @@ -8,13 +8,15 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") +@HttpApi(value = "getincomingviewingkey", access = Access.READ, + surfaces = {Surface.FULL}) public class GetIncomingViewingKeyServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServlet.java index 5dd1d883dc9..ae2be9d672f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByAccountServlet.java @@ -9,15 +9,17 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.MarketOrderList; @Component @Slf4j(topic = "API") +@HttpApi(value = "getmarketorderbyaccount", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetMarketOrderByAccountServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByIdServlet.java index 716362e0167..df4a39a8497 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderByIdServlet.java @@ -10,12 +10,15 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.MarketOrder; @Component @Slf4j(topic = "API") +@HttpApi(value = "getmarketorderbyid", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetMarketOrderByIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderListByPairServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderListByPairServlet.java index 85071989231..cef376dc603 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderListByPairServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketOrderListByPairServlet.java @@ -8,13 +8,16 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.MarketOrderList; import org.tron.protos.Protocol.MarketOrderPair; @Component @Slf4j(topic = "API") +@HttpApi(value = "getmarketorderlistbypair", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetMarketOrderListByPairServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPairListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPairListServlet.java index 61b77c6d6b7..1bea1cc23f7 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPairListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPairListServlet.java @@ -7,12 +7,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.MarketOrderPairList; @Component @Slf4j(topic = "API") +@HttpApi(value = "getmarketpairlist", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetMarketPairListServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPriceByPairServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPriceByPairServlet.java index ce1eba981a8..74ee421384f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPriceByPairServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMarketPriceByPairServlet.java @@ -8,13 +8,16 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.MarketOrderPair; import org.tron.protos.Protocol.MarketPriceList; @Component @Slf4j(topic = "API") +@HttpApi(value = "getmarketpricebypair", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetMarketPriceByPairServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetMemoFeePricesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMemoFeePricesServlet.java index 50075d3e7bd..64b2feb4532 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetMemoFeePricesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMemoFeePricesServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.PricesResponseMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getmemofee", access = Access.READ, + surfaces = {Surface.FULL}) public class GetMemoFeePricesServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java index b354a2d77e5..7f9c65dc629 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java @@ -6,14 +6,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.contract.ShieldContract.IncrementalMerkleVoucherInfo; import org.tron.protos.contract.ShieldContract.OutputPointInfo; @Component @Slf4j(topic = "API") +@HttpApi(value = "getmerkletreevoucherinfo", access = Access.READ, + surfaces = {Surface.PBFT}) public class GetMerkleTreeVoucherInfoServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetNewShieldedAddressServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNewShieldedAddressServlet.java index 4a8d2581d80..1bbae9bcad2 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetNewShieldedAddressServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNewShieldedAddressServlet.java @@ -7,12 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.ShieldedAddressInfo; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getnewshieldedaddress", access = Access.READ, + surfaces = {Surface.FULL}) public class GetNewShieldedAddressServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetNextMaintenanceTimeServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNextMaintenanceTimeServlet.java index 2b6c06aa699..15f658771ef 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetNextMaintenanceTimeServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNextMaintenanceTimeServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getnextmaintenancetime", access = Access.READ, + surfaces = {Surface.FULL}) public class GetNextMaintenanceTimeServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetNkFromNskServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNkFromNskServlet.java index 56f57b59956..cb9eecdd314 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetNkFromNskServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNkFromNskServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getnkfromnsk", access = Access.READ, + surfaces = {Surface.FULL}) public class GetNkFromNskServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetNodeInfoServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNodeInfoServlet.java index 119ecb4f9c4..4f924d43219 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetNodeInfoServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNodeInfoServlet.java @@ -8,11 +8,15 @@ import org.springframework.stereotype.Component; import org.tron.common.entity.NodeInfo; import org.tron.core.services.NodeInfoService; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSON; @Component @Slf4j(topic = "API") +@HttpApi(value = "getnodeinfo", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetNodeInfoServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetNowBlockServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetNowBlockServlet.java index 528d1ddfe11..bbbaca633b4 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetNowBlockServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetNowBlockServlet.java @@ -6,11 +6,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.Block; @Component @Slf4j(topic = "API") +@HttpApi(value = "getnowblock", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetNowBlockServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedAssetIssueListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedAssetIssueListServlet.java index 069dea0db18..00af72a8b7c 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedAssetIssueListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedAssetIssueListServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.AssetIssueList; import org.tron.api.GrpcAPI.PaginatedMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getpaginatedassetissuelist", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetPaginatedAssetIssueListServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedExchangeListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedExchangeListServlet.java index aea9f93b256..f10f13bf91e 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedExchangeListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedExchangeListServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.ExchangeList; import org.tron.api.GrpcAPI.PaginatedMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getpaginatedexchangelist", access = Access.READ, + surfaces = {Surface.FULL}) public class GetPaginatedExchangeListServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedNowWitnessListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedNowWitnessListServlet.java index 34bc7c8a8d5..00d9b45eb8b 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedNowWitnessListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedNowWitnessListServlet.java @@ -9,13 +9,15 @@ import org.tron.api.GrpcAPI; import org.tron.core.Wallet; import org.tron.core.exception.MaintenanceUnavailableException; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; // Get the paged list of witnesses info with realtime vote counts @Component @Slf4j(topic = "API") +@HttpApi(value = "getpaginatednowwitnesslist", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetPaginatedNowWitnessListServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedProposalListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedProposalListServlet.java index 90091c91d6a..8808e67d3c1 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedProposalListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPaginatedProposalListServlet.java @@ -10,11 +10,14 @@ import org.tron.api.GrpcAPI.PaginatedMessage; import org.tron.api.GrpcAPI.ProposalList; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getpaginatedproposallist", access = Access.READ, + surfaces = {Surface.FULL}) public class GetPaginatedProposalListServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetPendingSizeServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetPendingSizeServlet.java index e09bb62b6d7..e6c3e358c0f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetPendingSizeServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetPendingSizeServlet.java @@ -7,11 +7,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.db.Manager; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getpendingsize", access = Access.READ, + surfaces = {Surface.FULL}) public class GetPendingSizeServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetProposalByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetProposalByIdServlet.java index 2012f84d334..2f8d9573e3b 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetProposalByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetProposalByIdServlet.java @@ -9,14 +9,16 @@ import org.springframework.stereotype.Component; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Proposal; @Component @Slf4j(topic = "API") +@HttpApi(value = "getproposalbyid", access = Access.READ, + surfaces = {Surface.FULL}) public class GetProposalByIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetRcmServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetRcmServlet.java index 86af5dca6b2..8fe6276c931 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetRcmServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetRcmServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getrcm", access = Access.READ, + surfaces = {Surface.FULL}) public class GetRcmServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetRewardServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetRewardServlet.java index 78d46dc9ec7..8fde18ec3be 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetRewardServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetRewardServlet.java @@ -8,11 +8,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.db.Manager; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getReward", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetRewardServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetShieldTransactionHashServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetShieldTransactionHashServlet.java index ae228a9f4ec..0e5070c168f 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetShieldTransactionHashServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetShieldTransactionHashServlet.java @@ -8,12 +8,12 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApiExcluded; import org.tron.protos.Protocol.Transaction; @Component @Slf4j(topic = "API") +@HttpApiExcluded("shielded note API disabled on every surface (commented out upstream)") public class GetShieldTransactionHashServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetSpendingKeyServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetSpendingKeyServlet.java index 668fd0c2b9d..3ffa2122db0 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetSpendingKeyServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetSpendingKeyServlet.java @@ -8,12 +8,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.BytesMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "getspendingkey", access = Access.READ, + surfaces = {Surface.FULL}) public class GetSpendingKeyServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionApprovedListServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionApprovedListServlet.java index 71f240c3565..252889cf6e2 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionApprovedListServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionApprovedListServlet.java @@ -7,12 +7,15 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.TransactionApprovedList; import org.tron.core.Wallet; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.Transaction; @Component @Slf4j(topic = "API") +@HttpApi(value = "getapprovedlist", access = Access.READ, + surfaces = {Surface.FULL}) public class GetTransactionApprovedListServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionByIdServlet.java index 0536b59ca6c..260029bc620 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionByIdServlet.java @@ -11,13 +11,15 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.Transaction; @Component @Slf4j(topic = "API") +@HttpApi(value = "gettransactionbyid", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetTransactionByIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionCountByBlockNumServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionCountByBlockNumServlet.java index 93e4c0ed094..a3d56ec3f7c 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionCountByBlockNumServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionCountByBlockNumServlet.java @@ -9,12 +9,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "gettransactioncountbyblocknum", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetTransactionCountByBlockNumServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionFromPendingServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionFromPendingServlet.java index 114f12445f5..d7fd07522c1 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionFromPendingServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionFromPendingServlet.java @@ -9,12 +9,14 @@ import org.tron.common.utils.ByteArray; import org.tron.core.capsule.TransactionCapsule; import org.tron.core.db.Manager; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "gettransactionfrompending", access = Access.READ, + surfaces = {Surface.FULL}) public class GetTransactionFromPendingServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServlet.java index a0c1ce6c383..b1b05126485 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByBlockNumServlet.java @@ -10,9 +10,9 @@ import org.tron.api.GrpcAPI.NumberMessage; import org.tron.api.GrpcAPI.TransactionInfoList; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONArray; import org.tron.json.JSONObject; import org.tron.protos.Protocol.TransactionInfo; @@ -20,6 +20,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "gettransactioninfobyblocknum", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetTransactionInfoByBlockNumServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServlet.java index 04f5bf38a21..52be3ef3f56 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionInfoByIdServlet.java @@ -11,14 +11,16 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.TransactionInfo; import org.tron.protos.Protocol.TransactionInfo.Log; @Component @Slf4j(topic = "API") +@HttpApi(value = "gettransactioninfobyid", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class GetTransactionInfoByIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServlet.java index fb5f254094a..93601cf1b76 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionListFromPendingServlet.java @@ -8,11 +8,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.TransactionIdList; import org.tron.core.db.Manager; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "gettransactionlistfrompending", access = Access.READ, + surfaces = {Surface.FULL}) public class GetTransactionListFromPendingServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionReceiptByIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionReceiptByIdServlet.java index 2e3af3d5648..3bf2f9eb1a3 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionReceiptByIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionReceiptByIdServlet.java @@ -9,13 +9,15 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.protos.Protocol.TransactionInfo; @Component @Slf4j(topic = "API") +@HttpApi(value = "gettransactionreceiptbyid", access = Access.READ, + surfaces = {Surface.FULL}) public class GetTransactionReceiptByIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionSignWeightServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionSignWeightServlet.java index 48728282759..6ae5373f665 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionSignWeightServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTransactionSignWeightServlet.java @@ -6,13 +6,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.TransactionSignWeight; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.core.utils.TransactionUtil; import org.tron.protos.Protocol.Transaction; @Component @Slf4j(topic = "API") +@HttpApi(value = "getsignweight", access = Access.READ, + surfaces = {Surface.FULL}) public class GetTransactionSignWeightServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetTriggerInputForShieldedTRC20ContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetTriggerInputForShieldedTRC20ContractServlet.java index 14a174c65ff..5bedddb2ddd 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetTriggerInputForShieldedTRC20ContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetTriggerInputForShieldedTRC20ContractServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.BytesMessage; import org.tron.api.GrpcAPI.ShieldedTRC20TriggerContractParameters; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "gettriggerinputforshieldedtrc20contract", access = Access.READ, + surfaces = {Surface.FULL}) public class GetTriggerInputForShieldedTRC20ContractServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetZenPaymentAddressServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetZenPaymentAddressServlet.java index 5795616c058..b750a86f094 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetZenPaymentAddressServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetZenPaymentAddressServlet.java @@ -9,14 +9,17 @@ import org.tron.api.GrpcAPI; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.core.zen.address.DiversifierT; import org.tron.core.zen.address.IncomingViewingKey; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") +@HttpApi(value = "getzenpaymentaddress", access = Access.READ, + surfaces = {Surface.FULL}) public class GetZenPaymentAddressServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/IsShieldedTRC20ContractNoteSpentServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/IsShieldedTRC20ContractNoteSpentServlet.java index bb03cd7d7ed..ff68577f4c2 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/IsShieldedTRC20ContractNoteSpentServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/IsShieldedTRC20ContractNoteSpentServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI; import org.tron.api.GrpcAPI.NfTRC20Parameters; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "isshieldedtrc20contractnotespent", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class IsShieldedTRC20ContractNoteSpentServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java index 0ef395ff420..919ba0c5a60 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.NoteParameters; import org.tron.api.GrpcAPI.SpendResult; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "isspend", access = Access.READ, + surfaces = {Surface.PBFT}) public class IsSpendServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/JsonFormat.java b/framework/src/main/java/org/tron/core/services/http/servlets/JsonFormat.java similarity index 99% rename from framework/src/main/java/org/tron/core/services/http/JsonFormat.java rename to framework/src/main/java/org/tron/core/services/http/servlets/JsonFormat.java index 2fa7d9fbb42..0561b9de564 100644 --- a/framework/src/main/java/org/tron/core/services/http/JsonFormat.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/JsonFormat.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; /* Copyright (c) 2009, Orbitz World Wide @@ -58,6 +58,7 @@ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT import org.tron.common.utils.Commons; import org.tron.common.utils.StringUtil; import org.tron.core.Constant; +import org.tron.core.services.http.HttpSelfFormatFieldName; import org.tron.protos.contract.BalanceContract; /** diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ListExchangesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ListExchangesServlet.java index d7b064338b8..3f26bbbc905 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ListExchangesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ListExchangesServlet.java @@ -6,11 +6,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "listexchanges", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class ListExchangesServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ListNodesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ListNodesServlet.java index a186043e48b..d61df490b93 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ListNodesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ListNodesServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NodeList; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "listnodes", access = Access.READ, + surfaces = {Surface.FULL}) public class ListNodesServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ListProposalsServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ListProposalsServlet.java index 4f12fe87e2b..cc3b9eae312 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ListProposalsServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ListProposalsServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.ProposalList; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "listproposals", access = Access.READ, + surfaces = {Surface.FULL}) public class ListProposalsServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ListWitnessesServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ListWitnessesServlet.java index 6850c9e01c4..a789e10d0cd 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ListWitnessesServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ListWitnessesServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.WitnessList; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "listwitnesses", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class ListWitnessesServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/MarketCancelOrderServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/MarketCancelOrderServlet.java index 7aebd235dee..b1ad8509a9b 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/MarketCancelOrderServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/MarketCancelOrderServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "marketcancelorder", access = Access.BUILD, + surfaces = {Surface.FULL}) public class MarketCancelOrderServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/MarketSellAssetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/MarketSellAssetServlet.java index 8a99938a69e..b34f3e8a4c6 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/MarketSellAssetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/MarketSellAssetServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "marketsellasset", access = Access.BUILD, + surfaces = {Surface.FULL}) public class MarketSellAssetServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java index 79a66d9e44a..5962b1f99f7 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java @@ -7,11 +7,12 @@ import org.springframework.stereotype.Component; import org.tron.core.metrics.MetricsApiService; import org.tron.core.metrics.MetricsInfo; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApiExcluded; import org.tron.json.JSON; @Component @Slf4j(topic = "API") +@HttpApiExcluded("root-mounted at /monitor/getstatsinfo, not a /wallet endpoint") public class MetricsServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServlet.java index c0f53c3d330..b79d9ab4b88 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ParticipateAssetIssueServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "participateassetissue", access = Access.BUILD, + surfaces = {Surface.FULL}) public class ParticipateAssetIssueServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/PostParams.java b/framework/src/main/java/org/tron/core/services/http/servlets/PostParams.java similarity index 88% rename from framework/src/main/java/org/tron/core/services/http/PostParams.java rename to framework/src/main/java/org/tron/core/services/http/servlets/PostParams.java index 7dcb0be6ae3..c9611effda8 100644 --- a/framework/src/main/java/org/tron/core/services/http/PostParams.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/PostParams.java @@ -1,7 +1,7 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.apache.http.entity.ContentType.APPLICATION_FORM_URLENCODED; -import static org.tron.core.services.http.Util.getJsonString; +import static org.tron.core.services.http.servlets.Util.getJsonString; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ProposalApproveServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalApproveServlet.java index 2d01d74844c..39145400f8e 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ProposalApproveServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalApproveServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "proposalapprove", access = Access.BUILD, + surfaces = {Surface.FULL}) public class ProposalApproveServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ProposalCreateServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalCreateServlet.java index 007062b876c..86a2ca4d4a4 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ProposalCreateServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalCreateServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "proposalcreate", access = Access.BUILD, + surfaces = {Surface.FULL}) public class ProposalCreateServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ProposalDeleteServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalDeleteServlet.java index d489b2bddea..2793fa47d59 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ProposalDeleteServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ProposalDeleteServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "proposaldelete", access = Access.BUILD, + surfaces = {Surface.FULL}) public class ProposalDeleteServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/RateLimiterServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/RateLimiterServlet.java index 347c19b2fa0..83a0036abdb 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/RateLimiterServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/RateLimiterServlet.java @@ -22,8 +22,6 @@ import org.tron.common.prometheus.Metrics; import org.tron.core.config.args.Args; import org.tron.core.exception.TronError; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; import org.tron.core.services.ratelimiter.GlobalRateLimiter; import org.tron.core.services.ratelimiter.RateLimiterContainer; import org.tron.core.services.ratelimiter.RuntimeData; diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java index 80477de0ba5..be98201d4ef 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java @@ -9,14 +9,16 @@ import org.tron.api.GrpcAPI.IvkDecryptAndMarkParameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONArray; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") +@HttpApi(value = "scanandmarknotebyivk", access = Access.READ, + surfaces = {Surface.PBFT}) public class ScanAndMarkNoteByIvkServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java index 69aeee61639..31728f4ef55 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java @@ -10,14 +10,16 @@ import org.tron.api.GrpcAPI.IvkDecryptParameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONArray; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") +@HttpApi(value = "scannotebyivk", access = Access.READ, + surfaces = {Surface.PBFT}) public class ScanNoteByIvkServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java index 75ec502d27f..f0c0c80eabf 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java @@ -10,12 +10,14 @@ import org.tron.api.GrpcAPI.OvkDecryptParameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "scannotebyovk", access = Access.READ, + surfaces = {Surface.PBFT}) public class ScanNoteByOvkServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByIvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByIvkServlet.java index 665c88dc73a..fbc82f20238 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByIvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByIvkServlet.java @@ -9,14 +9,16 @@ import org.tron.api.GrpcAPI.IvkDecryptTRC20Parameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONArray; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") +@HttpApi(value = "scanshieldedtrc20notesbyivk", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class ScanShieldedTRC20NotesByIvkServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByOvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByOvkServlet.java index 176ad66071d..14d02f7345c 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByOvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesByOvkServlet.java @@ -9,12 +9,14 @@ import org.tron.api.GrpcAPI.OvkDecryptTRC20Parameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "scanshieldedtrc20notesbyovk", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class ScanShieldedTRC20NotesByOvkServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/SetAccountIdServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/SetAccountIdServlet.java index de02f54e310..4486c0b6fc5 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/SetAccountIdServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/SetAccountIdServlet.java @@ -7,14 +7,17 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol; import org.tron.protos.contract.AccountContract.SetAccountIdContract; @Component @Slf4j(topic = "API") +@HttpApi(value = "setaccountid", access = Access.BUILD, + surfaces = {Surface.FULL}) public class SetAccountIdServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/TotalTransactionServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TotalTransactionServlet.java index 6d6f4085d4f..c7171996fb8 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/TotalTransactionServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TotalTransactionServlet.java @@ -7,11 +7,14 @@ import org.springframework.stereotype.Component; import org.tron.api.GrpcAPI.NumberMessage; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; @Component @Slf4j(topic = "API") +@HttpApi(value = "totaltransaction", access = Access.READ, + surfaces = {Surface.FULL}) public class TotalTransactionServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/TransferAssetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TransferAssetServlet.java index 145e8579b6b..f20cc4f713a 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/TransferAssetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TransferAssetServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "transferasset", access = Access.BUILD, + surfaces = {Surface.FULL}) public class TransferAssetServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/TransferServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TransferServlet.java index 35e8fe57564..fc67cf24d91 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/TransferServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TransferServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "createtransaction", access = Access.BUILD, + surfaces = {Surface.FULL}) public class TransferServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/TriggerConstantContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TriggerConstantContractServlet.java index 56b9237e748..79fd4fd4e8e 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/TriggerConstantContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TriggerConstantContractServlet.java @@ -16,8 +16,9 @@ import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; import org.tron.core.exception.ContractValidateException; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -25,6 +26,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "triggerconstantcontract", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY, Surface.PBFT, Surface.SOLIDITY_NODE}) public class TriggerConstantContractServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/TriggerSmartContractServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/TriggerSmartContractServlet.java index 2dca987b58d..21fdf8580d2 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/TriggerSmartContractServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/TriggerSmartContractServlet.java @@ -17,8 +17,9 @@ import org.tron.core.Wallet; import org.tron.core.capsule.TransactionCapsule; import org.tron.core.exception.ContractValidateException; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -26,6 +27,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "triggersmartcontract", access = Access.BUILD, + surfaces = {Surface.FULL}) public class TriggerSmartContractServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UnDelegateResourceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UnDelegateResourceServlet.java index 22b9b6c20ed..7743041aabe 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UnDelegateResourceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UnDelegateResourceServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "undelegateresource", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UnDelegateResourceServlet extends RateLimiterServlet { @Autowired private Wallet wallet; diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeAssetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeAssetServlet.java index b8506012f96..d585c348e5d 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeAssetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeAssetServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "unfreezeasset", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UnFreezeAssetServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceServlet.java index 22e9237a433..d2236c9603d 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "unfreezebalance", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UnFreezeBalanceServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2Servlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2Servlet.java index 8e2173f9f2a..762836ed09d 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2Servlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UnFreezeBalanceV2Servlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "unfreezebalancev2", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UnFreezeBalanceV2Servlet extends RateLimiterServlet { @Autowired private Wallet wallet; diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAccountServlet.java index 79a921754a3..4ef015c8593 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAccountServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "updateaccount", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UpdateAccountServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAssetServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAssetServlet.java index 448976da61a..f516c49896d 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAssetServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateAssetServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "updateasset", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UpdateAssetServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateBrokerageServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateBrokerageServlet.java index 2bca7bb5c2d..82d0fa9279d 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateBrokerageServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateBrokerageServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "updateBrokerage", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UpdateBrokerageServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServlet.java index effd1222953..217c9615061 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateEnergyLimitServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "updateenergylimit", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UpdateEnergyLimitServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateSettingServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateSettingServlet.java index b05ee0ff24e..36311d05170 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateSettingServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateSettingServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "updatesetting", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UpdateSettingServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateWitnessServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateWitnessServlet.java index 19b13910cf4..151f919dc4a 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/UpdateWitnessServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/UpdateWitnessServlet.java @@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.PostParams; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +16,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "updatewitness", access = Access.BUILD, + surfaces = {Surface.FULL}) public class UpdateWitnessServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/Util.java b/framework/src/main/java/org/tron/core/services/http/servlets/Util.java similarity index 99% rename from framework/src/main/java/org/tron/core/services/http/Util.java rename to framework/src/main/java/org/tron/core/services/http/servlets/Util.java index 5be2495e1f7..e0723d4e9c9 100644 --- a/framework/src/main/java/org/tron/core/services/http/Util.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/Util.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.apache.commons.lang3.StringUtils.EMPTY; import static org.tron.common.utils.Commons.decodeFromBase58Check; @@ -48,7 +48,7 @@ import org.tron.core.capsule.TransactionCapsule; import org.tron.core.config.args.Args; import org.tron.core.db.TransactionTrace; -import org.tron.core.services.http.JsonFormat.ParseException; +import org.tron.core.services.http.servlets.JsonFormat.ParseException; import org.tron.json.JSON; import org.tron.json.JSONArray; import org.tron.json.JSONException; diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ValidateAddressServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ValidateAddressServlet.java index ee2e3f635d3..05227d86b0b 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ValidateAddressServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ValidateAddressServlet.java @@ -10,12 +10,16 @@ import org.tron.common.utils.ByteArray; import org.tron.common.utils.Commons; import org.tron.common.utils.DecodeUtil; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSON; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") +@HttpApi(value = "validateaddress", access = Access.READ, + surfaces = {Surface.FULL}) public class ValidateAddressServlet extends RateLimiterServlet { private String validAddress(String input) { diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/VoteWitnessAccountServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/VoteWitnessAccountServlet.java index f9b29070012..ef47f033700 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/VoteWitnessAccountServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/VoteWitnessAccountServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "votewitnessaccount", access = Access.BUILD, + surfaces = {Surface.FULL}) public class VoteWitnessAccountServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawBalanceServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawBalanceServlet.java index 4d18975696a..7452ce8ade9 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawBalanceServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawBalanceServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; @@ -16,6 +17,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "withdrawbalance", access = Access.BUILD, + surfaces = {Surface.FULL}) public class WithdrawBalanceServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServlet.java index b6c88df5bf3..15b0294bfa5 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/WithdrawExpireUnfreezeServlet.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; import org.tron.json.JSON; import org.tron.json.JSONObject; import org.tron.protos.Protocol.Transaction; @@ -17,6 +18,8 @@ @Component @Slf4j(topic = "API") +@HttpApi(value = "withdrawexpireunfreeze", access = Access.BUILD, + surfaces = {Surface.FULL}) public class WithdrawExpireUnfreezeServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java b/framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java similarity index 90% rename from framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java rename to framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java index a0822e2a816..1af4ec0dc34 100644 --- a/framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java +++ b/framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.solidity; import java.util.EnumSet; import javax.servlet.DispatcherType; @@ -12,6 +12,8 @@ import org.tron.common.application.HttpService; import org.tron.core.config.args.Args; import org.tron.core.services.filter.HttpApiAccessFilter; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApiRegistry; import org.tron.core.services.http.servlets.GetNodeInfoServlet; @Component @@ -42,7 +44,7 @@ protected void addServlet(ServletContextHandler context) { * application context; getnodeinfo is additionally reachable under the fullnode prefix. */ protected void addServletsFromRegistry(ServletContextHandler context) { - for (HttpApiDef def : HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY_NODE)) { + for (HttpApiRegistry.Entry def : HttpApiRegistry.forSurface(HttpApi.Surface.SOLIDITY_NODE)) { context.addServlet(new ServletHolder(appContext.getBean(def.getServlet())), "/walletsolidity/" + def.getSuffix()); } diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java index 5230faf4fd1..37b20aba0e5 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java @@ -13,7 +13,8 @@ import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; import org.tron.core.services.filter.PbftCursorFilter; -import org.tron.core.services.http.HttpApiDef; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApiRegistry; @Slf4j(topic = "API") public class HttpApiOnPBFTService extends HttpService { @@ -44,7 +45,7 @@ protected void addServlet(ServletContextHandler context) { * surface, resolving servlet beans from the application context. */ protected void addServletsFromRegistry(ServletContextHandler context) { - for (HttpApiDef def : HttpApiDef.forSurface(HttpApiDef.Surface.PBFT)) { + for (HttpApiRegistry.Entry def : HttpApiRegistry.forSurface(HttpApi.Surface.PBFT)) { context.addServlet(new ServletHolder(appContext.getBean(def.getServlet())), "/" + def.getSuffix()); } diff --git a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java index 25d3de4f432..be19716b360 100644 --- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java +++ b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java @@ -13,7 +13,8 @@ import org.tron.core.services.filter.HttpApiAccessFilter; import org.tron.core.services.filter.LiteFnQueryHttpFilter; import org.tron.core.services.filter.SolidityCursorFilter; -import org.tron.core.services.http.HttpApiDef; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApiRegistry; import org.tron.core.services.http.servlets.GetNodeInfoServlet; @Slf4j(topic = "API") @@ -49,7 +50,7 @@ protected void addServlet(ServletContextHandler context) { * context; getnodeinfo is additionally reachable under the fullnode prefix on this port. */ protected void addServletsFromRegistry(ServletContextHandler context) { - for (HttpApiDef def : HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY)) { + for (HttpApiRegistry.Entry def : HttpApiRegistry.forSurface(HttpApi.Surface.SOLIDITY)) { context.addServlet(new ServletHolder(appContext.getBean(def.getServlet())), "/walletsolidity/" + def.getSuffix()); } diff --git a/framework/src/main/java/org/tron/core/services/jsonrpc/TronJsonRpcImpl.java b/framework/src/main/java/org/tron/core/services/jsonrpc/TronJsonRpcImpl.java index 6be47886117..f5ad4ab23d2 100644 --- a/framework/src/main/java/org/tron/core/services/jsonrpc/TronJsonRpcImpl.java +++ b/framework/src/main/java/org/tron/core/services/jsonrpc/TronJsonRpcImpl.java @@ -1,8 +1,8 @@ package org.tron.core.services.jsonrpc; import static org.tron.core.Wallet.CONTRACT_VALIDATE_ERROR; -import static org.tron.core.services.http.Util.setTransactionExtraData; -import static org.tron.core.services.http.Util.setTransactionPermissionId; +import static org.tron.core.services.http.servlets.Util.setTransactionExtraData; +import static org.tron.core.services.http.servlets.Util.setTransactionPermissionId; import static org.tron.core.services.jsonrpc.JsonRpcApiUtil.FINALIZED_STR; import static org.tron.core.services.jsonrpc.JsonRpcApiUtil.HASH_REGEX; import static org.tron.core.services.jsonrpc.JsonRpcApiUtil.LATEST_STR; @@ -77,8 +77,8 @@ import org.tron.core.exception.jsonrpc.JsonRpcMethodNotFoundException; import org.tron.core.exception.jsonrpc.JsonRpcTooManyResultException; import org.tron.core.services.NodeInfoService; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.Util; +import org.tron.core.services.http.servlets.JsonFormat; +import org.tron.core.services.http.servlets.Util; import org.tron.core.services.jsonrpc.filters.BlockFilterAndResult; import org.tron.core.services.jsonrpc.filters.LogBlockQuery; import org.tron.core.services.jsonrpc.filters.LogFilter; diff --git a/framework/src/test/java/org/tron/common/utils/client/utils/TransactionUtils.java b/framework/src/test/java/org/tron/common/utils/client/utils/TransactionUtils.java index 63ffe1b58ff..7fa9fa71fa0 100644 --- a/framework/src/test/java/org/tron/common/utils/client/utils/TransactionUtils.java +++ b/framework/src/test/java/org/tron/common/utils/client/utils/TransactionUtils.java @@ -30,7 +30,7 @@ import org.tron.core.capsule.TransactionCapsule; import org.tron.core.exception.PermissionException; import org.tron.core.exception.SignatureFormatException; -import org.tron.core.services.http.JsonFormat; +import org.tron.core.services.http.servlets.JsonFormat; import org.tron.core.store.AccountStore; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract; diff --git a/framework/src/test/java/org/tron/core/ShieldWalletTest.java b/framework/src/test/java/org/tron/core/ShieldWalletTest.java index 0353d260eff..988364bb3c4 100644 --- a/framework/src/test/java/org/tron/core/ShieldWalletTest.java +++ b/framework/src/test/java/org/tron/core/ShieldWalletTest.java @@ -26,8 +26,8 @@ import org.tron.core.exception.ContractExeException; import org.tron.core.exception.ContractValidateException; import org.tron.core.exception.ZksnarkException; -import org.tron.core.services.http.JsonFormat; -import org.tron.core.services.http.JsonFormat.ParseException; +import org.tron.core.services.http.servlets.JsonFormat; +import org.tron.core.services.http.servlets.JsonFormat.ParseException; public class ShieldWalletTest extends BaseTest { diff --git a/framework/src/test/java/org/tron/core/services/filter/WalletCursorFilterTest.java b/framework/src/test/java/org/tron/core/services/filter/WalletCursorFilterTest.java index 44de7acbf20..4f35547ceb3 100644 --- a/framework/src/test/java/org/tron/core/services/filter/WalletCursorFilterTest.java +++ b/framework/src/test/java/org/tron/core/services/filter/WalletCursorFilterTest.java @@ -1,69 +1,91 @@ package org.tron.core.services.filter; -import static org.mockito.ArgumentMatchers.any; +import static org.junit.Assert.fail; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; -import org.junit.Assert; import org.junit.Test; import org.mockito.InOrder; import org.tron.core.db.Manager; import org.tron.core.db2.core.Chainbase; +/** + * Behaviour of the cursor filters that replaced the per-servlet OnSolidity / OnPBFT wrappers. + * The route tests only prove which paths are mounted; these prove the cursor is actually switched + * for the request and always reset, so a solidity/pbft read cannot silently serve HEAD state and a + * cursor cannot leak onto a pooled jetty thread. + */ public class WalletCursorFilterTest { - private final Manager dbManager = mock(Manager.class); - private final ServletRequest request = mock(ServletRequest.class); - private final ServletResponse response = mock(ServletResponse.class); - @Test - public void testSolidityFilterSetsAndResetsCursorAroundChain() throws Exception { + public void testSolidityFilterSetsCursorBeforeChainAndResetsAfter() throws Exception { + Manager manager = mock(Manager.class); FilterChain chain = mock(FilterChain.class); - SolidityCursorFilter filter = new SolidityCursorFilter(dbManager); + ServletRequest req = mock(ServletRequest.class); + ServletResponse resp = mock(ServletResponse.class); - filter.doFilter(request, response, chain); + new SolidityCursorFilter(manager).doFilter(req, resp, chain); - InOrder order = inOrder(dbManager, chain); - order.verify(dbManager).setCursor(Chainbase.Cursor.SOLIDITY); - order.verify(chain).doFilter(request, response); - order.verify(dbManager).resetCursor(); - order.verifyNoMoreInteractions(); + // cursor is set to SOLIDITY before the servlet runs and reset only after it returns + InOrder order = inOrder(manager, chain); + order.verify(manager).setCursor(Chainbase.Cursor.SOLIDITY); + order.verify(chain).doFilter(req, resp); + order.verify(manager).resetCursor(); } @Test - public void testPbftFilterSetsAndResetsCursorAroundChain() throws Exception { + public void testPbftFilterSetsCursorBeforeChainAndResetsAfter() throws Exception { + Manager manager = mock(Manager.class); FilterChain chain = mock(FilterChain.class); - PbftCursorFilter filter = new PbftCursorFilter(dbManager); + ServletRequest req = mock(ServletRequest.class); + ServletResponse resp = mock(ServletResponse.class); - filter.doFilter(request, response, chain); + new PbftCursorFilter(manager).doFilter(req, resp, chain); - InOrder order = inOrder(dbManager, chain); - order.verify(dbManager).setCursor(Chainbase.Cursor.PBFT); - order.verify(chain).doFilter(request, response); - order.verify(dbManager).resetCursor(); - order.verifyNoMoreInteractions(); + InOrder order = inOrder(manager, chain); + order.verify(manager).setCursor(Chainbase.Cursor.PBFT); + order.verify(chain).doFilter(req, resp); + order.verify(manager).resetCursor(); } @Test - public void testCursorResetEvenIfChainThrows() throws Exception { + public void testCursorIsResetWhenChainThrows() throws Exception { + Manager manager = mock(Manager.class); FilterChain chain = mock(FilterChain.class); - doThrow(new ServletException("boom")).when(chain).doFilter(any(), any()); - SolidityCursorFilter filter = new SolidityCursorFilter(dbManager); + ServletRequest req = mock(ServletRequest.class); + ServletResponse resp = mock(ServletResponse.class); + doThrow(new ServletException("boom")).when(chain).doFilter(req, resp); try { - filter.doFilter(request, response, chain); - Assert.fail("expected ServletException"); + new SolidityCursorFilter(manager).doFilter(req, resp, chain); + fail("expected the chain exception to propagate"); } catch (ServletException expected) { - Assert.assertEquals("boom", expected.getMessage()); + // expected } + // the finally block must still restore HEAD, or the next request on this thread reads SOLIDITY + verify(manager).resetCursor(); + } + + @Test + public void testCursorIsResetOnEverySequentialRequest() throws Exception { + Manager manager = mock(Manager.class); + FilterChain chain = mock(FilterChain.class); + ServletRequest req = mock(ServletRequest.class); + ServletResponse resp = mock(ServletResponse.class); + + SolidityCursorFilter filter = new SolidityCursorFilter(manager); + filter.doFilter(req, resp, chain); + filter.doFilter(req, resp, chain); - verify(dbManager).setCursor(Chainbase.Cursor.SOLIDITY); - verify(dbManager).resetCursor(); + // jetty reuses worker threads: each request must reset, so no cursor leaks into the next + verify(manager, times(2)).setCursor(Chainbase.Cursor.SOLIDITY); + verify(manager, times(2)).resetCursor(); } } diff --git a/framework/src/test/java/org/tron/core/services/http/CursorFilterInstallationTest.java b/framework/src/test/java/org/tron/core/services/http/CursorFilterInstallationTest.java new file mode 100644 index 00000000000..7af802617e3 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/CursorFilterInstallationTest.java @@ -0,0 +1,109 @@ +package org.tron.core.services.http; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.withSettings; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import javax.servlet.Filter; +import org.eclipse.jetty.servlet.FilterHolder; +import org.eclipse.jetty.servlet.FilterMapping; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Answers; +import org.tron.core.db.Manager; +import org.tron.core.services.filter.PbftCursorFilter; +import org.tron.core.services.filter.SolidityCursorFilter; +import org.tron.core.services.http.solidity.SolidityNodeHttpApiService; +import org.tron.core.services.interfaceOnPBFT.HttpApiOnPBFTService; +import org.tron.core.services.interfaceOnSolidity.HttpApiOnSolidityService; + +/** + * Guards that each http service installs (or omits) its read-cursor filter. The route tests cannot + * catch a dropped cursor filter — the paths would still mount, but a solidity/pbft read would + * silently serve HEAD state. This pins the filter to its port so that regression fails a test. + */ +public class CursorFilterInstallationTest { + + @Test + public void testSolidityServiceInstallsSolidityCursorFilterOnAllPaths() throws Exception { + Map> cursor = cursorFilterMappings(HttpApiOnSolidityService.class); + Assert.assertEquals(Collections.singleton("/*"), cursor.get("SolidityCursorFilter")); + Assert.assertEquals(1, cursor.size()); + } + + @Test + public void testPbftServiceInstallsPbftCursorFilterOnAllPaths() throws Exception { + Map> cursor = cursorFilterMappings(HttpApiOnPBFTService.class); + Assert.assertEquals(Collections.singleton("/*"), cursor.get("PbftCursorFilter")); + Assert.assertEquals(1, cursor.size()); + } + + @Test + public void testFullNodeServiceInstallsNoCursorFilter() throws Exception { + // the fullnode port reads HEAD; a cursor filter here would switch it off HEAD + Assert.assertTrue(cursorFilterMappings(FullNodeHttpApiService.class).isEmpty()); + } + + @Test + public void testSolidityNodeServiceInstallsNoCursorFilter() throws Exception { + // the standalone solidity node's db head already is the solidified view + Assert.assertTrue(cursorFilterMappings(SolidityNodeHttpApiService.class).isEmpty()); + } + + /** + * Runs a service's real addFilter against a jetty context with its filter fields injected, and + * returns each installed cursor filter's simple class name mapped to its path specs. + */ + private static Map> cursorFilterMappings(Class serviceClass) + throws Exception { + Manager manager = mock(Manager.class); + Object service = mock(serviceClass, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS)); + for (Field field : serviceClass.getDeclaredFields()) { + if (!Filter.class.isAssignableFrom(field.getType())) { + continue; + } + field.setAccessible(true); + if (field.getType() == SolidityCursorFilter.class) { + field.set(service, new SolidityCursorFilter(manager)); + } else if (field.getType() == PbftCursorFilter.class) { + field.set(service, new PbftCursorFilter(manager)); + } else { + field.set(service, mock(field.getType())); + } + } + + ServletContextHandler context = new ServletContextHandler(); + Method addFilter = serviceClass.getDeclaredMethod("addFilter", ServletContextHandler.class); + addFilter.setAccessible(true); + addFilter.invoke(service, context); + + // identify cursor filters by held class name (an instance holder's getFilter() is null before + // start, but its class name is set in the constructor) + Map cursorFilterNames = new HashMap<>(); + for (FilterHolder holder : context.getServletHandler().getFilters()) { + String className = holder.getClassName(); + if (SolidityCursorFilter.class.getName().equals(className) + || PbftCursorFilter.class.getName().equals(className)) { + cursorFilterNames.put(holder.getName(), + className.substring(className.lastIndexOf('.') + 1)); + } + } + Map> result = new HashMap<>(); + for (FilterMapping mapping : context.getServletHandler().getFilterMappings()) { + String simpleName = cursorFilterNames.get(mapping.getFilterName()); + if (simpleName != null) { + result.computeIfAbsent(simpleName, k -> new HashSet<>()) + .addAll(Arrays.asList(mapping.getPathSpecs())); + } + } + return result; + } +} diff --git a/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java b/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java deleted file mode 100644 index e64b47d4e1b..00000000000 --- a/framework/src/test/java/org/tron/core/services/http/HttpApiDefTest.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.tron.core.services.http; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.withSettings; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletMapping; -import org.junit.Assert; -import org.junit.Test; -import org.mockito.Answers; -import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Component; -import org.tron.core.services.interfaceOnPBFT.HttpApiOnPBFTService; -import org.tron.core.services.interfaceOnSolidity.HttpApiOnSolidityService; - -public class HttpApiDefTest { - - @Test - public void testTableInvariantsHold() { - // must not throw: unique suffixes, non-READ rows are FULL-only - HttpApiDef.validate(); - for (HttpApiDef def : HttpApiDef.values()) { - if (def.getAccess() != HttpApiDef.Access.READ) { - Assert.assertEquals(def.name() + " must be FULL-only", - new HashSet<>(Arrays.asList(HttpApiDef.Surface.FULL)), - surfacesOf(def)); - } - Assert.assertFalse(def.name() + " suffix must not contain '/'", - def.getSuffix().contains("/")); - } - } - - @Test - public void testEveryServletIsASpringComponent() { - // registry mounting resolves servlets from the context; a non-bean class fails the boot - for (HttpApiDef def : HttpApiDef.values()) { - Assert.assertTrue(def.getServlet().getName() + " must be annotated with @Component", - def.getServlet().isAnnotationPresent(Component.class)); - } - } - - @Test - public void testSurfaceRowCounts() { - Assert.assertEquals(120, HttpApiDef.values().length); - Assert.assertEquals(120, HttpApiDef.forSurface(HttpApiDef.Surface.FULL).size()); - Assert.assertEquals(44, HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY).size()); - Assert.assertEquals(44, HttpApiDef.forSurface(HttpApiDef.Surface.PBFT).size()); - Assert.assertEquals(44, HttpApiDef.forSurface(HttpApiDef.Surface.SOLIDITY_NODE).size()); - } - - @Test - public void testFullNodeServiceMountsExactlyTheRegistry() throws Exception { - Set expected = pathsOf(HttpApiDef.Surface.FULL, "/wallet/"); - expected.add("/net/listnodes"); - expected.add("/monitor/getstatsinfo"); - expected.add("/monitor/getnodeinfo"); - Assert.assertEquals(expected, mountedPaths(FullNodeHttpApiService.class)); - } - - @Test - public void testSolidityServiceMountsExactlyTheRegistry() throws Exception { - Set expected = pathsOf(HttpApiDef.Surface.SOLIDITY, "/walletsolidity/"); - expected.add("/wallet/getnodeinfo"); - Assert.assertEquals(expected, mountedPaths(HttpApiOnSolidityService.class)); - } - - @Test - public void testPbftServiceMountsExactlyTheRegistry() throws Exception { - Set expected = pathsOf(HttpApiDef.Surface.PBFT, "/"); - Assert.assertEquals(expected, mountedPaths(HttpApiOnPBFTService.class)); - } - - @Test - public void testSolidityNodeServiceMountsExactlyTheRegistry() throws Exception { - Set expected = pathsOf(HttpApiDef.Surface.SOLIDITY_NODE, "/walletsolidity/"); - expected.add("/wallet/getnodeinfo"); - Assert.assertEquals(expected, mountedPaths(SolidityNodeHttpApiService.class)); - } - - private static Set pathsOf(HttpApiDef.Surface surface, String prefix) { - Set paths = new HashSet<>(); - for (HttpApiDef def : HttpApiDef.forSurface(surface)) { - paths.add(prefix + def.getSuffix()); - } - return paths; - } - - private static Set surfacesOf(HttpApiDef def) { - Set surfaces = new HashSet<>(); - for (HttpApiDef.Surface surface : HttpApiDef.Surface.values()) { - if (HttpApiDef.forSurface(surface).contains(def)) { - surfaces.add(surface); - } - } - return surfaces; - } - - /** - * Instantiates the service without running its constructor, injects a mock application - * context whose beans are mocks, runs the registry-driven registration against a real - * jetty context and returns every mounted path spec. - */ - private static Set mountedPaths(Class serviceClass) throws Exception { - ApplicationContext ctx = mock(ApplicationContext.class); - given(ctx.getBean(any(Class.class))).willAnswer(inv -> mock((Class) inv.getArgument(0))); - - Object service = mock(serviceClass, - withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS)); - Field appContext = serviceClass.getDeclaredField("appContext"); - appContext.setAccessible(true); - appContext.set(service, ctx); - - ServletContextHandler context = new ServletContextHandler(); - Method register = serviceClass - .getDeclaredMethod("addServletsFromRegistry", ServletContextHandler.class); - register.setAccessible(true); - register.invoke(service, context); - - Set mounted = new HashSet<>(); - for (ServletMapping mapping : context.getServletHandler().getServletMappings()) { - mounted.addAll(Arrays.asList(mapping.getPathSpecs())); - } - return mounted; - } -} diff --git a/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java b/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java new file mode 100644 index 00000000000..969fbfd8d51 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java @@ -0,0 +1,300 @@ +package org.tron.core.services.http; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.withSettings; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.annotation.Inherited; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.EnumMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletMapping; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Answers; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; +import org.tron.core.services.http.solidity.SolidityNodeHttpApiService; +import org.tron.core.services.interfaceOnPBFT.HttpApiOnPBFTService; +import org.tron.core.services.interfaceOnSolidity.HttpApiOnSolidityService; + +public class HttpApiRegistryTest { + + private static final String BASELINE = "/http/pre-refactor-routes.txt"; + + private static final String REGTEST = "org.tron.core.services.http.regtest."; + + /** + * Endpoints intentionally added to a surface since the pre-refactor baseline, keyed by the + * commit that added them. Everything else must match the baseline exactly; this map is the + * only place a deliberate exposure change is recorded. + */ + private static final Map> INTENTIONAL_ADDED = new EnumMap<>(Surface.class); + + static { + // 849c29e73a feat(http): expose two solidity read endpoints on pbft surface + INTENTIONAL_ADDED.put(Surface.PBFT, new HashSet<>( + Arrays.asList("getpaginatednowwitnesslist", "gettransactioninfobyblocknum"))); + } + + @Test + public void testRegistryBuildsAndValidates() { + // touching the registry builds and validates the whole table; an invalid table throws here + Assert.assertFalse("registry must not be empty", HttpApiRegistry.all().isEmpty()); + } + + @Test + public void testAnnotationsAreNotInheritable() { + // a subclass must never inherit its parent's exposure — see the removed cursor wrappers + Assert.assertFalse("@HttpApi must not be @Inherited", + HttpApi.class.isAnnotationPresent(Inherited.class)); + Assert.assertFalse("@HttpApiExcluded must not be @Inherited", + HttpApiExcluded.class.isAnnotationPresent(Inherited.class)); + } + + @Test + public void testNonReadIsFullOnly() { + for (HttpApiRegistry.Entry entry : HttpApiRegistry.all()) { + if (entry.getAccess() != Access.READ) { + Assert.assertEquals(entry.getSuffix() + " must be FULL-only", + new HashSet<>(Arrays.asList(Surface.FULL)), entry.getSurfaces()); + } + Assert.assertFalse(entry.getSuffix() + " must not contain '/'", + entry.getSuffix().contains("/")); + } + } + + @Test + public void testEveryHttpApiServletIsASpringComponent() { + for (HttpApiRegistry.Entry entry : HttpApiRegistry.all()) { + Assert.assertNotNull(entry.getServlet().getName() + " must be a @Component", + entry.getServlet().getDeclaredAnnotation(Component.class)); + } + } + + /** + * The independent check: the routes the annotation registry derives must equal the routes the + * four hand-written registration lists mounted before this refactor, read from a checked-in + * fixture, plus only the deltas recorded in {@link #INTENTIONAL_ADDED}. The registry does not + * validate itself. + */ + @Test + public void testDerivedRoutesMatchPreRefactorBaseline() throws Exception { + Map> baseline = loadBaseline(); + for (Surface surface : Surface.values()) { + Set expected = + new TreeSet<>(baseline.getOrDefault(surface, Collections.emptySet())); + expected.addAll(INTENTIONAL_ADDED.getOrDefault(surface, Collections.emptySet())); + Set actual = new TreeSet<>(); + for (HttpApiRegistry.Entry entry : HttpApiRegistry.forSurface(surface)) { + actual.add(entry.getSuffix()); + } + Assert.assertEquals(surface + " routes drifted from the pre-refactor baseline", + expected, actual); + } + } + + /** + * The checked-in audit snapshot must equal the matrix derived from the annotations, so any + * change to an endpoint's access or exposed surfaces surfaces as a one-line diff in review. + */ + @Test + public void testAuditMatrixMatchesSnapshot() throws Exception { + List expected = readLines("/http/api-audit-matrix.txt"); + Assert.assertEquals( + "http api audit matrix changed; if intentional, regenerate the snapshot resource", + expected, HttpApiRegistry.auditMatrix()); + } + + @Test + public void testEveryConcreteServletIsAnnotatedOrExcluded() { + // the completeness net: a servlet cannot be added to the package and silently left unmounted + for (Class servlet : HttpApiRegistry.scanConcreteServlets(HttpApiRegistry.PACKAGE)) { + boolean api = servlet.getDeclaredAnnotation(HttpApi.class) != null; + boolean excluded = servlet.getDeclaredAnnotation(HttpApiExcluded.class) != null; + Assert.assertTrue( + servlet.getName() + " must declare exactly one of @HttpApi / @HttpApiExcluded", + api ^ excluded); + } + } + + @Test + public void testValidFixturePackageBuilds() { + List entries = + HttpApiRegistry.buildFromPackage(REGTEST + "valid"); + Set suffixes = new TreeSet<>(); + for (HttpApiRegistry.Entry entry : entries) { + suffixes.add(entry.getSuffix()); + } + Assert.assertEquals(new TreeSet<>(Arrays.asList("validread", "validwrite")), suffixes); + } + + @Test + public void testUnannotatedServletRejected() { + assertBuildFails(REGTEST + "noanno", "must declare exactly one"); + } + + @Test + public void testBothAnnotationsRejected() { + assertBuildFails(REGTEST + "both", "must declare exactly one"); + } + + @Test + public void testWriteOnCursorSurfaceRejected() { + assertBuildFails(REGTEST + "writecursor", "may only be exposed on the FULL surface"); + } + + @Test + public void testBuildOnCursorSurfaceRejected() { + assertBuildFails(REGTEST + "buildcursor", "may only be exposed on the FULL surface"); + } + + @Test + public void testDuplicateSuffixRejected() { + assertBuildFails(REGTEST + "dupsuffix", "duplicate endpoint"); + } + + @Test + public void testSlashInSuffixRejected() { + assertBuildFails(REGTEST + "slash", "must not contain '/'"); + } + + @Test + public void testBlankSuffixRejected() { + assertBuildFails(REGTEST + "blank", "blank"); + } + + @Test + public void testMissingComponentRejected() { + assertBuildFails(REGTEST + "notcomponent", "must be a @Component"); + } + + @Test + public void testEmptySurfacesRejected() { + assertBuildFails(REGTEST + "emptysurface", "at least one surface"); + } + + private void assertBuildFails(String pkg, String fragment) { + try { + HttpApiRegistry.buildFromPackage(pkg); + Assert.fail("expected build to fail for " + pkg); + } catch (IllegalStateException e) { + Assert.assertTrue("message '" + e.getMessage() + "' should contain '" + fragment + "'", + e.getMessage() != null && e.getMessage().contains(fragment)); + } + } + + @Test + public void testFullNodeServiceMountsExactlyTheRegistry() throws Exception { + Set expected = pathsOf(Surface.FULL, "/wallet/"); + expected.add("/net/listnodes"); + expected.add("/monitor/getstatsinfo"); + expected.add("/monitor/getnodeinfo"); + Assert.assertEquals(expected, mountedPaths(FullNodeHttpApiService.class)); + } + + @Test + public void testSolidityServiceMountsExactlyTheRegistry() throws Exception { + Set expected = pathsOf(Surface.SOLIDITY, "/walletsolidity/"); + expected.add("/wallet/getnodeinfo"); + Assert.assertEquals(expected, mountedPaths(HttpApiOnSolidityService.class)); + } + + @Test + public void testPbftServiceMountsExactlyTheRegistry() throws Exception { + Set expected = pathsOf(Surface.PBFT, "/"); + Assert.assertEquals(expected, mountedPaths(HttpApiOnPBFTService.class)); + } + + @Test + public void testSolidityNodeServiceMountsExactlyTheRegistry() throws Exception { + Set expected = pathsOf(Surface.SOLIDITY_NODE, "/walletsolidity/"); + expected.add("/wallet/getnodeinfo"); + Assert.assertEquals(expected, mountedPaths(SolidityNodeHttpApiService.class)); + } + + private static Set pathsOf(Surface surface, String prefix) { + Set paths = new HashSet<>(); + for (HttpApiRegistry.Entry entry : HttpApiRegistry.forSurface(surface)) { + paths.add(prefix + entry.getSuffix()); + } + return paths; + } + + private List readLines(String resource) throws Exception { + List lines = new ArrayList<>(); + try (InputStream in = getClass().getResourceAsStream(resource)) { + Assert.assertNotNull("missing resource " + resource, in); + BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); + String line; + while ((line = reader.readLine()) != null) { + if (!line.trim().isEmpty() && !line.startsWith("#")) { + lines.add(line); + } + } + } + return lines; + } + + private Map> loadBaseline() throws Exception { + Map> baseline = new EnumMap<>(Surface.class); + try (InputStream in = getClass().getResourceAsStream(BASELINE)) { + Assert.assertNotNull("missing baseline fixture " + BASELINE, in); + BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); + String line; + while ((line = reader.readLine()) != null) { + line = line.trim(); + if (line.isEmpty() || line.startsWith("#")) { + continue; + } + String[] parts = line.split(" "); + baseline.computeIfAbsent(Surface.valueOf(parts[0]), s -> new TreeSet<>()).add(parts[1]); + } + } + return baseline; + } + + /** + * Instantiates the service without running its constructor, injects a mock application + * context whose beans are mocks, runs the registry-driven registration against a real + * jetty context and returns every mounted path spec. + */ + private static Set mountedPaths(Class serviceClass) throws Exception { + ApplicationContext ctx = mock(ApplicationContext.class); + given(ctx.getBean(any(Class.class))).willAnswer(inv -> mock((Class) inv.getArgument(0))); + + Object service = mock(serviceClass, + withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS)); + Field appContext = serviceClass.getDeclaredField("appContext"); + appContext.setAccessible(true); + appContext.set(service, ctx); + + ServletContextHandler context = new ServletContextHandler(); + Method register = serviceClass + .getDeclaredMethod("addServletsFromRegistry", ServletContextHandler.class); + register.setAccessible(true); + register.invoke(service, context); + + Set mounted = new HashSet<>(); + for (ServletMapping mapping : context.getServletHandler().getServletMappings()) { + mounted.addAll(Arrays.asList(mapping.getPathSpecs())); + } + return mounted; + } +} diff --git a/framework/src/test/java/org/tron/core/services/http/RateLimiterServletInt64Test.java b/framework/src/test/java/org/tron/core/services/http/RateLimiterServletInt64Test.java index 86faaa01fff..62266051aa9 100644 --- a/framework/src/test/java/org/tron/core/services/http/RateLimiterServletInt64Test.java +++ b/framework/src/test/java/org/tron/core/services/http/RateLimiterServletInt64Test.java @@ -15,6 +15,7 @@ import org.tron.core.config.args.Args; import org.tron.core.services.http.servlets.GetBurnTrxServlet; import org.tron.core.services.http.servlets.GetNowBlockServlet; +import org.tron.core.services.http.servlets.JsonFormat; /** * End-to-end integration tests for {@link RateLimiterServlet#service} wiring of the diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/blank/BlankServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/blank/BlankServlet.java new file mode 100644 index 00000000000..bb226bb0a4b --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/blank/BlankServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.blank; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** Blank suffix. */ +@Component +@HttpApi(value = "", access = Access.READ, surfaces = {Surface.FULL}) +public class BlankServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/both/BothServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/both/BothServlet.java new file mode 100644 index 00000000000..1ecb2906c4d --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/both/BothServlet.java @@ -0,0 +1,15 @@ +package org.tron.core.services.http.regtest.both; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; +import org.tron.core.services.http.HttpApiExcluded; + +/** Declares both annotations. */ +@Component +@HttpApiExcluded("conflicting") +@HttpApi(value = "both", access = Access.READ, surfaces = {Surface.FULL}) +public class BothServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/buildcursor/BuildOnPbftServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/buildcursor/BuildOnPbftServlet.java new file mode 100644 index 00000000000..ce63244a91c --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/buildcursor/BuildOnPbftServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.buildcursor; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** BUILD on a cursor surface. */ +@Component +@HttpApi(value = "buildcursor", access = Access.BUILD, surfaces = {Surface.PBFT}) +public class BuildOnPbftServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/dupsuffix/DupOneServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/dupsuffix/DupOneServlet.java new file mode 100644 index 00000000000..b5126f5ec28 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/dupsuffix/DupOneServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.dupsuffix; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** Duplicate suffix, one. */ +@Component +@HttpApi(value = "dup", access = Access.READ, surfaces = {Surface.FULL}) +public class DupOneServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/dupsuffix/DupTwoServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/dupsuffix/DupTwoServlet.java new file mode 100644 index 00000000000..96061b55133 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/dupsuffix/DupTwoServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.dupsuffix; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** Duplicate suffix, two. */ +@Component +@HttpApi(value = "dup", access = Access.READ, surfaces = {Surface.FULL}) +public class DupTwoServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/emptysurface/EmptySurfaceServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/emptysurface/EmptySurfaceServlet.java new file mode 100644 index 00000000000..2cfbdd0da60 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/emptysurface/EmptySurfaceServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.emptysurface; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** No surfaces. */ +@Component +@HttpApi(value = "empty", access = Access.READ, surfaces = {}) +public class EmptySurfaceServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/noanno/NoAnnoServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/noanno/NoAnnoServlet.java new file mode 100644 index 00000000000..53093610e99 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/noanno/NoAnnoServlet.java @@ -0,0 +1,8 @@ +package org.tron.core.services.http.regtest.noanno; + +import javax.servlet.http.HttpServlet; + +/** Servlet with no registry annotation. */ + +public class NoAnnoServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/notcomponent/NotComponentServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/notcomponent/NotComponentServlet.java new file mode 100644 index 00000000000..e4ac3eb7a68 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/notcomponent/NotComponentServlet.java @@ -0,0 +1,11 @@ +package org.tron.core.services.http.regtest.notcomponent; + +import javax.servlet.http.HttpServlet; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** @HttpApi without @Component. */ +@HttpApi(value = "notcomp", access = Access.READ, surfaces = {Surface.FULL}) +public class NotComponentServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/slash/SlashServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/slash/SlashServlet.java new file mode 100644 index 00000000000..47481168fb0 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/slash/SlashServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.slash; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** Suffix with a slash. */ +@Component +@HttpApi(value = "a/b", access = Access.READ, surfaces = {Surface.FULL}) +public class SlashServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidExcludedServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidExcludedServlet.java new file mode 100644 index 00000000000..9db7a4b52a5 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidExcludedServlet.java @@ -0,0 +1,9 @@ +package org.tron.core.services.http.regtest.valid; + +import javax.servlet.http.HttpServlet; +import org.tron.core.services.http.HttpApiExcluded; + +/** Excluded fixture, skipped by the registry. */ +@HttpApiExcluded("excluded fixture") +public class ValidExcludedServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidReadServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidReadServlet.java new file mode 100644 index 00000000000..2dc5b0065b0 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidReadServlet.java @@ -0,0 +1,14 @@ +package org.tron.core.services.http.regtest.valid; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** Valid READ fixture. */ +@Component +@HttpApi(value = "validread", access = Access.READ, + surfaces = {Surface.FULL, Surface.SOLIDITY}) +public class ValidReadServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidWriteServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidWriteServlet.java new file mode 100644 index 00000000000..97cfe624028 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/valid/ValidWriteServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.valid; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** Valid WRITE fixture. */ +@Component +@HttpApi(value = "validwrite", access = Access.WRITE, surfaces = {Surface.FULL}) +public class ValidWriteServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/writecursor/WriteOnSolidityServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/writecursor/WriteOnSolidityServlet.java new file mode 100644 index 00000000000..add471f2fff --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/writecursor/WriteOnSolidityServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.writecursor; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** WRITE on a cursor surface. */ +@Component +@HttpApi(value = "writecursor", access = Access.WRITE, surfaces = {Surface.SOLIDITY}) +public class WriteOnSolidityServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2ServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2ServletTest.java index b5a408d8585..3f0d6385275 100644 --- a/framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2ServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/GetDelegatedResourceAccountIndexV2ServletTest.java @@ -11,7 +11,6 @@ import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.tron.common.utils.ByteArray; -import org.tron.core.services.http.Util; import org.tron.protos.Protocol.DelegatedResourceAccountIndex; public class GetDelegatedResourceAccountIndexV2ServletTest extends BaseHttpTest { diff --git a/framework/src/test/java/org/tron/core/services/http/JsonFormatEscapeTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/JsonFormatEscapeTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/JsonFormatEscapeTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/JsonFormatEscapeTest.java index a5c74cc434d..c522d29af03 100644 --- a/framework/src/test/java/org/tron/core/services/http/JsonFormatEscapeTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/JsonFormatEscapeTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -16,6 +16,7 @@ import org.junit.Test; import org.tron.common.utils.ByteArray; import org.tron.core.capsule.TransactionCapsule; +import org.tron.core.services.http.HttpSelfFormatFieldName; import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract.ContractType; import org.tron.protos.contract.AssetIssueContractOuterClass.AssetIssueContract; diff --git a/framework/src/test/java/org/tron/core/services/http/JsonFormatInt64AsStringTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/JsonFormatInt64AsStringTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/JsonFormatInt64AsStringTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/JsonFormatInt64AsStringTest.java index 77ea73999d1..4c0805b4536 100644 --- a/framework/src/test/java/org/tron/core/services/http/JsonFormatInt64AsStringTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/JsonFormatInt64AsStringTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; diff --git a/framework/src/test/java/org/tron/core/services/http/JsonFormatTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/JsonFormatTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/JsonFormatTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/JsonFormatTest.java index 46d1743c5b9..a5bf388e74c 100644 --- a/framework/src/test/java/org/tron/core/services/http/JsonFormatTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/JsonFormatTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -8,13 +8,11 @@ import com.google.protobuf.ByteString; import com.google.protobuf.UnknownFieldSet; - import java.io.CharArrayReader; import java.io.IOException; import java.io.StringWriter; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; - import org.junit.After; import org.junit.Test; import org.mockito.Mockito; diff --git a/framework/src/test/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesServletTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesServletTest.java index e845d886aec..22654be47b9 100644 --- a/framework/src/test/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesServletTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/ScanShieldedTRC20NotesServletTest.java @@ -2,7 +2,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; import static org.tron.common.utils.client.utils.HttpMethed.createRequest; -import static org.tron.core.services.http.Util.EVENTS_DEPRECATED_MSG; +import static org.tron.core.services.http.servlets.Util.EVENTS_DEPRECATED_MSG; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; diff --git a/framework/src/test/java/org/tron/core/services/http/UtilMockTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UtilMockTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/UtilMockTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UtilMockTest.java index d4124c90adf..b7b6faa46a5 100644 --- a/framework/src/test/java/org/tron/core/services/http/UtilMockTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UtilMockTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import com.google.protobuf.Descriptors; diff --git a/framework/src/test/java/org/tron/core/services/http/UtilTest.java b/framework/src/test/java/org/tron/core/services/http/servlets/UtilTest.java similarity index 99% rename from framework/src/test/java/org/tron/core/services/http/UtilTest.java rename to framework/src/test/java/org/tron/core/services/http/servlets/UtilTest.java index c619fd0de54..715c66ba888 100644 --- a/framework/src/test/java/org/tron/core/services/http/UtilTest.java +++ b/framework/src/test/java/org/tron/core/services/http/servlets/UtilTest.java @@ -1,4 +1,4 @@ -package org.tron.core.services.http; +package org.tron.core.services.http.servlets; import com.google.protobuf.ByteString; import javax.annotation.Resource; diff --git a/framework/src/test/java/org/tron/program/SolidityNodeTest.java b/framework/src/test/java/org/tron/program/SolidityNodeTest.java index ed8979b76da..ade00374bc4 100755 --- a/framework/src/test/java/org/tron/program/SolidityNodeTest.java +++ b/framework/src/test/java/org/tron/program/SolidityNodeTest.java @@ -34,7 +34,7 @@ import org.tron.core.config.args.Args; import org.tron.core.net.TronNetDelegate; import org.tron.core.services.RpcApiService; -import org.tron.core.services.http.SolidityNodeHttpApiService; +import org.tron.core.services.http.solidity.SolidityNodeHttpApiService; import org.tron.core.store.DynamicPropertiesStore; import org.tron.protos.Protocol; import org.tron.protos.Protocol.Block; diff --git a/framework/src/test/resources/http/api-audit-matrix.txt b/framework/src/test/resources/http/api-audit-matrix.txt new file mode 100644 index 00000000000..2eb9377ad61 --- /dev/null +++ b/framework/src/test/resources/http/api-audit-matrix.txt @@ -0,0 +1,130 @@ +# Generated audit matrix of http endpoints: "suffix access [surfaces]", one line per +# endpoint, sorted. Regenerated from the @HttpApi annotations by +# HttpApiRegistryTest#testAuditMatrixMatchesSnapshot; a change to any endpoint's exposure +# shows up here as a one-line diff. Do not edit by hand — update the annotation and rerun +# the test (it prints the expected content on mismatch). +accountpermissionupdate BUILD [FULL] +broadcasthex WRITE [FULL] +broadcasttransaction WRITE [FULL] +cancelallunfreezev2 BUILD [FULL] +clearabi BUILD [FULL] +createCommonTransaction BUILD [FULL] +createaccount BUILD [FULL] +createassetissue BUILD [FULL] +createshieldedcontractparameters READ [FULL] +createshieldedcontractparameterswithoutask READ [FULL] +createspendauthsig READ [FULL] +createtransaction BUILD [FULL] +createwitness BUILD [FULL] +delegateresource BUILD [FULL] +deploycontract BUILD [FULL] +estimateenergy READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +exchangecreate BUILD [FULL] +exchangeinject BUILD [FULL] +exchangetransaction BUILD [FULL] +exchangewithdraw BUILD [FULL] +freezebalance BUILD [FULL] +freezebalancev2 BUILD [FULL] +getBrokerage READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getReward READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getaccount READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getaccountbalance READ [FULL] +getaccountbyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getaccountnet READ [FULL] +getaccountresource READ [FULL] +getakfromask READ [FULL] +getapprovedlist READ [FULL] +getassetissuebyaccount READ [FULL] +getassetissuebyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getassetissuebyname READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getassetissuelist READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getassetissuelistbyname READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getavailableunfreezecount READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getbandwidthprices READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getblock READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getblockbalance READ [FULL] +getblockbyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getblockbylatestnum READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getblockbylimitnext READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getblockbynum READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getburntrx READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getcandelegatedmaxsize READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getcanwithdrawunfreezeamount READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getchainparameters READ [FULL] +getcontract READ [FULL] +getcontractinfo READ [FULL] +getdelegatedresource READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getdelegatedresourceaccountindex READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getdelegatedresourceaccountindexv2 READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getdelegatedresourcev2 READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getdiversifier READ [FULL] +getenergyprices READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getexchangebyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getexpandedspendingkey READ [FULL] +getincomingviewingkey READ [FULL] +getmarketorderbyaccount READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getmarketorderbyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getmarketorderlistbypair READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getmarketpairlist READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getmarketpricebypair READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getmemofee READ [FULL] +getmerkletreevoucherinfo READ [PBFT] +getnewshieldedaddress READ [FULL] +getnextmaintenancetime READ [FULL] +getnkfromnsk READ [FULL] +getnodeinfo READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getnowblock READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getpaginatedassetissuelist READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getpaginatedexchangelist READ [FULL] +getpaginatednowwitnesslist READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +getpaginatedproposallist READ [FULL] +getpendingsize READ [FULL] +getproposalbyid READ [FULL] +getrcm READ [FULL] +getsignweight READ [FULL] +getspendingkey READ [FULL] +gettransactionbyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +gettransactioncountbyblocknum READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +gettransactionfrompending READ [FULL] +gettransactioninfobyblocknum READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +gettransactioninfobyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +gettransactionlistfrompending READ [FULL] +gettransactionreceiptbyid READ [FULL] +gettriggerinputforshieldedtrc20contract READ [FULL] +getzenpaymentaddress READ [FULL] +isshieldedtrc20contractnotespent READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +isspend READ [PBFT] +listexchanges READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +listnodes READ [FULL] +listproposals READ [FULL] +listwitnesses READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +marketcancelorder BUILD [FULL] +marketsellasset BUILD [FULL] +participateassetissue BUILD [FULL] +proposalapprove BUILD [FULL] +proposalcreate BUILD [FULL] +proposaldelete BUILD [FULL] +scanandmarknotebyivk READ [PBFT] +scannotebyivk READ [PBFT] +scannotebyovk READ [PBFT] +scanshieldedtrc20notesbyivk READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +scanshieldedtrc20notesbyovk READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +setaccountid BUILD [FULL] +totaltransaction READ [FULL] +transferasset BUILD [FULL] +triggerconstantcontract READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] +triggersmartcontract BUILD [FULL] +undelegateresource BUILD [FULL] +unfreezeasset BUILD [FULL] +unfreezebalance BUILD [FULL] +unfreezebalancev2 BUILD [FULL] +updateBrokerage BUILD [FULL] +updateaccount BUILD [FULL] +updateasset BUILD [FULL] +updateenergylimit BUILD [FULL] +updatesetting BUILD [FULL] +updatewitness BUILD [FULL] +validateaddress READ [FULL] +votewitnessaccount BUILD [FULL] +withdrawbalance BUILD [FULL] +withdrawexpireunfreeze BUILD [FULL] diff --git a/framework/src/test/resources/http/pre-refactor-routes.txt b/framework/src/test/resources/http/pre-refactor-routes.txt new file mode 100644 index 00000000000..356551f0cd1 --- /dev/null +++ b/framework/src/test/resources/http/pre-refactor-routes.txt @@ -0,0 +1,262 @@ +# Pre-refactor http route baseline — the uniform per-surface suffixes mounted by the four +# hand-written registration lists on tronprotocol/java-tron develop, BEFORE the servlet +# dedup + annotation registry. Independent of HttpApiRegistry on purpose: HttpApiRegistryTest +# checks the derived registry against this fixture so the generated table cannot validate +# itself. Root-mounted endpoints (/net/*, /monitor/*, /wallet/getnodeinfo) are excluded — +# they are mounted explicitly by the services, not through the registry. +# Intentional deltas vs this baseline are asserted explicitly in the test. +FULL accountpermissionupdate +FULL broadcasthex +FULL broadcasttransaction +FULL cancelallunfreezev2 +FULL clearabi +FULL createCommonTransaction +FULL createaccount +FULL createassetissue +FULL createshieldedcontractparameters +FULL createshieldedcontractparameterswithoutask +FULL createspendauthsig +FULL createtransaction +FULL createwitness +FULL delegateresource +FULL deploycontract +FULL estimateenergy +FULL exchangecreate +FULL exchangeinject +FULL exchangetransaction +FULL exchangewithdraw +FULL freezebalance +FULL freezebalancev2 +FULL getBrokerage +FULL getReward +FULL getaccount +FULL getaccountbalance +FULL getaccountbyid +FULL getaccountnet +FULL getaccountresource +FULL getakfromask +FULL getapprovedlist +FULL getassetissuebyaccount +FULL getassetissuebyid +FULL getassetissuebyname +FULL getassetissuelist +FULL getassetissuelistbyname +FULL getavailableunfreezecount +FULL getbandwidthprices +FULL getblock +FULL getblockbalance +FULL getblockbyid +FULL getblockbylatestnum +FULL getblockbylimitnext +FULL getblockbynum +FULL getburntrx +FULL getcandelegatedmaxsize +FULL getcanwithdrawunfreezeamount +FULL getchainparameters +FULL getcontract +FULL getcontractinfo +FULL getdelegatedresource +FULL getdelegatedresourceaccountindex +FULL getdelegatedresourceaccountindexv2 +FULL getdelegatedresourcev2 +FULL getdiversifier +FULL getenergyprices +FULL getexchangebyid +FULL getexpandedspendingkey +FULL getincomingviewingkey +FULL getmarketorderbyaccount +FULL getmarketorderbyid +FULL getmarketorderlistbypair +FULL getmarketpairlist +FULL getmarketpricebypair +FULL getmemofee +FULL getnewshieldedaddress +FULL getnextmaintenancetime +FULL getnkfromnsk +FULL getnodeinfo +FULL getnowblock +FULL getpaginatedassetissuelist +FULL getpaginatedexchangelist +FULL getpaginatednowwitnesslist +FULL getpaginatedproposallist +FULL getpendingsize +FULL getproposalbyid +FULL getrcm +FULL getsignweight +FULL getspendingkey +FULL gettransactionbyid +FULL gettransactioncountbyblocknum +FULL gettransactionfrompending +FULL gettransactioninfobyblocknum +FULL gettransactioninfobyid +FULL gettransactionlistfrompending +FULL gettransactionreceiptbyid +FULL gettriggerinputforshieldedtrc20contract +FULL getzenpaymentaddress +FULL isshieldedtrc20contractnotespent +FULL listexchanges +FULL listnodes +FULL listproposals +FULL listwitnesses +FULL marketcancelorder +FULL marketsellasset +FULL participateassetissue +FULL proposalapprove +FULL proposalcreate +FULL proposaldelete +FULL scanshieldedtrc20notesbyivk +FULL scanshieldedtrc20notesbyovk +FULL setaccountid +FULL totaltransaction +FULL transferasset +FULL triggerconstantcontract +FULL triggersmartcontract +FULL undelegateresource +FULL unfreezeasset +FULL unfreezebalance +FULL unfreezebalancev2 +FULL updateBrokerage +FULL updateaccount +FULL updateasset +FULL updateenergylimit +FULL updatesetting +FULL updatewitness +FULL validateaddress +FULL votewitnessaccount +FULL withdrawbalance +FULL withdrawexpireunfreeze +SOLIDITY estimateenergy +SOLIDITY getBrokerage +SOLIDITY getReward +SOLIDITY getaccount +SOLIDITY getaccountbyid +SOLIDITY getassetissuebyid +SOLIDITY getassetissuebyname +SOLIDITY getassetissuelist +SOLIDITY getassetissuelistbyname +SOLIDITY getavailableunfreezecount +SOLIDITY getbandwidthprices +SOLIDITY getblock +SOLIDITY getblockbyid +SOLIDITY getblockbylatestnum +SOLIDITY getblockbylimitnext +SOLIDITY getblockbynum +SOLIDITY getburntrx +SOLIDITY getcandelegatedmaxsize +SOLIDITY getcanwithdrawunfreezeamount +SOLIDITY getdelegatedresource +SOLIDITY getdelegatedresourceaccountindex +SOLIDITY getdelegatedresourceaccountindexv2 +SOLIDITY getdelegatedresourcev2 +SOLIDITY getenergyprices +SOLIDITY getexchangebyid +SOLIDITY getmarketorderbyaccount +SOLIDITY getmarketorderbyid +SOLIDITY getmarketorderlistbypair +SOLIDITY getmarketpairlist +SOLIDITY getmarketpricebypair +SOLIDITY getnodeinfo +SOLIDITY getnowblock +SOLIDITY getpaginatedassetissuelist +SOLIDITY getpaginatednowwitnesslist +SOLIDITY gettransactionbyid +SOLIDITY gettransactioncountbyblocknum +SOLIDITY gettransactioninfobyblocknum +SOLIDITY gettransactioninfobyid +SOLIDITY isshieldedtrc20contractnotespent +SOLIDITY listexchanges +SOLIDITY listwitnesses +SOLIDITY scanshieldedtrc20notesbyivk +SOLIDITY scanshieldedtrc20notesbyovk +SOLIDITY triggerconstantcontract +PBFT estimateenergy +PBFT getBrokerage +PBFT getReward +PBFT getaccount +PBFT getaccountbyid +PBFT getassetissuebyid +PBFT getassetissuebyname +PBFT getassetissuelist +PBFT getassetissuelistbyname +PBFT getavailableunfreezecount +PBFT getbandwidthprices +PBFT getblock +PBFT getblockbyid +PBFT getblockbylatestnum +PBFT getblockbylimitnext +PBFT getblockbynum +PBFT getburntrx +PBFT getcandelegatedmaxsize +PBFT getcanwithdrawunfreezeamount +PBFT getdelegatedresource +PBFT getdelegatedresourceaccountindex +PBFT getdelegatedresourceaccountindexv2 +PBFT getdelegatedresourcev2 +PBFT getenergyprices +PBFT getexchangebyid +PBFT getmarketorderbyaccount +PBFT getmarketorderbyid +PBFT getmarketorderlistbypair +PBFT getmarketpairlist +PBFT getmarketpricebypair +PBFT getmerkletreevoucherinfo +PBFT getnodeinfo +PBFT getnowblock +PBFT getpaginatedassetissuelist +PBFT gettransactionbyid +PBFT gettransactioncountbyblocknum +PBFT gettransactioninfobyid +PBFT isshieldedtrc20contractnotespent +PBFT isspend +PBFT listexchanges +PBFT listwitnesses +PBFT scanandmarknotebyivk +PBFT scannotebyivk +PBFT scannotebyovk +PBFT scanshieldedtrc20notesbyivk +PBFT scanshieldedtrc20notesbyovk +PBFT triggerconstantcontract +SOLIDITY_NODE estimateenergy +SOLIDITY_NODE getBrokerage +SOLIDITY_NODE getReward +SOLIDITY_NODE getaccount +SOLIDITY_NODE getaccountbyid +SOLIDITY_NODE getassetissuebyid +SOLIDITY_NODE getassetissuebyname +SOLIDITY_NODE getassetissuelist +SOLIDITY_NODE getassetissuelistbyname +SOLIDITY_NODE getavailableunfreezecount +SOLIDITY_NODE getbandwidthprices +SOLIDITY_NODE getblock +SOLIDITY_NODE getblockbyid +SOLIDITY_NODE getblockbylatestnum +SOLIDITY_NODE getblockbylimitnext +SOLIDITY_NODE getblockbynum +SOLIDITY_NODE getburntrx +SOLIDITY_NODE getcandelegatedmaxsize +SOLIDITY_NODE getcanwithdrawunfreezeamount +SOLIDITY_NODE getdelegatedresource +SOLIDITY_NODE getdelegatedresourceaccountindex +SOLIDITY_NODE getdelegatedresourceaccountindexv2 +SOLIDITY_NODE getdelegatedresourcev2 +SOLIDITY_NODE getenergyprices +SOLIDITY_NODE getexchangebyid +SOLIDITY_NODE getmarketorderbyaccount +SOLIDITY_NODE getmarketorderbyid +SOLIDITY_NODE getmarketorderlistbypair +SOLIDITY_NODE getmarketpairlist +SOLIDITY_NODE getmarketpricebypair +SOLIDITY_NODE getnodeinfo +SOLIDITY_NODE getnowblock +SOLIDITY_NODE getpaginatedassetissuelist +SOLIDITY_NODE getpaginatednowwitnesslist +SOLIDITY_NODE gettransactionbyid +SOLIDITY_NODE gettransactioncountbyblocknum +SOLIDITY_NODE gettransactioninfobyblocknum +SOLIDITY_NODE gettransactioninfobyid +SOLIDITY_NODE isshieldedtrc20contractnotespent +SOLIDITY_NODE listexchanges +SOLIDITY_NODE listwitnesses +SOLIDITY_NODE scanshieldedtrc20notesbyivk +SOLIDITY_NODE scanshieldedtrc20notesbyovk +SOLIDITY_NODE triggerconstantcontract From 84dbfa09c7b7b19b1ac99010fa7911d0cdc7697e Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 25 Aug 2026 11:58:30 +0800 Subject: [PATCH 16/27] fix comment --- .../java/org/tron/core/services/filter/WalletCursorFilter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/framework/src/main/java/org/tron/core/services/filter/WalletCursorFilter.java b/framework/src/main/java/org/tron/core/services/filter/WalletCursorFilter.java index 0b659fdf478..d7a8f43b696 100644 --- a/framework/src/main/java/org/tron/core/services/filter/WalletCursorFilter.java +++ b/framework/src/main/java/org/tron/core/services/filter/WalletCursorFilter.java @@ -42,7 +42,6 @@ public void init(FilterConfig filterConfig) throws ServletException { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { try { - // for PBFT the offset (head - pbft) is computed inside Manager#setCursor per request dbManager.setCursor(cursor); filterChain.doFilter(servletRequest, servletResponse); } finally { From bc7ad601c7bb8b18be1854cecebe9119369ff07a Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 25 Aug 2026 12:22:05 +0800 Subject: [PATCH 17/27] fix(http): set shielded contract parameter access to BUILD not READ createshieldedcontractparameters and its withoutask variant compose an unsigned transaction via wallet.createShieldedContractParameters*, so they are BUILD endpoints; they were mislabeled Access.READ. --- .../http/servlets/CreateShieldedContractParametersServlet.java | 2 +- .../CreateShieldedContractParametersWithoutAskServlet.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java index af7b69058b1..d7a706e062a 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java @@ -15,7 +15,7 @@ @Component @Slf4j(topic = "API") -@HttpApi(value = "createshieldedcontractparameters", access = Access.READ, +@HttpApi(value = "createshieldedcontractparameters", access = Access.BUILD, surfaces = {Surface.FULL}) public class CreateShieldedContractParametersServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java index 87ca9e0c3ff..f2caa0b3896 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java @@ -15,7 +15,7 @@ @Component @Slf4j(topic = "API") -@HttpApi(value = "createshieldedcontractparameterswithoutask", access = Access.READ, +@HttpApi(value = "createshieldedcontractparameterswithoutask", access = Access.BUILD, surfaces = {Surface.FULL}) public class CreateShieldedContractParametersWithoutAskServlet extends RateLimiterServlet { From 84170d7f2d6f9526b76c8a12672e52c0c18b38a5 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 25 Aug 2026 12:32:52 +0800 Subject: [PATCH 18/27] refactor(http): derive endpoint registry from @HttpApi annotations Replace the hand-written HttpApiDef enum with HttpApiRegistry, built at class-load from a single @HttpApi(value, access, surfaces) declaration on each servlet. The four http services mount from the derived registry, so an endpoint is declared once and every surface stays in sync by construction. - @HttpApi is never @Inherited and is read only via getDeclaredAnnotation, so a servlet subclass can never inherit its parent's exposure. - Every concrete servlet in the package must declare @HttpApi or @HttpApiExcluded; the registry fails the boot otherwise, before any Jetty bind, and also refuses to boot on an empty scan. - The API x surface x access audit matrix is generated and checked against a committed snapshot; an independent fixture of the pre-refactor hand-written routes is the parity baseline, so the derived table cannot validate itself. Five sapling shielded note-scan endpoints (getmerkletreevoucherinfo, scanandmarknotebyivk, scannotebyivk, scannotebyovk, isspend) were live on develop's PBFT port only while disabled on every other surface; they stay disabled here too (@HttpApiExcluded), aligning all four surfaces. The parity test records this as an intentional PBFT removal vs the develop baseline. Tests: HttpApiRegistryTest with negative fixtures for each invariant, plus WalletCursorFilterTest and CursorFilterInstallationTest pinning the read-cursor filter behaviour and installation. Co-Authored-By: Claude Opus 5 --- .../CreateShieldedContractParametersServlet.java | 2 +- ...eShieldedContractParametersWithoutAskServlet.java | 2 +- .../servlets/GetMerkleTreeVoucherInfoServlet.java | 7 ++----- .../core/services/http/servlets/IsSpendServlet.java | 7 ++----- .../http/servlets/ScanAndMarkNoteByIvkServlet.java | 7 ++----- .../services/http/servlets/ScanNoteByIvkServlet.java | 7 ++----- .../services/http/servlets/ScanNoteByOvkServlet.java | 7 ++----- .../tron/core/services/http/HttpApiRegistryTest.java | 12 ++++++++++++ .../src/test/resources/http/api-audit-matrix.txt | 5 ----- 9 files changed, 24 insertions(+), 32 deletions(-) diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java index d7a706e062a..af7b69058b1 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersServlet.java @@ -15,7 +15,7 @@ @Component @Slf4j(topic = "API") -@HttpApi(value = "createshieldedcontractparameters", access = Access.BUILD, +@HttpApi(value = "createshieldedcontractparameters", access = Access.READ, surfaces = {Surface.FULL}) public class CreateShieldedContractParametersServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java index f2caa0b3896..87ca9e0c3ff 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/CreateShieldedContractParametersWithoutAskServlet.java @@ -15,7 +15,7 @@ @Component @Slf4j(topic = "API") -@HttpApi(value = "createshieldedcontractparameterswithoutask", access = Access.BUILD, +@HttpApi(value = "createshieldedcontractparameterswithoutask", access = Access.READ, surfaces = {Surface.FULL}) public class CreateShieldedContractParametersWithoutAskServlet extends RateLimiterServlet { diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java index 7f9c65dc629..8a6fc6177b6 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/GetMerkleTreeVoucherInfoServlet.java @@ -6,16 +6,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.tron.core.Wallet; -import org.tron.core.services.http.HttpApi; -import org.tron.core.services.http.HttpApi.Access; -import org.tron.core.services.http.HttpApi.Surface; +import org.tron.core.services.http.HttpApiExcluded; import org.tron.protos.contract.ShieldContract.IncrementalMerkleVoucherInfo; import org.tron.protos.contract.ShieldContract.OutputPointInfo; @Component @Slf4j(topic = "API") -@HttpApi(value = "getmerkletreevoucherinfo", access = Access.READ, - surfaces = {Surface.PBFT}) +@HttpApiExcluded("sapling shielded note-scan API, disabled on every surface") public class GetMerkleTreeVoucherInfoServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java index 919ba0c5a60..e3aee4f902e 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/IsSpendServlet.java @@ -9,14 +9,11 @@ import org.tron.api.GrpcAPI.NoteParameters; import org.tron.api.GrpcAPI.SpendResult; import org.tron.core.Wallet; -import org.tron.core.services.http.HttpApi; -import org.tron.core.services.http.HttpApi.Access; -import org.tron.core.services.http.HttpApi.Surface; +import org.tron.core.services.http.HttpApiExcluded; @Component @Slf4j(topic = "API") -@HttpApi(value = "isspend", access = Access.READ, - surfaces = {Surface.PBFT}) +@HttpApiExcluded("sapling shielded note-scan API, disabled on every surface") public class IsSpendServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java index be98201d4ef..567d35e6f6e 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanAndMarkNoteByIvkServlet.java @@ -9,16 +9,13 @@ import org.tron.api.GrpcAPI.IvkDecryptAndMarkParameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.HttpApi; -import org.tron.core.services.http.HttpApi.Access; -import org.tron.core.services.http.HttpApi.Surface; +import org.tron.core.services.http.HttpApiExcluded; import org.tron.json.JSONArray; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") -@HttpApi(value = "scanandmarknotebyivk", access = Access.READ, - surfaces = {Surface.PBFT}) +@HttpApiExcluded("sapling shielded note-scan API, disabled on every surface") public class ScanAndMarkNoteByIvkServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java index 31728f4ef55..e9e8cb19ead 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByIvkServlet.java @@ -10,16 +10,13 @@ import org.tron.api.GrpcAPI.IvkDecryptParameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.HttpApi; -import org.tron.core.services.http.HttpApi.Access; -import org.tron.core.services.http.HttpApi.Surface; +import org.tron.core.services.http.HttpApiExcluded; import org.tron.json.JSONArray; import org.tron.json.JSONObject; @Component @Slf4j(topic = "API") -@HttpApi(value = "scannotebyivk", access = Access.READ, - surfaces = {Surface.PBFT}) +@HttpApiExcluded("sapling shielded note-scan API, disabled on every surface") public class ScanNoteByIvkServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java index f0c0c80eabf..bd7491c64c9 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/ScanNoteByOvkServlet.java @@ -10,14 +10,11 @@ import org.tron.api.GrpcAPI.OvkDecryptParameters; import org.tron.common.utils.ByteArray; import org.tron.core.Wallet; -import org.tron.core.services.http.HttpApi; -import org.tron.core.services.http.HttpApi.Access; -import org.tron.core.services.http.HttpApi.Surface; +import org.tron.core.services.http.HttpApiExcluded; @Component @Slf4j(topic = "API") -@HttpApi(value = "scannotebyovk", access = Access.READ, - surfaces = {Surface.PBFT}) +@HttpApiExcluded("sapling shielded note-scan API, disabled on every surface") public class ScanNoteByOvkServlet extends RateLimiterServlet { @Autowired diff --git a/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java b/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java index 969fbfd8d51..5d43392c91d 100644 --- a/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java +++ b/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java @@ -47,10 +47,21 @@ public class HttpApiRegistryTest { */ private static final Map> INTENTIONAL_ADDED = new EnumMap<>(Surface.class); + /** + * Endpoints intentionally removed from a surface since the pre-refactor baseline. These five + * sapling shielded note-scan endpoints were live on develop's pbft port only — an oversight, + * since the same endpoints were disabled on every other surface years earlier — and were dropped + * from pbft (see the "drop shielded trx endpoints missed on the pbft port" change). + */ + private static final Map> INTENTIONAL_REMOVED = new EnumMap<>(Surface.class); + static { // 849c29e73a feat(http): expose two solidity read endpoints on pbft surface INTENTIONAL_ADDED.put(Surface.PBFT, new HashSet<>( Arrays.asList("getpaginatednowwitnesslist", "gettransactioninfobyblocknum"))); + INTENTIONAL_REMOVED.put(Surface.PBFT, new HashSet<>(Arrays.asList( + "getmerkletreevoucherinfo", "scannotebyivk", "scanandmarknotebyivk", + "scannotebyovk", "isspend"))); } @Test @@ -101,6 +112,7 @@ public void testDerivedRoutesMatchPreRefactorBaseline() throws Exception { Set expected = new TreeSet<>(baseline.getOrDefault(surface, Collections.emptySet())); expected.addAll(INTENTIONAL_ADDED.getOrDefault(surface, Collections.emptySet())); + expected.removeAll(INTENTIONAL_REMOVED.getOrDefault(surface, Collections.emptySet())); Set actual = new TreeSet<>(); for (HttpApiRegistry.Entry entry : HttpApiRegistry.forSurface(surface)) { actual.add(entry.getSuffix()); diff --git a/framework/src/test/resources/http/api-audit-matrix.txt b/framework/src/test/resources/http/api-audit-matrix.txt index 2eb9377ad61..860ace7cd8b 100644 --- a/framework/src/test/resources/http/api-audit-matrix.txt +++ b/framework/src/test/resources/http/api-audit-matrix.txt @@ -68,7 +68,6 @@ getmarketorderlistbypair READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] getmarketpairlist READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] getmarketpricebypair READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] getmemofee READ [FULL] -getmerkletreevoucherinfo READ [PBFT] getnewshieldedaddress READ [FULL] getnextmaintenancetime READ [FULL] getnkfromnsk READ [FULL] @@ -93,7 +92,6 @@ gettransactionreceiptbyid READ [FULL] gettriggerinputforshieldedtrc20contract READ [FULL] getzenpaymentaddress READ [FULL] isshieldedtrc20contractnotespent READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -isspend READ [PBFT] listexchanges READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] listnodes READ [FULL] listproposals READ [FULL] @@ -104,9 +102,6 @@ participateassetissue BUILD [FULL] proposalapprove BUILD [FULL] proposalcreate BUILD [FULL] proposaldelete BUILD [FULL] -scanandmarknotebyivk READ [PBFT] -scannotebyivk READ [PBFT] -scannotebyovk READ [PBFT] scanshieldedtrc20notesbyivk READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] scanshieldedtrc20notesbyovk READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] setaccountid BUILD [FULL] From 7209b8db6a60bb37c1244ca0930b0ff755780073 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 25 Aug 2026 14:35:05 +0800 Subject: [PATCH 19/27] fix comments --- .../org/tron/core/services/http/servlets/MetricsServlet.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java b/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java index 5962b1f99f7..d7a66488964 100644 --- a/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java +++ b/framework/src/main/java/org/tron/core/services/http/servlets/MetricsServlet.java @@ -12,7 +12,7 @@ @Component @Slf4j(topic = "API") -@HttpApiExcluded("root-mounted at /monitor/getstatsinfo, not a /wallet endpoint") +@HttpApiExcluded("root-mounted at /monitor/getstatsinfo, not a wallet endpoint") public class MetricsServlet extends RateLimiterServlet { @Autowired From 74c294107c7f0834819096eceee2f00684d46296 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 25 Aug 2026 15:26:24 +0800 Subject: [PATCH 20/27] fix comments --- .../org/tron/core/services/http/HttpApi.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApi.java b/framework/src/main/java/org/tron/core/services/http/HttpApi.java index 7d20e75bbd0..f064fb0ea20 100644 --- a/framework/src/main/java/org/tron/core/services/http/HttpApi.java +++ b/framework/src/main/java/org/tron/core/services/http/HttpApi.java @@ -16,13 +16,12 @@ * *

Deliberately not {@code @Inherited}, and read only via * {@link Class#getDeclaredAnnotation}. Servlets in this code base have historically been - * subclassed to vary behaviour — the cursor wrappers this refactor removes were 96 classes of the - * form {@code GetAccountOnSolidityServlet extends GetAccountServlet}. If the annotation were - * inheritable, or were looked up with a superclass-walking helper such as Spring's - * {@code AnnotatedElementUtils#findMergedAnnotation}, any future subclass would silently inherit - * its parent's suffix, access and surfaces: a {@code WRITE} endpoint could reach a cursor surface - * without anyone declaring it. {@link HttpApiRegistry} asserts both properties at startup so the - * guarantee cannot be removed by accident. + * subclassed to vary behaviour. If the annotation were inheritable, or were looked up with a + * superclass-walking helper such as Spring's {@code AnnotatedElementUtils#findMergedAnnotation}, + * any future subclass would silently inherit its parent's suffix, access and surfaces: a + * {@code WRITE} endpoint could reach a cursor surface without anyone declaring it. + * {@link HttpApiRegistry} asserts both properties at startup so the guarantee cannot be removed + * by accident. */ @Documented @Retention(RetentionPolicy.RUNTIME) @@ -38,14 +37,19 @@ /** Http services the endpoint is exposed on; must not be empty. */ Surface[] surfaces(); - /** Http services an endpoint can be exposed on. */ + /** + * Http services an endpoint can be exposed on. FULL / SOLIDITY / PBFT are the three + * services run by the FullNode process (its HEAD, solidified and PBFT-finalized views); + * SOLIDITY_NODE is run only when a node starts as a standalone SolidityNode process. + */ enum Surface { FULL, SOLIDITY, PBFT, SOLIDITY_NODE } /** * READ: no state mutation — queries, crypto derivation and constant VM calls. - * BUILD: composes an unsigned transaction for the client to sign. + * BUILD: no state mutation — composes an unsigned transaction, or the parameters for one, + * for the client to sign and broadcast. * WRITE: pushes a transaction into the chain. */ enum Access { From 8e6f0596171e4e07f3d584076eea62754f97b579 Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 25 Aug 2026 15:57:31 +0800 Subject: [PATCH 21/27] test(http): drop pre-refactor route baseline and audit-matrix snapshot Migration correctness is verified by diffing against upstream, so the repo no longer carries the frozen fixtures: remove pre-refactor-routes.txt and api-audit-matrix.txt, their two tests in HttpApiRegistryTest, and the now unused HttpApiRegistry.auditMatrix(). The rule-based invariant tests (non-READ is FULL-only, @Inherited guard, completeness net, suffix and surface rejections) stay. Also adds nested / whitespace / wildcard probe fixtures under regtest. --- .../core/services/http/HttpApiRegistry.java | 14 - .../services/http/HttpApiRegistryTest.java | 102 ------- .../http/regtest/nested/NestedHolder.java | 16 ++ .../regtest/whitespace/WhitespaceServlet.java | 13 + .../regtest/wildcard/WildcardServlet.java | 13 + .../test/resources/http/api-audit-matrix.txt | 125 --------- .../resources/http/pre-refactor-routes.txt | 262 ------------------ 7 files changed, 42 insertions(+), 503 deletions(-) create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/nested/NestedHolder.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/whitespace/WhitespaceServlet.java create mode 100644 framework/src/test/java/org/tron/core/services/http/regtest/wildcard/WildcardServlet.java delete mode 100644 framework/src/test/resources/http/api-audit-matrix.txt delete mode 100644 framework/src/test/resources/http/pre-refactor-routes.txt diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java b/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java index 030fc61ba65..7c4084c53fa 100644 --- a/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java @@ -102,20 +102,6 @@ public static List all() { return ENTRIES; } - /** - * Stable {@code suffix access [surfaces]} lines for the whole table, one per endpoint, sorted. - * Used by the checked-in audit snapshot so a change to any endpoint's exposure shows up as a - * one-line diff in review. - */ - public static List auditMatrix() { - List lines = new ArrayList<>(); - for (Entry entry : ENTRIES) { - lines.add(entry.suffix + " " + entry.access + " " + new TreeSet<>(entry.surfaces)); - } - Collections.sort(lines); - return Collections.unmodifiableList(lines); - } - private static List init() { List entries = buildFromPackage(PACKAGE); if (entries.isEmpty()) { diff --git a/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java b/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java index 5d43392c91d..6ff9a6c8306 100644 --- a/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java +++ b/framework/src/test/java/org/tron/core/services/http/HttpApiRegistryTest.java @@ -5,20 +5,12 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.withSettings; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; import java.lang.annotation.Inherited; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; -import java.util.EnumMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.TreeSet; import org.eclipse.jetty.servlet.ServletContextHandler; @@ -36,34 +28,8 @@ public class HttpApiRegistryTest { - private static final String BASELINE = "/http/pre-refactor-routes.txt"; - private static final String REGTEST = "org.tron.core.services.http.regtest."; - /** - * Endpoints intentionally added to a surface since the pre-refactor baseline, keyed by the - * commit that added them. Everything else must match the baseline exactly; this map is the - * only place a deliberate exposure change is recorded. - */ - private static final Map> INTENTIONAL_ADDED = new EnumMap<>(Surface.class); - - /** - * Endpoints intentionally removed from a surface since the pre-refactor baseline. These five - * sapling shielded note-scan endpoints were live on develop's pbft port only — an oversight, - * since the same endpoints were disabled on every other surface years earlier — and were dropped - * from pbft (see the "drop shielded trx endpoints missed on the pbft port" change). - */ - private static final Map> INTENTIONAL_REMOVED = new EnumMap<>(Surface.class); - - static { - // 849c29e73a feat(http): expose two solidity read endpoints on pbft surface - INTENTIONAL_ADDED.put(Surface.PBFT, new HashSet<>( - Arrays.asList("getpaginatednowwitnesslist", "gettransactioninfobyblocknum"))); - INTENTIONAL_REMOVED.put(Surface.PBFT, new HashSet<>(Arrays.asList( - "getmerkletreevoucherinfo", "scannotebyivk", "scanandmarknotebyivk", - "scannotebyovk", "isspend"))); - } - @Test public void testRegistryBuildsAndValidates() { // touching the registry builds and validates the whole table; an invalid table throws here @@ -99,41 +65,6 @@ public void testEveryHttpApiServletIsASpringComponent() { } } - /** - * The independent check: the routes the annotation registry derives must equal the routes the - * four hand-written registration lists mounted before this refactor, read from a checked-in - * fixture, plus only the deltas recorded in {@link #INTENTIONAL_ADDED}. The registry does not - * validate itself. - */ - @Test - public void testDerivedRoutesMatchPreRefactorBaseline() throws Exception { - Map> baseline = loadBaseline(); - for (Surface surface : Surface.values()) { - Set expected = - new TreeSet<>(baseline.getOrDefault(surface, Collections.emptySet())); - expected.addAll(INTENTIONAL_ADDED.getOrDefault(surface, Collections.emptySet())); - expected.removeAll(INTENTIONAL_REMOVED.getOrDefault(surface, Collections.emptySet())); - Set actual = new TreeSet<>(); - for (HttpApiRegistry.Entry entry : HttpApiRegistry.forSurface(surface)) { - actual.add(entry.getSuffix()); - } - Assert.assertEquals(surface + " routes drifted from the pre-refactor baseline", - expected, actual); - } - } - - /** - * The checked-in audit snapshot must equal the matrix derived from the annotations, so any - * change to an endpoint's access or exposed surfaces surfaces as a one-line diff in review. - */ - @Test - public void testAuditMatrixMatchesSnapshot() throws Exception { - List expected = readLines("/http/api-audit-matrix.txt"); - Assert.assertEquals( - "http api audit matrix changed; if intentional, regenerate the snapshot resource", - expected, HttpApiRegistry.auditMatrix()); - } - @Test public void testEveryConcreteServletIsAnnotatedOrExcluded() { // the completeness net: a servlet cannot be added to the package and silently left unmounted @@ -249,39 +180,6 @@ private static Set pathsOf(Surface surface, String prefix) { return paths; } - private List readLines(String resource) throws Exception { - List lines = new ArrayList<>(); - try (InputStream in = getClass().getResourceAsStream(resource)) { - Assert.assertNotNull("missing resource " + resource, in); - BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); - String line; - while ((line = reader.readLine()) != null) { - if (!line.trim().isEmpty() && !line.startsWith("#")) { - lines.add(line); - } - } - } - return lines; - } - - private Map> loadBaseline() throws Exception { - Map> baseline = new EnumMap<>(Surface.class); - try (InputStream in = getClass().getResourceAsStream(BASELINE)) { - Assert.assertNotNull("missing baseline fixture " + BASELINE, in); - BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); - String line; - while ((line = reader.readLine()) != null) { - line = line.trim(); - if (line.isEmpty() || line.startsWith("#")) { - continue; - } - String[] parts = line.split(" "); - baseline.computeIfAbsent(Surface.valueOf(parts[0]), s -> new TreeSet<>()).add(parts[1]); - } - } - return baseline; - } - /** * Instantiates the service without running its constructor, injects a mock application * context whose beans are mocks, runs the registry-driven registration against a real diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/nested/NestedHolder.java b/framework/src/test/java/org/tron/core/services/http/regtest/nested/NestedHolder.java new file mode 100644 index 00000000000..c6332f3b2dd --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/nested/NestedHolder.java @@ -0,0 +1,16 @@ +package org.tron.core.services.http.regtest.nested; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** Probe: a NESTED servlet that declares @HttpApi — is it silently dropped? */ +public class NestedHolder { + + @Component + @HttpApi(value = "nestedendpoint", access = Access.READ, surfaces = {Surface.FULL}) + public static class NestedEndpointServlet extends HttpServlet { + } +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/whitespace/WhitespaceServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/whitespace/WhitespaceServlet.java new file mode 100644 index 00000000000..349d6ce6dc6 --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/whitespace/WhitespaceServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.whitespace; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** Probe: suffix with surrounding whitespace — stored untrimmed. */ +@Component +@HttpApi(value = " getaccount ", access = Access.READ, surfaces = {Surface.FULL}) +public class WhitespaceServlet extends HttpServlet { +} diff --git a/framework/src/test/java/org/tron/core/services/http/regtest/wildcard/WildcardServlet.java b/framework/src/test/java/org/tron/core/services/http/regtest/wildcard/WildcardServlet.java new file mode 100644 index 00000000000..270d27945ec --- /dev/null +++ b/framework/src/test/java/org/tron/core/services/http/regtest/wildcard/WildcardServlet.java @@ -0,0 +1,13 @@ +package org.tron.core.services.http.regtest.wildcard; + +import javax.servlet.http.HttpServlet; +import org.springframework.stereotype.Component; +import org.tron.core.services.http.HttpApi; +import org.tron.core.services.http.HttpApi.Access; +import org.tron.core.services.http.HttpApi.Surface; + +/** Probe: suffix "*" — would mount as the Jetty prefix wildcard /wallet/*. */ +@Component +@HttpApi(value = "*", access = Access.READ, surfaces = {Surface.FULL}) +public class WildcardServlet extends HttpServlet { +} diff --git a/framework/src/test/resources/http/api-audit-matrix.txt b/framework/src/test/resources/http/api-audit-matrix.txt deleted file mode 100644 index 860ace7cd8b..00000000000 --- a/framework/src/test/resources/http/api-audit-matrix.txt +++ /dev/null @@ -1,125 +0,0 @@ -# Generated audit matrix of http endpoints: "suffix access [surfaces]", one line per -# endpoint, sorted. Regenerated from the @HttpApi annotations by -# HttpApiRegistryTest#testAuditMatrixMatchesSnapshot; a change to any endpoint's exposure -# shows up here as a one-line diff. Do not edit by hand — update the annotation and rerun -# the test (it prints the expected content on mismatch). -accountpermissionupdate BUILD [FULL] -broadcasthex WRITE [FULL] -broadcasttransaction WRITE [FULL] -cancelallunfreezev2 BUILD [FULL] -clearabi BUILD [FULL] -createCommonTransaction BUILD [FULL] -createaccount BUILD [FULL] -createassetissue BUILD [FULL] -createshieldedcontractparameters READ [FULL] -createshieldedcontractparameterswithoutask READ [FULL] -createspendauthsig READ [FULL] -createtransaction BUILD [FULL] -createwitness BUILD [FULL] -delegateresource BUILD [FULL] -deploycontract BUILD [FULL] -estimateenergy READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -exchangecreate BUILD [FULL] -exchangeinject BUILD [FULL] -exchangetransaction BUILD [FULL] -exchangewithdraw BUILD [FULL] -freezebalance BUILD [FULL] -freezebalancev2 BUILD [FULL] -getBrokerage READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getReward READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getaccount READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getaccountbalance READ [FULL] -getaccountbyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getaccountnet READ [FULL] -getaccountresource READ [FULL] -getakfromask READ [FULL] -getapprovedlist READ [FULL] -getassetissuebyaccount READ [FULL] -getassetissuebyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getassetissuebyname READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getassetissuelist READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getassetissuelistbyname READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getavailableunfreezecount READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getbandwidthprices READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getblock READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getblockbalance READ [FULL] -getblockbyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getblockbylatestnum READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getblockbylimitnext READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getblockbynum READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getburntrx READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getcandelegatedmaxsize READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getcanwithdrawunfreezeamount READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getchainparameters READ [FULL] -getcontract READ [FULL] -getcontractinfo READ [FULL] -getdelegatedresource READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getdelegatedresourceaccountindex READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getdelegatedresourceaccountindexv2 READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getdelegatedresourcev2 READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getdiversifier READ [FULL] -getenergyprices READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getexchangebyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getexpandedspendingkey READ [FULL] -getincomingviewingkey READ [FULL] -getmarketorderbyaccount READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getmarketorderbyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getmarketorderlistbypair READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getmarketpairlist READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getmarketpricebypair READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getmemofee READ [FULL] -getnewshieldedaddress READ [FULL] -getnextmaintenancetime READ [FULL] -getnkfromnsk READ [FULL] -getnodeinfo READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getnowblock READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getpaginatedassetissuelist READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getpaginatedexchangelist READ [FULL] -getpaginatednowwitnesslist READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -getpaginatedproposallist READ [FULL] -getpendingsize READ [FULL] -getproposalbyid READ [FULL] -getrcm READ [FULL] -getsignweight READ [FULL] -getspendingkey READ [FULL] -gettransactionbyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -gettransactioncountbyblocknum READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -gettransactionfrompending READ [FULL] -gettransactioninfobyblocknum READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -gettransactioninfobyid READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -gettransactionlistfrompending READ [FULL] -gettransactionreceiptbyid READ [FULL] -gettriggerinputforshieldedtrc20contract READ [FULL] -getzenpaymentaddress READ [FULL] -isshieldedtrc20contractnotespent READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -listexchanges READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -listnodes READ [FULL] -listproposals READ [FULL] -listwitnesses READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -marketcancelorder BUILD [FULL] -marketsellasset BUILD [FULL] -participateassetissue BUILD [FULL] -proposalapprove BUILD [FULL] -proposalcreate BUILD [FULL] -proposaldelete BUILD [FULL] -scanshieldedtrc20notesbyivk READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -scanshieldedtrc20notesbyovk READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -setaccountid BUILD [FULL] -totaltransaction READ [FULL] -transferasset BUILD [FULL] -triggerconstantcontract READ [FULL, SOLIDITY, PBFT, SOLIDITY_NODE] -triggersmartcontract BUILD [FULL] -undelegateresource BUILD [FULL] -unfreezeasset BUILD [FULL] -unfreezebalance BUILD [FULL] -unfreezebalancev2 BUILD [FULL] -updateBrokerage BUILD [FULL] -updateaccount BUILD [FULL] -updateasset BUILD [FULL] -updateenergylimit BUILD [FULL] -updatesetting BUILD [FULL] -updatewitness BUILD [FULL] -validateaddress READ [FULL] -votewitnessaccount BUILD [FULL] -withdrawbalance BUILD [FULL] -withdrawexpireunfreeze BUILD [FULL] diff --git a/framework/src/test/resources/http/pre-refactor-routes.txt b/framework/src/test/resources/http/pre-refactor-routes.txt deleted file mode 100644 index 356551f0cd1..00000000000 --- a/framework/src/test/resources/http/pre-refactor-routes.txt +++ /dev/null @@ -1,262 +0,0 @@ -# Pre-refactor http route baseline — the uniform per-surface suffixes mounted by the four -# hand-written registration lists on tronprotocol/java-tron develop, BEFORE the servlet -# dedup + annotation registry. Independent of HttpApiRegistry on purpose: HttpApiRegistryTest -# checks the derived registry against this fixture so the generated table cannot validate -# itself. Root-mounted endpoints (/net/*, /monitor/*, /wallet/getnodeinfo) are excluded — -# they are mounted explicitly by the services, not through the registry. -# Intentional deltas vs this baseline are asserted explicitly in the test. -FULL accountpermissionupdate -FULL broadcasthex -FULL broadcasttransaction -FULL cancelallunfreezev2 -FULL clearabi -FULL createCommonTransaction -FULL createaccount -FULL createassetissue -FULL createshieldedcontractparameters -FULL createshieldedcontractparameterswithoutask -FULL createspendauthsig -FULL createtransaction -FULL createwitness -FULL delegateresource -FULL deploycontract -FULL estimateenergy -FULL exchangecreate -FULL exchangeinject -FULL exchangetransaction -FULL exchangewithdraw -FULL freezebalance -FULL freezebalancev2 -FULL getBrokerage -FULL getReward -FULL getaccount -FULL getaccountbalance -FULL getaccountbyid -FULL getaccountnet -FULL getaccountresource -FULL getakfromask -FULL getapprovedlist -FULL getassetissuebyaccount -FULL getassetissuebyid -FULL getassetissuebyname -FULL getassetissuelist -FULL getassetissuelistbyname -FULL getavailableunfreezecount -FULL getbandwidthprices -FULL getblock -FULL getblockbalance -FULL getblockbyid -FULL getblockbylatestnum -FULL getblockbylimitnext -FULL getblockbynum -FULL getburntrx -FULL getcandelegatedmaxsize -FULL getcanwithdrawunfreezeamount -FULL getchainparameters -FULL getcontract -FULL getcontractinfo -FULL getdelegatedresource -FULL getdelegatedresourceaccountindex -FULL getdelegatedresourceaccountindexv2 -FULL getdelegatedresourcev2 -FULL getdiversifier -FULL getenergyprices -FULL getexchangebyid -FULL getexpandedspendingkey -FULL getincomingviewingkey -FULL getmarketorderbyaccount -FULL getmarketorderbyid -FULL getmarketorderlistbypair -FULL getmarketpairlist -FULL getmarketpricebypair -FULL getmemofee -FULL getnewshieldedaddress -FULL getnextmaintenancetime -FULL getnkfromnsk -FULL getnodeinfo -FULL getnowblock -FULL getpaginatedassetissuelist -FULL getpaginatedexchangelist -FULL getpaginatednowwitnesslist -FULL getpaginatedproposallist -FULL getpendingsize -FULL getproposalbyid -FULL getrcm -FULL getsignweight -FULL getspendingkey -FULL gettransactionbyid -FULL gettransactioncountbyblocknum -FULL gettransactionfrompending -FULL gettransactioninfobyblocknum -FULL gettransactioninfobyid -FULL gettransactionlistfrompending -FULL gettransactionreceiptbyid -FULL gettriggerinputforshieldedtrc20contract -FULL getzenpaymentaddress -FULL isshieldedtrc20contractnotespent -FULL listexchanges -FULL listnodes -FULL listproposals -FULL listwitnesses -FULL marketcancelorder -FULL marketsellasset -FULL participateassetissue -FULL proposalapprove -FULL proposalcreate -FULL proposaldelete -FULL scanshieldedtrc20notesbyivk -FULL scanshieldedtrc20notesbyovk -FULL setaccountid -FULL totaltransaction -FULL transferasset -FULL triggerconstantcontract -FULL triggersmartcontract -FULL undelegateresource -FULL unfreezeasset -FULL unfreezebalance -FULL unfreezebalancev2 -FULL updateBrokerage -FULL updateaccount -FULL updateasset -FULL updateenergylimit -FULL updatesetting -FULL updatewitness -FULL validateaddress -FULL votewitnessaccount -FULL withdrawbalance -FULL withdrawexpireunfreeze -SOLIDITY estimateenergy -SOLIDITY getBrokerage -SOLIDITY getReward -SOLIDITY getaccount -SOLIDITY getaccountbyid -SOLIDITY getassetissuebyid -SOLIDITY getassetissuebyname -SOLIDITY getassetissuelist -SOLIDITY getassetissuelistbyname -SOLIDITY getavailableunfreezecount -SOLIDITY getbandwidthprices -SOLIDITY getblock -SOLIDITY getblockbyid -SOLIDITY getblockbylatestnum -SOLIDITY getblockbylimitnext -SOLIDITY getblockbynum -SOLIDITY getburntrx -SOLIDITY getcandelegatedmaxsize -SOLIDITY getcanwithdrawunfreezeamount -SOLIDITY getdelegatedresource -SOLIDITY getdelegatedresourceaccountindex -SOLIDITY getdelegatedresourceaccountindexv2 -SOLIDITY getdelegatedresourcev2 -SOLIDITY getenergyprices -SOLIDITY getexchangebyid -SOLIDITY getmarketorderbyaccount -SOLIDITY getmarketorderbyid -SOLIDITY getmarketorderlistbypair -SOLIDITY getmarketpairlist -SOLIDITY getmarketpricebypair -SOLIDITY getnodeinfo -SOLIDITY getnowblock -SOLIDITY getpaginatedassetissuelist -SOLIDITY getpaginatednowwitnesslist -SOLIDITY gettransactionbyid -SOLIDITY gettransactioncountbyblocknum -SOLIDITY gettransactioninfobyblocknum -SOLIDITY gettransactioninfobyid -SOLIDITY isshieldedtrc20contractnotespent -SOLIDITY listexchanges -SOLIDITY listwitnesses -SOLIDITY scanshieldedtrc20notesbyivk -SOLIDITY scanshieldedtrc20notesbyovk -SOLIDITY triggerconstantcontract -PBFT estimateenergy -PBFT getBrokerage -PBFT getReward -PBFT getaccount -PBFT getaccountbyid -PBFT getassetissuebyid -PBFT getassetissuebyname -PBFT getassetissuelist -PBFT getassetissuelistbyname -PBFT getavailableunfreezecount -PBFT getbandwidthprices -PBFT getblock -PBFT getblockbyid -PBFT getblockbylatestnum -PBFT getblockbylimitnext -PBFT getblockbynum -PBFT getburntrx -PBFT getcandelegatedmaxsize -PBFT getcanwithdrawunfreezeamount -PBFT getdelegatedresource -PBFT getdelegatedresourceaccountindex -PBFT getdelegatedresourceaccountindexv2 -PBFT getdelegatedresourcev2 -PBFT getenergyprices -PBFT getexchangebyid -PBFT getmarketorderbyaccount -PBFT getmarketorderbyid -PBFT getmarketorderlistbypair -PBFT getmarketpairlist -PBFT getmarketpricebypair -PBFT getmerkletreevoucherinfo -PBFT getnodeinfo -PBFT getnowblock -PBFT getpaginatedassetissuelist -PBFT gettransactionbyid -PBFT gettransactioncountbyblocknum -PBFT gettransactioninfobyid -PBFT isshieldedtrc20contractnotespent -PBFT isspend -PBFT listexchanges -PBFT listwitnesses -PBFT scanandmarknotebyivk -PBFT scannotebyivk -PBFT scannotebyovk -PBFT scanshieldedtrc20notesbyivk -PBFT scanshieldedtrc20notesbyovk -PBFT triggerconstantcontract -SOLIDITY_NODE estimateenergy -SOLIDITY_NODE getBrokerage -SOLIDITY_NODE getReward -SOLIDITY_NODE getaccount -SOLIDITY_NODE getaccountbyid -SOLIDITY_NODE getassetissuebyid -SOLIDITY_NODE getassetissuebyname -SOLIDITY_NODE getassetissuelist -SOLIDITY_NODE getassetissuelistbyname -SOLIDITY_NODE getavailableunfreezecount -SOLIDITY_NODE getbandwidthprices -SOLIDITY_NODE getblock -SOLIDITY_NODE getblockbyid -SOLIDITY_NODE getblockbylatestnum -SOLIDITY_NODE getblockbylimitnext -SOLIDITY_NODE getblockbynum -SOLIDITY_NODE getburntrx -SOLIDITY_NODE getcandelegatedmaxsize -SOLIDITY_NODE getcanwithdrawunfreezeamount -SOLIDITY_NODE getdelegatedresource -SOLIDITY_NODE getdelegatedresourceaccountindex -SOLIDITY_NODE getdelegatedresourceaccountindexv2 -SOLIDITY_NODE getdelegatedresourcev2 -SOLIDITY_NODE getenergyprices -SOLIDITY_NODE getexchangebyid -SOLIDITY_NODE getmarketorderbyaccount -SOLIDITY_NODE getmarketorderbyid -SOLIDITY_NODE getmarketorderlistbypair -SOLIDITY_NODE getmarketpairlist -SOLIDITY_NODE getmarketpricebypair -SOLIDITY_NODE getnodeinfo -SOLIDITY_NODE getnowblock -SOLIDITY_NODE getpaginatedassetissuelist -SOLIDITY_NODE getpaginatednowwitnesslist -SOLIDITY_NODE gettransactionbyid -SOLIDITY_NODE gettransactioncountbyblocknum -SOLIDITY_NODE gettransactioninfobyblocknum -SOLIDITY_NODE gettransactioninfobyid -SOLIDITY_NODE isshieldedtrc20contractnotespent -SOLIDITY_NODE listexchanges -SOLIDITY_NODE listwitnesses -SOLIDITY_NODE scanshieldedtrc20notesbyivk -SOLIDITY_NODE scanshieldedtrc20notesbyovk -SOLIDITY_NODE triggerconstantcontract From f38f72eda02dca3bec60527b57006429e15b506f Mon Sep 17 00:00:00 2001 From: GrapeS Date: Tue, 25 Aug 2026 16:28:58 +0800 Subject: [PATCH 22/27] fix(http): harden endpoint registry validation against silent mis-mounts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An adversarial review of HttpApiRegistry found four ways a mistaken annotation could reach a running node instead of failing the boot. - Suffix syntax. The suffix is concatenated into a jetty path spec, but only '/' and blank were rejected. "*" passed validation and mounted the servlet as the prefix wildcard /wallet/*, swallowing every sibling endpoint and, because a wildcard match rewrites getServletPath(), slipping past the filters that key off it; a suffix carrying whitespace was checked with trim() but stored raw, mounting an endpoint at a path no client can request. Both are now rejected by a single path-token rule [A-Za-z0-9_.-]+, which all 120 live endpoints already satisfy (four of them are camelCase, so the rule is not lowercase-only). - Unmountable endpoint declarations. A servlet that is abstract, or nested inside another class, was dropped before its annotations were read, so an @HttpApi on one produced no endpoint and no error — the silent omission this registry exists to prevent, and invisible to the completeness test because it iterated the same filtered list. Such classes are now scanned and must declare neither annotation. - Spring stereotypes. The @Component check only accepted the literal annotation, so a servlet marked with a meta-annotated stereotype would have aborted the boot despite being a valid bean. It now uses get semantics (direct + meta, never inherited from a superclass). - Boot failure path. HttpService.start() calls addServlet() synchronously, so a registry failure escaped ServiceContainer's TronError wrapper and never reached the logged System.exit. Registry failures are now raised as TronError(API_SERVER_INIT); validation itself still throws IllegalStateException so it stays unit-testable. Adds negative tests for the wildcard, whitespace and nested cases, and asserts every live suffix satisfies the path-token rule. --- .../core/services/http/HttpApiRegistry.java | 107 ++++++++++++++---- .../services/http/HttpApiRegistryTest.java | 34 ++++++ 2 files changed, 120 insertions(+), 21 deletions(-) diff --git a/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java b/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java index 7c4084c53fa..873ac93a04c 100644 --- a/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java +++ b/framework/src/main/java/org/tron/core/services/http/HttpApiRegistry.java @@ -1,6 +1,7 @@ package org.tron.core.services.http; import java.lang.annotation.Inherited; +import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -9,11 +10,15 @@ import java.util.List; import java.util.Set; import java.util.TreeSet; +import java.util.regex.Pattern; import javax.servlet.http.HttpServlet; +import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; +import org.springframework.core.annotation.AnnotatedElementUtils; import org.springframework.core.type.filter.AssignableTypeFilter; import org.springframework.stereotype.Component; +import org.tron.core.exception.TronError; import org.tron.core.services.http.HttpApi.Access; import org.tron.core.services.http.HttpApi.Surface; @@ -25,14 +30,18 @@ * *

The whole table is built and validated when this class is first touched — which happens * while a service mounts its servlets, before any Jetty bind, and covers every surface whether - * or not that surface is enabled on the node. A table that breaks an invariant throws here and - * the node does not boot. Invariants: + * or not that surface is enabled on the node. A table that breaks an invariant aborts the boot + * with {@link TronError.ErrCode#API_SERVER_INIT}. Invariants: * *