20 #include <ripple/app/ledger/LedgerMaster.h>
21 #include <ripple/app/misc/TxQ.h>
22 #include <ripple/basics/mulDiv.h>
23 #include <ripple/core/DatabaseCon.h>
24 #include <ripple/protocol/ErrorCodes.h>
25 #include <ripple/protocol/jss.h>
26 #include <ripple/rpc/GRPCHandlers.h>
27 #include <ripple/rpc/impl/RPCHelpers.h>
29 #include <test/jtx/Env.h>
30 #include <test/jtx/envconfig.h>
31 #include <test/rpc/GRPCTestClientBase.h>
36 class Fee_test :
public beast::unit_test::suite
41 org::xrpl::rpc::v1::GetFeeRequest
request;
42 org::xrpl::rpc::v1::GetFeeResponse
reply;
68 testcase(
"Test Fee Grpc");
70 using namespace test::jtx;
73 Env env(*
this, std::move(config));
76 env.fund(
XRP(10000), A1);
77 env.fund(
XRP(10000), A2);
79 env.trust(A2[
"USD"](1000), A1);
81 for (
int i = 0; i < 7; ++i)
83 env(
pay(A2, A1, A2[
"USD"](100)));
88 auto view = env.current();
90 auto const metrics = env.app().getTxQ().getMetrics(*env.current());
94 BEAST_EXPECT(result.first ==
true);
96 auto reply = result.second;
99 BEAST_EXPECT(reply.current_ledger_size() == metrics.txInLedger);
100 BEAST_EXPECT(reply.current_queue_size() == metrics.txCount);
101 BEAST_EXPECT(reply.expected_ledger_size() == metrics.txPerLedger);
102 BEAST_EXPECT(reply.ledger_current_index() == view->info().seq);
103 BEAST_EXPECT(reply.max_queue_size() == *metrics.txQMaxSize);
106 org::xrpl::rpc::v1::FeeLevels& levels = *reply.mutable_levels();
107 BEAST_EXPECT(levels.median_level() == metrics.medFeeLevel);
108 BEAST_EXPECT(levels.minimum_level() == metrics.minProcessingFeeLevel);
109 BEAST_EXPECT(levels.open_ledger_level() == metrics.openLedgerFeeLevel);
110 BEAST_EXPECT(levels.reference_level() == metrics.referenceFeeLevel);
113 org::xrpl::rpc::v1::Fee&
fee = *reply.mutable_fee();
114 auto const baseFee = view->fees().base;
116 fee.base_fee().drops() ==
117 toDrops(metrics.referenceFeeLevel, baseFee));
119 fee.minimum_fee().drops() ==
120 toDrops(metrics.minProcessingFeeLevel, baseFee));
122 fee.median_fee().drops() ==
toDrops(metrics.medFeeLevel, baseFee));
125 BEAST_EXPECT(
fee.open_ledger_fee().drops() == openLedgerFee.drops());