xrpld
Loading...
Searching...
No Matches
xrpl::BookOfferCrossingStep< TIn, TOut > Class Template Reference
Inheritance diagram for xrpl::BookOfferCrossingStep< TIn, TOut >:
Collaboration diagram for xrpl::BookOfferCrossingStep< TIn, TOut >:

Public Member Functions

 BookOfferCrossingStep (StrandContext const &ctx, Asset const &in, Asset const &out)
template<template< typename, typename > typename Offer>
bool limitSelfCrossQuality (AccountID const &strandSrc, AccountID const &strandDst, Offer< TIn, TOut > const &offer, std::optional< Quality > &ofrQ, FlowOfferStream< TIn, TOut > &offers, bool const offerAttempted) const
bool checkQualityThreshold (Quality const &quality) const
std::optional< QualityqualityThreshold (Quality const &lobQuality) const
std::uint32_t getOfrInRate (Step const *prevStep, AccountID const &owner, std::uint32_t trIn) const
std::uint32_t getOfrOutRate (Step const *prevStep, AccountID const &owner, AccountID const &strandDst, std::uint32_t trOut) const
Quality adjustQualityWithFees (ReadView const &v, Quality const &ofrQ, DebtDirection prevStepDir, WaiveTransferFee waiveFee, OfferType offerType, Rules const &rules) const
std::string logString () const override
Book const & book () const
std::optional< EitherAmountcachedIn () const override
std::optional< EitherAmountcachedOut () const override
DebtDirection debtDirection (ReadView const &sb, StrandDirection dir) const override
std::optional< BookbookStepBook () const override
std::pair< std::optional< Quality >, DebtDirectionqualityUpperBound (ReadView const &v, DebtDirection prevStepDir) const override
std::pair< std::optional< QualityFunction >, DebtDirectiongetQualityFunc (ReadView const &v, DebtDirection prevStepDir) const override
std::uint32_t offersUsed () const override
std::pair< TIn, TOut > revImp (PaymentSandbox &sb, ApplyView &afView, boost::container::flat_set< uint256 > &ofrsToRm, TOut const &out)
std::pair< TIn, TOut > fwdImp (PaymentSandbox &sb, ApplyView &afView, boost::container::flat_set< uint256 > &ofrsToRm, TIn const &in)
std::pair< bool, EitherAmountvalidFwd (PaymentSandbox &sb, ApplyView &afView, EitherAmount const &in) override
TER check (StrandContext const &ctx) const
bool inactive () const override

Protected Types

enum  OfferType

Protected Member Functions

std::string logStringImpl (char const *name) const
Rate rate (ReadView const &view, Asset const &asset, AccountID const &dstAccount) const

Protected Attributes

Book book_
AccountID strandSrc_
AccountID strandDst_
Step const *const prevStep_
bool const ownerPaysTransferFee_
bool inactive_
std::uint32_t offersUsed_
 Number of offers consumed or partially consumed the last time the step ran, including expired and unfunded offers.
std::optional< AMMLiquidity< TIn, TOut > > ammLiquidity_
beast::Journal const j_
Asset const strandDeliver_
std::optional< Cache > cache_

Static Protected Attributes

static constexpr uint32_t kMaxOffersToConsume

Private Member Functions

bool equal (Step const &rhs) const override
std::pair< boost::container::flat_set< uint256 >, std::uint32_tforEachOffer (PaymentSandbox &sb, ApplyView &afView, DebtDirection prevStepDebtDir, Callback &callback) const
void consumeOffer (PaymentSandbox &sb, Offer< TIn, TOut > &offer, TAmounts< TIn, TOut > const &ofrAmt, TAmounts< TIn, TOut > const &stepAmt, TOut const &ownerGives) const
std::optional< AMMOffer< TIn, TOut > > getAMMOffer (ReadView const &view, std::optional< Quality > const &clobQuality) const
std::optional< std::variant< Quality, AMMOffer< TIn, TOut > > > tip (ReadView const &view) const
std::optional< std::pair< Quality, OfferType > > tipOfferQuality (ReadView const &view) const
std::optional< QualityFunctiontipOfferQualityF (ReadView const &view) const
bool checkMPTDEX (ReadView const &view, AccountID const &owner) const

Static Private Member Functions

static Quality getQuality (std::optional< Quality > const &limitQuality)

Private Attributes

bool const defaultPath_
Quality const qualityThreshold_
friend TDerived

Detailed Description

template<class TIn, class TOut>
class xrpl::BookOfferCrossingStep< TIn, TOut >

Definition at line 373 of file BookStep.cpp.

Member Enumeration Documentation

◆ OfferType

enum xrpl::BookStep::OfferType
strongprotectedinherited

Definition at line 58 of file BookStep.cpp.

Constructor & Destructor Documentation

◆ BookOfferCrossingStep()

template<class TIn, class TOut>
xrpl::BookOfferCrossingStep< TIn, TOut >::BookOfferCrossingStep ( StrandContext const & ctx,
Asset const & in,
Asset const & out )

