rippled
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | List of all members
ripple::AMMBid Class Reference

AMMBid implements AMM bid Transactor. More...

Inheritance diagram for ripple::AMMBid:
Inheritance graph
[legend]
Collaboration diagram for ripple::AMMBid:
Collaboration graph
[legend]

Public Types

enum  ConsequencesFactoryType { Normal, Blocker, Custom }
 

Public Member Functions

 AMMBid (ApplyContext &ctx)
 
TER doApply () override
 
std::pair< TER, bool > operator() ()
 Process the transaction. More...
 
ApplyViewview ()
 
ApplyView const & view () const
 

Static Public Member Functions

static NotTEC preflight (PreflightContext const &ctx)
 
static TER preclaim (PreclaimContext const &ctx)
 
static NotTEC checkSeqProxy (ReadView const &view, STTx const &tx, beast::Journal j)
 
static NotTEC checkPriorTxAndLastLedger (PreclaimContext const &ctx)
 
static TER checkFee (PreclaimContext const &ctx, XRPAmount baseFee)
 
static NotTEC checkSign (PreclaimContext const &ctx)
 
static XRPAmount calculateBaseFee (ReadView const &view, STTx const &tx)
 
static TER ticketDelete (ApplyView &view, AccountID const &account, uint256 const &ticketIndex, beast::Journal j)
 

Static Public Attributes

static constexpr ConsequencesFactoryType ConsequencesFactory {Normal}
 

Protected Member Functions

TER apply ()
 
virtual void preCompute ()
 

Static Protected Member Functions

static XRPAmount minimumFee (Application &app, XRPAmount baseFee, Fees const &fees, ApplyFlags flags)
 Compute the minimum fee required to process a transaction with a given baseFee based on the current server load. More...
 

Protected Attributes

ApplyContextctx_
 
const beast::Journal j_
 
const AccountID account_
 
XRPAmount mPriorBalance
 
XRPAmount mSourceBalance
 

Private Member Functions

std::pair< TER, XRPAmountreset (XRPAmount fee)
 Reset the context, discarding any changes made and adjust the fee. More...
 
TER consumeSeqProxy (SLE::pointer const &sleAccount)
 
TER payFee ()
 

Static Private Member Functions

static NotTEC checkSingleSign (PreclaimContext const &ctx)
 
static NotTEC checkMultiSign (PreclaimContext const &ctx)
 

Detailed Description

AMMBid implements AMM bid Transactor.

This is a mechanism for an AMM instance to auction-off the trading advantages to users (arbitrageurs) at a discounted TradingFee for a 24 hour slot. Any account that owns corresponding LPTokens can bid for the auction slot of that AMM instance. Part of the proceeds from the auction, i.e. LPTokens are refunded to the current slot-holder computed on a pro rata basis. Remaining part of the proceeds - in the units of LPTokens- is burnt, thus effectively increasing the LPs shares. Total slot time of 24 hours is divided into 20 equal intervals. The auction slot can be in any of the following states at any time:

Definition at line 65 of file AMMBid.h.

Member Enumeration Documentation

◆ ConsequencesFactoryType

Enumerator
Normal 
Blocker 
Custom 

Definition at line 101 of file Transactor.h.

Constructor & Destructor Documentation

◆ AMMBid()

ripple::AMMBid::AMMBid ( ApplyContext ctx)
explicit

Definition at line 70 of file AMMBid.h.

Member Function Documentation

◆ preflight()

NotTEC ripple::AMMBid::preflight ( PreflightContext const &  ctx)
static

Definition at line 35 of file AMMBid.cpp.

◆ preclaim()

TER ripple::AMMBid::preclaim ( PreclaimContext const &  ctx)
static

Definition at line 87 of file AMMBid.cpp.

◆ doApply()

TER ripple::AMMBid::doApply ( )
overridevirtual

Implements ripple::Transactor.

Definition at line 346 of file AMMBid.cpp.

◆ operator()()

std::pair< TER, bool > ripple::Transactor::operator() ( )
inherited

Process the transaction.

Definition at line 827 of file Transactor.cpp.

◆ view() [1/2]

ApplyView& ripple::Transactor::view ( )
inherited

Definition at line 107 of file Transactor.h.

◆ view() [2/2]

