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

Transactor specialized for creating offers in the ledger. More...

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

Public Member Functions

 CreateOffer (ApplyContext &ctx)
 Construct a Transactor subclass that creates an offer in the ledger. More...
 
void preCompute () override
 Gather information beyond what the Transactor base class gathers. More...
 
TER doApply () override
 Precondition: fee collection is likely. More...
 
std::pair< TER, bool > operator() ()
 Process the transaction. More...
 
ApplyViewview ()
 
ApplyView const & view () const
 

Static Public Member Functions

static XRPAmount calculateMaxSpend (STTx const &tx)
 Override default behavior provided by Transactor base class. More...
 
static NotTEC preflight (PreflightContext const &ctx)
 Enforce constraints beyond those of the Transactor base class. More...
 
static TER preclaim (PreclaimContext const &ctx)
 Enforce constraints beyond those of the Transactor base class. More...
 
static NotTEC checkSeq (PreclaimContext const &ctx)
 
static TER checkFee (PreclaimContext const &ctx, FeeUnit64 baseFee)
 
static NotTEC checkSign (PreclaimContext const &ctx)
 
static FeeUnit64 calculateBaseFee (ReadView const &view, STTx const &tx)
 
static bool affectsSubsequentTransactionAuth (STTx const &tx)
 
static XRPAmount calculateFeePaid (STTx const &tx)
 

Protected Member Functions

TER apply ()
 

Static Protected Member Functions

