From 1823d70b21f9bd2b226608d9737672a85bc30162 Mon Sep 17 00:00:00 2001 From: tequ Date: Tue, 27 Jan 2026 10:34:15 +0900 Subject: [PATCH] refactor Oracle Reserve calculation --- src/xrpld/app/tx/detail/SetOracle.cpp | 2 +- src/xrpld/app/tx/detail/SetOracle.h | 3 +++ src/xrpld/app/tx/detail/SponsorshipTransfer.cpp | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/xrpld/app/tx/detail/SetOracle.cpp b/src/xrpld/app/tx/detail/SetOracle.cpp index 96ffca0ee0..a6f82afbe7 100644 --- a/src/xrpld/app/tx/detail/SetOracle.cpp +++ b/src/xrpld/app/tx/detail/SetOracle.cpp @@ -40,7 +40,7 @@ SetOracle::preflight(PreflightContext const& ctx) } uint32_t -calculateOracleReserve(std::size_t count) +SetOracle::calculateOracleReserve(std::size_t count) { return count > 5 ? 2 : 1; } diff --git a/src/xrpld/app/tx/detail/SetOracle.h b/src/xrpld/app/tx/detail/SetOracle.h index c1c9a3d3fb..ca27a76d01 100644 --- a/src/xrpld/app/tx/detail/SetOracle.h +++ b/src/xrpld/app/tx/detail/SetOracle.h @@ -23,6 +23,9 @@ public: { } + static uint32_t + calculateOracleReserve(std::size_t count); + static NotTEC preflight(PreflightContext const& ctx); diff --git a/src/xrpld/app/tx/detail/SponsorshipTransfer.cpp b/src/xrpld/app/tx/detail/SponsorshipTransfer.cpp index cb68fa0a5a..4044291c55 100644 --- a/src/xrpld/app/tx/detail/SponsorshipTransfer.cpp +++ b/src/xrpld/app/tx/detail/SponsorshipTransfer.cpp @@ -1,3 +1,4 @@ +#include #include #include @@ -120,7 +121,8 @@ getLedgerEntryOwnerCount(T const& sle) switch (sle->getType()) { case ltORACLE: { - return sle->getFieldArray(sfPriceDataSeries).size() > 5 ? 2 : 1; + return SetOracle::calculateOracleReserve( + sle->getFieldArray(sfPriceDataSeries).size()); } default: return 1;