ApplyView const& ripple::Transactor::view ( ) const
inherited

Definition at line 113 of file Transactor.h.

◆ checkSeqProxy()

NotTEC ripple::Transactor::checkSeqProxy ( ReadView const &  view,
STTx const &  tx,
beast::Journal  j 
)
staticinherited

Definition at line 263 of file Transactor.cpp.

◆ checkPriorTxAndLastLedger()

NotTEC ripple::Transactor::checkPriorTxAndLastLedger ( PreclaimContext const &  ctx)
staticinherited

Definition at line 335 of file Transactor.cpp.

◆ checkFee()

TER ripple::Transactor::checkFee ( PreclaimContext const &  ctx,
XRPAmount  baseFee 
)
staticinherited

Definition at line 190 of file Transactor.cpp.

◆ checkSign()

NotTEC ripple::Transactor::checkSign ( PreclaimContext const &  ctx)
staticinherited

Definition at line 478 of file Transactor.cpp.

◆ calculateBaseFee()

XRPAmount ripple::Transactor::calculateBaseFee ( ReadView const &  view,
STTx const &  tx 
)
staticinherited

Definition at line 162 of file Transactor.cpp.

◆ ticketDelete()

TER ripple::Transactor::ticketDelete ( ApplyView view,
AccountID const &  account,
uint256 const &  ticketIndex,
beast::Journal  j 
)
staticinherited

Definition at line 383 of file Transactor.cpp.

◆ apply()

TER ripple::Transactor::apply ( )
protectedinherited

Definition at line 443 of file Transactor.cpp.

◆ preCompute()

void ripple::Transactor::preCompute ( )
protectedvirtualinherited

Reimplemented in ripple::SetSignerList, ripple::CreateOffer, and ripple::Change.

Definition at line 437 of file Transactor.cpp.

◆ minimumFee()

XRPAmount ripple::Transactor::minimumFee ( Application app,
XRPAmount  baseFee,
Fees const &  fees,
ApplyFlags  flags 
)
staticprotectedinherited

Compute the minimum fee required to process a transaction with a given baseFee based on the current server load.

Parameters
appThe application hosting the server
baseFeeThe base fee of a candidate transaction
See also
ripple::calculateBaseFee
Parameters
feesFee settings from the current ledger
flagsTransaction processing fees

Definition at line 180 of file Transactor.cpp.

◆ reset()

std::pair< TER, XRPAmount > ripple::Transactor::reset ( XRPAmount  fee)
privateinherited

Reset the context, discarding any changes made and adjust the fee.

Definition at line 788 of file Transactor.cpp.

◆ consumeSeqProxy()

TER ripple::Transactor::consumeSeqProxy ( SLE::pointer const &  sleAccount)
privateinherited

Definition at line 365 of file Transactor.cpp.

◆ payFee()

TER ripple::Transactor::payFee ( )
privateinherited

Definition at line 243 of file Transactor.cpp.

◆ checkSingleSign()

NotTEC ripple::Transactor::checkSingleSign ( PreclaimContext const &  ctx)
staticprivateinherited

Definition at line 488 of file Transactor.cpp.

◆ checkMultiSign()

NotTEC ripple::Transactor::checkMultiSign ( PreclaimContext const &  ctx)
staticprivateinherited

Definition at line 562 of file Transactor.cpp.

Member Data Documentation

◆ ConsequencesFactory

constexpr ConsequencesFactoryType ripple::AMMBid::ConsequencesFactory {Normal}
staticconstexpr

Definition at line 68 of file AMMBid.h.

◆ ctx_

ApplyContext& ripple::Transactor::ctx_
protectedinherited

Definition at line 88 of file Transactor.h.

◆ j_

const beast::Journal ripple::Transactor::j_
protectedinherited

Definition at line 89 of file Transactor.h.

◆ account_

const AccountID ripple::Transactor::account_
protectedinherited

Definition at line 91 of file Transactor.h.

◆ mPriorBalance

XRPAmount ripple::Transactor::mPriorBalance
protectedinherited

Definition at line 92 of file Transactor.h.

◆ mSourceBalance

XRPAmount ripple::Transactor::mSourceBalance
protectedinherited

Definition at line 93 of file Transactor.h.