mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-04 09:16:47 +00:00
fix M3
This commit is contained in:
@@ -215,11 +215,6 @@ SponsorshipSet::doApply()
|
||||
// Create
|
||||
auto newSle = std::make_shared<SLE>(sponsorKeylet);
|
||||
|
||||
if (auto const ret = checkInsufficientReserve(
|
||||
ctx_.view(), ctx_.tx, sponsorAccSle, preFeeBalance_, reserveSponsorAccSle, 1);
|
||||
!isTesSuccess(ret))
|
||||
return tecUNFUNDED;
|
||||
|
||||
(*newSle)[sfOwner] = sponsorAccountID;
|
||||
(*newSle)[sfSponsee] = sponseeAccountID;
|
||||
if (feeAmount && (*feeAmount).xrp() > (*sponsorAccSle)[sfBalance])
|
||||
@@ -230,6 +225,17 @@ SponsorshipSet::doApply()
|
||||
(*sponsorAccSle)[sfBalance] -= *feeAmount;
|
||||
(*newSle)[sfFeeAmount] = *feeAmount;
|
||||
}
|
||||
|
||||
if (auto const ret = checkInsufficientReserve(
|
||||
ctx_.view(),
|
||||
ctx_.tx,
|
||||
sponsorAccSle,
|
||||
STAmount{(*sponsorAccSle)[sfBalance]}.xrp(),
|
||||
reserveSponsorAccSle,
|
||||
1);
|
||||
!isTesSuccess(ret))
|
||||
return tecUNFUNDED;
|
||||
|
||||
if (maxFee && *maxFee > XRPAmount(0))
|
||||
(*newSle)[sfMaxFee] = *maxFee;
|
||||
if (reserveCount && *reserveCount > 0)
|
||||
@@ -267,8 +273,7 @@ SponsorshipSet::doApply()
|
||||
auto const currentFeeAmount = (*sponsorObjSle)[~sfFeeAmount].value_or(XRPAmount(0));
|
||||
auto feeAmountDelta = XRPAmount(*feeAmount - currentFeeAmount);
|
||||
|
||||
if (feeAmountDelta > beast::zero &&
|
||||
feeAmountDelta > (*sponsorAccSle)[sfBalance])
|
||||
if (feeAmountDelta > beast::zero && feeAmountDelta > (*sponsorAccSle)[sfBalance])
|
||||
return tecUNFUNDED;
|
||||
|
||||
// transfer feeAmount to ledger entry
|
||||
|
||||
@@ -187,8 +187,11 @@ public:
|
||||
env.close();
|
||||
|
||||
// insufficent reserve to create sponsorship
|
||||
adjustAccountXRPBalance(env, sponsor, reserve(env, 1) - drops(1));
|
||||
env(sponsor::set(sponsor, 0, 100, XRP(100)), sponsor::sponseeAcc(alice), ter(tecUNFUNDED));
|
||||
adjustAccountXRPBalance(env, sponsor, XRP(100) + XRP(1) + reserve(env, 1) - drops(1));
|
||||
env(sponsor::set(sponsor, 0, 100, XRP(100)),
|
||||
sponsor::sponseeAcc(alice),
|
||||
fee(XRP(1)),
|
||||
ter(tecUNFUNDED));
|
||||
env.close();
|
||||
|
||||
// FeeAmount + Fee > Balance
|
||||
@@ -208,7 +211,8 @@ public:
|
||||
env.close();
|
||||
|
||||
// create sponsor to use above tests
|
||||
adjustAccountXRPBalance(env, sponsor, XRP(1001));
|
||||
// need feeAmount(1000) + fee(1) + reserve(~250) = ~1251
|
||||
adjustAccountXRPBalance(env, sponsor, XRP(1000) + XRP(1) + reserve(env, 1));
|
||||
env(sponsor::set(sponsor, 0, 100, XRP(1000)),
|
||||
sponsor::sponseeAcc(alice),
|
||||
fee(XRP(1)),
|
||||
|
||||
Reference in New Issue
Block a user