From bca6d8e515dae48c8f9514a9a9f186d49cbdb381 Mon Sep 17 00:00:00 2001 From: tequ Date: Thu, 30 Apr 2026 22:15:05 +0900 Subject: [PATCH] fix not to payback ReserveCount --- src/libxrpl/ledger/helpers/AccountRootHelpers.cpp | 3 +-- src/test/app/Sponsor_test.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp b/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp index dfcd980f03..e19a49286a 100644 --- a/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp +++ b/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp @@ -267,11 +267,10 @@ adjustOwnerCount( view, sponsorSle, sfSponsoringOwnerCount, sponsorID, adjustment, j); auto sponsorObjSle = view.peek(keylet::sponsor(sponsorID, accountID)); - if (sponsorObjSle) + if (sponsorObjSle && adjustment > 0) { // update the pre-funded ReserveCount on Sponsorship ledger object // Reserve count moves opposite to adjustment: +adjustment => consume reserve (-), - // -adjustment => payback (+) adjustSponsorOwnerCountHlp( view, sponsorObjSle, sfReserveCount, sponsorID, -adjustment, j, false); } diff --git a/src/test/app/Sponsor_test.cpp b/src/test/app/Sponsor_test.cpp index 702679bfcf..cccbb71ef2 100644 --- a/src/test/app/Sponsor_test.cpp +++ b/src/test/app/Sponsor_test.cpp @@ -725,7 +725,7 @@ public: sle = env.le(keylet::sponsor(sponsor, alice)); BEAST_EXPECT(sle); - BEAST_EXPECT(sle->at(sfReserveCount) == 100); // paybacked + BEAST_EXPECT(sle->at(sfReserveCount) == 99); // not paybacked BEAST_EXPECT(sle->at(sfFeeAmount) == XRP(99)); }