Definition at line 392 of file BookStep.cpp.

Member Function Documentation

◆ getQuality()

template<class TIn, class TOut>
Quality xrpl::BookOfferCrossingStep< TIn, TOut >::getQuality ( std::optional< Quality > const & limitQuality)
staticprivate

Definition at line 382 of file BookStep.cpp.

◆ limitSelfCrossQuality()

template<class TIn, class TOut>
template<template< typename, typename > typename Offer>
bool xrpl::BookOfferCrossingStep< TIn, TOut >::limitSelfCrossQuality ( AccountID const & strandSrc,
AccountID const & strandDst,
Offer< TIn, TOut > const & offer,
std::optional< Quality > & ofrQ,
FlowOfferStream< TIn, TOut > & offers,
bool const offerAttempted ) const

Definition at line 401 of file BookStep.cpp.

◆ checkQualityThreshold()

template<class TIn, class TOut>
bool xrpl::BookOfferCrossingStep< TIn, TOut >::checkQualityThreshold ( Quality const & quality) const
nodiscard

Definition at line 459 of file BookStep.cpp.

◆ qualityThreshold()

template<class TIn, class TOut>
std::optional< Quality > xrpl::BookOfferCrossingStep< TIn, TOut >::qualityThreshold ( Quality const & lobQuality) const
nodiscard

Definition at line 475 of file BookStep.cpp.

◆ getOfrInRate()

template<class TIn, class TOut>
std::uint32_t xrpl::BookOfferCrossingStep< TIn, TOut >::getOfrInRate ( Step const * prevStep,
AccountID const & owner,
std::uint32_t trIn ) const

Definition at line 486 of file BookStep.cpp.

◆ getOfrOutRate()

template<class TIn, class TOut>
std::uint32_t xrpl::BookOfferCrossingStep< TIn, TOut >::getOfrOutRate ( Step const * prevStep,
AccountID const & owner,
AccountID const & strandDst,
std::uint32_t trOut ) const

Definition at line 497 of file BookStep.cpp.

◆ adjustQualityWithFees()

template<class TIn, class TOut>
Quality xrpl::BookOfferCrossingStep< TIn, TOut >::adjustQualityWithFees ( ReadView const & v,
Quality const & ofrQ,
DebtDirection prevStepDir,
WaiveTransferFee waiveFee,
OfferType offerType,
Rules const & rules ) const
nodiscard

Definition at line 511 of file BookStep.cpp.

◆ logString()

template<class TIn, class TOut>
std::string xrpl::BookOfferCrossingStep< TIn, TOut >::logString ( ) const
nodiscardoverride

Definition at line 549 of file BookStep.cpp.

◆ book()

Book const & xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::book ( ) const
nodiscardinherited

Definition at line 122 of file BookStep.cpp.

◆ cachedIn()

std::optional< EitherAmount > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::cachedIn ( ) const
nodiscardoverrideinherited

Definition at line 128 of file BookStep.cpp.

◆ cachedOut()

std::optional< EitherAmount > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::cachedOut ( ) const
nodiscardoverrideinherited

Definition at line 136 of file BookStep.cpp.

◆ debtDirection()

DebtDirection xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::debtDirection ( ReadView const & sb,
StrandDirection dir ) const
nodiscardoverrideinherited

Definition at line 144 of file BookStep.cpp.

◆ bookStepBook()

std::optional< Book > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::bookStepBook ( ) const
nodiscardoverrideinherited

Definition at line 150 of file BookStep.cpp.

◆ qualityUpperBound()

std::pair< std::optional< Quality >, DebtDirection > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::qualityUpperBound ( ReadView const & v,
DebtDirection prevStepDir ) const
nodiscardoverrideinherited

Definition at line 156 of file BookStep.cpp.

◆ getQualityFunc()

std::pair< std::optional< QualityFunction >, DebtDirection > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::getQualityFunc ( ReadView const & v,
DebtDirection prevStepDir ) const
nodiscardoverrideinherited

Definition at line 159 of file BookStep.cpp.

◆ offersUsed()

std::uint32_t xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::offersUsed ( ) const
nodiscardoverrideinherited

Definition at line 162 of file BookStep.cpp.

◆ revImp()

std::pair< TIn, TOut > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::revImp ( PaymentSandbox & sb,
ApplyView & afView,
boost::container::flat_set< uint256 > & ofrsToRm,
TOut const & out )
inherited

Definition at line 165 of file BookStep.cpp.

◆ fwdImp()

std::pair< TIn, TOut > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::fwdImp ( PaymentSandbox & sb,
ApplyView & afView,
boost::container::flat_set< uint256 > & ofrsToRm,
TIn const & in )
inherited

Definition at line 172 of file BookStep.cpp.

◆ validFwd()

std::pair< bool, EitherAmount > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::validFwd ( PaymentSandbox & sb,
ApplyView & afView,
EitherAmount const & in )
overrideinherited

Definition at line 179 of file BookStep.cpp.

◆ check()

