rippled
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
ripple::AMMOffer< TIn, TOut > Class Template Reference

Represents synthetic AMM offer in BookStep. More...

Collaboration diagram for ripple::AMMOffer< TIn, TOut >:
Collaboration graph
[legend]

Public Member Functions

 AMMOffer (AMMLiquidity< TIn, TOut > const &ammLiquidity, TAmounts< TIn, TOut > const &amounts, std::optional< TAmounts< TIn, TOut >> const &balances, Quality const &quality)
 
Quality quality () const noexcept
 
Issue const & issueIn () const
 
Issue const & issueOut () const
 
AccountID const & owner () const
 
std::optional< uint256key () const
 
TAmounts< TIn, TOut > const & amount () const
 
void consume (ApplyView &view, TAmounts< TIn, TOut > const &consumed)
 
bool fully_consumed () const
 
TAmounts< TIn, TOut > limitOut (TAmounts< TIn, TOut > const &offrAmt, TOut const &limit, bool fixReducedOffers, bool roundUp) const
 Limit out of the provided offer. More...
 
TAmounts< TIn, TOut > limitIn (TAmounts< TIn, TOut > const &offrAmt, TIn const &limit) const
 Limit in of the provided offer. More...
 
QualityFunction getQualityFunc () const
 
bool isFunded () const
 

Static Public Member Functions

template<typename... Args>
static TER send (Args &&... args)
 Send funds without incurring the transfer fee. More...
 
static std::pair< std::uint32_t, std::uint32_tadjustRates (std::uint32_t ofrInRate, std::uint32_t ofrOutRate)
 

Private Attributes

AMMLiquidity< TIn, TOut > const & ammLiquidity_
 
const TAmounts< TIn, TOut > amounts_
 
const std::optional< TAmounts< TIn, TOut > > balances_
 
const Quality quality_
 
bool consumed_
 

Detailed Description

template<typename TIn, typename TOut>
class ripple::AMMOffer< TIn, TOut >

Represents synthetic AMM offer in BookStep.

AMMOffer mirrors TOffer methods for use in generic BookStep methods. AMMOffer amounts are changed indirectly in BookStep limiting steps.

Definition at line 35 of file AMMLiquidity.h.

Constructor & Destructor Documentation

◆ AMMOffer()

template<typename TIn , typename TOut >
ripple::AMMOffer< TIn, TOut >::AMMOffer ( AMMLiquidity< TIn, TOut > const &  ammLiquidity,
TAmounts< TIn, TOut > const &  amounts,
std::optional< TAmounts< TIn, TOut >> const &  balances,
Quality const &  quality 
)

Definition at line 27 of file AMMOffer.cpp.

Member Function Documentation

◆ quality()

template<typename TIn , typename TOut >
Quality ripple::AMMOffer< TIn, TOut >::quality ( ) const
noexcept

Definition at line 70 of file AMMOffer.h.

◆ issueIn()

template<typename TIn , typename TOut >
Issue const & ripple::AMMOffer< TIn, TOut >::issueIn

Definition at line 42 of file AMMOffer.cpp.

◆ issueOut()

template<typename TIn , typename TOut >
Issue const & ripple::AMMOffer< TIn, TOut >::issueOut

Definition at line 49 of file AMMOffer.cpp.

◆ owner()

template<typename TIn , typename TOut >
AccountID const & ripple::AMMOffer< TIn, TOut >::owner

Definition at line 56 of file AMMOffer.cpp.

◆ key()

template<typename TIn , typename TOut >
std::optional<uint256> ripple::AMMOffer< TIn, TOut >::key ( ) const

Definition at line 85 of file AMMOffer.h.

◆ amount()

template<typename TIn , typename TOut >
TAmounts< TIn, TOut > const & ripple::AMMOffer< TIn, TOut >::amount

Definition at line 63 of file AMMOffer.cpp.

◆ consume()

template<typename TIn , typename TOut >
void ripple::AMMOffer< TIn, TOut >::consume ( ApplyView view,
TAmounts< TIn, TOut > const &  consumed 
)

Definition at line 70 of file AMMOffer.cpp.

◆ fully_consumed()

template<typename TIn , typename TOut >
bool ripple::AMMOffer< TIn, TOut >::fully_consumed ( ) const

Definition at line 97 of file AMMOffer.h.

◆ limitOut()

template<typename TIn , typename TOut >
TAmounts< TIn, TOut > ripple::AMMOffer< TIn, TOut >::limitOut ( TAmounts< TIn, TOut > const &  offrAmt,
TOut const &  limit,
bool  fixReducedOffers,
bool  roundUp 
) const

Limit out of the provided offer.

If one-path then swapOut using current balances. If multi-path then ceil_out using current quality.

Definition at line 88 of file AMMOffer.cpp.

◆ limitIn()

template<typename TIn , typename TOut >
TAmounts< TIn, TOut > ripple::AMMOffer< TIn, TOut >::limitIn ( TAmounts< TIn, TOut > const &  offrAmt,
TIn const &  limit 
) const

Limit in of the provided offer.

If one-path then swapIn using current balances. If multi-path then ceil_in using current quality.

Definition at line 118 of file AMMOffer.cpp.

◆ getQualityFunc()

template<typename TIn , typename TOut >
QualityFunction ripple::AMMOffer< TIn, TOut >::getQualityFunc

Definition at line 130 of file AMMOffer.cpp.

◆ send()

template<typename TIn , typename TOut >
template<typename... Args>
static TER ripple::AMMOffer< TIn, TOut >::send ( Args &&...  args)
static

Send funds without incurring the transfer fee.

Definition at line 127 of file AMMOffer.h.

◆ isFunded()

template<typename TIn , typename TOut >
bool ripple::AMMOffer< TIn, TOut >::isFunded ( ) const

Definition at line 133 of file AMMOffer.h.

◆ adjustRates()

template<typename TIn , typename TOut >
static std::pair<std::uint32_t, std::uint32_t> ripple::AMMOffer< TIn, TOut >::adjustRates ( std::uint32_t  ofrInRate,
std::uint32_t  ofrOutRate 
)
static

Definition at line 140 of file AMMOffer.h.

Member Data Documentation

◆ ammLiquidity_

template<typename TIn , typename TOut >
AMMLiquidity<TIn, TOut> const& ripple::AMMOffer< TIn, TOut >::ammLiquidity_
private

Definition at line 42 of file AMMOffer.h.

◆ amounts_

template<typename TIn , typename TOut >
const TAmounts<TIn, TOut> ripple::AMMOffer< TIn, TOut >::amounts_
private

Definition at line 52 of file AMMOffer.h.

◆ balances_

template<typename TIn , typename TOut >
const std::optional<TAmounts<TIn, TOut> > ripple::AMMOffer< TIn, TOut >::balances_
private

Definition at line 55 of file AMMOffer.h.

◆ quality_

template<typename TIn , typename TOut >
const Quality ripple::AMMOffer< TIn, TOut >::quality_
private

Definition at line 58 of file AMMOffer.h.

◆ consumed_

template<typename TIn , typename TOut >
bool ripple::AMMOffer< TIn, TOut >::consumed_
private

Definition at line 60 of file AMMOffer.h.