From 204138fb0efe317dff6a4a25454299906806549b Mon Sep 17 00:00:00 2001 From: tequ Date: Thu, 15 Jan 2026 18:48:06 +0900 Subject: [PATCH] Revert the use of calculateReserve in xrpLiquid --- src/libxrpl/ledger/View.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/libxrpl/ledger/View.cpp b/src/libxrpl/ledger/View.cpp index 5e63c78ebf..b1a8e7c15c 100644 --- a/src/libxrpl/ledger/View.cpp +++ b/src/libxrpl/ledger/View.cpp @@ -688,10 +688,20 @@ xrpLiquid( std::uint32_t const ownerCount = confineOwnerCount( view.ownerCountHook(id, sle->getFieldU32(sfOwnerCount)), ownerCountAdj); + std::size_t sponsoredOwnerCount = sle->getFieldU32(sfSponsoredOwnerCount); + std::size_t sponsoringOwnerCount = sle->getFieldU32(sfSponsoringOwnerCount); + bool isAccountSponsored = sle->isFieldPresent(sfSponsorAccount); + std::size_t sponsoringAccountCount = + sle->getFieldU32(sfSponsoringAccountCount); + // Pseudo-accounts have no reserve requirement - auto const reserve = isPseudoAccount(sle) - ? XRPAmount{0} - : calculateReserve(sle, view.fees()); + auto const reserve = isPseudoAccount(sle) ? XRPAmount{0} + : view.fees().accountReserve( + ownerCount, + sponsoredOwnerCount, + sponsoringOwnerCount, + isAccountSponsored, + sponsoringAccountCount); auto const fullBalance = sle->getFieldAmount(sfBalance);