From 8f470b750dd08cc04e788b1443bec28c2fb2cbd4 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Mon, 29 Jun 2026 18:45:58 -0400 Subject: [PATCH] switch to && --- include/xrpl/ledger/View.h | 2 +- include/xrpl/ledger/helpers/EscrowHelpers.h | 10 +++++----- include/xrpl/ledger/helpers/MPTokenHelpers.h | 8 ++++---- .../xrpl/ledger/helpers/RippleStateHelpers.h | 4 ++-- include/xrpl/ledger/helpers/SponsorHelpers.h | 2 +- include/xrpl/ledger/helpers/TokenHelpers.h | 4 ++-- .../transactors/token/MPTokenIssuanceCreate.h | 2 +- src/libxrpl/ledger/View.cpp | 7 ++++--- src/libxrpl/ledger/helpers/MPTokenHelpers.cpp | 17 +++++++++-------- .../ledger/helpers/RippleStateHelpers.cpp | 6 +++--- src/libxrpl/ledger/helpers/TokenHelpers.cpp | 13 ++++++++----- .../tx/transactors/Sponsor/SponsorshipSet.cpp | 4 +--- .../tx/transactors/account/SignerListSet.cpp | 3 +-- src/libxrpl/tx/transactors/check/CheckCash.cpp | 3 +-- .../tx/transactors/check/CheckCreate.cpp | 3 +-- .../tx/transactors/delegate/DelegateSet.cpp | 4 +--- .../tx/transactors/escrow/EscrowCancel.cpp | 3 +-- .../tx/transactors/escrow/EscrowCreate.cpp | 3 +-- .../tx/transactors/escrow/EscrowFinish.cpp | 3 +-- .../lending/LoanBrokerCoverWithdraw.cpp | 10 +++++++--- .../tx/transactors/lending/LoanBrokerDelete.cpp | 4 +--- .../tx/transactors/lending/LoanBrokerSet.cpp | 4 +--- src/libxrpl/tx/transactors/lending/LoanPay.cpp | 3 +-- src/libxrpl/tx/transactors/lending/LoanSet.cpp | 9 ++++++--- .../tx/transactors/payment/DepositPreauth.cpp | 5 ++--- .../payment_channel/PaymentChannelCreate.cpp | 3 +-- .../payment_channel/PaymentChannelFund.cpp | 3 +-- .../tx/transactors/token/MPTokenAuthorize.cpp | 3 +-- .../transactors/token/MPTokenIssuanceCreate.cpp | 7 +++---- src/libxrpl/tx/transactors/token/TrustSet.cpp | 4 +--- .../tx/transactors/vault/VaultClawback.cpp | 3 +-- .../tx/transactors/vault/VaultCreate.cpp | 9 ++++----- .../tx/transactors/vault/VaultDelete.cpp | 7 +++---- .../tx/transactors/vault/VaultDeposit.cpp | 7 +++---- .../tx/transactors/vault/VaultWithdraw.cpp | 13 +++++++++---- 35 files changed, 93 insertions(+), 102 deletions(-) diff --git a/include/xrpl/ledger/View.h b/include/xrpl/ledger/View.h index 6643ab2cb1..968923b50b 100644 --- a/include/xrpl/ledger/View.h +++ b/include/xrpl/ledger/View.h @@ -201,7 +201,7 @@ canWithdraw(ReadView const& view, STTx const& tx); [[nodiscard]] TER doWithdraw( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& senderAcct, AccountID const& dstAcct, AccountID const& sourceAcct, diff --git a/include/xrpl/ledger/helpers/EscrowHelpers.h b/include/xrpl/ledger/helpers/EscrowHelpers.h index 533daa0cf2..c1f488c4b9 100644 --- a/include/xrpl/ledger/helpers/EscrowHelpers.h +++ b/include/xrpl/ledger/helpers/EscrowHelpers.h @@ -17,7 +17,7 @@ namespace xrpl { template TER escrowUnlockApplyHelper( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, Rate lockedRate, SLE::ref sleDest, STAmount const& xrpBalance, @@ -31,7 +31,7 @@ escrowUnlockApplyHelper( template <> inline TER escrowUnlockApplyHelper( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, Rate lockedRate, SLE::ref sleDest, STAmount const& xrpBalance, @@ -58,7 +58,7 @@ escrowUnlockApplyHelper( if (!view.exists(trustLineKey) && createAsset) { // Can the account cover the trust line's reserve? - auto const sponsorSle = getTxReserveSponsor(ctx); + auto const sponsorSle = getTxReserveSponsor({.view = ctx.view, .tx = ctx.tx}); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE @@ -168,7 +168,7 @@ escrowUnlockApplyHelper( template <> inline TER escrowUnlockApplyHelper( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, Rate lockedRate, SLE::ref sleDest, STAmount const& xrpBalance, @@ -188,7 +188,7 @@ escrowUnlockApplyHelper( auto const mptKeylet = keylet::mptoken(issuanceKey.key, receiver); if (!view.exists(mptKeylet) && createAsset && !receiverIssuer) { - auto const sponsorSle = getTxReserveSponsor(ctx); + auto const sponsorSle = getTxReserveSponsor({.view = ctx.view, .tx = ctx.tx}); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE diff --git a/include/xrpl/ledger/helpers/MPTokenHelpers.h b/include/xrpl/ledger/helpers/MPTokenHelpers.h index cbdffdfc91..370efe5342 100644 --- a/include/xrpl/ledger/helpers/MPTokenHelpers.h +++ b/include/xrpl/ledger/helpers/MPTokenHelpers.h @@ -71,7 +71,7 @@ canAddHolding(ReadView const& view, MPTIssue const& mptIssue); [[nodiscard]] TER authorizeMPToken( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, XRPAmount const& priorBalance, MPTID const& mptIssuanceID, AccountID const& account, @@ -102,7 +102,7 @@ requireAuth( */ [[nodiscard]] TER enforceMPTokenAuthorization( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, MPTID const& mptIssuanceID, AccountID const& account, XRPAmount const& priorBalance, @@ -188,7 +188,7 @@ canMPTTradeAndTransfer( [[nodiscard]] TER addEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, XRPAmount priorBalance, MPTIssue const& mptIssue, @@ -196,7 +196,7 @@ addEmptyHolding( [[nodiscard]] TER removeEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, MPTIssue const& mptIssue, beast::Journal journal); diff --git a/include/xrpl/ledger/helpers/RippleStateHelpers.h b/include/xrpl/ledger/helpers/RippleStateHelpers.h index 3cd5b79eee..c6f66543a9 100644 --- a/include/xrpl/ledger/helpers/RippleStateHelpers.h +++ b/include/xrpl/ledger/helpers/RippleStateHelpers.h @@ -229,7 +229,7 @@ canTransfer(ReadView const& view, Issue const& issue, AccountID const& from, Acc /// canAddHolding() in preflight with the same View and Asset [[nodiscard]] TER addEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, XRPAmount priorBalance, Issue const& issue, @@ -237,7 +237,7 @@ addEmptyHolding( [[nodiscard]] TER removeEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, Issue const& issue, beast::Journal journal); diff --git a/include/xrpl/ledger/helpers/SponsorHelpers.h b/include/xrpl/ledger/helpers/SponsorHelpers.h index e1696c7a9b..ee7121b9ae 100644 --- a/include/xrpl/ledger/helpers/SponsorHelpers.h +++ b/include/xrpl/ledger/helpers/SponsorHelpers.h @@ -35,7 +35,7 @@ getTxReserveSponsorAccountID(STTx const& tx) } inline std::expected -getTxReserveSponsor(ApplyViewContext& ctx) +getTxReserveSponsor(ApplyViewContext&& ctx) { auto const sponsorID = getTxReserveSponsorAccountID(ctx.tx); if (sponsorID) diff --git a/include/xrpl/ledger/helpers/TokenHelpers.h b/include/xrpl/ledger/helpers/TokenHelpers.h index 70d4ecab58..e061d48aab 100644 --- a/include/xrpl/ledger/helpers/TokenHelpers.h +++ b/include/xrpl/ledger/helpers/TokenHelpers.h @@ -230,7 +230,7 @@ canAddHolding(ReadView const& view, Asset const& asset); [[nodiscard]] TER addEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, XRPAmount priorBalance, Asset const& asset, @@ -238,7 +238,7 @@ addEmptyHolding( [[nodiscard]] TER removeEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, Asset const& asset, beast::Journal journal); diff --git a/include/xrpl/tx/transactors/token/MPTokenIssuanceCreate.h b/include/xrpl/tx/transactors/token/MPTokenIssuanceCreate.h index 0b3acb5d79..f1189fe530 100644 --- a/include/xrpl/tx/transactors/token/MPTokenIssuanceCreate.h +++ b/include/xrpl/tx/transactors/token/MPTokenIssuanceCreate.h @@ -63,7 +63,7 @@ public: beast::Journal const& j) override; static std::expected - create(ApplyViewContext& ctx, beast::Journal journal, MPTCreateArgs const& args); + create(ApplyViewContext&& ctx, beast::Journal journal, MPTCreateArgs const& args); }; } // namespace xrpl diff --git a/src/libxrpl/ledger/View.cpp b/src/libxrpl/ledger/View.cpp index 51b0fcdb4c..78c8417695 100644 --- a/src/libxrpl/ledger/View.cpp +++ b/src/libxrpl/ledger/View.cpp @@ -432,7 +432,7 @@ canWithdraw(ReadView const& view, STTx const& tx) TER doWithdraw( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& senderAcct, AccountID const& dstAcct, AccountID const& sourceAcct, @@ -443,7 +443,8 @@ doWithdraw( // Create trust line or MPToken for the receiving account if (dstAcct == senderAcct) { - if (auto const ter = addEmptyHolding(ctx, senderAcct, priorBalance, amount.asset(), j); + if (auto const ter = addEmptyHolding( + {.view = ctx.view, .tx = ctx.tx}, senderAcct, priorBalance, amount.asset(), j); !isTesSuccess(ter) && ter != tecDUPLICATE) return ter; } @@ -469,7 +470,7 @@ doWithdraw( // LCOV_EXCL_STOP } - auto const sponsorSle = getTxReserveSponsor(ctx); + auto const sponsorSle = getTxReserveSponsor({.view = ctx.view, .tx = ctx.tx}); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE diff --git a/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp b/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp index deccd1c609..20417e7e44 100644 --- a/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp +++ b/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp @@ -125,7 +125,7 @@ canAddHolding(ReadView const& view, MPTIssue const& mptIssue) [[nodiscard]] TER addEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, XRPAmount priorBalance, MPTIssue const& mptIssue, @@ -143,12 +143,13 @@ addEmptyHolding( if (accountID == mptIssue.getIssuer()) return tesSUCCESS; - return authorizeMPToken(ctx, priorBalance, mptID, accountID, journal); + return authorizeMPToken( + {.view = ctx.view, .tx = ctx.tx}, priorBalance, mptID, accountID, journal); } [[nodiscard]] TER authorizeMPToken( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, XRPAmount const& priorBalance, MPTID const& mptIssuanceID, AccountID const& account, @@ -192,7 +193,7 @@ authorizeMPToken( // - add the new mptokenKey to the owner directory // - create the MPToken object for the holder - auto const sponsorSle = getTxReserveSponsor(ctx); + auto const sponsorSle = getTxReserveSponsor({.view = ctx.view, .tx = ctx.tx}); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE @@ -279,7 +280,7 @@ authorizeMPToken( [[nodiscard]] TER removeEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, MPTIssue const& mptIssue, beast::Journal journal) @@ -302,7 +303,7 @@ removeEmptyHolding( return tecHAS_OBLIGATIONS; return authorizeMPToken( - ctx, + {.view = ctx.view, .tx = ctx.tx}, {}, // priorBalance mptID, accountID, @@ -411,7 +412,7 @@ requireAuth( [[nodiscard]] TER enforceMPTokenAuthorization( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, MPTID const& mptIssuanceID, AccountID const& account, XRPAmount const& priorBalance, // for MPToken authorization @@ -493,7 +494,7 @@ enforceMPTokenAuthorization( maybeDomainID.has_value() && sleToken == nullptr, "xrpl::enforceMPTokenAuthorization : new MPToken for domain"); if (auto const err = authorizeMPToken( - ctx, + {.view = ctx.view, .tx = ctx.tx}, priorBalance, // priorBalance mptIssuanceID, // mptIssuanceID account, // account diff --git a/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp b/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp index 02b5cf4a84..083adf2db9 100644 --- a/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp +++ b/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp @@ -633,7 +633,7 @@ canTransfer(ReadView const& view, Issue const& issue, AccountID const& from, Acc TER addEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, XRPAmount priorBalance, Issue const& issue, @@ -666,7 +666,7 @@ addEmptyHolding( SLE::pointer sponsorSle; if (!isPseudoAccount(sleDst)) { - auto sle = getTxReserveSponsor(ctx); + auto sle = getTxReserveSponsor({.view = ctx.view, .tx = ctx.tx}); if (!sle) return sle.error(); // LCOV_EXCL_LINE sponsorSle = std::move(*sle); @@ -699,7 +699,7 @@ addEmptyHolding( TER removeEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, Issue const& issue, beast::Journal journal) diff --git a/src/libxrpl/ledger/helpers/TokenHelpers.cpp b/src/libxrpl/ledger/helpers/TokenHelpers.cpp index 482f62d468..5448aa1fe6 100644 --- a/src/libxrpl/ledger/helpers/TokenHelpers.cpp +++ b/src/libxrpl/ledger/helpers/TokenHelpers.cpp @@ -473,7 +473,7 @@ canAddHolding(ReadView const& view, Asset const& asset) TER addEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, XRPAmount priorBalance, Asset const& asset, @@ -481,14 +481,15 @@ addEmptyHolding( { return std::visit( [&](TIss const& issue) -> TER { - return addEmptyHolding(ctx, accountID, priorBalance, issue, journal); + return addEmptyHolding( + {.view = ctx.view, .tx = ctx.tx}, accountID, priorBalance, issue, journal); }, asset.value()); } TER removeEmptyHolding( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, AccountID const& accountID, Asset const& asset, beast::Journal journal) @@ -497,11 +498,13 @@ removeEmptyHolding( [&](TIss const& issue) -> TER { if constexpr (std::is_same_v) { - return removeEmptyHolding(ctx, accountID, issue, journal); + return removeEmptyHolding( + {.view = ctx.view, .tx = ctx.tx}, accountID, issue, journal); } else { - return removeEmptyHolding(ctx, accountID, issue, journal); + return removeEmptyHolding( + {.view = ctx.view, .tx = ctx.tx}, accountID, issue, journal); } }, asset.value()); diff --git a/src/libxrpl/tx/transactors/Sponsor/SponsorshipSet.cpp b/src/libxrpl/tx/transactors/Sponsor/SponsorshipSet.cpp index 02ba06c29e..e578ae7ac3 100644 --- a/src/libxrpl/tx/transactors/Sponsor/SponsorshipSet.cpp +++ b/src/libxrpl/tx/transactors/Sponsor/SponsorshipSet.cpp @@ -203,9 +203,7 @@ SponsorshipSet::doApply() auto const feeAmount = ctx_.tx[~sfFeeAmount]; auto const maxFee = ctx_.tx[~sfMaxFee]; auto const remainingOwnerCount = ctx_.tx[~sfRemainingOwnerCount]; - - auto applyViewContext = ctx_.getApplyViewContext(); - auto reserveSponsorAccSle = getTxReserveSponsor(applyViewContext); + auto reserveSponsorAccSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!reserveSponsorAccSle) return reserveSponsorAccSle.error(); // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/account/SignerListSet.cpp b/src/libxrpl/tx/transactors/account/SignerListSet.cpp index 8903da47cc..8a24d42c8b 100644 --- a/src/libxrpl/tx/transactors/account/SignerListSet.cpp +++ b/src/libxrpl/tx/transactors/account/SignerListSet.cpp @@ -322,8 +322,7 @@ SignerListSet::replaceSignerList() // We check the reserve against the starting balance because we want to // allow dipping into the reserve to pay fees. This behavior is consistent // with TicketCreate. - auto applyViewContext = ctx_.getApplyViewContext(); - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE if (auto const ret = checkInsufficientReserve( diff --git a/src/libxrpl/tx/transactors/check/CheckCash.cpp b/src/libxrpl/tx/transactors/check/CheckCash.cpp index 1c12823b9c..eb5aa8c90a 100644 --- a/src/libxrpl/tx/transactors/check/CheckCash.cpp +++ b/src/libxrpl/tx/transactors/check/CheckCash.cpp @@ -389,8 +389,7 @@ CheckCash::doApply() STAmount const flowDeliver{ optDeliverMin ? maxDeliverMin() : ctx_.tx.getFieldAmount(sfAmount)}; - auto applyViewContext = ApplyViewContext({.view = psb, .tx = ctx_.tx}); - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor({.view = psb, .tx = ctx_.tx}); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/check/CheckCreate.cpp b/src/libxrpl/tx/transactors/check/CheckCreate.cpp index 4f9120d3a6..d2281ec3ae 100644 --- a/src/libxrpl/tx/transactors/check/CheckCreate.cpp +++ b/src/libxrpl/tx/transactors/check/CheckCreate.cpp @@ -195,8 +195,7 @@ CheckCreate::doApply() // A check counts against the reserve of the issuing account, but we // check the starting balance because we want to allow dipping into the // reserve to pay fees. - auto applyViewContext = ctx_.getApplyViewContext(); - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE if (auto const ret = checkInsufficientReserve( diff --git a/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp b/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp index d8cbed39ad..ac5bf89d7d 100644 --- a/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp +++ b/src/libxrpl/tx/transactors/delegate/DelegateSet.cpp @@ -94,9 +94,7 @@ DelegateSet::doApply() auto const& permissions = ctx_.tx.getFieldArray(sfPermissions); if (permissions.empty()) return tecINTERNAL; // LCOV_EXCL_LINE - - auto applyViewContext = ctx_.getApplyViewContext(); - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE if (auto const ret = checkInsufficientReserve( diff --git a/src/libxrpl/tx/transactors/escrow/EscrowCancel.cpp b/src/libxrpl/tx/transactors/escrow/EscrowCancel.cpp index 4ef470a6c1..2b3fd7abdd 100644 --- a/src/libxrpl/tx/transactors/escrow/EscrowCancel.cpp +++ b/src/libxrpl/tx/transactors/escrow/EscrowCancel.cpp @@ -178,11 +178,10 @@ EscrowCancel::doApply() auto const issuer = amount.getIssuer(); bool const createAsset = account == accountID_; - auto applyViewContext = ctx_.getApplyViewContext(); if (auto const ret = std::visit( [&](T const&) { return escrowUnlockApplyHelper( - applyViewContext, + ctx_.getApplyViewContext(), kParityRate, ctx_.view().rules().enabled(fixCleanup3_2_0) ? sle : slep, preFeeBalance_, diff --git a/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp b/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp index 59f7ee2f12..202aefa98f 100644 --- a/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp +++ b/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp @@ -436,8 +436,7 @@ EscrowCreate::doApply() STAmount const amount{ctx_.tx[sfAmount]}; auto const balance = sle->getFieldAmount(sfBalance).xrp(); - auto applyViewContext = ctx_.getApplyViewContext(); - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE if (auto const ret = diff --git a/src/libxrpl/tx/transactors/escrow/EscrowFinish.cpp b/src/libxrpl/tx/transactors/escrow/EscrowFinish.cpp index 6b22e1b020..5ededceffe 100644 --- a/src/libxrpl/tx/transactors/escrow/EscrowFinish.cpp +++ b/src/libxrpl/tx/transactors/escrow/EscrowFinish.cpp @@ -362,11 +362,10 @@ EscrowFinish::doApply() : kParityRate; auto const issuer = amount.getIssuer(); bool const createAsset = destID == accountID_; - auto applyViewContext = ctx_.getApplyViewContext(); if (auto const ret = std::visit( [&](T const&) { return escrowUnlockApplyHelper( - applyViewContext, + ctx_.getApplyViewContext(), lockedRate, sled, preFeeBalance_, diff --git a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp index 7f0b282be0..674e6d1994 100644 --- a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp @@ -197,10 +197,14 @@ LoanBrokerCoverWithdraw::doApply() view().update(broker); associateAsset(*broker, vaultAsset); - - auto applyViewContext = ctx_.getApplyViewContext(); return doWithdraw( - applyViewContext, accountID_, dstAcct, brokerPseudoID, preFeeBalance_, amount, j_); + ctx_.getApplyViewContext(), + accountID_, + dstAcct, + brokerPseudoID, + preFeeBalance_, + amount, + j_); } void diff --git a/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp index 40ae0ed802..d597114ab3 100644 --- a/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp @@ -158,9 +158,7 @@ LoanBrokerDelete::doApply() view(), brokerPseudoID, accountID_, coverAvailable, j_, {}, WaiveTransferFee::Yes)) return ter; } - - auto applyViewContext = ctx_.getApplyViewContext(); - if (auto ter = removeEmptyHolding(applyViewContext, brokerPseudoID, vaultAsset, j_)) + if (auto ter = removeEmptyHolding(ctx_.getApplyViewContext(), brokerPseudoID, vaultAsset, j_)) return ter; auto brokerPseudoSLE = view().peek(keylet::account(brokerPseudoID)); diff --git a/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp index ffe35dd5ea..d41ca44e5a 100644 --- a/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp @@ -247,10 +247,8 @@ LoanBrokerSet::doApply() return maybePseudo.error(); // LCOV_EXCL_LINE auto& pseudo = *maybePseudo; auto pseudoId = pseudo->at(sfAccount); - - auto applyViewContext = ctx_.getApplyViewContext(); if (auto ter = addEmptyHolding( - applyViewContext, pseudoId, preFeeBalance_, sleVault->at(sfAsset), j_)) + ctx_.getApplyViewContext(), pseudoId, preFeeBalance_, sleVault->at(sfAsset), j_)) return ter; // Initialize data fields: diff --git a/src/libxrpl/tx/transactors/lending/LoanPay.cpp b/src/libxrpl/tx/transactors/lending/LoanPay.cpp index 8d2aa466bb..c025da6852 100644 --- a/src/libxrpl/tx/transactors/lending/LoanPay.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanPay.cpp @@ -624,9 +624,8 @@ LoanPay::doApply() if (brokerPayee == accountID_) { // The broker may have deleted their holding. Recreate it if needed - auto applyViewContext = ctx_.getApplyViewContext(); if (auto const ter = addEmptyHolding( - applyViewContext, + ctx_.getApplyViewContext(), brokerPayee, brokerPayeeSle->at(sfBalance).value().xrp(), asset, diff --git a/src/libxrpl/tx/transactors/lending/LoanSet.cpp b/src/libxrpl/tx/transactors/lending/LoanSet.cpp index 3d8a2b1b50..f879c12d63 100644 --- a/src/libxrpl/tx/transactors/lending/LoanSet.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanSet.cpp @@ -531,9 +531,12 @@ LoanSet::doApply() borrower == accountID_ || borrower == counterparty, "xrpl::LoanSet::doApply", "borrower signed transaction"); - auto applyViewContext = ctx_.getApplyViewContext(); if (auto const ter = addEmptyHolding( - applyViewContext, borrower, borrowerSle->at(sfBalance).value().xrp(), vaultAsset, j_); + ctx_.getApplyViewContext(), + borrower, + borrowerSle->at(sfBalance).value().xrp(), + vaultAsset, + j_); ter && ter != tecDUPLICATE) { // ignore tecDUPLICATE. That means the holding already exists, and @@ -556,7 +559,7 @@ LoanSet::doApply() "broker owner signed transaction"); if (auto const ter = addEmptyHolding( - applyViewContext, + ctx_.getApplyViewContext(), brokerOwner, brokerOwnerSle->at(sfBalance).value().xrp(), vaultAsset, diff --git a/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp b/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp index d408eaa324..c482c034cc 100644 --- a/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp +++ b/src/libxrpl/tx/transactors/payment/DepositPreauth.cpp @@ -152,7 +152,6 @@ DepositPreauth::preclaim(PreclaimContext const& ctx) TER DepositPreauth::doApply() { - auto applyViewContext = ctx_.getApplyViewContext(); if (ctx_.tx.isFieldPresent(sfAuthorize)) { auto const sleOwner = view().peek(keylet::account(accountID_)); @@ -162,7 +161,7 @@ DepositPreauth::doApply() // A preauth counts against the reserve of the issuing account, but we // check the starting balance because we want to allow dipping into the // reserve to pay fees. - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE if (auto const ret = checkInsufficientReserve( @@ -210,7 +209,7 @@ DepositPreauth::doApply() // A preauth counts against the reserve of the issuing account, but we // check the starting balance because we want to allow dipping into the // reserve to pay fees. - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE if (auto const ret = checkInsufficientReserve( diff --git a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp index 220bfde71c..7d9f109cf1 100644 --- a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp +++ b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp @@ -203,8 +203,7 @@ PaymentChannelCreate::doApply() // Deduct owner's balance, increment owner count (*sle)[sfBalance] = (*sle)[sfBalance] - ctx_.tx[sfAmount]; - auto applyViewContext = ctx_.getApplyViewContext(); - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE adjustOwnerCount(ctx_.view(), sle, *sponsorSle, 1, ctx_.journal); diff --git a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelFund.cpp b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelFund.cpp index 305857fc39..a94cdd4fe9 100644 --- a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelFund.cpp +++ b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelFund.cpp @@ -90,8 +90,7 @@ PaymentChannelFund::doApply() { // Check reserve and funds availability auto const balance = (*sle)[sfBalance]; - auto applyViewContext = ctx_.getApplyViewContext(); - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE if (auto const ret = diff --git a/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp b/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp index b5862cc3b2..59020f6104 100644 --- a/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp @@ -143,9 +143,8 @@ TER MPTokenAuthorize::doApply() { auto const& tx = ctx_.tx; - auto applyViewContext = ctx_.getApplyViewContext(); return authorizeMPToken( - applyViewContext, + ctx_.getApplyViewContext(), preFeeBalance_, tx[sfMPTokenIssuanceID], accountID_, diff --git a/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp b/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp index bb65225f41..3235638b75 100644 --- a/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp @@ -104,7 +104,7 @@ MPTokenIssuanceCreate::preflight(PreflightContext const& ctx) std::expected MPTokenIssuanceCreate::create( - ApplyViewContext& ctx, + ApplyViewContext&& ctx, beast::Journal journal, MPTCreateArgs const& args) { @@ -116,7 +116,7 @@ MPTokenIssuanceCreate::create( SLE::pointer sponsorSle; if (!isPseudoAccount(acct)) { - auto sle = getTxReserveSponsor(ctx); + auto sle = getTxReserveSponsor({.view = ctx.view, .tx = ctx.tx}); if (!sle) return std::unexpected(sle.error()); sponsorSle = std::move(*sle); @@ -197,9 +197,8 @@ TER MPTokenIssuanceCreate::doApply() { auto const& tx = ctx_.tx; - auto applyViewContext = ctx_.getApplyViewContext(); auto const result = create( - applyViewContext, + ctx_.getApplyViewContext(), j_, { .priorBalance = preFeeBalance_, diff --git a/src/libxrpl/tx/transactors/token/TrustSet.cpp b/src/libxrpl/tx/transactors/token/TrustSet.cpp index 53085e34ff..d97fb14e16 100644 --- a/src/libxrpl/tx/transactors/token/TrustSet.cpp +++ b/src/libxrpl/tx/transactors/token/TrustSet.cpp @@ -327,9 +327,7 @@ TrustSet::doApply() // but the incremental reserve for the trust line as // well. A person with no intention of using the gateway // could use the extra XRP for their own purposes. - - auto applyViewContext = ctx_.getApplyViewContext(); - auto const sponsorSle = getTxReserveSponsor(applyViewContext); + auto const sponsorSle = getTxReserveSponsor(ctx_.getApplyViewContext()); if (!sponsorSle) return sponsorSle.error(); // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/vault/VaultClawback.cpp b/src/libxrpl/tx/transactors/vault/VaultClawback.cpp index e77acdc81c..f5ff6d2aa5 100644 --- a/src/libxrpl/tx/transactors/vault/VaultClawback.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultClawback.cpp @@ -399,9 +399,8 @@ VaultClawback::doApply() // Keep MPToken if holder is the vault owner. if (holder != vault->at(sfOwner)) { - auto applyViewContext = ctx_.getApplyViewContext(); if (auto const ter = - removeEmptyHolding(applyViewContext, holder, sharesDestroyed.asset(), j_); + removeEmptyHolding(ctx_.getApplyViewContext(), holder, sharesDestroyed.asset(), j_); isTesSuccess(ter)) { JLOG(j_.debug()) // diff --git a/src/libxrpl/tx/transactors/vault/VaultCreate.cpp b/src/libxrpl/tx/transactors/vault/VaultCreate.cpp index 073a37eff8..755991d659 100644 --- a/src/libxrpl/tx/transactors/vault/VaultCreate.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultCreate.cpp @@ -146,7 +146,6 @@ VaultCreate::doApply() // we can consider downgrading them to `tef` or `tem`. auto const& tx = ctx_.tx; - auto applyViewContext = ctx_.getApplyViewContext(); auto const sequence = tx.getSeqValue(); auto const owner = view().peek(keylet::account(accountID_)); if (owner == nullptr) @@ -168,7 +167,7 @@ VaultCreate::doApply() AccountID const pseudoId = pseudo->at(sfAccount); auto const asset = tx[sfAsset]; - if (auto ter = addEmptyHolding(applyViewContext, pseudoId, preFeeBalance_, asset, j_); + if (auto ter = addEmptyHolding(ctx_.getApplyViewContext(), pseudoId, preFeeBalance_, asset, j_); !isTesSuccess(ter)) return ter; @@ -198,7 +197,7 @@ VaultCreate::doApply() : keylet::line(pseudoId, asset.get()).key; }(); auto const maybeShare = MPTokenIssuanceCreate::create( - applyViewContext, + ctx_.getApplyViewContext(), j_, { .priorBalance = std::nullopt, @@ -245,7 +244,7 @@ VaultCreate::doApply() // Explicitly create MPToken for the vault owner if (auto const err = authorizeMPToken( - applyViewContext, preFeeBalance_, mptIssuanceID, accountID_, ctx_.journal); + ctx_.getApplyViewContext(), preFeeBalance_, mptIssuanceID, accountID_, ctx_.journal); !isTesSuccess(err)) return err; @@ -253,7 +252,7 @@ VaultCreate::doApply() if (tx.isFlag(tfVaultPrivate)) { if (auto const err = authorizeMPToken( - applyViewContext, + ctx_.getApplyViewContext(), preFeeBalance_, mptIssuanceID, pseudoId, diff --git a/src/libxrpl/tx/transactors/vault/VaultDelete.cpp b/src/libxrpl/tx/transactors/vault/VaultDelete.cpp index 12191bb8d7..69c9cfa72b 100644 --- a/src/libxrpl/tx/transactors/vault/VaultDelete.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultDelete.cpp @@ -88,14 +88,13 @@ TER VaultDelete::doApply() { auto const vault = view().peek(keylet::vault(ctx_.tx[sfVaultID])); - auto applyViewContext = ctx_.getApplyViewContext(); if (!vault) return tefINTERNAL; // LCOV_EXCL_LINE // Destroy the asset holding. auto asset = vault->at(sfAsset); - if (auto ter = removeEmptyHolding(applyViewContext, vault->at(sfAccount), asset, j_); + if (auto ter = removeEmptyHolding(ctx_.getApplyViewContext(), vault->at(sfAccount), asset, j_); !isTesSuccess(ter)) return ter; @@ -124,8 +123,8 @@ VaultDelete::doApply() // Try to remove MPToken for vault shares for the vault owner if it exists. if (auto const mptoken = view().peek(keylet::mptoken(shareMPTID, accountID_))) { - if (auto const ter = - removeEmptyHolding(applyViewContext, accountID_, MPTIssue(shareMPTID), j_); + if (auto const ter = removeEmptyHolding( + ctx_.getApplyViewContext(), accountID_, MPTIssue(shareMPTID), j_); !isTesSuccess(ter)) { // LCOV_EXCL_START diff --git a/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp b/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp index 569e8d6983..78a1c11df8 100644 --- a/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp @@ -187,7 +187,6 @@ VaultDeposit::doApply() { bool const fix320Enabled = view().rules().enabled(fixCleanup3_2_0); auto const vault = view().peek(keylet::vault(ctx_.tx[sfVaultID])); - auto applyViewContext = ctx_.getApplyViewContext(); if (!vault) return tefINTERNAL; // LCOV_EXCL_LINE auto const vaultAsset = vault->at(sfAsset); @@ -222,7 +221,7 @@ VaultDeposit::doApply() if (vault->isFlag(lsfVaultPrivate) && accountID_ != vault->at(sfOwner)) { if (auto const err = enforceMPTokenAuthorization( - applyViewContext, mptIssuanceID, accountID_, preFeeBalance_, j_); + ctx_.getApplyViewContext(), mptIssuanceID, accountID_, preFeeBalance_, j_); !isTesSuccess(err)) return err; } @@ -232,7 +231,7 @@ VaultDeposit::doApply() if (!view().exists(keylet::mptoken(mptIssuanceID, accountID_))) { if (auto const err = authorizeMPToken( - applyViewContext, + ctx_.getApplyViewContext(), preFeeBalance_, mptIssuanceID->value(), accountID_, @@ -248,7 +247,7 @@ VaultDeposit::doApply() XRPL_ASSERT( accountID_ == vault->at(sfOwner), "xrpl::VaultDeposit::doApply : account is owner"); if (auto const err = authorizeMPToken( - applyViewContext, + ctx_.getApplyViewContext(), preFeeBalance_, // priorBalance mptIssuanceID->value(), // mptIssuanceID sleIssuance->at(sfIssuer), // account diff --git a/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp b/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp index 209b5d4273..9955fbb02d 100644 --- a/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp @@ -176,7 +176,6 @@ TER VaultWithdraw::doApply() { auto const vault = view().peek(keylet::vault(ctx_.tx[sfVaultID])); - auto applyViewContext = ctx_.getApplyViewContext(); if (!vault) return tefINTERNAL; // LCOV_EXCL_LINE @@ -338,8 +337,8 @@ VaultWithdraw::doApply() // Keep MPToken if holder is the vault owner. if (accountID_ != vault->at(sfOwner)) { - if (auto const ter = - removeEmptyHolding(applyViewContext, accountID_, sharesRedeemed.asset(), j_); + if (auto const ter = removeEmptyHolding( + ctx_.getApplyViewContext(), accountID_, sharesRedeemed.asset(), j_); isTesSuccess(ter)) { JLOG(j_.debug()) // @@ -366,7 +365,13 @@ VaultWithdraw::doApply() associateAsset(*vault, vaultAsset); return doWithdraw( - applyViewContext, accountID_, dstAcct, vaultAccount, preFeeBalance_, assetsWithdrawn, j_); + ctx_.getApplyViewContext(), + accountID_, + dstAcct, + vaultAccount, + preFeeBalance_, + assetsWithdrawn, + j_); } void