fix build

This commit is contained in:
Mayukha Vadari
2026-07-23 17:04:05 -04:00
parent 4073838f66
commit be58ec0cd5
7 changed files with 64 additions and 47 deletions

View File

@@ -93,6 +93,7 @@ struct Keys
static constexpr auto kBbtOptions = "bbt_options";
static constexpr auto kBgThreads = "bg_threads";
static constexpr auto kBlockSize = "block_size";
static constexpr auto kBytecodeSizeLimit = "bytecode_size_limit";
static constexpr auto kCacheAge = "cache_age";
static constexpr auto kCacheMb = "cache_mb";
static constexpr auto kCacheSize = "cache_size";
@@ -107,6 +108,8 @@ struct Keys
static constexpr auto kFileSizeMult = "file_size_mult";
static constexpr auto kFilterBits = "filter_bits";
static constexpr auto kFilterFull = "filter_full";
static constexpr auto kGasLimit = "gas_limit";
static constexpr auto kGasPrice = "gas_price";
static constexpr auto kHardSet = "hard_set";
static constexpr auto kHighThreads = "high_threads";
static constexpr auto kHoldTime = "hold_time";

View File

@@ -13,7 +13,9 @@ inline constexpr std::uint32_t kFeeUnitsDeprecated = 10;
// Number of micro-drops in one drop.
constexpr std::uint32_t microDropsPerDrop{1'000'000};
/** Maximum Feature Extension fee settings. */
/**
* Maximum Feature Extension fee settings.
*/
inline constexpr std::uint32_t kMaxGasLimit{2'000'000};
inline constexpr std::uint32_t kMaxBytecodeSizeLimit{200'000};
@@ -40,13 +42,19 @@ struct Fees
*/
XRPAmount increment{0};
/** @brief Gas limit for Feature Extensions (instructions). */
/**
* @brief Gas limit for Feature Extensions (instructions).
*/
std::uint32_t gasLimit{0};
/** @brief Bytecode size limit for Feature Extensions (bytes). */
/**
* @brief Bytecode size limit for Feature Extensions (bytes).
*/
std::uint32_t bytecodeSizeLimit{0};
/** @brief Price of WASM gas (micro-drops). */
/**
* @brief Price of WASM gas (micro-drops).
*/
std::uint32_t gasPrice{0};
explicit Fees() = default;

View File

@@ -422,7 +422,7 @@ class FeeVote_test : public beast::unit_test::Suite
auto ledger = std::make_shared<Ledger>(
kCreateGenesis,
Rules{env.app().config().features},
env.app().config().FEES.toFees(),
env.app().config().fees.toFees(),
std::vector<uint256>{},
env.app().getNodeFamily());
@@ -453,7 +453,7 @@ class FeeVote_test : public beast::unit_test::Suite
auto ledger = std::make_shared<Ledger>(
kCreateGenesis,
Rules{env.app().config().features},
env.app().config().FEES.toFees(),
env.app().config().fees.toFees(),
std::vector<uint256>{},
env.app().getNodeFamily());
@@ -488,7 +488,7 @@ class FeeVote_test : public beast::unit_test::Suite
auto ledger = std::make_shared<Ledger>(
kCreateGenesis,
Rules{env.app().config().features},
env.app().config().FEES.toFees(),
env.app().config().fees.toFees(),
std::vector<uint256>{},
env.app().getNodeFamily());
@@ -564,7 +564,7 @@ class FeeVote_test : public beast::unit_test::Suite
auto ledger = std::make_shared<Ledger>(
kCreateGenesis,
Rules{env.app().config().features},
env.app().config().FEES.toFees(),
env.app().config().fees.toFees(),
std::vector<uint256>{},
env.app().getNodeFamily());
@@ -958,7 +958,7 @@ class FeeVote_test : public beast::unit_test::Suite
auto ledger = std::make_shared<Ledger>(
kCreateGenesis,
Rules{env.app().config().features},
env.app().config().FEES.toFees(),
env.app().config().fees.toFees(),
std::vector<uint256>{},
env.app().getNodeFamily());
@@ -987,9 +987,9 @@ class FeeVote_test : public beast::unit_test::Suite
[&](STValidation& v) {
v.setFieldU32(sfLedgerSequence, ledger->seq());
// Vote for different fees than current
v.setFieldAmount(sfBaseFeeDrops, XRPAmount{setup.reference_fee});
v.setFieldAmount(sfReserveBaseDrops, XRPAmount{setup.account_reserve});
v.setFieldAmount(sfReserveIncrementDrops, XRPAmount{setup.owner_reserve});
v.setFieldAmount(sfBaseFeeDrops, XRPAmount{setup.referenceFee});
v.setFieldAmount(sfReserveBaseDrops, XRPAmount{setup.accountReserve});
v.setFieldAmount(sfReserveIncrementDrops, XRPAmount{setup.ownerReserve});
v.setFieldU32(sfGasLimit, setup.gasLimit);
v.setFieldU32(sfBytecodeSizeLimit, setup.bytecodeSizeLimit);
v.setFieldU32(sfGasPrice, setup.gasPrice);
@@ -1032,11 +1032,11 @@ class FeeVote_test : public beast::unit_test::Suite
// Check the values
BEAST_EXPECTS(
feeTx.getFieldAmount(sfBaseFeeDrops) == XRPAmount{setup.reference_fee}, line);
feeTx.getFieldAmount(sfBaseFeeDrops) == XRPAmount{setup.referenceFee}, line);
BEAST_EXPECTS(
feeTx.getFieldAmount(sfReserveBaseDrops) == XRPAmount{setup.account_reserve}, line);
feeTx.getFieldAmount(sfReserveBaseDrops) == XRPAmount{setup.accountReserve}, line);
BEAST_EXPECTS(
feeTx.getFieldAmount(sfReserveIncrementDrops) == XRPAmount{setup.owner_reserve},
feeTx.getFieldAmount(sfReserveIncrementDrops) == XRPAmount{setup.ownerReserve},
line);
BEAST_EXPECTS(feeTx.getFieldU32(sfGasLimit) == setup.gasLimit, line);
BEAST_EXPECTS(feeTx.getFieldU32(sfBytecodeSizeLimit) == setup.bytecodeSizeLimit, line);
@@ -1045,9 +1045,9 @@ class FeeVote_test : public beast::unit_test::Suite
{
FeeSetup setup;
setup.reference_fee = 42;
setup.account_reserve = 1234567;
setup.owner_reserve = 7654321;
setup.referenceFee = 42;
setup.accountReserve = 1234567;
setup.ownerReserve = 7654321;
setup.gasLimit = 100;
setup.bytecodeSizeLimit = 200;
setup.gasPrice = 300;
@@ -1058,9 +1058,9 @@ class FeeVote_test : public beast::unit_test::Suite
{
FeeSetup setup;
setup.reference_fee = 42;
setup.account_reserve = 1234567;
setup.owner_reserve = 7654321;
setup.referenceFee = 42;
setup.accountReserve = 1234567;
setup.ownerReserve = 7654321;
setup.gasLimit = 0;
setup.bytecodeSizeLimit = 0;
setup.gasPrice = 300;
@@ -1071,9 +1071,9 @@ class FeeVote_test : public beast::unit_test::Suite
{
FeeSetup setup;
setup.reference_fee = 42;
setup.account_reserve = 1234567;
setup.owner_reserve = 7654321;
setup.referenceFee = 42;
setup.accountReserve = 1234567;
setup.ownerReserve = 7654321;
setup.gasLimit = kMaxGasLimit + 1;
setup.bytecodeSizeLimit = kMaxBytecodeSizeLimit + 1;
setup.gasPrice = 300;

View File

@@ -24,9 +24,9 @@ setupConfigForUnitTests(Config& cfg)
cfg.fees.referenceFee = UNIT_TEST_REFERENCE_FEE;
cfg.fees.accountReserve = XRP(200).value().xrp().drops();
cfg.fees.ownerReserve = XRP(50).value().xrp().drops();
cfg.FEES.gasLimit = 1'000'000;
cfg.FEES.bytecodeSizeLimit = 1'000'000;
cfg.FEES.gasPrice = 1'000;
cfg.fees.gasLimit = 1'000'000;
cfg.fees.bytecodeSizeLimit = 1'000'000;
cfg.fees.gasPrice = 1'000;
// The Beta API (currently v2) is always available to tests
cfg.betaRpcApi = true;

View File

@@ -172,19 +172,19 @@ FeeVoteImpl::doValidation(Fees const& lastFees, Rules const& rules, STValidation
}
if (rules.enabled(featureSmartEscrow))
{
if (target_.gas_limit <= kMaxGasLimit)
if (target_.gasLimit <= kMaxGasLimit)
{
vote(lastFees.gasLimit, target_.gas_limit, "gas limit", sfGasLimit);
vote(lastFees.gasLimit, target_.gasLimit, "gas limit", sfGasLimit);
}
if (target_.bytecode_size_limit <= kMaxBytecodeSizeLimit)
if (target_.bytecodeSizeLimit <= kMaxBytecodeSizeLimit)
{
vote(
lastFees.bytecodeSizeLimit,
target_.bytecode_size_limit,
target_.bytecodeSizeLimit,
"bytecode size limit",
sfBytecodeSizeLimit);
}
vote(lastFees.gasPrice, target_.gas_price, "gas price", sfGasPrice);
vote(lastFees.gasPrice, target_.gasPrice, "gas price", sfGasPrice);
}
}
@@ -211,16 +211,16 @@ FeeVoteImpl::doVoting(
detail::VotableValue gasLimitVote(
lastClosedLedger->fees().gasLimit,
validOrCurrent(target_.gas_limit, kMaxGasLimit, lastClosedLedger->fees().gasLimit));
validOrCurrent(target_.gasLimit, kMaxGasLimit, lastClosedLedger->fees().gasLimit));
detail::VotableValue bytecodeSizeLimitVote(
lastClosedLedger->fees().bytecodeSizeLimit,
validOrCurrent(
target_.bytecode_size_limit,
target_.bytecodeSizeLimit,
kMaxBytecodeSizeLimit,
lastClosedLedger->fees().bytecodeSizeLimit));
detail::VotableValue gasPriceVote(lastClosedLedger->fees().gasPrice, target_.gas_price);
detail::VotableValue gasPriceVote(lastClosedLedger->fees().gasPrice, target_.gasPrice);
auto const& rules = lastClosedLedger->rules();
if (rules.enabled(featureXRPFees))

View File

@@ -67,14 +67,20 @@ struct FeeSetup
*/
XRPAmount ownerReserve{2 * kDropsPerXrp};
/** The gas limit for Feature Extensions. */
std::uint32_t gas_limit{1'000'000};
/**
* The gas limit for Feature Extensions.
*/
std::uint32_t gasLimit{1'000'000};
/** The bytecode size limit for Feature Extensions. */
std::uint32_t bytecode_size_limit{100'000};
/**
* The bytecode size limit for Feature Extensions.
*/
std::uint32_t bytecodeSizeLimit{100'000};
/** The price of 1 WASM gas, in micro-drops. */
std::uint32_t gas_price{1'000'000};
/**
* The price of 1 WASM gas, in micro-drops.
*/
std::uint32_t gasPrice{1'000'000};
/* (Remember to update the example cfg files when changing any of these
* values.) */

View File

@@ -1220,12 +1220,12 @@ setupFeeVote(Section const& section)
setup.accountReserve = temp;
if (set(temp, Keys::kOwnerReserve, section))
setup.ownerReserve = temp;
if (set(temp, "gas_limit", section) && temp <= kMaxGasLimit)
setup.gas_limit = temp;
if (set(temp, "bytecode_size_limit", section) && temp <= kMaxBytecodeSizeLimit)
setup.bytecode_size_limit = temp;
if (set(temp, "gas_price", section))
setup.gas_price = temp;
if (set(temp, Keys::kGasLimit, section) && temp <= kMaxGasLimit)
setup.gasLimit = temp;
if (set(temp, Keys::kBytecodeSizeLimit, section) && temp <= kMaxBytecodeSizeLimit)
setup.bytecodeSizeLimit = temp;
if (set(temp, Keys::kGasPrice, section))
setup.gasPrice = temp;
}
return setup;
}