fix not to payback ReserveCount

This commit is contained in:
tequ
2026-04-30 22:15:05 +09:00
committed by Oleksandr
parent 86c90c8e5c
commit bca6d8e515
2 changed files with 2 additions and 3 deletions

View File

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

View File

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