rippled
Loading...
Searching...
No Matches
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
xrpl::AMMWithdraw Class Reference

#include <AMMWithdraw.h>

Inheritance diagram for xrpl::AMMWithdraw:
Inheritance graph
[legend]
Collaboration diagram for xrpl::AMMWithdraw:
Collaboration graph
[legend]

Public Types

enum  ConsequencesFactoryType { Normal , Blocker , Custom }
 

Public Member Functions

 AMMWithdraw (ApplyContext &ctx)
 
TER doApply () override
 
ApplyResult operator() ()
 Process the transaction.
 
ApplyViewview ()
 
ApplyView const & view () const
 

Static Public Member Functions

static bool checkExtraFeatures (PreflightContext const &ctx)
 
static std::uint32_t getFlagsMask (PreflightContext const &ctx)
 
static NotTEC preflight (PreflightContext const &ctx)
 
static TER preclaim (PreclaimContext const &ctx)
 
static std::tuple< TER, STAmount, STAmount, std::optional< STAmount > > equalWithdrawTokens (Sandbox &view, SLE const &ammSle, AccountID const account, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &amount2Balance, STAmount const &lptAMMBalance, STAmount const &lpTokens, STAmount const &lpTokensWithdraw, std::uint16_t tfee, FreezeHandling freezeHanding, WithdrawAll withdrawAll, XRPAmount const &priorBalance, beast::Journal const &journal)
 Equal-asset withdrawal (LPTokens) of some AMM instance pools shares represented by the number of LPTokens .
 
static std::tuple< TER, STAmount, STAmount, std::optional< STAmount > > withdraw (Sandbox &view, SLE const &ammSle, AccountID const &ammAccount, AccountID const &account, STAmount const &amountBalance, STAmount const &amountWithdraw, std::optional< STAmount > const &amount2Withdraw, STAmount const &lpTokensAMMBalance, STAmount const &lpTokensWithdraw, std::uint16_t tfee, FreezeHandling freezeHandling, WithdrawAll withdrawAll, XRPAmount const &priorBalance, beast::Journal const &journal)
 Withdraw requested assets and token from AMM into LP account.
 
static std::pair< TER, bool > deleteAMMAccountIfEmpty (Sandbox &sb, std::shared_ptr< SLE > const ammSle, STAmount const &lpTokenBalance, Issue const &issue1, Issue const &issue2, beast::Journal const &journal)
 
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 NotTEC checkBatchSign (PreclaimContext const &ctx)
 
static XRPAmount calculateBaseFee (ReadView const &view, STTx const &tx)
 
template<class T >
static NotTEC invokePreflight (PreflightContext const &ctx)
 
template<>
NotTEC invokePreflight (PreflightContext const &ctx)
 
template<>
NotTEC invokePreflight (PreflightContext const &ctx)
 
