20 #include <ripple/app/ledger/LedgerMaster.h>
21 #include <ripple/app/misc/TxQ.h>
22 #include <ripple/basics/mulDiv.h>
23 #include <ripple/protocol/ErrorCodes.h>
24 #include <ripple/protocol/jss.h>
25 #include <ripple/rpc/GRPCHandlers.h>
26 #include <ripple/rpc/impl/RPCHelpers.h>
28 #include <test/jtx/Env.h>
29 #include <test/jtx/envconfig.h>
30 #include <test/rpc/GRPCTestClientBase.h>
35 class Fee_test :
public beast::unit_test::suite
40 org::xrpl::rpc::v1::GetFeeRequest
request;
41 org::xrpl::rpc::v1::GetFeeResponse
reply;
67 testcase(
"Test Fee Grpc");
69 using namespace test::jtx;
72 Env env(*
this, std::move(config));
75 env.fund(
XRP(10000), A1);
76 env.fund(
XRP(10000), A2);
78 env.trust(A2[
"USD"](1000), A1);
80 for (
int i = 0; i < 7; ++i)
82 env(
pay(A2, A1, A2[
"USD"](100)));
87 auto view = env.current();
89 auto const metrics = env.app().getTxQ().getMetrics(*env.current());
93 BEAST_EXPECT(result.first ==
true);
95 auto reply = result.second;
98 BEAST_EXPECT(reply.current_ledger_size() == metrics.txInLedger);
99 BEAST_EXPECT(reply.current_queue_size() == metrics.txCount);
100 BEAST_EXPECT(reply.expected_ledger_size() == metrics.txPerLedger);
101 BEAST_EXPECT(reply.ledger_current_index() == view->info().seq);
102 BEAST_EXPECT(reply.max_queue_size() == *metrics.txQMaxSize);
105 org::xrpl::rpc::v1::FeeLevels& levels = *reply.mutable_levels();
106 BEAST_EXPECT(levels.median_level() == metrics.medFeeLevel);
107 BEAST_EXPECT(levels.minimum_level() == metrics.minProcessingFeeLevel);
108 BEAST_EXPECT(levels.open_ledger_level() == metrics.openLedgerFeeLevel);
109 BEAST_EXPECT(levels.reference_level() == metrics.referenceFeeLevel);
112 org::xrpl::rpc::v1::Fee&
fee = *reply.mutable_fee();
113 auto const baseFee = view->fees().base;
115 fee.base_fee().drops() ==
116 toDrops(metrics.referenceFeeLevel, baseFee));
118 fee.minimum_fee().drops() ==
119 toDrops(metrics.minProcessingFeeLevel, baseFee));
121 fee.median_fee().drops() ==
toDrops(metrics.medFeeLevel, baseFee));
124 BEAST_EXPECT(
fee.open_ledger_fee().drops() == openLedgerFee.drops());