rippled
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends | List of all members
ripple::BookStep< TIn, TOut, TDerived > Class Template Reference
Inheritance diagram for ripple::BookStep< TIn, TOut, TDerived >:
Inheritance graph
[legend]
Collaboration diagram for ripple::BookStep< TIn, TOut, TDerived >:
Collaboration graph
[legend]

Classes

struct  Cache
 

Public Member Functions

 BookStep (StrandContext const &ctx, Issue const &in, Issue const &out)
 
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 class  OfferType { AMM , CLOB }
 

Protected Member Functions

std::string logStringImpl (char const *name) const
 

Protected Attributes

Book book_
 
AccountID strandSrc_
 
AccountID strandDst_
 
Step const *const prevStep_ = nullptr
 
bool const ownerPaysTransferFee_
 
bool inactive_ = false
 
std::uint32_t offersUsed_ = 0
 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_
 
std::optional< Cachecache_
 

Static Protected Attributes

static constexpr uint32_t MaxOffersToConsume {1000}
 

Private Member Functions

bool equal (Step const &rhs) const override
 
template<class Callback >
std::pair< boost::container::flat_set< uint256 >, std::uint32_tforEachOffer (PaymentSandbox &sb, ApplyView &afView, DebtDirection prevStepDebtDir, Callback &callback) const
 
template<template< typename, typename > typename Offer>
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
 

Friends

bool operator== (BookStep const &lhs, BookStep const &rhs)
 
bool operator!= (BookStep const &lhs, BookStep const &rhs)
 

Detailed Description

template<class TIn, class TOut, class TDerived>
class ripple::BookStep< TIn, TOut, TDerived >

Definition at line 45 of file BookStep.cpp.

Member Enumeration Documentation

◆ OfferType

template<class TIn , class TOut , class TDerived >
enum class ripple::BookStep::OfferType
strongprotected
Enumerator
AMM 
CLOB 

Definition at line 48 of file BookStep.cpp.

Constructor & Destructor Documentation

◆ BookStep()

template<class TIn , class TOut , class TDerived >
ripple::BookStep< TIn, TOut, TDerived >::BookStep ( StrandContext const &  ctx,
Issue const &  in,
Issue const &  out 
)

Definition at line 86 of file BookStep.cpp.

Member Function Documentation

◆ book()

template<class TIn , class TOut , class TDerived >
Book const & ripple::BookStep< TIn, TOut, TDerived >::book ( ) const

Definition at line 107 of file BookStep.cpp.

◆ cachedIn()

template<class TIn , class TOut , class TDerived >
std::optional< EitherAmount > ripple::BookStep< TIn, TOut, TDerived >::cachedIn ( ) const
override

Definition at line 113 of file BookStep.cpp.

◆ cachedOut()

template<class TIn , class TOut , class TDerived >
std::optional< EitherAmount > ripple::BookStep< TIn, TOut, TDerived >::cachedOut ( ) const
override

Definition at line 121 of file BookStep.cpp.

◆ debtDirection()

template<class TIn , class TOut , class TDerived >
DebtDirection ripple::BookStep< TIn, TOut, TDerived >::debtDirection ( ReadView const &  sb,
StrandDirection  dir 
) const
override

Definition at line 129 of file BookStep.cpp.

◆ bookStepBook()

template<class TIn , class TOut , class TDerived >
std::optional< Book > ripple::BookStep< TIn, TOut, TDerived >::bookStepBook ( ) const
override

Definition at line 136 of file BookStep.cpp.

◆ qualityUpperBound()

template<class TIn , class TOut , class TDerived >
std::pair< std::optional< Quality >, DebtDirection > ripple::BookStep< TIn, TOut, TDerived >::qualityUpperBound ( ReadView const &  v,
DebtDirection  prevStepDir 
) const
override

Definition at line 575 of file BookStep.cpp.

◆ getQualityFunc()

