diff --git a/src/xrpld/app/misc/NetworkOPs.cpp b/src/xrpld/app/misc/NetworkOPs.cpp index d709981c46..ddda35dc46 100644 --- a/src/xrpld/app/misc/NetworkOPs.cpp +++ b/src/xrpld/app/misc/NetworkOPs.cpp @@ -4255,8 +4255,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; @@ -4265,8 +4266,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 ae0c371e3e..17ec907509 100644 --- a/src/xrpld/app/paths/detail/BookStep.cpp +++ b/src/xrpld/app/paths/detail/BookStep.cpp @@ -313,7 +313,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; @@ -505,7 +506,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; @@ -662,7 +664,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 142f07bf73..38886493b9 100644 --- a/src/xrpld/app/paths/detail/DirectStep.cpp +++ b/src/xrpld/app/paths/detail/DirectStep.cpp @@ -737,8 +737,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 e37a184e07..cd3e979a26 100644 --- a/src/xrpld/app/paths/detail/XRPEndpointStep.cpp +++ b/src/xrpld/app/paths/detail/XRPEndpointStep.cpp @@ -103,7 +103,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