TER xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::check ( StrandContext const & ctx) const
nodiscardinherited

Definition at line 183 of file BookStep.cpp.

◆ inactive()

bool xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::inactive ( ) const
nodiscardoverrideinherited

Definition at line 186 of file BookStep.cpp.

◆ logStringImpl()

std::string xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::logStringImpl ( char const * name) const
protectedinherited

Definition at line 193 of file BookStep.cpp.

◆ rate()

Rate xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::rate ( ReadView const & view,
Asset const & asset,
AccountID const & dstAccount ) const
nodiscardprotectedinherited

Definition at line 203 of file BookStep.cpp.

◆ equal()

bool xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::equal ( Step const & rhs) const
nodiscardoverrideprivateinherited

Definition at line 219 of file BookStep.cpp.

◆ forEachOffer()

std::pair< boost::container::flat_set< uint256 >, std::uint32_t > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::forEachOffer ( PaymentSandbox & sb,
ApplyView & afView,
DebtDirection prevStepDebtDir,
Callback & callback ) const
privateinherited

Definition at line 228 of file BookStep.cpp.

◆ consumeOffer()

void xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::consumeOffer ( PaymentSandbox & sb,
Offer< TIn, TOut > & offer,
TAmounts< TIn, TOut > const & ofrAmt,
TAmounts< TIn, TOut > const & stepAmt,
TOut const & ownerGives ) const
privateinherited

Definition at line 237 of file BookStep.cpp.

◆ getAMMOffer()

std::optional< AMMOffer< TIn, TOut > > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::getAMMOffer ( ReadView const & view,
std::optional< Quality > const & clobQuality ) const
privateinherited

Definition at line 248 of file BookStep.cpp.

◆ tip()

std::optional< std::variant< Quality, AMMOffer< TIn, TOut > > > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::tip ( ReadView const & view) const
privateinherited

Definition at line 253 of file BookStep.cpp.

◆ tipOfferQuality()

auto xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::tipOfferQuality ( ReadView const & view) const
privateinherited

Definition at line 258 of file BookStep.cpp.

◆ tipOfferQualityF()

std::optional< QualityFunction > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::tipOfferQualityF ( ReadView const & view) const
nodiscardprivateinherited

Definition at line 262 of file BookStep.cpp.

◆ checkMPTDEX()

bool xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::checkMPTDEX ( ReadView const & view,
AccountID const & owner ) const
nodiscardprivateinherited

Definition at line 267 of file BookStep.cpp.

Member Data Documentation

◆ defaultPath_

template<class TIn, class TOut>
bool const xrpl::BookOfferCrossingStep< TIn, TOut >::defaultPath_
private

Definition at line 555 of file BookStep.cpp.

◆ qualityThreshold_

template<class TIn, class TOut>
Quality const xrpl::BookOfferCrossingStep< TIn, TOut >::qualityThreshold_
private

Definition at line 556 of file BookStep.cpp.

◆ kMaxOffersToConsume

uint32_t xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::kMaxOffersToConsume
staticconstexprprotectedinherited

Definition at line 60 of file BookStep.cpp.

◆ book_

Book xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::book_
protectedinherited

Definition at line 61 of file BookStep.cpp.

◆ strandSrc_

AccountID xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::strandSrc_
protectedinherited

Definition at line 62 of file BookStep.cpp.

◆ strandDst_

AccountID xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::strandDst_
protectedinherited

Definition at line 63 of file BookStep.cpp.

◆ prevStep_

Step const* const xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::prevStep_
protectedinherited

Definition at line 65 of file BookStep.cpp.

◆ ownerPaysTransferFee_

bool const xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::ownerPaysTransferFee_
protectedinherited

Definition at line 66 of file BookStep.cpp.

◆ inactive_

bool xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::inactive_
protectedinherited

Definition at line 68 of file BookStep.cpp.

◆ offersUsed_

std::uint32_t xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::offersUsed_
protectedinherited

Number of offers consumed or partially consumed the last time the step ran, including expired and unfunded offers.

N.B. This is not the total number offers consumed by this step for the entire payment, it is only the number the last time it ran. Offers may be partially consumed multiple times during a payment.

Definition at line 76 of file BookStep.cpp.

◆ ammLiquidity_

std::optional<AMMLiquidity<TIn, TOut> > xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::ammLiquidity_
protectedinherited

Definition at line 80 of file BookStep.cpp.

◆ j_

beast::Journal const xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::j_
protectedinherited

Definition at line 81 of file BookStep.cpp.

◆ strandDeliver_

Asset const xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::strandDeliver_
protectedinherited

Definition at line 82 of file BookStep.cpp.

◆ cache_

std::optional<Cache> xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::cache_
protectedinherited

Definition at line 94 of file BookStep.cpp.

◆ TDerived

friend xrpl::BookStep< TIn, TOut, BookOfferCrossingStep< TIn, TOut > >::BookOfferCrossingStep< TIn, TOut >
privateinherited

Definition at line 269 of file BookStep.cpp.