From 462a0b23383396db88f9215eba2d16694a77ff5e Mon Sep 17 00:00:00 2001 From: Oleksandr <115580134+oleks-rip@users.noreply.github.com> Date: Wed, 18 Mar 2026 13:56:12 -0400 Subject: [PATCH] Read/const_ref --- include/xrpl/ledger/View.h | 4 ++-- .../xrpl/ledger/helpers/AccountRootHelpers.h | 12 +++++------ .../xrpl/ledger/helpers/CredentialHelpers.h | 2 +- include/xrpl/ledger/helpers/SponsorHelpers.h | 20 +++++++++---------- src/libxrpl/ledger/View.cpp | 8 ++++---- .../ledger/helpers/AccountRootHelpers.cpp | 14 ++++++------- .../ledger/helpers/CredentialHelpers.cpp | 2 +- 7 files changed, 29 insertions(+), 33 deletions(-) diff --git a/include/xrpl/ledger/View.h b/include/xrpl/ledger/View.h index aaa4bddbe4..e75df60de5 100644 --- a/include/xrpl/ledger/View.h +++ b/include/xrpl/ledger/View.h @@ -135,9 +135,9 @@ TER checkInsufficientReserve( ReadView const& view, STTx const& tx, - std::shared_ptr accSle, + SLE::const_ref accSle, STAmount const& accBalance, - std::shared_ptr const& sponsorSle, + SLE::const_ref sponsorSle, std::int32_t ownerCountDelta, std::int32_t accountCountDelta = 0); diff --git a/include/xrpl/ledger/helpers/AccountRootHelpers.h b/include/xrpl/ledger/helpers/AccountRootHelpers.h index bfc43f2b31..edf2f8b94b 100644 --- a/include/xrpl/ledger/helpers/AccountRootHelpers.h +++ b/include/xrpl/ledger/helpers/AccountRootHelpers.h @@ -38,8 +38,8 @@ xrpLiquid(ReadView const& view, AccountID const& id, std::int32_t ownerCountAdj, void adjustOwnerCount( ApplyView& view, - std::shared_ptr const& accountSle, - std::shared_ptr const& sponsorSle, + SLE::ref accountSle, + SLE::ref sponsorSle, std::int32_t amount, beast::Journal j); @@ -54,7 +54,7 @@ adjustOwnerCount( adjustOwnerCount( view, view.peek(keylet::account(account)), - sponsor ? view.peek(keylet::account(*sponsor)) : std::shared_ptr(), + sponsor ? view.peek(keylet::account(*sponsor)) : SLE::pointer(), amount, j); } @@ -93,9 +93,7 @@ getPseudoAccountFields(); - null pointer */ [[nodiscard]] bool -isPseudoAccount( - std::shared_ptr sleAcct, - std::set const& pseudoFieldFilter = {}); +isPseudoAccount(SLE::const_ref sleAcct, std::set const& pseudoFieldFilter = {}); /** Convenience overload that reads the account from the view. */ [[nodiscard]] inline bool @@ -115,7 +113,7 @@ isPseudoAccount( * before using a field. The amendment check is **not** performed in * createPseudoAccount. */ -[[nodiscard]] Expected, TER> +[[nodiscard]] Expected createPseudoAccount(ApplyView& view, uint256 const& pseudoOwnerKey, SField const& ownerField); /** Checks the destination and tag. diff --git a/include/xrpl/ledger/helpers/CredentialHelpers.h b/include/xrpl/ledger/helpers/CredentialHelpers.h index c60bd6c7fa..8e94af695d 100644 --- a/include/xrpl/ledger/helpers/CredentialHelpers.h +++ b/include/xrpl/ledger/helpers/CredentialHelpers.h @@ -74,7 +74,7 @@ verifyDepositPreauth( ApplyView& view, AccountID const& src, AccountID const& dst, - std::shared_ptr const& sleDst, + SLE::const_ref sleDst, beast::Journal j); } // namespace xrpl diff --git a/include/xrpl/ledger/helpers/SponsorHelpers.h b/include/xrpl/ledger/helpers/SponsorHelpers.h index 74cbbd069c..190c1fbeb5 100644 --- a/include/xrpl/ledger/helpers/SponsorHelpers.h +++ b/include/xrpl/ledger/helpers/SponsorHelpers.h @@ -34,7 +34,7 @@ getTxReserveSponsorAccountID(STTx const& tx) return {}; } -inline std::shared_ptr +inline SLE::pointer getTxReserveSponsor(ApplyView& view, STTx const& tx) { auto const sponsorID = getTxReserveSponsorAccountID(tx); @@ -43,7 +43,7 @@ getTxReserveSponsor(ApplyView& view, STTx const& tx) return {}; } -inline std::shared_ptr +inline SLE::const_pointer getTxReserveSponsor(ReadView const& view, STTx const& tx) { auto const sponsorID = getTxReserveSponsorAccountID(tx); @@ -54,7 +54,7 @@ getTxReserveSponsor(ReadView const& view, STTx const& tx) inline std::optional getLedgerEntryReserveSponsorAccountID( - std::shared_ptr const& sle, + SLE::const_ref sle, SF_ACCOUNT const& field = sfSponsor) { if (sle->isFieldPresent(field)) @@ -62,10 +62,10 @@ getLedgerEntryReserveSponsorAccountID( return {}; } -inline std::shared_ptr +inline SLE::pointer getLedgerEntryReserveSponsor( ApplyView& view, - std::shared_ptr const& sle, + SLE::const_ref sle, SF_ACCOUNT const& field = sfSponsor) { auto const sponsorID = getLedgerEntryReserveSponsorAccountID(sle, field); @@ -74,10 +74,10 @@ getLedgerEntryReserveSponsor( return {}; } -inline std::shared_ptr +inline SLE::const_pointer getLedgerEntryReserveSponsor( ReadView const& view, - std::shared_ptr const& sle, + SLE::const_ref sle, SF_ACCOUNT const& field = sfSponsor) { auto const sponsorID = getLedgerEntryReserveSponsorAccountID(sle, field); @@ -88,8 +88,8 @@ getLedgerEntryReserveSponsor( inline void addSponsorToLedgerEntry( - std::shared_ptr const& sle, - std::shared_ptr const& sponsorSle, + SLE::ref sle, + SLE::const_ref sponsorSle, SF_ACCOUNT const& field = sfSponsor) { XRPL_ASSERT( @@ -101,7 +101,7 @@ addSponsorToLedgerEntry( } inline void -removeSponsorFromLedgerEntry(std::shared_ptr const& sle, SF_ACCOUNT const& field = sfSponsor) +removeSponsorFromLedgerEntry(SLE::ref sle, SF_ACCOUNT const& field = sfSponsor) { XRPL_ASSERT( (sle->getType() == ltRIPPLE_STATE && (field == sfHighSponsor || field == sfLowSponsor)) || diff --git a/src/libxrpl/ledger/View.cpp b/src/libxrpl/ledger/View.cpp index 0856f061ec..c0ede08415 100644 --- a/src/libxrpl/ledger/View.cpp +++ b/src/libxrpl/ledger/View.cpp @@ -301,7 +301,7 @@ hashOfSeq(ReadView const& ledger, LedgerIndex seq, beast::Journal journal) } uint32_t -ownerCount(std::shared_ptr const& sponsorSle) +ownerCount(SLE::const_ref sponsorSle) { auto const ownerCount = sponsorSle->getFieldU32(sfOwnerCount); auto const sponsoredOwnerCount = sponsorSle->getFieldU32(sfSponsoredOwnerCount); @@ -311,7 +311,7 @@ ownerCount(std::shared_ptr const& sponsorSle) } XRPAmount -calculateReserve(std::shared_ptr const& sle, Fees const& fees) +calculateReserve(SLE::const_ref sle, Fees const& fees) { XRPL_ASSERT(sle->getType() == ltACCOUNT_ROOT, "xrpl::calculateReserve : valid sle type"); @@ -327,9 +327,9 @@ TER checkInsufficientReserve( ReadView const& view, STTx const& tx, - std::shared_ptr accSle, + SLE::const_ref accSle, STAmount const& accBalance, - std::shared_ptr const& sponsorSle, + SLE::const_ref sponsorSle, std::int32_t ownerCountDelta, std::int32_t accountCountDelta) { diff --git a/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp b/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp index b24b4123de..056fbd16ea 100644 --- a/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp +++ b/src/libxrpl/ledger/helpers/AccountRootHelpers.cpp @@ -134,10 +134,10 @@ transferRate(ReadView const& view, AccountID const& issuer) return parityRate; } -void +static void adjustSponsorOwnerCountHlp( ApplyView& view, - std::shared_ptr const& sle, + SLE::ref sle, SField const& sfield, std::int32_t amount, beast::Journal j) @@ -160,8 +160,8 @@ adjustSponsorOwnerCountHlp( void adjustOwnerCount( ApplyView& view, - std::shared_ptr const& accountSle, - std::shared_ptr const& sponsorSle, + SLE::ref accountSle, + SLE::ref sponsorSle, std::int32_t amount, beast::Journal j) { @@ -258,9 +258,7 @@ getPseudoAccountFields() } [[nodiscard]] bool -isPseudoAccount( - std::shared_ptr sleAcct, - std::set const& pseudoFieldFilter) +isPseudoAccount(SLE::const_ref sleAcct, std::set const& pseudoFieldFilter) { auto const& fields = getPseudoAccountFields(); @@ -274,7 +272,7 @@ isPseudoAccount( }) > 0; } -Expected, TER> +Expected createPseudoAccount(ApplyView& view, uint256 const& pseudoOwnerKey, SField const& ownerField) { [[maybe_unused]] diff --git a/src/libxrpl/ledger/helpers/CredentialHelpers.cpp b/src/libxrpl/ledger/helpers/CredentialHelpers.cpp index 57dbf6fe94..7f336c3568 100644 --- a/src/libxrpl/ledger/helpers/CredentialHelpers.cpp +++ b/src/libxrpl/ledger/helpers/CredentialHelpers.cpp @@ -348,7 +348,7 @@ verifyDepositPreauth( ApplyView& view, AccountID const& src, AccountID const& dst, - std::shared_ptr const& sleDst, + SLE::const_ref sleDst, beast::Journal j) { // If depositPreauth is enabled, then an account that requires