diff --git a/src/xrpld/app/misc/NetworkOPs.cpp b/src/xrpld/app/misc/NetworkOPs.cpp index 5110534efc..41af780a53 100644 --- a/src/xrpld/app/misc/NetworkOPs.cpp +++ b/src/xrpld/app/misc/NetworkOPs.cpp @@ -4259,8 +4259,9 @@ NetworkOPsImp::getBookPage( ReadView const& view = *lpLedger; - bool const bGlobalFreeze = - isGlobalFrozen(view, book.out.account) || isGlobalFrozen(view, book.in.account); + WrappedAccountRoot issuerOut(book.out.account, &view); + WrappedAccountRoot issuerIn(book.in.account, &view); + bool const bGlobalFreeze = issuerOut.isGlobalFrozen() || issuerIn.isGlobalFrozen(); bool bDone = false; bool bDirectAdvance = true; @@ -4269,8 +4270,9 @@ NetworkOPsImp::getBookPage( uint256 offerIndex; unsigned int uBookEntry = 0; STAmount saDirRate; + WrappedAccountRoot issuer(book.out.account, &view); - auto const rate = transferRate(view, book.out.account); + auto const rate = issuer.transferRate(); auto viewJ = registry_.journal("View"); while (!bDone && iLimit-- > 0) diff --git a/src/xrpld/app/paths/detail/BookStep.cpp b/src/xrpld/app/paths/detail/BookStep.cpp index df1e849b81..8f1369a40c 100644 --- a/src/xrpld/app/paths/detail/BookStep.cpp +++ b/src/xrpld/app/paths/detail/BookStep.cpp @@ -314,7 +314,8 @@ public: auto rate = [&](AccountID const& id) { if (isXRP(id) || id == this->strandDst_) return parityRate; - return transferRate(v, id); + WrappedAccountRoot issuer(id, &v); + return issuer.transferRate(); }; auto const trIn = redeems(prevStepDir) ? rate(this->book_.in.account) : parityRate; @@ -506,7 +507,8 @@ public: auto rate = [&](AccountID const& id) { if (isXRP(id) || id == this->strandDst_) return parityRate; - return transferRate(v, id); + WrappedAccountRoot issuer(id, &v); + return issuer.transferRate(); }; auto const trIn = redeems(prevStepDir) ? rate(this->book_.in.account) : parityRate; @@ -663,7 +665,8 @@ BookStep::forEachOffer( auto rate = [this, &sb](AccountID const& id) -> std::uint32_t { if (isXRP(id) || id == this->strandDst_) return QUALITY_ONE; - return transferRate(sb, id).value; + WrappedAccountRoot issuer(id, &sb); + return issuer.transferRate().value; }; std::uint32_t const trIn = redeems(prevStepDir) ? rate(book_.in.account) : QUALITY_ONE; diff --git a/src/xrpld/app/paths/detail/DirectStep.cpp b/src/xrpld/app/paths/detail/DirectStep.cpp index d1d540eda5..f330d38ef7 100644 --- a/src/xrpld/app/paths/detail/DirectStep.cpp +++ b/src/xrpld/app/paths/detail/DirectStep.cpp @@ -738,8 +738,10 @@ DirectStepI::qualitiesSrcIssues(ReadView const& sb, DebtDirection prev "xrpl::DirectStepI::qualitiesSrcIssues : will prevStepDebtDirection " "issue"); + WrappedAccountRoot issuer(src_, &sb); + std::uint32_t const srcQOut = - redeems(prevStepDebtDirection) ? transferRate(sb, src_).value : QUALITY_ONE; + redeems(prevStepDebtDirection) ? issuer.transferRate().value : QUALITY_ONE; auto dstQIn = static_cast(this)->quality(sb, QualityDirection::in); if (isLast_ && dstQIn > QUALITY_ONE) diff --git a/src/xrpld/app/paths/detail/XRPEndpointStep.cpp b/src/xrpld/app/paths/detail/XRPEndpointStep.cpp index 8b1835069b..e9b1bc2d3b 100644 --- a/src/xrpld/app/paths/detail/XRPEndpointStep.cpp +++ b/src/xrpld/app/paths/detail/XRPEndpointStep.cpp @@ -104,7 +104,8 @@ protected: XRPAmount xrpLiquidImpl(ReadView& sb, std::int32_t reserveReduction) const { - return xrpl::xrpLiquid(sb, acc_, reserveReduction, j_); + WrappedAccountRoot account(acc_, &sb); + return account.xrpLiquid(reserveReduction, j_); } std::string