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);