mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-03 16:56:48 +00:00
fix SponsorshipSet Update FeeAmount Lacks Reserve Floor Check
This commit is contained in:
@@ -295,6 +295,16 @@ SponsorshipSet::doApply()
|
||||
(*sponsorObjSle).makeFieldAbsent(sfFeeAmount);
|
||||
else
|
||||
(*sponsorObjSle).setFieldAmount(sfFeeAmount, *feeAmount);
|
||||
|
||||
if (auto const ret = checkInsufficientReserve(
|
||||
ctx_.view(),
|
||||
ctx_.tx,
|
||||
sponsorAccSle,
|
||||
STAmount{(*sponsorAccSle)[sfBalance]}.xrp(),
|
||||
reserveSponsorAccSle,
|
||||
0);
|
||||
!isTesSuccess(ret))
|
||||
return tecUNFUNDED;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -256,6 +256,16 @@ public:
|
||||
fee(XRP(1)),
|
||||
ter(tecUNFUNDED));
|
||||
env.close();
|
||||
|
||||
// Increasing feeAmount to reach insufficient reserve
|
||||
auto const currentFeeAmount =
|
||||
env.le(keylet::sponsor(sponsor.id(), alice.id()))->getFieldAmount(sfFeeAmount).xrp();
|
||||
adjustAccountXRPBalance(env, sponsor, XRP(310));
|
||||
env(sponsor::set_fee(sponsor, 0, currentFeeAmount + XRP(309)),
|
||||
sponsor::sponseeAcc(alice),
|
||||
fee(XRP(1)),
|
||||
ter(tecUNFUNDED));
|
||||
env.close();
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user