static XRPAmount minimumFee (Application &app, FeeUnit64 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_
 
AccountID account_
 
XRPAmount mPriorBalance
 
XRPAmount mSourceBalance
 

Private Member Functions

std::pair< TER, bool > applyGuts (Sandbox &view, Sandbox &view_cancel)
 
bool dry_offer (ApplyView &view, Offer const &offer)
 
std::pair< TER, Amounts > bridged_cross (Taker &taker, ApplyView &view, ApplyView &view_cancel, NetClock::time_point const when)
 
std::pair< TER, Amounts > direct_cross (Taker &taker, ApplyView &view, ApplyView &view_cancel, NetClock::time_point const when)
 
bool reachedOfferCrossingLimit (Taker const &taker) const
 
std::pair< TER, Amounts > takerCross (Sandbox &sb, Sandbox &sbCancel, Amounts const &takerAmount)
 
std::pair< TER, Amounts > flowCross (PaymentSandbox &psb, PaymentSandbox &psbCancel, Amounts const &takerAmount)
 
std::pair< TER, Amounts > cross (Sandbox &sb, Sandbox &sbCancel, Amounts const &takerAmount)
 
XRPAmount reset (XRPAmount fee)
 Reset the context, discarding any changes made and adjust the fee. More...
 
void setSeq ()
 
TER payFee ()
 

Static Private Member Functions

static TER checkAcceptAsset (ReadView const &view, ApplyFlags const flags, AccountID const id, beast::Journal const j, Issue const &issue)
 
static std::pair< bool, Quality > select_path (bool have_direct, OfferStream const &direct, bool have_bridge, OfferStream const &leg1, OfferStream const &leg2)
 
static bool step_account (OfferStream &stream, Taker const &taker)
 
static std::string format_amount (STAmount const &amount)
 
static NotTEC checkSingleSign (PreclaimContext const &ctx)
 
static NotTEC checkMultiSign (PreclaimContext const &ctx)
 

Private Attributes

CrossType cross_type_
 
OfferStream::StepCounter stepCounter_
 

Detailed Description

Transactor specialized for creating offers in the ledger.

Definition at line 34 of file CreateOffer.h.

Constructor & Destructor Documentation

◆ CreateOffer()

ripple::CreateOffer::CreateOffer ( ApplyContext ctx)
explicit

Construct a Transactor subclass that creates an offer in the ledger.

Definition at line 38 of file CreateOffer.h.

Member Function Documentation

◆ calculateMaxSpend()

XRPAmount ripple::CreateOffer::calculateMaxSpend ( STTx const &  tx)
static

Override default behavior provided by Transactor base class.

Definition at line 33 of file CreateOffer.cpp.

◆ preflight()

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

Enforce constraints beyond those of the Transactor base class.

Definition at line 41 of file CreateOffer.cpp.

◆ preclaim()

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

Enforce constraints beyond those of the Transactor base class.

Definition at line 129 of file CreateOffer.cpp.

◆ preCompute()

void ripple::CreateOffer::preCompute ( )
overridevirtual

Gather information beyond what the Transactor base class gathers.

Reimplemented from ripple::Transactor.

Definition at line 1116 of file CreateOffer.cpp.

◆ doApply()

TER ripple::CreateOffer::doApply ( )
overridevirtual

Precondition: fee collection is likely.

Attempt to create the offer.

Implements ripple::Transactor.

Definition at line 1441 of file CreateOffer.cpp.

◆ applyGuts()

std::pair< TER, bool > ripple::CreateOffer::applyGuts ( Sandbox view,
Sandbox view_cancel 
)
private

Definition at line 1130 of file CreateOffer.cpp.

◆ checkAcceptAsset()

TER ripple::CreateOffer::checkAcceptAsset ( ReadView const &  view,
ApplyFlags const  flags,
AccountID const  id,
beast::Journal const  j,
Issue const &  issue 
)
staticprivate

Definition at line 213 of file CreateOffer.cpp.

◆ dry_offer()

bool ripple::CreateOffer::dry_offer ( ApplyView view,
Offer const &  offer 
)
private

Definition at line 271 of file CreateOffer.cpp.

◆ select_path()

std::pair< bool, Quality > ripple::CreateOffer::select_path ( bool  have_direct,
OfferStream const &  direct,
bool  have_bridge,
OfferStream const &  leg1,
OfferStream const &  leg2 
)
staticprivate

Definition at line 285 of file CreateOffer.cpp.

◆ bridged_cross()

std::pair< TER, Amounts > ripple::CreateOffer::bridged_cross ( Taker taker,
ApplyView view,
ApplyView view_cancel,
NetClock::time_point const  when 
)
private

Definition at line 329 of file CreateOffer.cpp.

◆ direct_cross()

std::pair< TER, Amounts > ripple::CreateOffer::direct_cross ( Taker taker,
ApplyView view,
ApplyView view_cancel,
NetClock::time_point const  when 
)
private

Definition at line 518 of file CreateOffer.cpp.

◆ step_account()

bool ripple::CreateOffer::step_account ( OfferStream stream,
Taker const &  taker 
)
staticprivate

Definition at line 611 of file CreateOffer.cpp.

◆ reachedOfferCrossingLimit()

bool ripple::CreateOffer::reachedOfferCrossingLimit ( Taker const &  taker) const
private

Definition at line 318 of file CreateOffer.cpp.

◆ takerCross()

std::pair< TER, Amounts > ripple::CreateOffer::takerCross ( Sandbox sb,
Sandbox sbCancel,
Amounts const &  takerAmount 
)
private

Definition at line 634 of file CreateOffer.cpp.

◆ flowCross()

std::pair< TER, Amounts > ripple::CreateOffer::flowCross ( PaymentSandbox psb,
PaymentSandbox psbCancel,
Amounts const &  takerAmount 
)
private

Definition at line 679 of file CreateOffer.cpp.

◆ cross()

std::pair< TER, Amounts > ripple::CreateOffer::cross ( Sandbox sb,
Sandbox sbCancel,
Amounts const &  takerAmount 
)
private

Definition at line 967 of file CreateOffer.cpp.

◆ format_amount()

std::string ripple::CreateOffer::format_amount ( STAmount const &  amount)
staticprivate

Definition at line 1107 of file CreateOffer.cpp.

◆ operator()()

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

Process the transaction.

Definition at line 627 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.

◆ checkSeq()

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

Definition at line 227 of file Transactor.cpp.

◆ checkFee()

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

Definition at line 161 of file Transactor.cpp.

◆ checkSign()

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

Definition at line 329 of file Transactor.cpp.

◆ calculateBaseFee()

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

Definition at line 121 of file Transactor.cpp.

◆ affectsSubsequentTransactionAuth()

static bool ripple::Transactor::affectsSubsequentTransactionAuth ( STTx const &  tx)
staticinherited

Definition at line 142 of file Transactor.h.

◆ calculateFeePaid()

XRPAmount ripple::Transactor::calculateFeePaid ( STTx const &  tx)
staticinherited

Definition at line 139 of file Transactor.cpp.

◆ apply()

TER ripple::Transactor::apply ( )
protectedinherited

Definition at line 298 of file Transactor.cpp.

◆ minimumFee()

XRPAmount ripple::Transactor::minimumFee ( Application app,
FeeUnit64  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 145 of file Transactor.cpp.

◆ reset()

XRPAmount ripple::Transactor::reset ( XRPAmount  fee)
privateinherited

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

Definition at line 594 of file Transactor.cpp.

◆ setSeq()

void ripple::Transactor::setSeq ( )
privateinherited

Definition at line 275 of file Transactor.cpp.

◆ payFee()

TER ripple::Transactor::payFee ( )
privateinherited

Definition at line 207 of file Transactor.cpp.

◆ checkSingleSign()

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

Definition at line 339 of file Transactor.cpp.

◆ checkMultiSign()

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

Definition at line 413 of file Transactor.cpp.

Member Data Documentation

◆ cross_type_

CrossType ripple::CreateOffer::cross_type_
private

Definition at line 138 of file CreateOffer.h.

◆ stepCounter_

OfferStream::StepCounter ripple::CreateOffer::stepCounter_
private

Definition at line 141 of file CreateOffer.h.

◆ ctx_

ApplyContext& ripple::Transactor::ctx_
protectedinherited

Definition at line 89 of file Transactor.h.

◆ j_

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

Definition at line 90 of file Transactor.h.

◆ account_

AccountID ripple::Transactor::account_
protectedinherited

Definition at line 92 of file Transactor.h.

◆ mPriorBalance

XRPAmount ripple::Transactor::mPriorBalance
protectedinherited

Definition at line 93 of file Transactor.h.

◆ mSourceBalance

XRPAmount ripple::Transactor::mSourceBalance
protectedinherited

Definition at line 94 of file Transactor.h.