refactor: Use FeeSettingsEntry everywhere (#8370)

This commit is contained in:
Mayukha Vadari
2026-10-05 16:56:41 +00:00
committed by GitHub
parent 40f61f828a
commit 0f7493ce50
6 changed files with 20 additions and 17 deletions

View File

@@ -11,6 +11,7 @@
#include <xrpl/beast/utility/instrumentation.h>
#include <xrpl/ledger/LedgerTiming.h>
#include <xrpl/ledger/ReadView.h>
#include <xrpl/ledger/entries/FeeSettingsEntry.h>
#include <xrpl/nodestore/NodeObject.h>
#include <xrpl/protocol/Feature.h>
#include <xrpl/protocol/Fees.h>
@@ -560,7 +561,7 @@ Ledger::setup()
try
{
if (auto const sle = read(keylet::feeSettings()))
if (auto const sle = FeeSettingsEntryR(*this))
{
bool oldFees = false;
bool newFees = false;

View File

@@ -8,6 +8,7 @@
#include <xrpl/beast/utility/instrumentation.h>
#include <xrpl/core/ServiceRegistry.h>
#include <xrpl/ledger/AmendmentTable.h>
#include <xrpl/ledger/entries/FeeSettingsEntry.h>
#include <xrpl/protocol/Feature.h>
#include <xrpl/protocol/Indexes.h>
#include <xrpl/protocol/Protocol.h>
@@ -260,16 +261,14 @@ Change::applyAmendment()
TER
Change::applyFee()
{
auto const k = keylet::feeSettings();
SLE::pointer feeObject = view().peek(k);
FeeSettingsEntryW feeObject(view());
if (!feeObject)
{
feeObject = std::make_shared<SLE>(k);
view().insert(feeObject);
feeObject.newSLE();
feeObject.insert();
}
auto set = [](SLE::pointer& feeObject, STTx const& tx, auto const& field) {
auto set = [](FeeSettingsEntryW& feeObject, STTx const& tx, auto const& field) {
feeObject->at(field) = tx[field];
};
if (view().rules().enabled(featureXRPFees))
@@ -291,7 +290,7 @@ Change::applyFee()
set(feeObject, ctx_.tx, sfReserveIncrement);
}
view().update(feeObject);
feeObject.update();
JLOG(j_.warn()) << "Fees have been changed";
return tesSUCCESS;

View File

@@ -12,6 +12,7 @@
#include <xrpl/ledger/CanonicalTXSet.h>
#include <xrpl/ledger/Ledger.h>
#include <xrpl/ledger/OpenView.h>
#include <xrpl/ledger/entries/FeeSettingsEntry.h>
#include <xrpl/nodestore/NodeObject.h>
#include <xrpl/protocol/Indexes.h> // IWYU pragma: keep
#include <xrpl/protocol/LedgerHeader.h>
@@ -74,7 +75,7 @@ buildLedgerImpl(
// Accept ledger
XRPL_ASSERT(
built->header().seq < kXrpLedgerEarliestFees || built->read(keylet::feeSettings()),
built->header().seq < kXrpLedgerEarliestFees || FeeSettingsEntryR(*built),
"xrpl::buildLedgerImpl : valid ledger fees");
built->setAccepted(closeTime, closeResolution, closeTimeCorrect);

View File

@@ -19,6 +19,7 @@
#include <xrpl/core/Job.h>
#include <xrpl/core/JobQueue.h>
#include <xrpl/json/json_value.h>
#include <xrpl/ledger/entries/FeeSettingsEntry.h>
#include <xrpl/nodestore/Database.h>
#include <xrpl/nodestore/NodeObject.h>
#include <xrpl/protocol/HashPrefix.h>
@@ -110,7 +111,7 @@ InboundLedger::init(ScopedLockType& collectionLock)
JLOG(journal_.debug()) << "Acquiring ledger we already have in "
<< " local store. " << hash_;
XRPL_ASSERT(
ledger_->header().seq < kXrpLedgerEarliestFees || ledger_->read(keylet::feeSettings()),
ledger_->header().seq < kXrpLedgerEarliestFees || FeeSettingsEntryR(*ledger_),
"xrpl::InboundLedger::init : valid ledger fees");
ledger_->setImmutable();
@@ -331,7 +332,7 @@ InboundLedger::tryDB(node_store::Database& srcDB)
JLOG(journal_.debug()) << "Had everything locally";
complete_ = true;
XRPL_ASSERT(
ledger_->header().seq < kXrpLedgerEarliestFees || ledger_->read(keylet::feeSettings()),
ledger_->header().seq < kXrpLedgerEarliestFees || FeeSettingsEntryR(*ledger_),
"xrpl::InboundLedger::tryDB : valid ledger fees");
ledger_->setImmutable();
}
@@ -430,7 +431,7 @@ InboundLedger::done()
if (complete_ && !failed_ && ledger_)
{
XRPL_ASSERT(
ledger_->header().seq < kXrpLedgerEarliestFees || ledger_->read(keylet::feeSettings()),
ledger_->header().seq < kXrpLedgerEarliestFees || FeeSettingsEntryR(*ledger_),
"xrpl::InboundLedger::done : valid ledger fees");
ledger_->setImmutable();
switch (reason_)

View File

@@ -8,6 +8,7 @@
#include <xrpl/core/JobQueue.h>
#include <xrpl/core/ServiceRegistry.h>
#include <xrpl/ledger/PendingSaves.h>
#include <xrpl/ledger/entries/FeeSettingsEntry.h>
#include <xrpl/protocol/Indexes.h> // IWYU pragma: keep
#include <xrpl/protocol/Rules.h>
#include <xrpl/protocol/SystemParameters.h> // IWYU pragma: keep
@@ -122,7 +123,7 @@ finishLoadByIndexOrHash(std::shared_ptr<Ledger> const& ledger, beast::Journal j)
return;
XRPL_ASSERT(
ledger->header().seq < kXrpLedgerEarliestFees || ledger->read(keylet::feeSettings()),
ledger->header().seq < kXrpLedgerEarliestFees || FeeSettingsEntryR(*ledger),
"xrpl::finishLoadByIndexOrHash : valid ledger fees");
ledger->setImmutable();

View File

@@ -72,6 +72,7 @@
#include <xrpl/ledger/Ledger.h>
#include <xrpl/ledger/OpenView.h>
#include <xrpl/ledger/PendingSaves.h>
#include <xrpl/ledger/entries/FeeSettingsEntry.h>
#include <xrpl/nodestore/Database.h>
#include <xrpl/nodestore/DummyScheduler.h>
#include <xrpl/nodestore/Manager.h>
@@ -1700,7 +1701,7 @@ ApplicationImp::startGenesisLedger()
auto const next = std::make_shared<Ledger>(*genesis, getTimeKeeper().closeTime());
next->updateSkipList();
XRPL_ASSERT(
next->header().seq < kXrpLedgerEarliestFees || next->read(keylet::feeSettings()),
next->header().seq < kXrpLedgerEarliestFees || FeeSettingsEntryR(*next),
"xrpl::ApplicationImp::startGenesisLedger : valid ledger fees");
next->setImmutable();
openLedger_.emplace(next, cachedSLEs_, logs_->journal("OpenLedger"));
@@ -1722,7 +1723,7 @@ ApplicationImp::getLastFullLedger()
return ledger;
XRPL_ASSERT(
ledger->header().seq < kXrpLedgerEarliestFees || ledger->read(keylet::feeSettings()),
ledger->header().seq < kXrpLedgerEarliestFees || FeeSettingsEntryR(*ledger),
"xrpl::ApplicationImp::getLastFullLedger : valid ledger fees");
ledger->setImmutable();
@@ -1873,8 +1874,7 @@ ApplicationImp::loadLedgerFromFile(std::string const& name)
loadLedger->stateMap().flushDirty(NodeObjectType::AccountNode);
XRPL_ASSERT(
loadLedger->header().seq < kXrpLedgerEarliestFees ||
loadLedger->read(keylet::feeSettings()),
loadLedger->header().seq < kXrpLedgerEarliestFees || FeeSettingsEntryR(*loadLedger),
"xrpl::ApplicationImp::loadLedgerFromFile : valid ledger fees");
loadLedger->setAccepted(closeTime, closeTimeResolution, !closeTimeEstimated);