mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Add units to all fee calculations:
* Uses existing XRPAmount with units for drops, and a new TaggedFee for fee units (LoadFeeTrack), and fee levels (TxQ). * Resolves #2451
This commit is contained in:
@@ -31,18 +31,58 @@ public:
|
||||
{
|
||||
Config d; // get a default configuration object
|
||||
LoadFeeTrack l;
|
||||
Fees const fees = [&]()
|
||||
{
|
||||
Fees f;
|
||||
f.base = d.FEE_DEFAULT;
|
||||
f.units = d.TRANSACTION_FEE_BASE;
|
||||
f.reserve = 200 * SYSTEM_CURRENCY_PARTS;
|
||||
f.increment = 50 * SYSTEM_CURRENCY_PARTS;
|
||||
return f;
|
||||
}();
|
||||
Fees const fees = [&]() {
|
||||
Fees f;
|
||||
f.base = d.FEE_DEFAULT;
|
||||
f.units = d.TRANSACTION_FEE_BASE;
|
||||
f.reserve = 200 * DROPS_PER_XRP;
|
||||
f.increment = 50 * DROPS_PER_XRP;
|
||||
return f;
|
||||
}();
|
||||
|
||||
BEAST_EXPECT (scaleFeeLoad (10000, l, fees, false) == 10000);
|
||||
BEAST_EXPECT (scaleFeeLoad (1, l, fees, false) == 1);
|
||||
BEAST_EXPECT(scaleFeeLoad(FeeUnit64{ 0 }, l, fees, false) ==
|
||||
XRPAmount{ 0 });
|
||||
BEAST_EXPECT(scaleFeeLoad(FeeUnit64{ 10000 }, l, fees, false) ==
|
||||
XRPAmount{ 10000 });
|
||||
BEAST_EXPECT(scaleFeeLoad(FeeUnit64{ 1 }, l, fees, false) ==
|
||||
XRPAmount{ 1 });
|
||||
}
|
||||
{
|
||||
Fees const fees = [&]() {
|
||||
Fees f;
|
||||
f.base = d.FEE_DEFAULT * 10;
|
||||
f.units = d.TRANSACTION_FEE_BASE;
|
||||
f.reserve = 200 * DROPS_PER_XRP;
|
||||
f.increment = 50 * DROPS_PER_XRP;
|
||||
return f;
|
||||
}();
|
||||
|
||||
BEAST_EXPECT(scaleFeeLoad(FeeUnit64{ 0 }, l, fees, false) ==
|
||||
XRPAmount{ 0 });
|
||||
BEAST_EXPECT(scaleFeeLoad(FeeUnit64{ 10000 }, l, fees, false) ==
|
||||
XRPAmount{ 100000 });
|
||||
BEAST_EXPECT(scaleFeeLoad(FeeUnit64{ 1 }, l, fees, false) ==
|
||||
XRPAmount{ 10 });
|
||||
}
|
||||
{
|
||||
Fees const fees = [&]()
|
||||
{
|
||||
Fees f;
|
||||
f.base = d.FEE_DEFAULT;
|
||||
f.units = d.TRANSACTION_FEE_BASE * 10;
|
||||
f.reserve = 200 * DROPS_PER_XRP;
|
||||
f.increment = 50 * DROPS_PER_XRP;
|
||||
return f;
|
||||
}();
|
||||
|
||||
BEAST_EXPECT(scaleFeeLoad(FeeUnit64{ 0 }, l, fees, false) ==
|
||||
XRPAmount{ 0 });
|
||||
BEAST_EXPECT(scaleFeeLoad(FeeUnit64{ 10000 }, l, fees, false) ==
|
||||
XRPAmount{ 1000 });
|
||||
BEAST_EXPECT(scaleFeeLoad(FeeUnit64{ 1 }, l, fees, false) ==
|
||||
XRPAmount{ 0 });
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user