template<class TIn , class TOut , class TDerived >
std::pair< std::optional< QualityFunction >, DebtDirection > ripple::BookStep< TIn, TOut, TDerived >::getQualityFunc ( ReadView const &  v,
DebtDirection  prevStepDir 
) const
override

Definition at line 601 of file BookStep.cpp.

◆ offersUsed()

template<class TIn , class TOut , class TDerived >
std::uint32_t ripple::BookStep< TIn, TOut, TDerived >::offersUsed ( ) const
override

Definition at line 643 of file BookStep.cpp.

◆ revImp()

template<class TIn , class TOut , class TDerived >
std::pair< TIn, TOut > ripple::BookStep< TIn, TOut, TDerived >::revImp ( PaymentSandbox sb,
ApplyView afView,
boost::container::flat_set< uint256 > &  ofrsToRm,
TOut const &  out 
)

Definition at line 1005 of file BookStep.cpp.

◆ fwdImp()

template<class TIn , class TOut , class TDerived >
std::pair< TIn, TOut > ripple::BookStep< TIn, TOut, TDerived >::fwdImp ( PaymentSandbox sb,
ApplyView afView,
boost::container::flat_set< uint256 > &  ofrsToRm,
TIn const &  in 
)

Definition at line 1119 of file BookStep.cpp.

◆ validFwd()

template<class TIn , class TOut , class TDerived >
std::pair< bool, EitherAmount > ripple::BookStep< TIn, TOut, TDerived >::validFwd ( PaymentSandbox sb,
ApplyView afView,
EitherAmount const &  in 
)
override

Definition at line 1283 of file BookStep.cpp.

◆ check()

template<class TIn , class TOut , class TDerived >
TER ripple::BookStep< TIn, TOut, TDerived >::check ( StrandContext const &  ctx) const

Definition at line 1321 of file BookStep.cpp.

◆ inactive()

template<class TIn , class TOut , class TDerived >
bool ripple::BookStep< TIn, TOut, TDerived >::inactive ( ) const
override

Definition at line 174 of file BookStep.cpp.

◆ logStringImpl()

template<class TIn , class TOut , class TDerived >
std::string ripple::BookStep< TIn, TOut, TDerived >::logStringImpl ( char const *  name) const
protected

Definition at line 181 of file BookStep.cpp.

◆ equal()

template<class TIn , class TOut , class TDerived >
bool ripple::BookStep< TIn, TOut, TDerived >::equal ( Step const &  rhs) const
overrideprivate

Definition at line 566 of file BookStep.cpp.

◆ forEachOffer()

template<class TIn , class TOut , class TDerived >
template<class Callback >
std::pair< boost::container::flat_set< uint256 >, std::uint32_t > ripple::BookStep< TIn, TOut, TDerived >::forEachOffer ( PaymentSandbox sb,
ApplyView afView,
DebtDirection  prevStepDebtDir,
Callback &  callback 
) const
private

Definition at line 708 of file BookStep.cpp.

◆ consumeOffer()

template<class TIn , class TOut , class TDerived >
template<template< typename, typename > typename Offer>
void ripple::BookStep< TIn, TOut, TDerived >::consumeOffer ( PaymentSandbox sb,
Offer< TIn, TOut > &  offer,
TAmounts< TIn, TOut > const &  ofrAmt,
TAmounts< TIn, TOut > const &  stepAmt,
TOut const &  ownerGives 
) const
private

Definition at line 869 of file BookStep.cpp.

◆ getAMMOffer()

template<class TIn , class TOut , class TDerived >
std::optional< AMMOffer< TIn, TOut > > ripple::BookStep< TIn, TOut, TDerived >::getAMMOffer ( ReadView const &  view,
std::optional< Quality > const &  clobQuality 
) const
private

Definition at line 918 of file BookStep.cpp.

◆ tip()

