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..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.HttpApiOnPBFTService;
import org.tron.core.services.interfaceOnPBFT.RpcApiServiceOnPBFT;
-import org.tron.core.services.interfaceOnPBFT.http.PBFT.HttpApiOnPBFTService;
+import org.tron.core.services.interfaceOnSolidity.HttpApiOnSolidityService;
import org.tron.core.services.interfaceOnSolidity.RpcApiServiceOnSolidity;
-import org.tron.core.services.interfaceOnSolidity.http.solidity.HttpApiOnSolidityService;
@Slf4j(topic = "app")
@Configuration
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/http/FullNodeHttpApiService.java b/framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java
index 5a3b86cb396..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,289 +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.GetNodeInfoServlet;
+import org.tron.core.services.http.servlets.ListNodesServlet;
+import org.tron.core.services.http.servlets.MetricsServlet;
@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 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;
- @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();
@@ -302,219 +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(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),
- "/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
new file mode 100644
index 00000000000..b90780d9ddc
--- /dev/null
+++ b/framework/src/main/java/org/tron/core/services/http/HttpApiDef.java
@@ -0,0 +1,611 @@
+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 extends HttpServlet> 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 extends HttpServlet> 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 extends HttpServlet> getServlet() {
+ return servlet;
+ }
+
+ public Access getAccess() {
+ return access;
+ }
+}
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
new file mode 100644
index 00000000000..a0822e2a816
--- /dev/null
+++ b/framework/src/main/java/org/tron/core/services/http/SolidityNodeHttpApiService.java
@@ -0,0 +1,63 @@
+package org.tron.core.services.http;
+
+import java.util.EnumSet;
+import javax.servlet.DispatcherType;
+import lombok.extern.slf4j.Slf4j;
+import org.eclipse.jetty.servlet.FilterHolder;
+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.GetNodeInfoServlet;
+
+@Component
+@Slf4j(topic = "API")
+public class SolidityNodeHttpApiService extends HttpService {
+
+ @Autowired
+ private HttpApiAccessFilter httpApiAccessFilter;
+
+ @Autowired
+ private ApplicationContext appContext;
+
+ public SolidityNodeHttpApiService() {
+ port = Args.getInstance().getSolidityHttpPort();
+ enable = !isFullNode() && Args.getInstance().isSolidityNodeHttpEnable();
+ contextPath = "/";
+ maxRequestSize = Args.getInstance().getHttpMaxMessageSize();
+ }
+
+ @Override
+ protected void addServlet(ServletContextHandler context) {
+ addServletsFromRegistry(context);
+ }
+
+ /**
+ * 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
+ protected void addFilter(ServletContextHandler context) {
+ // http access filter
+ context.addFilter(new FilterHolder(httpApiAccessFilter), "/walletsolidity/*",
+ EnumSet.allOf(DispatcherType.class));
+ context.getServletHandler().getFilterMappings()[0]
+ .setPathSpecs(new String[] {"/walletsolidity/*",
+ "/wallet/getnodeinfo"});
+ }
+}
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/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
deleted file mode 100644
index 0c4843c0550..00000000000
--- a/framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java
+++ /dev/null
@@ -1,291 +0,0 @@
-package org.tron.core.services.http.solidity;
-
-import java.util.EnumSet;
-import javax.servlet.DispatcherType;
-import lombok.extern.slf4j.Slf4j;
-import org.eclipse.jetty.servlet.FilterHolder;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.springframework.beans.factory.annotation.Autowired;
-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.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.GetTransactionCountByBlockNumServlet;
-import org.tron.core.services.http.GetTransactionInfoByBlockNumServlet;
-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;
-
-
-@Component
-@Slf4j(topic = "API")
-public class SolidityNodeHttpApiService extends HttpService {
-
- @Autowired
- private GetAccountServlet getAccountServlet;
- @Autowired
- private GetTransactionByIdSolidityServlet getTransactionByIdServlet;
- @Autowired
- private GetTransactionInfoByIdSolidityServlet 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;
-
-
- public SolidityNodeHttpApiService() {
- port = Args.getInstance().getSolidityHttpPort();
- enable = !isFullNode() && Args.getInstance().isSolidityNodeHttpEnable();
- contextPath = "/";
- maxRequestSize = Args.getInstance().getHttpMaxMessageSize();
- }
-
- @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");
-
- 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");
- }
-
- @Override
- protected void addFilter(ServletContextHandler context) {
- // http access filter
- context.addFilter(new FilterHolder(httpApiAccessFilter), "/walletsolidity/*",
- EnumSet.allOf(DispatcherType.class));
- context.getServletHandler().getFilterMappings()[0]
- .setPathSpecs(new String[] {"/walletsolidity/*",
- "/wallet/getnodeinfo"});
- }
-}
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
new file mode 100644
index 00000000000..5230faf4fd1
--- /dev/null
+++ b/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/HttpApiOnPBFTService.java
@@ -0,0 +1,68 @@
+package org.tron.core.services.interfaceOnPBFT;
+
+import java.util.EnumSet;
+import javax.servlet.DispatcherType;
+import lombok.extern.slf4j.Slf4j;
+import org.eclipse.jetty.servlet.FilterHolder;
+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.HttpApiDef;
+
+@Slf4j(topic = "API")
+public class HttpApiOnPBFTService extends HttpService {
+
+ @Autowired
+ private LiteFnQueryHttpFilter liteFnQueryHttpFilter;
+ @Autowired
+ private HttpApiAccessFilter httpApiAccessFilter;
+ @Autowired
+ private PbftCursorFilter pbftCursorFilter;
+ @Autowired
+ private ApplicationContext appContext;
+
+ public HttpApiOnPBFTService() {
+ port = Args.getInstance().getPBFTHttpPort();
+ enable = isFullNode() && Args.getInstance().isPBFTHttpEnable();
+ contextPath = "/walletpbft";
+ maxRequestSize = Args.getInstance().getHttpMaxMessageSize();
+ }
+
+ @Override
+ protected void addServlet(ServletContextHandler context) {
+ addServletsFromRegistry(context);
+ }
+
+ /**
+ * 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
+ protected void addFilter(ServletContextHandler context) {
+ // filters the specified APIs
+ // when node is lite fullnode and openHistoryQueryWhenLiteFN is false
+ context.addFilter(new FilterHolder(liteFnQueryHttpFilter), "/*",
+ EnumSet.allOf(DispatcherType.class));
+
+ // 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/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
deleted file mode 100644
index c0616c2ae78..00000000000
--- a/framework/src/main/java/org/tron/core/services/interfaceOnPBFT/http/PBFT/HttpApiOnPBFTService.java
+++ /dev/null
@@ -1,278 +0,0 @@
-package org.tron.core.services.interfaceOnPBFT.http.PBFT;
-
-import java.util.EnumSet;
-import javax.servlet.DispatcherType;
-import lombok.extern.slf4j.Slf4j;
-import org.eclipse.jetty.servlet.FilterHolder;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.springframework.beans.factory.annotation.Autowired;
-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.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;
-
-@Slf4j(topic = "API")
-public class HttpApiOnPBFTService extends HttpService {
-
- @Autowired
- private GetAccountOnPBFTServlet accountOnPBFTServlet;
-
- @Autowired
- private GetTransactionByIdOnPBFTServlet getTransactionByIdOnPBFTServlet;
- @Autowired
- private GetTransactionInfoByIdOnPBFTServlet getTransactionInfoByIdOnPBFTServlet;
- @Autowired
- private ListWitnessesOnPBFTServlet listWitnessesOnPBFTServlet;
- @Autowired
- private GetAssetIssueListOnPBFTServlet getAssetIssueListOnPBFTServlet;
- @Autowired
- private GetPaginatedAssetIssueListOnPBFTServlet getPaginatedAssetIssueListOnPBFTServlet;
- @Autowired
- private GetNowBlockOnPBFTServlet getNowBlockOnPBFTServlet;
- @Autowired
- private GetBlockByNumOnPBFTServlet getBlockByNumOnPBFTServlet;
-
- @Autowired
- private GetNodeInfoOnPBFTServlet getNodeInfoOnPBFTServlet;
-
- @Autowired
- private GetDelegatedResourceOnPBFTServlet getDelegatedResourceOnPBFTServlet;
- @Autowired
- private GetDelegatedResourceAccountIndexOnPBFTServlet
- getDelegatedResourceAccountIndexOnPBFTServlet;
- @Autowired
- private GetExchangeByIdOnPBFTServlet getExchangeByIdOnPBFTServlet;
- @Autowired
- private ListExchangesOnPBFTServlet listExchangesOnPBFTServlet;
- @Autowired
- private GetTransactionCountByBlockNumOnPBFTServlet
- getTransactionCountByBlockNumOnPBFTServlet;
- @Autowired
- private GetAssetIssueByNameOnPBFTServlet getAssetIssueByNameOnPBFTServlet;
- @Autowired
- private GetAssetIssueByIdOnPBFTServlet getAssetIssueByIdOnPBFTServlet;
- @Autowired
- private GetAssetIssueListByNameOnPBFTServlet getAssetIssueListByNameOnPBFTServlet;
- @Autowired
- private GetAccountByIdOnPBFTServlet getAccountByIdOnPBFTServlet;
- @Autowired
- private GetBlockByIdOnPBFTServlet getBlockByIdOnPBFTServlet;
- @Autowired
- private GetBlockByLimitNextOnPBFTServlet getBlockByLimitNextOnPBFTServlet;
- @Autowired
- private GetBlockByLatestNumOnPBFTServlet getBlockByLatestNumOnPBFTServlet;
- @Autowired
- private GetMerkleTreeVoucherInfoOnPBFTServlet getMerkleTreeVoucherInfoOnPBFTServlet;
- @Autowired
- private ScanNoteByIvkOnPBFTServlet scanNoteByIvkOnPBFTServlet;
- @Autowired
- private ScanAndMarkNoteByIvkOnPBFTServlet scanAndMarkNoteByIvkOnPBFTServlet;
- @Autowired
- private ScanNoteByOvkOnPBFTServlet scanNoteByOvkOnPBFTServlet;
- @Autowired
- private IsSpendOnPBFTServlet isSpendOnPBFTServlet;
- @Autowired
- private GetBrokerageOnPBFTServlet getBrokerageServlet;
- @Autowired
- private GetRewardOnPBFTServlet getRewardServlet;
- @Autowired
- private TriggerConstantContractOnPBFTServlet triggerConstantContractOnPBFTServlet;
- @Autowired
- private EstimateEnergyOnPBFTServlet estimateEnergyOnPBFTServlet;
- @Autowired
- private LiteFnQueryHttpFilter liteFnQueryHttpFilter;
- @Autowired
- private HttpApiAccessFilter httpApiAccessFilter;
-
- @Autowired
- private GetMarketOrderByAccountOnPBFTServlet getMarketOrderByAccountOnPBFTServlet;
- @Autowired
- private GetMarketOrderByIdOnPBFTServlet getMarketOrderByIdOnPBFTServlet;
- @Autowired
- private GetMarketPriceByPairOnPBFTServlet getMarketPriceByPairOnPBFTServlet;
- @Autowired
- private GetMarketOrderListByPairOnPBFTServlet getMarketOrderListByPairOnPBFTServlet;
- @Autowired
- private GetMarketPairListOnPBFTServlet getMarketPairListOnPBFTServlet;
-
- @Autowired
- private ScanShieldedTRC20NotesByIvkOnPBFTServlet scanShieldedTRC20NotesByIvkOnPBFTServlet;
- @Autowired
- private ScanShieldedTRC20NotesByOvkOnPBFTServlet scanShieldedTRC20NotesByOvkOnPBFTServlet;
- @Autowired
- private IsShieldedTRC20ContractNoteSpentOnPBFTServlet
- isShieldedTRC20ContractNoteSpentOnPBFTServlet;
- @Autowired
- private GetBurnTrxOnPBFTServlet getBurnTrxOnPBFTServlet;
- @Autowired
- private GetBandwidthPricesOnPBFTServlet getBandwidthPricesOnPBFTServlet;
- @Autowired
- private GetEnergyPricesOnPBFTServlet getEnergyPricesOnPBFTServlet;
-
- @Autowired
- private GetBlockOnPBFTServlet getBlockOnPBFTServlet;
-
- @Autowired
- private GetAvailableUnfreezeCountOnPBFTServlet getAvailableUnfreezeCountOnPBFTServlet;
- @Autowired
- private GetCanDelegatedMaxSizeOnPBFTServlet getCanDelegatedMaxSizeOnPBFTServlet;
- @Autowired
- private GetCanWithdrawUnfreezeAmountOnPBFTServlet getCanWithdrawUnfreezeAmountOnPBFTServlet;
- @Autowired
- private GetDelegatedResourceAccountIndexV2OnPBFTServlet
- getDelegatedResourceAccountIndexV2OnPBFTServlet;
- @Autowired
- private GetDelegatedResourceV2OnPBFTServlet getDelegatedResourceV2OnPBFTServlet;
-
- public HttpApiOnPBFTService() {
- port = Args.getInstance().getPBFTHttpPort();
- enable = isFullNode() && Args.getInstance().isPBFTHttpEnable();
- contextPath = "/walletpbft";
- maxRequestSize = Args.getInstance().getHttpMaxMessageSize();
- }
-
- @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),
- "/getpaginatedassetissuelist");
- context
- .addServlet(new ServletHolder(getAssetIssueByNameOnPBFTServlet), "/getassetissuebyname");
- context.addServlet(new ServletHolder(getAssetIssueByIdOnPBFTServlet), "/getassetissuebyid");
- context.addServlet(new ServletHolder(getAssetIssueListByNameOnPBFTServlet),
- "/getassetissuelistbyname");
- context.addServlet(new ServletHolder(getNowBlockOnPBFTServlet), "/getnowblock");
- context.addServlet(new ServletHolder(getBlockByNumOnPBFTServlet), "/getblockbynum");
- context.addServlet(new ServletHolder(getDelegatedResourceOnPBFTServlet),
- "/getdelegatedresource");
- context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexOnPBFTServlet),
- "/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(getBlockByLimitNextOnPBFTServlet), "/getblockbylimitnext");
- context
- .addServlet(new ServletHolder(getBlockByLatestNumOnPBFTServlet), "/getblockbylatestnum");
- context.addServlet(new ServletHolder(getMerkleTreeVoucherInfoOnPBFTServlet),
- "/getmerkletreevoucherinfo");
- context.addServlet(new ServletHolder(scanAndMarkNoteByIvkOnPBFTServlet),
- "/scanandmarknotebyivk");
- context.addServlet(new ServletHolder(scanNoteByIvkOnPBFTServlet), "/scannotebyivk");
- context.addServlet(new ServletHolder(scanNoteByOvkOnPBFTServlet), "/scannotebyovk");
- context.addServlet(new ServletHolder(isSpendOnPBFTServlet), "/isspend");
- context.addServlet(new ServletHolder(triggerConstantContractOnPBFTServlet),
- "/triggerconstantcontract");
- context.addServlet(new ServletHolder(estimateEnergyOnPBFTServlet), "/estimateenergy");
-
- // only for PBFTNode
- context.addServlet(new ServletHolder(getTransactionByIdOnPBFTServlet), "/gettransactionbyid");
- context.addServlet(new ServletHolder(getTransactionInfoByIdOnPBFTServlet),
- "/gettransactioninfobyid");
-
- context.addServlet(new ServletHolder(getTransactionCountByBlockNumOnPBFTServlet),
- "/gettransactioncountbyblocknum");
-
- context.addServlet(new ServletHolder(getNodeInfoOnPBFTServlet), "/getnodeinfo");
- context.addServlet(new ServletHolder(getBrokerageServlet), "/getBrokerage");
- context.addServlet(new ServletHolder(getRewardServlet), "/getReward");
-
- context.addServlet(new ServletHolder(getMarketOrderByAccountOnPBFTServlet),
- "/getmarketorderbyaccount");
- context.addServlet(new ServletHolder(getMarketOrderByIdOnPBFTServlet),
- "/getmarketorderbyid");
- context.addServlet(new ServletHolder(getMarketPriceByPairOnPBFTServlet),
- "/getmarketpricebypair");
- context.addServlet(new ServletHolder(getMarketOrderListByPairOnPBFTServlet),
- "/getmarketorderlistbypair");
- context.addServlet(new ServletHolder(getMarketPairListOnPBFTServlet),
- "/getmarketpairlist");
-
- context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkOnPBFTServlet),
- "/scanshieldedtrc20notesbyivk");
- context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkOnPBFTServlet),
- "/scanshieldedtrc20notesbyovk");
- context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentOnPBFTServlet),
- "/isshieldedtrc20contractnotespent");
- context.addServlet(new ServletHolder(getBurnTrxOnPBFTServlet),
- "/getburntrx");
- context.addServlet(new ServletHolder(getBandwidthPricesOnPBFTServlet),
- "/getbandwidthprices");
- context.addServlet(new ServletHolder(getEnergyPricesOnPBFTServlet),
- "/getenergyprices");
- context.addServlet(new ServletHolder(getBlockOnPBFTServlet),
- "/getblock");
-
- context.addServlet(new ServletHolder(getAvailableUnfreezeCountOnPBFTServlet),
- "/getavailableunfreezecount");
- context.addServlet(new ServletHolder(getCanDelegatedMaxSizeOnPBFTServlet),
- "/getcandelegatedmaxsize");
- context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountOnPBFTServlet),
- "/getcanwithdrawunfreezeamount");
- context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexV2OnPBFTServlet),
- "/getdelegatedresourceaccountindexv2");
- context.addServlet(new ServletHolder(getDelegatedResourceV2OnPBFTServlet),
- "/getdelegatedresourcev2");
- }
-
- @Override
- protected void addFilter(ServletContextHandler context) {
- // filters the specified APIs
- // when node is lite fullnode and openHistoryQueryWhenLiteFN is false
- context.addFilter(new FilterHolder(liteFnQueryHttpFilter), "/*",
- EnumSet.allOf(DispatcherType.class));
-
- // api access filter
- context.addFilter(new FilterHolder(httpApiAccessFilter), "/*",
- EnumSet.allOf(DispatcherType.class));
- }
-}
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/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java
new file mode 100644
index 00000000000..25d3de4f432
--- /dev/null
+++ b/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/HttpApiOnSolidityService.java
@@ -0,0 +1,79 @@
+package org.tron.core.services.interfaceOnSolidity;
+
+import java.util.EnumSet;
+import javax.servlet.DispatcherType;
+import lombok.extern.slf4j.Slf4j;
+import org.eclipse.jetty.servlet.FilterHolder;
+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.HttpApiDef;
+import org.tron.core.services.http.servlets.GetNodeInfoServlet;
+
+@Slf4j(topic = "API")
+public class HttpApiOnSolidityService extends HttpService {
+
+ @Autowired
+ private LiteFnQueryHttpFilter liteFnQueryHttpFilter;
+
+ @Autowired
+ private HttpApiAccessFilter httpApiAccessFilter;
+
+ @Autowired
+ private SolidityCursorFilter solidityCursorFilter;
+
+ @Autowired
+ private ApplicationContext appContext;
+
+ public HttpApiOnSolidityService() {
+ port = Args.getInstance().getSolidityHttpPort();
+ enable = isFullNode() && Args.getInstance().isSolidityNodeHttpEnable();
+ contextPath = "/";
+ maxRequestSize = Args.getInstance().getHttpMaxMessageSize();
+ }
+
+ @Override
+ protected void addServlet(ServletContextHandler context) {
+ 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
+ protected void addFilter(ServletContextHandler context) {
+ // filters the specified APIs
+ // when node is lite fullnode and openHistoryQueryWhenLiteFN is false
+ context.addFilter(new FilterHolder(liteFnQueryHttpFilter), "/*",
+ EnumSet.allOf(DispatcherType.class));
+
+ // api access filter
+ context.addFilter(new FilterHolder(httpApiAccessFilter), "/walletsolidity/*",
+ EnumSet.allOf(DispatcherType.class));
+ 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/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
deleted file mode 100644
index 33e325bd578..00000000000
--- a/framework/src/main/java/org/tron/core/services/interfaceOnSolidity/http/solidity/HttpApiOnSolidityService.java
+++ /dev/null
@@ -1,308 +0,0 @@
-package org.tron.core.services.interfaceOnSolidity.http.solidity;
-
-import java.util.EnumSet;
-import javax.servlet.DispatcherType;
-import lombok.extern.slf4j.Slf4j;
-import org.eclipse.jetty.servlet.FilterHolder;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.springframework.beans.factory.annotation.Autowired;
-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.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;
-
-@Slf4j(topic = "API")
-public class HttpApiOnSolidityService extends HttpService {
-
- @Autowired
- private GetAccountOnSolidityServlet accountOnSolidityServlet;
-
- @Autowired
- private GetTransactionByIdOnSolidityServlet getTransactionByIdOnSolidityServlet;
- @Autowired
- private GetTransactionInfoByIdOnSolidityServlet getTransactionInfoByIdOnSolidityServlet;
- @Autowired
- private ListWitnessesOnSolidityServlet listWitnessesOnSolidityServlet;
- @Autowired
- private GetPaginatedNowWitnessListOnSolidityServlet getPaginatedNowWitnessListOnSolidityServlet;
- @Autowired
- private GetAssetIssueListOnSolidityServlet getAssetIssueListOnSolidityServlet;
- @Autowired
- private GetPaginatedAssetIssueListOnSolidityServlet getPaginatedAssetIssueListOnSolidityServlet;
- @Autowired
- private GetNowBlockOnSolidityServlet getNowBlockOnSolidityServlet;
- @Autowired
- private GetBlockByNumOnSolidityServlet getBlockByNumOnSolidityServlet;
-
- @Autowired
- private GetNodeInfoOnSolidityServlet getNodeInfoOnSolidityServlet;
-
- @Autowired
- private GetDelegatedResourceOnSolidityServlet getDelegatedResourceOnSolidityServlet;
- @Autowired
- private GetDelegatedResourceV2OnSolidityServlet getDelegatedResourceV2OnSolidityServlet;
- @Autowired
- private GetCanDelegatedMaxSizeOnSolidityServlet getCanDelegatedMaxSizeOnSolidityServlet;
- @Autowired
- private GetAvailableUnfreezeCountOnSolidityServlet getAvailableUnfreezeCountOnSolidityServlet;
- @Autowired
- private GetCanWithdrawUnfreezeAmountOnSolidityServlet
- getCanWithdrawUnfreezeAmountOnSolidityServlet;
- @Autowired
- private GetDelegatedResourceAccountIndexOnSolidityServlet
- getDelegatedResourceAccountIndexOnSolidityServlet;
- @Autowired
- private GetDelegatedResourceAccountIndexV2OnSolidityServlet
- getDelegatedResourceAccountIndexV2OnSolidityServlet;
- @Autowired
- private GetExchangeByIdOnSolidityServlet getExchangeByIdOnSolidityServlet;
- @Autowired
- private ListExchangesOnSolidityServlet listExchangesOnSolidityServlet;
- @Autowired
- private GetTransactionCountByBlockNumOnSolidityServlet
- getTransactionCountByBlockNumOnSolidityServlet;
- @Autowired
- private GetAssetIssueByNameOnSolidityServlet getAssetIssueByNameOnSolidityServlet;
- @Autowired
- private GetAssetIssueByIdOnSolidityServlet getAssetIssueByIdOnSolidityServlet;
- @Autowired
- private GetAssetIssueListByNameOnSolidityServlet getAssetIssueListByNameOnSolidityServlet;
- @Autowired
- private GetAccountByIdOnSolidityServlet getAccountByIdOnSolidityServlet;
- @Autowired
- private GetBlockByIdOnSolidityServlet getBlockByIdOnSolidityServlet;
- @Autowired
- private GetBlockByLimitNextOnSolidityServlet getBlockByLimitNextOnSolidityServlet;
- @Autowired
- private GetBlockByLatestNumOnSolidityServlet getBlockByLatestNumOnSolidityServlet;
- @Autowired
- private GetMerkleTreeVoucherInfoOnSolidityServlet getMerkleTreeVoucherInfoOnSolidityServlet;
- @Autowired
- private ScanNoteByIvkOnSolidityServlet scanNoteByIvkOnSolidityServlet;
- @Autowired
- private ScanAndMarkNoteByIvkOnSolidityServlet scanAndMarkNoteByIvkOnSolidityServlet;
- @Autowired
- private ScanNoteByOvkOnSolidityServlet scanNoteByOvkOnSolidityServlet;
- @Autowired
- private IsSpendOnSolidityServlet isSpendOnSolidityServlet;
- @Autowired
- private ScanShieldedTRC20NotesByIvkOnSolidityServlet scanShieldedTRC20NotesByIvkOnSolidityServlet;
- @Autowired
- private ScanShieldedTRC20NotesByOvkOnSolidityServlet scanShieldedTRC20NotesByOvkOnSolidityServlet;
- @Autowired
- private IsShieldedTRC20ContractNoteSpentOnSolidityServlet
- isShieldedTRC20ContractNoteSpentOnSolidityServlet;
- @Autowired
- private GetBrokerageOnSolidityServlet getBrokerageServlet;
- @Autowired
- private GetRewardOnSolidityServlet getRewardServlet;
- @Autowired
- private GetBurnTrxOnSolidityServlet getBurnTrxOnSolidityServlet;
- @Autowired
- private TriggerConstantContractOnSolidityServlet triggerConstantContractOnSolidityServlet;
- @Autowired
- private EstimateEnergyOnSolidityServlet estimateEnergyOnSolidityServlet;
- @Autowired
- private GetTransactionInfoByBlockNumOnSolidityServlet
- getTransactionInfoByBlockNumOnSolidityServlet;
- @Autowired
- private GetMarketOrderByAccountOnSolidityServlet getMarketOrderByAccountOnSolidityServlet;
- @Autowired
- private GetMarketOrderByIdOnSolidityServlet getMarketOrderByIdOnSolidityServlet;
- @Autowired
- private GetMarketPriceByPairOnSolidityServlet getMarketPriceByPairOnSolidityServlet;
- @Autowired
- private GetMarketOrderListByPairOnSolidityServlet getMarketOrderListByPairOnSolidityServlet;
- @Autowired
- private GetMarketPairListOnSolidityServlet getMarketPairListOnSolidityServlet;
- @Autowired
- private GetBandwidthPricesOnSolidityServlet getBandwidthPricesOnSolidityServlet;
- @Autowired
- private GetEnergyPricesOnSolidityServlet getEnergyPricesOnSolidityServlet;
-
- @Autowired
- private LiteFnQueryHttpFilter liteFnQueryHttpFilter;
-
- @Autowired
- private HttpApiAccessFilter httpApiAccessFilter;
-
- @Autowired
- private GetBlockOnSolidityServlet getBlockOnSolidityServlet;
-
- public HttpApiOnSolidityService() {
- port = Args.getInstance().getSolidityHttpPort();
- enable = isFullNode() && Args.getInstance().isSolidityNodeHttpEnable();
- contextPath = "/";
- maxRequestSize = Args.getInstance().getHttpMaxMessageSize();
- }
-
- @Override
- protected void addServlet(ServletContextHandler context) {
- // same as FullNode
- context.addServlet(new ServletHolder(accountOnSolidityServlet), "/walletsolidity/getaccount");
- context.addServlet(new ServletHolder(listWitnessesOnSolidityServlet),
- "/walletsolidity/listwitnesses");
- context.addServlet(new ServletHolder(getPaginatedNowWitnessListOnSolidityServlet),
- "/walletsolidity/getpaginatednowwitnesslist");
- context.addServlet(new ServletHolder(getAssetIssueListOnSolidityServlet),
- "/walletsolidity/getassetissuelist");
- context.addServlet(new ServletHolder(getPaginatedAssetIssueListOnSolidityServlet),
- "/walletsolidity/getpaginatedassetissuelist");
- context.addServlet(new ServletHolder(getAssetIssueByNameOnSolidityServlet),
- "/walletsolidity/getassetissuebyname");
- context.addServlet(new ServletHolder(getAssetIssueByIdOnSolidityServlet),
- "/walletsolidity/getassetissuebyid");
- context.addServlet(new ServletHolder(getAssetIssueListByNameOnSolidityServlet),
- "/walletsolidity/getassetissuelistbyname");
- context.addServlet(new ServletHolder(getNowBlockOnSolidityServlet),
- "/walletsolidity/getnowblock");
- context.addServlet(new ServletHolder(getBlockByNumOnSolidityServlet),
- "/walletsolidity/getblockbynum");
- context.addServlet(new ServletHolder(getDelegatedResourceOnSolidityServlet),
- "/walletsolidity/getdelegatedresource");
- context.addServlet(new ServletHolder(getDelegatedResourceV2OnSolidityServlet),
- "/walletsolidity/getdelegatedresourcev2");
- context.addServlet(new ServletHolder(getCanDelegatedMaxSizeOnSolidityServlet),
- "/walletsolidity/getcandelegatedmaxsize");
- context.addServlet(new ServletHolder(getAvailableUnfreezeCountOnSolidityServlet),
- "/walletsolidity/getavailableunfreezecount");
- context.addServlet(new ServletHolder(getCanWithdrawUnfreezeAmountOnSolidityServlet),
- "/walletsolidity/getcanwithdrawunfreezeamount");
- context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexOnSolidityServlet),
- "/walletsolidity/getdelegatedresourceaccountindex");
- context.addServlet(new ServletHolder(getDelegatedResourceAccountIndexV2OnSolidityServlet),
- "/walletsolidity/getdelegatedresourceaccountindexv2");
- context.addServlet(new ServletHolder(getExchangeByIdOnSolidityServlet),
- "/walletsolidity/getexchangebyid");
- context.addServlet(new ServletHolder(listExchangesOnSolidityServlet),
- "/walletsolidity/listexchanges");
- context.addServlet(new ServletHolder(getAccountByIdOnSolidityServlet),
- "/walletsolidity/getaccountbyid");
- context.addServlet(new ServletHolder(getBlockByIdOnSolidityServlet),
- "/walletsolidity/getblockbyid");
- context.addServlet(new ServletHolder(getBlockByLimitNextOnSolidityServlet),
- "/walletsolidity/getblockbylimitnext");
- context.addServlet(new ServletHolder(getBlockByLatestNumOnSolidityServlet),
- "/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),
- "/walletsolidity/scanshieldedtrc20notesbyivk");
- context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkOnSolidityServlet),
- "/walletsolidity/scanshieldedtrc20notesbyovk");
- context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentOnSolidityServlet),
- "/walletsolidity/isshieldedtrc20contractnotespent");
- context.addServlet(new ServletHolder(triggerConstantContractOnSolidityServlet),
- "/walletsolidity/triggerconstantcontract");
- context.addServlet(new ServletHolder(estimateEnergyOnSolidityServlet),
- "/walletsolidity/estimateenergy");
- context.addServlet(new ServletHolder(getTransactionInfoByBlockNumOnSolidityServlet),
- "/walletsolidity/gettransactioninfobyblocknum");
- context.addServlet(new ServletHolder(getMarketOrderByAccountOnSolidityServlet),
- "/walletsolidity/getmarketorderbyaccount");
- context.addServlet(new ServletHolder(getMarketOrderByIdOnSolidityServlet),
- "/walletsolidity/getmarketorderbyid");
- context.addServlet(new ServletHolder(getMarketPriceByPairOnSolidityServlet),
- "/walletsolidity/getmarketpricebypair");
- context.addServlet(new ServletHolder(getMarketOrderListByPairOnSolidityServlet),
- "/walletsolidity/getmarketorderlistbypair");
- context.addServlet(new ServletHolder(getMarketPairListOnSolidityServlet),
- "/walletsolidity/getmarketpairlist");
-
- // only for SolidityNode
- context.addServlet(new ServletHolder(getTransactionByIdOnSolidityServlet),
- "/walletsolidity/gettransactionbyid");
- context.addServlet(new ServletHolder(getTransactionInfoByIdOnSolidityServlet),
- "/walletsolidity/gettransactioninfobyid");
-
- context.addServlet(new ServletHolder(getTransactionCountByBlockNumOnSolidityServlet),
- "/walletsolidity/gettransactioncountbyblocknum");
-
- context.addServlet(new ServletHolder(getNodeInfoOnSolidityServlet), "/wallet/getnodeinfo");
- context.addServlet(new ServletHolder(getNodeInfoOnSolidityServlet),
- "/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),
- "/walletsolidity/getbandwidthprices");
- context.addServlet(new ServletHolder(getEnergyPricesOnSolidityServlet),
- "/walletsolidity/getenergyprices");
-
- context.addServlet(new ServletHolder(getBlockOnSolidityServlet),
- "/walletsolidity/getblock");
-
- }
-
- @Override
- protected void addFilter(ServletContextHandler context) {
- // filters the specified APIs
- // when node is lite fullnode and openHistoryQueryWhenLiteFN is false
- context.addFilter(new FilterHolder(liteFnQueryHttpFilter), "/*",
- EnumSet.allOf(DispatcherType.class));
-
- // api access filter
- context.addFilter(new FilterHolder(httpApiAccessFilter), "/walletsolidity/*",
- EnumSet.allOf(DispatcherType.class));
- context.getServletHandler().getFilterMappings()[1]
- .setPathSpecs(new String[] {"/walletsolidity/*",
- "/wallet/getnodeinfo"});
- }
-}
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/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 {
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();
+ }
+}
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..e64b47d4e1b
--- /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(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/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/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();
- }
-}
-
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());
- }
- }
-}
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());
- }
- }
-}
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;