Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 13 additions & 8 deletions framework/src/main/java/org/tron/core/Wallet.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
import org.tron.api.GrpcAPI.NoteParameters;
import org.tron.api.GrpcAPI.NumberMessage;
import org.tron.api.GrpcAPI.PaymentAddressMessage;
import org.tron.api.GrpcAPI.PricesResponseMessage;
import org.tron.api.GrpcAPI.PrivateParameters;
import org.tron.api.GrpcAPI.PrivateParametersWithoutAsk;
import org.tron.api.GrpcAPI.PrivateShieldedTRC20Parameters;
Expand Down Expand Up @@ -4295,23 +4296,25 @@ public long getEnergyFee(long timestamp) {
}
}

public String getEnergyPrices() {
public PricesResponseMessage getEnergyPrices() {
PricesResponseMessage.Builder builder = PricesResponseMessage.newBuilder();
try {
return chainBaseManager.getDynamicPropertiesStore().getEnergyPriceHistory();
builder.setPrices(chainBaseManager.getDynamicPropertiesStore().getEnergyPriceHistory());
return builder.build();
} catch (Exception e) {
logger.error("GetEnergyPrices failed", e);
}

return null;
}

public String getBandwidthPrices() {
public PricesResponseMessage getBandwidthPrices() {
PricesResponseMessage.Builder builder = PricesResponseMessage.newBuilder();
try {
return chainBaseManager.getDynamicPropertiesStore().getBandwidthPriceHistory();
builder.setPrices(chainBaseManager.getDynamicPropertiesStore().getBandwidthPriceHistory());
return builder.build();
} catch (Exception e) {
logger.error("GetBandwidthPrices failed", e);
}

return null;
}

Expand Down Expand Up @@ -4426,9 +4429,11 @@ public Block getBlock(GrpcAPI.BlockReq request) {
return block.toBuilder().clearTransactions().build();
}

public String getMemoFeePrices() {
public PricesResponseMessage getMemoFeePrices() {
PricesResponseMessage.Builder builder = PricesResponseMessage.newBuilder();
try {
return chainBaseManager.getDynamicPropertiesStore().getMemoFeeHistory();
builder.setPrices(chainBaseManager.getDynamicPropertiesStore().getMemoFeeHistory());
return builder.build();
} catch (Exception e) {
logger.error("GetMemoFeePrices failed", e);
}
Expand Down
62 changes: 56 additions & 6 deletions framework/src/main/java/org/tron/core/services/RpcApiService.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
import org.tron.api.GrpcAPI.OvkDecryptTRC20Parameters;
import org.tron.api.GrpcAPI.PaginatedMessage;
import org.tron.api.GrpcAPI.PaymentAddressMessage;
import org.tron.api.GrpcAPI.PricesResponseMessage;
import org.tron.api.GrpcAPI.PrivateParameters;
import org.tron.api.GrpcAPI.PrivateParametersWithoutAsk;
import org.tron.api.GrpcAPI.PrivateShieldedTRC20Parameters;
Expand Down Expand Up @@ -174,16 +175,12 @@ public class RpcApiService implements Service {
private Server apiServer;
@Autowired
private Manager dbManager;

@Autowired
private ChainBaseManager chainBaseManager;

@Autowired
private Wallet wallet;

@Autowired
private TransactionUtil transactionUtil;

@Autowired
private NodeInfoService nodeInfoService;
@Autowired
Expand All @@ -192,10 +189,8 @@ public class RpcApiService implements Service {
private LiteFnQueryGrpcInterceptor liteFnQueryGrpcInterceptor;
@Autowired
private RpcApiAccessInterceptor apiAccessInterceptor;

@Autowired
private MetricsApiService metricsApiService;

@Getter
private DatabaseApi databaseApi = new DatabaseApi();
private WalletApi walletApi = new WalletApi();
Expand Down Expand Up @@ -997,6 +992,28 @@ public void getBlock(GrpcAPI.BlockReq request,
StreamObserver<BlockExtention> responseObserver) {
getBlockCommon(request, responseObserver);
}

@Override
public void getBandwidthPrices(EmptyMessage request,
StreamObserver<PricesResponseMessage> responseObserver) {
try {
responseObserver.onNext(wallet.getBandwidthPrices());
} catch (Exception e) {
responseObserver.onError(getRunTimeException(e));
}
responseObserver.onCompleted();
}

@Override
public void getEnergyPrices(EmptyMessage request,
StreamObserver<PricesResponseMessage> responseObserver) {
try {
responseObserver.onNext(wallet.getEnergyPrices());
} catch (Exception e) {
responseObserver.onError(getRunTimeException(e));
}
responseObserver.onCompleted();
}
}

/**
Expand Down Expand Up @@ -2030,6 +2047,39 @@ public void getCanWithdrawUnfreezeAmount(CanWithdrawUnfreezeAmountRequestMessage
responseObserver.onCompleted();
}

@Override
public void getBandwidthPrices(EmptyMessage request,
StreamObserver<PricesResponseMessage> responseObserver) {
try {
responseObserver.onNext(wallet.getBandwidthPrices());
} catch (Exception e) {
responseObserver.onError(getRunTimeException(e));
}
responseObserver.onCompleted();
}

@Override
public void getEnergyPrices(EmptyMessage request,
StreamObserver<PricesResponseMessage> responseObserver) {
try {
responseObserver.onNext(wallet.getEnergyPrices());
} catch (Exception e) {
responseObserver.onError(getRunTimeException(e));
}
responseObserver.onCompleted();
}

@Override
public void getMemoFee(EmptyMessage request,
StreamObserver<PricesResponseMessage> responseObserver) {
try {
responseObserver.onNext(wallet.getMemoFeePrices());
} catch (Exception e) {
responseObserver.onError(getRunTimeException(e));
}
responseObserver.onCompleted();
}

@Override
public void getPaginatedProposalList(PaginatedMessage request,
StreamObserver<ProposalList> responseObserver) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,36 +1,31 @@
package org.tron.core.services.http;

import com.alibaba.fastjson.JSONObject;
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.PricesResponseMessage;
import org.tron.core.Wallet;


@Component
@Slf4j(topic = "API")
public class GetBandwidthPricesServlet extends RateLimiterServlet {

@Autowired
private Wallet wallet;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
try {
String reply = wallet.getBandwidthPrices();
if (reply != null) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("prices", reply);
response.getWriter().println(jsonObject);
} else {
response.getWriter().println("{}");
}
PricesResponseMessage reply = wallet.getBandwidthPrices();
response.getWriter().println(reply == null ? "{}" : JsonFormat.printToString(reply));
} catch (Exception e) {
Util.processError(e, response);
}
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
doGet(request, response);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,36 +1,31 @@
package org.tron.core.services.http;

import com.alibaba.fastjson.JSONObject;
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.PricesResponseMessage;
import org.tron.core.Wallet;


@Component
@Slf4j(topic = "API")
public class GetEnergyPricesServlet extends RateLimiterServlet {

@Autowired
private Wallet wallet;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
try {
String reply = wallet.getEnergyPrices();
if (reply != null) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("prices", reply);
response.getWriter().println(jsonObject);
} else {
response.getWriter().println("{}");
}
PricesResponseMessage reply = wallet.getEnergyPrices();
response.getWriter().println(reply == null ? "{}" : JsonFormat.printToString(reply));
Comment thread
lxcmyf marked this conversation as resolved.
} catch (Exception e) {
Util.processError(e, response);
}
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
doGet(request, response);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,36 +1,31 @@
package org.tron.core.services.http;

import com.alibaba.fastjson.JSONObject;
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.PricesResponseMessage;
import org.tron.core.Wallet;


@Component
@Slf4j(topic = "API")
public class GetMemoFeePricesServlet extends RateLimiterServlet {

@Autowired
private Wallet wallet;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
try {
String reply = wallet.getMemoFeePrices();
if (reply != null) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("prices", reply);
response.getWriter().println(jsonObject);
} else {
response.getWriter().println("{}");
}
PricesResponseMessage reply = wallet.getMemoFeePrices();
response.getWriter().println(reply == null ? "{}" : JsonFormat.printToString(reply));
} catch (Exception e) {
Util.processError(e, response);
}
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
doGet(request, response);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.tron.api.GrpcAPI.NumberMessage;
import org.tron.api.GrpcAPI.OvkDecryptTRC20Parameters;
import org.tron.api.GrpcAPI.PaginatedMessage;
import org.tron.api.GrpcAPI.PricesResponseMessage;
import org.tron.api.GrpcAPI.SpendResult;
import org.tron.api.GrpcAPI.TransactionExtention;
import org.tron.api.GrpcAPI.WitnessList;
Expand All @@ -39,8 +40,6 @@
import org.tron.common.crypto.ECKey;
import org.tron.common.es.ExecutorServiceManager;
import org.tron.common.parameter.CommonParameter;
import org.tron.common.utils.StringUtil;
import org.tron.common.utils.Utils;
import org.tron.core.config.args.Args;
import org.tron.core.services.RpcApiService;
import org.tron.core.services.filter.LiteFnQueryGrpcInterceptor;
Expand Down Expand Up @@ -557,5 +556,19 @@ public void getBlock(GrpcAPI.BlockReq request,
() -> rpcApiService.getWalletSolidityApi().getBlock(request, responseObserver));
}

@Override
public void getBandwidthPrices(EmptyMessage request,
StreamObserver<PricesResponseMessage> responseObserver) {
walletOnPBFT.futureGet(
() -> rpcApiService.getWalletSolidityApi().getBandwidthPrices(request, responseObserver));
}

@Override
public void getEnergyPrices(EmptyMessage request,
StreamObserver<PricesResponseMessage> responseObserver) {
walletOnPBFT.futureGet(
() -> rpcApiService.getWalletSolidityApi().getEnergyPrices(request, responseObserver));
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.tron.api.GrpcAPI.NoteParameters;
import org.tron.api.GrpcAPI.NumberMessage;
import org.tron.api.GrpcAPI.PaginatedMessage;
import org.tron.api.GrpcAPI.PricesResponseMessage;
import org.tron.api.GrpcAPI.Return;
import org.tron.api.GrpcAPI.Return.response_code;
import org.tron.api.GrpcAPI.SpendResult;
Expand All @@ -40,8 +41,6 @@
import org.tron.common.es.ExecutorServiceManager;
import org.tron.common.parameter.CommonParameter;
import org.tron.common.utils.Sha256Hash;
import org.tron.common.utils.StringUtil;
import org.tron.common.utils.Utils;
import org.tron.core.capsule.BlockCapsule;
import org.tron.core.config.args.Args;
import org.tron.core.services.RpcApiService;
Expand Down Expand Up @@ -540,5 +539,19 @@ public void getBlock(GrpcAPI.BlockReq request,
() -> rpcApiService.getWalletSolidityApi().getBlock(request, responseObserver));
}

@Override
public void getBandwidthPrices(EmptyMessage request,
StreamObserver<PricesResponseMessage> responseObserver) {
walletOnSolidity.futureGet(
() -> rpcApiService.getWalletSolidityApi().getBandwidthPrices(request, responseObserver));
}

@Override
public void getEnergyPrices(EmptyMessage request,
StreamObserver<PricesResponseMessage> responseObserver) {
walletOnSolidity.futureGet(
() -> rpcApiService.getWalletSolidityApi().getEnergyPrices(request, responseObserver));
}

}
}
5 changes: 3 additions & 2 deletions framework/src/test/java/org/tron/core/WalletTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import org.tron.api.GrpcAPI.BlockList;
import org.tron.api.GrpcAPI.ExchangeList;
import org.tron.api.GrpcAPI.NumberMessage;
import org.tron.api.GrpcAPI.PricesResponseMessage;
import org.tron.api.GrpcAPI.ProposalList;
import org.tron.common.BaseTest;
import org.tron.common.crypto.ECKey;
Expand Down Expand Up @@ -930,8 +931,8 @@ public void testGetCanWithdrawUnfreezeAmount() {

@Test
public void testGetMemoFeePrices() {
String memeFeeList = wallet.getMemoFeePrices();
Assert.assertEquals("0:0", memeFeeList);
PricesResponseMessage memeFeeList = wallet.getMemoFeePrices();
Assert.assertEquals("0:0", memeFeeList.getPrices());
}

@Test
Expand Down
Loading