From 4f135babff5f59aaa6d4b60e9fa6128bb4faa494 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 2 Jul 2026 10:38:21 -0400 Subject: [PATCH] fix build issues --- include/xrpl/ledger/helpers/AccountRootHelpers.h | 1 - include/xrpl/ledger/helpers/EscrowHelpers.h | 8 ++++---- src/libxrpl/ledger/helpers/AccountRootHelpers.cpp | 7 ++++++- src/libxrpl/ledger/helpers/MPTokenHelpers.cpp | 7 +------ src/libxrpl/ledger/helpers/RippleStateHelpers.cpp | 4 ++-- src/libxrpl/tx/transactors/Sponsor/SponsorshipSet.cpp | 2 -- .../tx/transactors/Sponsor/SponsorshipTransfer.cpp | 6 ------ src/libxrpl/tx/transactors/account/SignerListSet.cpp | 1 - src/libxrpl/tx/transactors/check/CheckCash.cpp | 7 +------ src/libxrpl/tx/transactors/check/CheckCreate.cpp | 7 +------ src/libxrpl/tx/transactors/delegate/DelegateSet.cpp | 1 - src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp | 3 +-- src/libxrpl/tx/transactors/payment/DepositPreauth.cpp | 4 ++-- .../transactors/payment_channel/PaymentChannelCreate.cpp | 8 +------- .../tx/transactors/payment_channel/PaymentChannelFund.cpp | 7 +++---- .../tx/transactors/token/MPTokenIssuanceCreate.cpp | 2 +- src/libxrpl/tx/transactors/token/TrustSet.cpp | 7 ++----- 17 files changed, 25 insertions(+), 57 deletions(-) diff --git a/include/xrpl/ledger/helpers/AccountRootHelpers.h b/include/xrpl/ledger/helpers/AccountRootHelpers.h index ef59d84d00..adc5d597fd 100644 --- a/include/xrpl/ledger/helpers/AccountRootHelpers.h +++ b/include/xrpl/ledger/helpers/AccountRootHelpers.h @@ -95,7 +95,6 @@ checkInsufficientReserve( ApplyViewContext const& ctx, SLE::const_ref accSle, STAmount const& accBalance, - SLE::const_ref sponsorSle, Adjustment adj, beast::Journal j = beast::Journal{beast::Journal::getNullSink()}); diff --git a/include/xrpl/ledger/helpers/EscrowHelpers.h b/include/xrpl/ledger/helpers/EscrowHelpers.h index 11805cd27e..4bc1e34fbd 100644 --- a/include/xrpl/ledger/helpers/EscrowHelpers.h +++ b/include/xrpl/ledger/helpers/EscrowHelpers.h @@ -61,8 +61,8 @@ escrowUnlockApplyHelper( // Can the account cover the trust line's reserve? auto const sponsorSle = ctx.reserveContext.sponsorSle; - if (auto const ret = checkInsufficientReserve( - ctx, sleDest, xrpBalance, sponsorSle, {.ownerCountDelta = 1}, journal); + if (auto const ret = + checkInsufficientReserve(ctx, sleDest, xrpBalance, {.ownerCountDelta = 1}, journal); !isTesSuccess(ret)) { JLOG(journal.trace()) << "Trust line does not exist. " @@ -188,8 +188,8 @@ escrowUnlockApplyHelper( { auto const sponsorSle = ctx.reserveContext.sponsorSle; - if (auto const ret = checkInsufficientReserve( - ctx, sleDest, xrpBalance, sponsorSle, {.ownerCountDelta = 1}, journal); + if (auto const ret = + checkInsufficientReserve(ctx, sleDest, xrpBalance, {.ownerCountDelta = 1}, journal); !isTesSuccess(ret)) return ret; diff --git a/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp b/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp index 212c5b8925..fb21ebf12b 100644 --- a/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp +++ b/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp @@ -308,12 +308,17 @@ accountReserve(ReadView const& view, SLE::const_ref sle, beast::Journal j, Adjus TER checkInsufficientReserve( ApplyViewContext const& ctx, + // NOTE: we still need the accSle to be passed in as the ctx.reserveContext.accountSle may be + // outdated SLE::const_ref accSle, STAmount const& accBalance, - SLE::const_ref sponsorSle, Adjustment adj, beast::Journal j) { + auto const sponsorSle = ctx.reserveContext.sponsorSle; // should not be modified here + XRPL_ASSERT( + ctx.reserveContext.accountID() == accSle->getAccountID(sfAccount), + "xrpl::checkInsufficientReserve : account sle matches context"); if (sponsorSle) { auto const sle = ctx.view.read( diff --git a/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp b/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp index 1c8f2c1463..232a501b88 100644 --- a/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp +++ b/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp @@ -208,12 +208,7 @@ authorizeMPToken( if (isSponsored || ownerCount(sleAcct, journal) >= 2) { if (auto const ret = checkInsufficientReserve( - ctx, - sleAcct, - priorBalance, - reserveCtx.sponsorSle, - {.ownerCountDelta = 1}, - journal); + ctx, sleAcct, priorBalance, {.ownerCountDelta = 1}, journal); !isTesSuccess(ret)) return ret; } diff --git a/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp b/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp index 1531b8644a..a1e7fa1e86 100644 --- a/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp +++ b/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp @@ -667,8 +667,8 @@ addEmptyHolding( SLE::pointer const sponsorSle = isPseudoAccount(sleDst) ? nullptr : reserveCtx.sponsorSle; // Can the account cover the trust line reserve ? - if (auto const ret = checkInsufficientReserve( - ctx, sleDst, priorBalance, sponsorSle, {.ownerCountDelta = 1}, journal); + if (auto const ret = + checkInsufficientReserve(ctx, sleDst, priorBalance, {.ownerCountDelta = 1}, journal); !isTesSuccess(ret)) return tecNO_LINE_INSUF_RESERVE; diff --git a/src/libxrpl/tx/transactors/Sponsor/SponsorshipSet.cpp b/src/libxrpl/tx/transactors/Sponsor/SponsorshipSet.cpp index 95f4f33c5a..c7d3ecb2a7 100644 --- a/src/libxrpl/tx/transactors/Sponsor/SponsorshipSet.cpp +++ b/src/libxrpl/tx/transactors/Sponsor/SponsorshipSet.cpp @@ -227,7 +227,6 @@ SponsorshipSet::doApply() ctx_.getApplyViewContext(), sponsorAccSle, sponsorBalanceAfterFee.xrp(), - reserveSponsorAccSle, {.ownerCountDelta = 1}, ctx_.journal); !isTesSuccess(ret)) @@ -297,7 +296,6 @@ SponsorshipSet::doApply() ctx_.getApplyViewContext(), sponsorAccSle, sponsorBalanceAfterFee.xrp(), - reserveSponsorAccSle, {}, ctx_.journal); !isTesSuccess(ret)) diff --git a/src/libxrpl/tx/transactors/Sponsor/SponsorshipTransfer.cpp b/src/libxrpl/tx/transactors/Sponsor/SponsorshipTransfer.cpp index a9b8504a97..4098f2d2ac 100644 --- a/src/libxrpl/tx/transactors/Sponsor/SponsorshipTransfer.cpp +++ b/src/libxrpl/tx/transactors/Sponsor/SponsorshipTransfer.cpp @@ -325,7 +325,6 @@ SponsorshipTransfer::doApply() ctx_.getApplyViewContext(), sponseeSle, sponseeSle->getFieldAmount(sfBalance), - newSponsorSle, {.ownerCountDelta = ownerCountDelta}, ctx_.journal); !isTesSuccess(ter)) @@ -378,7 +377,6 @@ SponsorshipTransfer::doApply() ctx_.getApplyViewContext(), sponseeSle, sponseeSle->getFieldAmount(sfBalance), - newSponsorSle, {.ownerCountDelta = ownerCountDelta}, ctx_.journal); !isTesSuccess(ter)) @@ -426,7 +424,6 @@ SponsorshipTransfer::doApply() ctx_.getApplyViewContext(), ownerSle, balanceBeforeFee(ownerSle), - SLE::pointer(), {.ownerCountDelta = ownerCountDelta}, ctx_.journal); !isTesSuccess(ter)) @@ -466,7 +463,6 @@ SponsorshipTransfer::doApply() ctx_.getApplyViewContext(), sponseeSle, sponseeSle->getFieldAmount(sfBalance), - newSponsorSle, {.accountCountDelta = 1}, ctx_.journal); !isTesSuccess(ter)) @@ -494,7 +490,6 @@ SponsorshipTransfer::doApply() ctx_.getApplyViewContext(), sponseeSle, sponseeSle->getFieldAmount(sfBalance), - newSponsorSle, {.accountCountDelta = 1}, ctx_.journal); !isTesSuccess(ter)) @@ -530,7 +525,6 @@ SponsorshipTransfer::doApply() ctx_.getApplyViewContext(), sponseeSle, balanceBeforeFee(sponseeSle), - SLE::pointer(), {.accountCountDelta = 1}, ctx_.journal); !isTesSuccess(ter)) diff --git a/src/libxrpl/tx/transactors/account/SignerListSet.cpp b/src/libxrpl/tx/transactors/account/SignerListSet.cpp index 6def4f24b2..07d5c440d2 100644 --- a/src/libxrpl/tx/transactors/account/SignerListSet.cpp +++ b/src/libxrpl/tx/transactors/account/SignerListSet.cpp @@ -325,7 +325,6 @@ SignerListSet::replaceSignerList() ctx_.getApplyViewContext(), sle, preFeeBalance_, - sponsorSle, {.ownerCountDelta = kAddedOwnerCount}, ctx_.journal); !isTesSuccess(ret)) diff --git a/src/libxrpl/tx/transactors/check/CheckCash.cpp b/src/libxrpl/tx/transactors/check/CheckCash.cpp index 80549a8756..ae91922721 100644 --- a/src/libxrpl/tx/transactors/check/CheckCash.cpp +++ b/src/libxrpl/tx/transactors/check/CheckCash.cpp @@ -399,12 +399,7 @@ CheckCash::doApply() // Can the account cover the trust line's or MPT reserve? if (auto const ret = checkInsufficientReserve( - applyViewContext, - sleDst, - preFeeBalance_, - sponsorSle, - {.ownerCountDelta = 1}, - j_); + applyViewContext, sleDst, preFeeBalance_, {.ownerCountDelta = 1}, j_); !isTesSuccess(ret)) { JLOG(j_.trace()) << "Trust line does not exist. " diff --git a/src/libxrpl/tx/transactors/check/CheckCreate.cpp b/src/libxrpl/tx/transactors/check/CheckCreate.cpp index 7b7b2aa94d..77a8c317ca 100644 --- a/src/libxrpl/tx/transactors/check/CheckCreate.cpp +++ b/src/libxrpl/tx/transactors/check/CheckCreate.cpp @@ -198,12 +198,7 @@ CheckCreate::doApply() auto const applyViewContext = ctx_.getApplyViewContext(); auto const sponsorSle = applyViewContext.reserveContext.sponsorSle; if (auto const ret = checkInsufficientReserve( - ctx_.getApplyViewContext(), - sle, - preFeeBalance_, - sponsorSle, - {.ownerCountDelta = 1}, - ctx_.journal); + ctx_.getApplyViewContext(), sle, preFeeBalance_, {.ownerCountDelta = 1}, ctx_.journal); !isTesSuccess(ret)) return ret; // Note that we use the value from the sequence or ticket as the diff --git a/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp b/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp index 9678122ac5..153ff4da3b 100644 --- a/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp +++ b/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp @@ -104,7 +104,6 @@ DelegateSet::doApply() ctx_.getApplyViewContext(), sleOwner, preFeeBalance_, - sponsorSle, {.ownerCountDelta = 1}, ctx_.journal); !isTesSuccess(ret)) diff --git a/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp b/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp index 80fad64683..3f8a5f8f0e 100644 --- a/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp +++ b/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp @@ -445,7 +445,7 @@ EscrowCreate::doApply() // unsponsored this hits the source branch and validates the // source's pre-lock balance against base + (currentOC+1)*increment. if (auto const ret = checkInsufficientReserve( - ctx_.getApplyViewContext(), sle, balance, sponsorSle, {.ownerCountDelta = 1}, j_); + ctx_.getApplyViewContext(), sle, balance, {.ownerCountDelta = 1}, j_); !isTesSuccess(ret)) return ret; @@ -465,7 +465,6 @@ EscrowCreate::doApply() ctx_.getApplyViewContext(), sle, balance - STAmount(amount).xrp(), - {}, {.ownerCountDelta = ownerCountAdj}, j_); !isTesSuccess(ret)) diff --git a/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp b/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp index 32dcc670cb..715d4fa73d 100644 --- a/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp +++ b/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp @@ -165,7 +165,7 @@ DepositPreauth::doApply() auto const applyViewContext = ctx_.getApplyViewContext(); auto const sponsorSle = applyViewContext.reserveContext.sponsorSle; if (auto const ret = checkInsufficientReserve( - applyViewContext, sleOwner, preFeeBalance_, sponsorSle, {.ownerCountDelta = 1}, j_); + applyViewContext, sleOwner, preFeeBalance_, {.ownerCountDelta = 1}, j_); !isTesSuccess(ret)) return ret; @@ -213,7 +213,7 @@ DepositPreauth::doApply() auto const applyViewContext = ctx_.getApplyViewContext(); auto const sponsorSle = applyViewContext.reserveContext.sponsorSle; if (auto const ret = checkInsufficientReserve( - applyViewContext, sleOwner, preFeeBalance_, sponsorSle, {.ownerCountDelta = 1}, j_); + applyViewContext, sleOwner, preFeeBalance_, {.ownerCountDelta = 1}, j_); !isTesSuccess(ret)) return ret; diff --git a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp index 19f9a67c7b..b0ad7722eb 100644 --- a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp +++ b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp @@ -146,12 +146,7 @@ PaymentChannelCreate::doApply() // unsponsored this hits the source branch and validates the // source's pre-lock balance against base + (currentOC+1)*increment. if (auto const ret = checkInsufficientReserve( - ctx_.getApplyViewContext(), - sle, - preFeeBalance_, - sponsorSle, - {.ownerCountDelta = 1}, - j_); + ctx_.getApplyViewContext(), sle, preFeeBalance_, {.ownerCountDelta = 1}, j_); !isTesSuccess(ret)) return ret; @@ -168,7 +163,6 @@ PaymentChannelCreate::doApply() ctx_.getApplyViewContext(), sle, preFeeBalance_ - ctx_.tx[sfAmount].xrp(), - {}, {.ownerCountDelta = ownerCountAdj}, j_); !isTesSuccess(ret)) diff --git a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelFund.cpp b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelFund.cpp index db56e5a8c0..ab5e8b903e 100644 --- a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelFund.cpp +++ b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelFund.cpp @@ -90,14 +90,13 @@ PaymentChannelFund::doApply() // Check reserve and funds availability auto const balance = (*sle)[sfBalance]; auto const applyViewContext = ctx_.getApplyViewContext(); - auto const sponsorSle = applyViewContext.reserveContext.sponsorSle; - if (auto const ret = checkInsufficientReserve( - ctx_.getApplyViewContext(), sle, balance, sponsorSle, {}, j_); + if (auto const ret = + checkInsufficientReserve(ctx_.getApplyViewContext(), sle, balance, {}, j_); !isTesSuccess(ret)) return ret; if (auto const ret = checkInsufficientReserve( - ctx_.getApplyViewContext(), sle, balance - ctx_.tx[sfAmount], {}, {}, j_); + ctx_.getApplyViewContext(), sle, balance - ctx_.tx[sfAmount], {}, j_); !isTesSuccess(ret)) return tecUNFUNDED; } diff --git a/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp b/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp index 1479173859..09dea14f5a 100644 --- a/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp @@ -128,7 +128,7 @@ MPTokenIssuanceCreate::create( if (args.priorBalance) { if (auto const ret = checkInsufficientReserve( - ctx, acct, *(args.priorBalance), sponsorSle, {.ownerCountDelta = 1}, journal); + ctx, acct, *(args.priorBalance), {.ownerCountDelta = 1}, journal); !isTesSuccess(ret)) return std::unexpected(ret); // tecINSUFFICIENT_RESERVE } diff --git a/src/libxrpl/tx/transactors/token/TrustSet.cpp b/src/libxrpl/tx/transactors/token/TrustSet.cpp index 34c3795e83..3153044763 100644 --- a/src/libxrpl/tx/transactors/token/TrustSet.cpp +++ b/src/libxrpl/tx/transactors/token/TrustSet.cpp @@ -540,7 +540,6 @@ TrustSet::doApply() ctx_.getApplyViewContext(), sleLowAccount, preFeeBalance_, - sponsorSle, {.ownerCountDelta = 1}, j_); sponsorSle && !isTesSuccess(ret)) @@ -582,7 +581,6 @@ TrustSet::doApply() ctx_.getApplyViewContext(), sleHighAccount, preFeeBalance_, - sponsorSle, {.ownerCountDelta = 1}, j_); sponsorSle && !isTesSuccess(ret)) @@ -626,8 +624,8 @@ TrustSet::doApply() } // Reserve is not scaled by load. else if ( - auto const ret = checkInsufficientReserve( - ctx_.getApplyViewContext(), sle, preFeeBalance_, sponsorSle, {}, j_); + auto const ret = + checkInsufficientReserve(ctx_.getApplyViewContext(), sle, preFeeBalance_, {}, j_); !freeTrustLine && bReserveIncrease && !isTesSuccess(ret)) { JLOG(j_.trace()) << "Delay transaction: Insufficent reserve to " @@ -661,7 +659,6 @@ TrustSet::doApply() ctx_.getApplyViewContext(), sle, preFeeBalance_, - sponsorSle, {.ownerCountDelta = 1}, j_); !freeTrustLine && !isTesSuccess(ret)) // Reserve is not scaled by load.