template<class TIn , class TOut , class TDerived >
std::optional< std::variant< Quality, AMMOffer< TIn, TOut > > > ripple::BookStep< TIn, TOut, TDerived >::tip ( ReadView const &  view) const
private

Definition at line 929 of file BookStep.cpp.

◆ tipOfferQuality()

template<class TIn , class TOut , class TDerived >
auto ripple::BookStep< TIn, TOut, TDerived >::tipOfferQuality ( ReadView const &  view) const
private

Definition at line 969 of file BookStep.cpp.

◆ tipOfferQualityF()

template<class TIn , class TOut , class TDerived >
std::optional< QualityFunction > ripple::BookStep< TIn, TOut, TDerived >::tipOfferQualityF ( ReadView const &  view) const
private

Definition at line 983 of file BookStep.cpp.

Friends And Related Symbol Documentation

◆ operator==

template<class TIn , class TOut , class TDerived >
bool operator== ( BookStep< TIn, TOut, TDerived > const &  lhs,
BookStep< TIn, TOut, TDerived > const &  rhs 
)
friend

Definition at line 194 of file BookStep.cpp.

◆ operator!=

template<class TIn , class TOut , class TDerived >
bool operator!= ( BookStep< TIn, TOut, TDerived > const &  lhs,
BookStep< TIn, TOut, TDerived > const &  rhs 
)
friend

Definition at line 200 of file BookStep.cpp.

Member Data Documentation

◆ MaxOffersToConsume

template<class TIn , class TOut , class TDerived >
constexpr uint32_t ripple::BookStep< TIn, TOut, TDerived >::MaxOffersToConsume {1000}
staticconstexprprotected

Definition at line 50 of file BookStep.cpp.

◆ book_

template<class TIn , class TOut , class TDerived >
Book ripple::BookStep< TIn, TOut, TDerived >::book_
protected

Definition at line 51 of file BookStep.cpp.

◆ strandSrc_

template<class TIn , class TOut , class TDerived >
AccountID ripple::BookStep< TIn, TOut, TDerived >::strandSrc_
protected

Definition at line 52 of file BookStep.cpp.

◆ strandDst_

template<class TIn , class TOut , class TDerived >
AccountID ripple::BookStep< TIn, TOut, TDerived >::strandDst_
protected

Definition at line 53 of file BookStep.cpp.

◆ prevStep_

template<class TIn , class TOut , class TDerived >
Step const* const ripple::BookStep< TIn, TOut, TDerived >::prevStep_ = nullptr
protected

Definition at line 55 of file BookStep.cpp.

◆ ownerPaysTransferFee_

template<class TIn , class TOut , class TDerived >
bool const ripple::BookStep< TIn, TOut, TDerived >::ownerPaysTransferFee_
protected

Definition at line 56 of file BookStep.cpp.

◆ inactive_

template<class TIn , class TOut , class TDerived >
bool ripple::BookStep< TIn, TOut, TDerived >::inactive_ = false
protected

Definition at line 58 of file BookStep.cpp.

◆ offersUsed_

template<class TIn , class TOut , class TDerived >
std::uint32_t ripple::BookStep< TIn, TOut, TDerived >::offersUsed_ = 0
protected

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

N.B. This this 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 66 of file BookStep.cpp.

◆ ammLiquidity_

template<class TIn , class TOut , class TDerived >
std::optional<AMMLiquidity<TIn, TOut> > ripple::BookStep< TIn, TOut, TDerived >::ammLiquidity_
protected

Definition at line 70 of file BookStep.cpp.

◆ j_

template<class TIn , class TOut , class TDerived >
beast::Journal const ripple::BookStep< TIn, TOut, TDerived >::j_
protected

Definition at line 71 of file BookStep.cpp.

◆ cache_

template<class TIn , class TOut , class TDerived >
std::optional<Cache> ripple::BookStep< TIn, TOut, TDerived >::cache_
protected

Definition at line 83 of file BookStep.cpp.