From 0f7493ce508da0a2e8b140b0500b48d25d205a9f Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Mon, 5 Oct 2026 16:56:41 +0000 Subject: [PATCH] refactor: Use FeeSettingsEntry everywhere (#8370) --- src/libxrpl/ledger/Ledger.cpp | 3 ++- src/libxrpl/tx/transactors/system/Change.cpp | 13 ++++++------- src/xrpld/app/ledger/detail/BuildLedger.cpp | 3 ++- src/xrpld/app/ledger/detail/InboundLedger.cpp | 7 ++++--- src/xrpld/app/ledger/detail/LedgerPersistence.cpp | 3 ++- src/xrpld/app/main/Application.cpp | 8 ++++---- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/libxrpl/ledger/Ledger.cpp b/src/libxrpl/ledger/Ledger.cpp index 6dfbd88c66..7eae398f94 100644 --- a/src/libxrpl/ledger/Ledger.cpp +++ b/src/libxrpl/ledger/Ledger.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -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; diff --git a/src/libxrpl/tx/transactors/system/Change.cpp b/src/libxrpl/tx/transactors/system/Change.cpp index 6f8facdd68..4e56e7d933 100644 --- a/src/libxrpl/tx/transactors/system/Change.cpp +++ b/src/libxrpl/tx/transactors/system/Change.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -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(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; diff --git a/src/xrpld/app/ledger/detail/BuildLedger.cpp b/src/xrpld/app/ledger/detail/BuildLedger.cpp index e9c01c7133..90c00e52d2 100644 --- a/src/xrpld/app/ledger/detail/BuildLedger.cpp +++ b/src/xrpld/app/ledger/detail/BuildLedger.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include // IWYU pragma: keep #include @@ -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); diff --git a/src/xrpld/app/ledger/detail/InboundLedger.cpp b/src/xrpld/app/ledger/detail/InboundLedger.cpp index a64fc8cce6..0c75adb8e4 100644 --- a/src/xrpld/app/ledger/detail/InboundLedger.cpp +++ b/src/xrpld/app/ledger/detail/InboundLedger.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -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_) diff --git a/src/xrpld/app/ledger/detail/LedgerPersistence.cpp b/src/xrpld/app/ledger/detail/LedgerPersistence.cpp index 02c1f6a4f8..36479b08cb 100644 --- a/src/xrpld/app/ledger/detail/LedgerPersistence.cpp +++ b/src/xrpld/app/ledger/detail/LedgerPersistence.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include // IWYU pragma: keep #include #include // IWYU pragma: keep @@ -122,7 +123,7 @@ finishLoadByIndexOrHash(std::shared_ptr 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(); diff --git a/src/xrpld/app/main/Application.cpp b/src/xrpld/app/main/Application.cpp index fc30209f3b..11fca03235 100644 --- a/src/xrpld/app/main/Application.cpp +++ b/src/xrpld/app/main/Application.cpp @@ -72,6 +72,7 @@ #include #include #include +#include #include #include #include @@ -1700,7 +1701,7 @@ ApplicationImp::startGenesisLedger() auto const next = std::make_shared(*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);