static NotTEC checkPermission (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 NotTEC checkSign (ReadView const &view, ApplyFlags flags, std::optional< uint256 const > const &parentBatchId, AccountID const &idAccount, STObject const &sigObject, beast::Journal const j)
 
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.
 
static XRPAmount calculateOwnerReserveFee (ReadView const &view, STTx const &tx)
 
static NotTEC preflightSigValidated (PreflightContext const &ctx)
 
static bool validDataLength (std::optional< Slice > const &slice, std::size_t maxLength)
 
template<class T >
static bool validNumericRange (std::optional< T > value, T max, T min=T{})
 
template<class T , class Unit >
static bool validNumericRange (std::optional< T > value, unit::ValueUnit< Unit, T > max, unit::ValueUnit< Unit, T > min=unit::ValueUnit< Unit, T >{})
 
template<class T >
static bool validNumericMinimum (std::optional< T > value, T min=T{})
 Minimum will usually be zero.
 
template<class T , class Unit >
static bool validNumericMinimum (std::optional< T > value, unit::ValueUnit< Unit, T > min=unit::ValueUnit< Unit, T >{})
 Minimum will usually be zero.
 

Protected Attributes

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

Private Member Functions

std::pair< TER, bool > applyGuts (Sandbox &view)
 
std::pair< TER, STAmountwithdraw (Sandbox &view, SLE const &ammSle, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &amountWithdraw, std::optional< STAmount > const &amount2Withdraw, STAmount const &lpTokensAMMBalance, STAmount const &lpTokensWithdraw, std::uint16_t tfee)
 Withdraw requested assets and token from AMM into LP account.
 
std::pair< TER, STAmountequalWithdrawTokens (Sandbox &view, SLE const &ammSle, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &amount2Balance, STAmount const &lptAMMBalance, STAmount const &lpTokens, STAmount const &lpTokensWithdraw, std::uint16_t tfee)
 Equal-asset withdrawal (LPTokens) of some AMM instance pools shares represented by the number of LPTokens .
 
std::pair< TER, STAmountequalWithdrawLimit (Sandbox &view, SLE const &ammSle, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &amount2Balance, STAmount const &lptAMMBalance, STAmount const &amount, STAmount const &amount2, std::uint16_t tfee)
 Withdraw both assets (Asset1Out, Asset2Out) with the constraints on the maximum amount of each asset that the trader is willing to withdraw.
 
std::pair< TER, STAmountsingleWithdraw (Sandbox &view, SLE const &ammSle, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &lptAMMBalance, STAmount const &amount, std::uint16_t tfee)
 Single asset withdrawal (Asset1Out) equivalent to the amount specified in Asset1Out.
 
std::pair< TER, STAmountsingleWithdrawTokens (Sandbox &view, SLE const &ammSle, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &lptAMMBalance, STAmount const &amount, STAmount const &lpTokensWithdraw, std::uint16_t tfee)
 Single asset withdrawal (Asset1Out, LPTokens) proportional to the share specified by tokens.
 
std::pair< TER, STAmountsingleWithdrawEPrice (Sandbox &view, SLE const &ammSle, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &lptAMMBalance, STAmount const &amount, STAmount const &ePrice, std::uint16_t tfee)
 Withdraw single asset (Asset1Out, EPrice) with two constraints.
 
std::pair< TER, XRPAmountreset (XRPAmount fee)
 Reset the context, discarding any changes made and adjust the fee.
 
TER consumeSeqProxy (SLE::pointer const &sleAccount)
 
TER payFee ()
 
void trapTransaction (uint256) const
 

Static Private Member Functions

static WithdrawAll isWithdrawAll (STTx const &tx)
 Check from the flags if it's withdraw all.
 
static NotTEC checkSingleSign (ReadView const &view, AccountID const &idSigner, AccountID const &idAccount, std::shared_ptr< SLE const > sleAccount, beast::Journal const j)
 
static NotTEC checkMultiSign (ReadView const &view, ApplyFlags flags, AccountID const &id, STObject const &sigObject, beast::Journal const j)
 
static NotTEC preflight1 (PreflightContext const &ctx, std::uint32_t flagMask)
 Performs early sanity checks on the account and fee fields.
 
static NotTEC preflight2 (PreflightContext const &ctx)
 Checks whether the signature appears valid.
 

Detailed Description

Definition at line 50 of file AMMWithdraw.h.

Member Enumeration Documentation

◆ ConsequencesFactoryType

Enumerator
Normal 
Blocker 
Custom 

Definition at line 122 of file Transactor.h.

Constructor & Destructor Documentation

◆ AMMWithdraw()

xrpl::AMMWithdraw::AMMWithdraw ( ApplyContext ctx)
explicit

Definition at line 55 of file AMMWithdraw.h.

Member Function Documentation

◆ checkExtraFeatures()

bool xrpl::AMMWithdraw::checkExtraFeatures ( PreflightContext const &  ctx)
static

Definition at line 13 of file AMMWithdraw.cpp.

◆ getFlagsMask()

std::uint32_t xrpl::AMMWithdraw::getFlagsMask ( PreflightContext const &  ctx)
static

Definition at line 19 of file AMMWithdraw.cpp.

◆ preflight()

NotTEC xrpl::AMMWithdraw::preflight ( PreflightContext const &  ctx)
static

Definition at line 25 of file AMMWithdraw.cpp.

◆ preclaim()

TER xrpl::AMMWithdraw::preclaim ( PreclaimContext const &  ctx)
static

Definition at line 145 of file AMMWithdraw.cpp.

◆ doApply()

TER xrpl::AMMWithdraw::doApply ( )
overridevirtual

Implements xrpl::Transactor.

Definition at line 346 of file AMMWithdraw.cpp.

◆ equalWithdrawTokens() [1/2]

std::tuple< TER, STAmount, STAmount, std::optional< STAmount > > xrpl::AMMWithdraw::equalWithdrawTokens ( Sandbox view,
SLE const &  ammSle,
AccountID const  account,
AccountID const &  ammAccount,
STAmount const &  amountBalance,
STAmount const &  amount2Balance,
STAmount const &  lptAMMBalance,
STAmount const &  lpTokens,
STAmount const &  lpTokensWithdraw,
std::uint16_t  tfee,
FreezeHandling  freezeHanding,
WithdrawAll  withdrawAll,
XRPAmount const &  priorBalance,
beast::Journal const &  journal 
)
static

Equal-asset withdrawal (LPTokens) of some AMM instance pools shares represented by the number of LPTokens .

Proportional withdrawal of pool assets for the amount of LPTokens.

The trading fee is not charged.

Parameters
view
ammAccount
amountBalancecurrent LP asset1 balance
amount2Balancecurrent LP asset2 balance
lptAMMBalancecurrent AMM LPT balance
lpTokenscurrent LPT balance
lpTokensWithdrawamount of tokens to withdraw
tfeetrading fee in basis points
withdrawAllif withdrawing all lptokens
priorBalancebalance before fees
Returns

Definition at line 625 of file AMMWithdraw.cpp.

◆ withdraw() [1/2]

std::tuple< TER, STAmount, STAmount, std::optional< STAmount > > xrpl::AMMWithdraw::withdraw ( Sandbox view,
SLE const &  ammSle,
AccountID const &  ammAccount,
AccountID const &  account,
STAmount const &  amountBalance,
STAmount const &  amountWithdraw,
std::optional< STAmount > const &  amount2Withdraw,
STAmount const &  lpTokensAMMBalance,
STAmount const &  lpTokensWithdraw,
std::uint16_t  tfee,
FreezeHandling  freezeHandling,
WithdrawAll  withdrawAll,
XRPAmount const &  priorBalance,
beast::Journal const &  journal 
)
static

Withdraw requested assets and token from AMM into LP account.

Return new total LPToken balance and the withdrawn amounts for both assets.

Parameters
view
ammSleAMM ledger entry
ammAccountAMM account
amountBalancecurrent LP asset1 balance
amountWithdrawasset1 withdraw amount
amount2Withdrawasset2 withdraw amount
lpTokensAMMBalancecurrent AMM LPT balance
lpTokensWithdrawamount of lptokens to withdraw
tfeetrading fee in basis points
withdrawAllif withdraw all lptokens
priorBalancebalance before fees
Returns

Definition at line 392 of file AMMWithdraw.cpp.

◆ deleteAMMAccountIfEmpty()

std::pair< TER, bool > xrpl::AMMWithdraw::deleteAMMAccountIfEmpty ( Sandbox sb,
std::shared_ptr< SLE > const  ammSle,
STAmount const &  lpTokenBalance,
Issue const &  issue1,
Issue const &  issue2,
beast::Journal const &  journal 
)
static

Definition at line 594 of file AMMWithdraw.cpp.

◆ applyGuts()

std::pair< TER, bool > xrpl::AMMWithdraw::applyGuts ( Sandbox view)
private

Definition at line 256 of file AMMWithdraw.cpp.

◆ withdraw() [2/2]

std::pair< TER, STAmount > xrpl::AMMWithdraw::withdraw ( Sandbox view,
SLE const &  ammSle,
AccountID const &  ammAccount,
STAmount const &  amountBalance,
STAmount const &  amountWithdraw,
std::optional< STAmount > const &  amount2Withdraw,
STAmount const &  lpTokensAMMBalance,
STAmount const &  lpTokensWithdraw,
std::uint16_t  tfee 
)
private

Withdraw requested assets and token from AMM into LP account.

Return new total LPToken balance.

Parameters
view
ammSleAMM ledger entry
ammAccountAMM account
amountBalancecurrent LP asset1 balance
amountWithdrawasset1 withdraw amount
amount2Withdrawasset2 withdraw amount
lpTokensAMMBalancecurrent AMM LPT balance
lpTokensWithdrawamount of lptokens to withdraw
Returns

Definition at line 360 of file AMMWithdraw.cpp.

◆ equalWithdrawTokens() [2/2]

std::pair< TER, STAmount > xrpl::AMMWithdraw::equalWithdrawTokens ( Sandbox view,
SLE const &  ammSle,
AccountID const &  ammAccount,
STAmount const &  amountBalance,
STAmount const &  amount2Balance,
STAmount const &  lptAMMBalance,
STAmount const &  lpTokens,
STAmount const &  lpTokensWithdraw,
std::uint16_t  tfee 
)
private

Equal-asset withdrawal (LPTokens) of some AMM instance pools shares represented by the number of LPTokens .

Proportional withdrawal of pool assets for the amount of LPTokens.

The trading fee is not charged.

Parameters
view
ammAccount
amountBalancecurrent LP asset1 balance
amount2Balancecurrent LP asset2 balance
lptAMMBalancecurrent AMM LPT balance
lpTokenscurrent LPT balance
lpTokensWithdrawamount of tokens to withdraw
tfeetrading fee in basis points
Returns

Definition at line 562 of file AMMWithdraw.cpp.

◆ equalWithdrawLimit()

std::pair< TER, STAmount > xrpl::AMMWithdraw::equalWithdrawLimit ( Sandbox view,
SLE const &  ammSle,
AccountID const &  ammAccount,
STAmount const &  amountBalance,
STAmount const &  amount2Balance,
STAmount const &  lptAMMBalance,
STAmount const &  amount,
STAmount const &  amount2,
std::uint16_t  tfee 
)
private

Withdraw both assets (Asset1Out, Asset2Out) with the constraints on the maximum amount of each asset that the trader is willing to withdraw.

All assets withdrawal with the constraints on the maximum amount of each asset that the trader is willing to withdraw.

The trading fee is not charged.

Parameters
view
ammAccount
amountBalancecurrent AMM asset1 balance
amount2Balancecurrent AMM asset2 balance
lptAMMBalancecurrent AMM LPT balance
amountasset1 withdraw amount
amount2max asset2 withdraw amount
tfeetrading fee in basis points
Returns

a = (t/T) * A (5) b = (t/T) * B (6) where A,B: current pool composition T: current balance of outstanding LPTokens a: balance of asset A being withdrawn b: balance of asset B being withdrawn t: balance of LPTokens issued to LP after a successful transaction Use equation 5 to compute t, given the amount in Asset1Out. Let this be Z Use equation 6 to compute the amount of asset2, given Z. Let the computed amount of asset2 be X If X <= amount in Asset2Out: The amount of asset1 to be withdrawn is the one specified in Asset1Out The amount of asset2 to be withdrawn is X The amount of LPTokens redeemed is Z If X> amount in Asset2Out: Use equation 5 to compute t, given the amount in Asset2Out. Let this be Q Use equation 6 to compute the amount of asset1, given Q. Let the computed amount of asset1 be W The amount of asset2 to be withdrawn is the one specified in Asset2Out The amount of asset1 to be withdrawn is W The amount of LPTokens redeemed is Q

Definition at line 728 of file AMMWithdraw.cpp.

◆ singleWithdraw()

std::pair< TER, STAmount > xrpl::AMMWithdraw::singleWithdraw ( Sandbox view,
SLE const &  ammSle,
AccountID const &  ammAccount,
STAmount const &  amountBalance,
STAmount const &  lptAMMBalance,
STAmount const &  amount,
std::uint16_t  tfee 
)
private

Single asset withdrawal (Asset1Out) equivalent to the amount specified in Asset1Out.

Withdraw single asset equivalent to the amount specified in Asset1Out.

The trading fee is charged.

Parameters
view
ammAccount
amountBalancecurrent AMM asset1 balance
lptAMMBalancecurrent AMM LPT balance
amountasset1 withdraw amount
tfeetrading fee in basis points
Returns

t = T * (c - sqrt(c**2 - 4*R))/2 where R = b/B, c = R*fee + 2 - fee Use equation 7 to compute the t, given the amount in Asset1Out.

Definition at line 778 of file AMMWithdraw.cpp.

◆ singleWithdrawTokens()

std::pair< TER, STAmount > xrpl::AMMWithdraw::singleWithdrawTokens ( Sandbox view,
SLE const &  ammSle,
AccountID const &  ammAccount,
STAmount const &  amountBalance,
STAmount const &  lptAMMBalance,
STAmount const &  amount,
STAmount const &  lpTokensWithdraw,
std::uint16_t  tfee 
)
private

Single asset withdrawal (Asset1Out, LPTokens) proportional to the share specified by tokens.

withdrawal of single asset specified in Asset1Out proportional to the share represented by the amount of LPTokens.

The trading fee is charged.

Parameters
view
ammAccount
amountBalancecurrent AMM asset1 balance
lptAMMBalancecurrent AMM LPT balance
amountasset1 withdraw amount
lpTokensWithdrawamount of tokens to withdraw
tfeetrading fee in basis points
Returns

Use equation 8 to compute the amount of asset1, given the redeemed t represented by LPTokens. Let this be Y. If (amount exists for Asset1Out & Y >= amount in Asset1Out) || (amount field does not exist for Asset1Out): The amount of asset out is Y The amount of LPTokens redeemed is LPTokens Equation 8 solves equation 7

See also
singleWithdraw for b.

Definition at line 816 of file AMMWithdraw.cpp.

◆ singleWithdrawEPrice()

std::pair< TER, STAmount > xrpl::AMMWithdraw::singleWithdrawEPrice ( Sandbox view,
SLE const &  ammSle,
AccountID const &  ammAccount,
STAmount const &  amountBalance,
STAmount const &  lptAMMBalance,
STAmount const &  amount,
STAmount const &  ePrice,
std::uint16_t  tfee 
)
private

Withdraw single asset (Asset1Out, EPrice) with two constraints.

Withdraw single asset with two constraints.

The trading fee is charged.

Parameters
view
ammAccount
amountBalancecurrent AMM asset1 balance
lptAMMBalancecurrent AMM LPT balance
amountasset1 withdraw amount
ePricemaximum asset1 effective price
tfeetrading fee in basis points
Returns

a. amount of asset1 if specified (not 0) in Asset1Out specifies the minimum amount of asset1 that the trader is willing to withdraw. b. The effective price of asset traded out does not exceed the amount specified in EPrice The effective price (EP) of a trade is defined as the ratio of the tokens the trader sold or swapped in (Token B) and the token they got in return or swapped out (Token A). EP(B/A) = b/a (III) b = B * (t1**2 + t1*(f - 2))/(t1*f - 1) (8) where t1 = t/T Use equations 8 & III and amount in EPrice to compute the two variables: asset in as LPTokens. Let this be X asset out as that in Asset1Out. Let this be Y If (amount exists for Asset1Out & Y >= amount in Asset1Out) || (amount field does not exist for Asset1Out): The amount of assetOut is given by Y The amount of LPTokens is given by X

Definition at line 860 of file AMMWithdraw.cpp.

◆ isWithdrawAll()

WithdrawAll xrpl::AMMWithdraw::isWithdrawAll ( STTx const &  tx)
staticprivate

Check from the flags if it's withdraw all.

Definition at line 906 of file AMMWithdraw.cpp.

◆ operator()()

ApplyResult xrpl::Transactor::operator() ( )
inherited

Process the transaction.

Definition at line 1042 of file Transactor.cpp.

◆ view() [1/2]

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

Definition at line 128 of file Transactor.h.

◆ view() [2/2]

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

Definition at line 134 of file Transactor.h.

◆ checkSeqProxy()

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

Definition at line 406 of file Transactor.cpp.

◆ checkPriorTxAndLastLedger()

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

Definition at line 470 of file Transactor.cpp.

◆ checkFee()

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

Definition at line 312 of file Transactor.cpp.

◆ checkSign() [1/2]

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

Definition at line 675 of file Transactor.cpp.

◆ checkSign() [2/2]

NotTEC xrpl::Transactor::checkSign ( ReadView const &  view,
ApplyFlags  flags,
std::optional< uint256 const > const &  parentBatchId,
AccountID const &  idAccount,
STObject const &  sigObject,
beast::Journal const  j 
)
staticprotectedinherited

Definition at line 612 of file Transactor.cpp.

◆ checkBatchSign()

NotTEC xrpl::Transactor::checkBatchSign ( PreclaimContext const &  ctx)
staticinherited

Definition at line 683 of file Transactor.cpp.

◆ calculateBaseFee()

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

Definition at line 268 of file Transactor.cpp.

◆ invokePreflight() [1/3]

template<class T >
NotTEC xrpl::Transactor::invokePreflight ( PreflightContext const &  ctx)
staticinherited

Definition at line 364 of file Transactor.h.

◆ invokePreflight() [2/3]

template<>
NotTEC xrpl::Transactor::invokePreflight ( PreflightContext const &  ctx)
staticinherited

Definition at line 18 of file Change.cpp.

◆ invokePreflight() [3/3]

template<>
NotTEC xrpl::Transactor::invokePreflight ( PreflightContext const &  ctx)
staticinherited

◆ checkPermission()

NotTEC xrpl::Transactor::checkPermission ( ReadView const &  view,
STTx const &  tx 
)
staticinherited

Definition at line 252 of file Transactor.cpp.

◆ ticketDelete()

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

Definition at line 513 of file Transactor.cpp.

◆ apply()

TER xrpl::Transactor::apply ( )
protectedinherited

Definition at line 577 of file Transactor.cpp.

◆ preCompute()

void xrpl::Transactor::preCompute ( )
protectedvirtualinherited

Reimplemented in xrpl::Change, and xrpl::SetSignerList.

Definition at line 571 of file Transactor.cpp.

◆ minimumFee()

XRPAmount xrpl::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
xrpl::calculateBaseFee
Parameters
feesFee settings from the current ledger
flagsTransaction processing fees

Definition at line 306 of file Transactor.cpp.

◆ calculateOwnerReserveFee()

XRPAmount xrpl::Transactor::calculateOwnerReserveFee ( ReadView const &  view,
STTx const &  tx 
)
staticprotectedinherited

Definition at line 286 of file Transactor.cpp.

◆ preflightSigValidated()

NotTEC xrpl::Transactor::preflightSigValidated ( PreflightContext const &  ctx)
staticprotectedinherited

Definition at line 246 of file Transactor.cpp.

◆ validDataLength()

bool xrpl::Transactor::validDataLength ( std::optional< Slice > const &  slice,
std::size_t  maxLength 
)
staticprotectedinherited

Definition at line 232 of file Transactor.cpp.

◆ validNumericRange() [1/2]

template<class T >
bool xrpl::Transactor::validNumericRange ( std::optional< T >  value,
max,
min = T{} 
)
staticprotectedinherited

Definition at line 390 of file Transactor.h.

◆ validNumericRange() [2/2]

template<class T , class Unit >
bool xrpl::Transactor::validNumericRange ( std::optional< T >  value,
unit::ValueUnit< Unit, T >  max,
unit::ValueUnit< Unit, T >  min = unit::ValueUnit<Unit, T>{} 
)
staticprotectedinherited

Definition at line 399 of file Transactor.h.

◆ validNumericMinimum() [1/2]

template<class T >
bool xrpl::Transactor::validNumericMinimum ( std::optional< T >  value,
min = T{} 
)
staticprotectedinherited

Minimum will usually be zero.

Definition at line 406 of file Transactor.h.

◆ validNumericMinimum() [2/2]

template<class T , class Unit >
bool xrpl::Transactor::validNumericMinimum ( std::optional< T >  value,
unit::ValueUnit< Unit, T >  min = unit::ValueUnit<Unit, T>{} 
)
staticprotectedinherited

Minimum will usually be zero.

Definition at line 415 of file Transactor.h.

◆ reset()

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

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

Parameters
feeThe transaction fee to be charged.
Returns
A pair containing the transaction result and the actual fee charged.

Definition at line 984 of file Transactor.cpp.

◆ consumeSeqProxy()

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

Definition at line 496 of file Transactor.cpp.

◆ payFee()

TER xrpl::Transactor::payFee ( )
privateinherited

Definition at line 372 of file Transactor.cpp.

◆ checkSingleSign()

NotTEC xrpl::Transactor::checkSingleSign ( ReadView const &  view,
AccountID const &  idSigner,
AccountID const &  idAccount,
std::shared_ptr< SLE const >  sleAccount,
beast::Journal const  j 
)
staticprivateinherited

Definition at line 725 of file Transactor.cpp.

◆ checkMultiSign()

NotTEC xrpl::Transactor::checkMultiSign ( ReadView const &  view,
ApplyFlags  flags,
AccountID const &  id,
STObject const &  sigObject,
beast::Journal const  j 
)
staticprivateinherited

Definition at line 757 of file Transactor.cpp.

◆ trapTransaction()

void xrpl::Transactor::trapTransaction ( uint256  txHash) const
privateinherited

Definition at line 1035 of file Transactor.cpp.

◆ preflight1()

NotTEC xrpl::Transactor::preflight1 ( PreflightContext const &  ctx,
std::uint32_t  flagMask 
)
staticprivateinherited

Performs early sanity checks on the account and fee fields.

(And passes flagMask to preflight0)

Do not try to call preflight1 from preflight() in derived classes. See the description of invokePreflight for details.

Definition at line 135 of file Transactor.cpp.

◆ preflight2()

NotTEC xrpl::Transactor::preflight2 ( PreflightContext const &  ctx)
staticprivateinherited

Checks whether the signature appears valid.

Do not try to call preflight2 from preflight() in derived classes. See the description of invokePreflight for details.

Definition at line 188 of file Transactor.cpp.

Member Data Documentation

◆ ConsequencesFactory

constexpr ConsequencesFactoryType xrpl::AMMWithdraw::ConsequencesFactory {Normal}
staticconstexpr

Definition at line 53 of file AMMWithdraw.h.

◆ ctx_

ApplyContext& xrpl::Transactor::ctx_
protectedinherited

Definition at line 108 of file Transactor.h.

◆ sink_

beast::WrappedSink xrpl::Transactor::sink_
protectedinherited

Definition at line 109 of file Transactor.h.

◆ j_

beast::Journal const xrpl::Transactor::j_
protectedinherited

Definition at line 110 of file Transactor.h.

◆ account_

AccountID const xrpl::Transactor::account_
protectedinherited

Definition at line 112 of file Transactor.h.

◆ mPriorBalance

XRPAmount xrpl::Transactor::mPriorBalance
protectedinherited

Definition at line 113 of file Transactor.h.

◆ mSourceBalance

XRPAmount xrpl::Transactor::mSourceBalance
protectedinherited

Definition at line 114 of file Transactor.h.