rippled
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | List of all members
ripple::Transactor Class Referenceabstract

#include <Transactor.h>

Inherited by ripple::AMMBid, ripple::AMMClawback, ripple::AMMCreate, ripple::AMMDelete, ripple::AMMDeposit, ripple::AMMVote, ripple::AMMWithdraw, ripple::Batch, ripple::BridgeModify, ripple::CancelCheck, ripple::CancelOffer, ripple::CashCheck, ripple::Change, ripple::Clawback, ripple::CreateCheck, ripple::CreateOffer, ripple::CreateTicket, ripple::CredentialAccept, ripple::CredentialCreate, ripple::CredentialDelete, ripple::DIDDelete, ripple::DIDSet, ripple::DelegateSet, ripple::DeleteAccount, ripple::DeleteOracle, ripple::DepositPreauth, ripple::EscrowCancel, ripple::EscrowCreate, ripple::EscrowFinish, ripple::LedgerStateFix, ripple::MPTokenAuthorize, ripple::MPTokenIssuanceCreate, ripple::MPTokenIssuanceDestroy, ripple::MPTokenIssuanceSet, ripple::NFTokenAcceptOffer, ripple::NFTokenBurn, ripple::NFTokenCancelOffer, ripple::NFTokenCreateOffer, ripple::NFTokenMint, ripple::NFTokenModify, ripple::PayChanClaim, ripple::PayChanCreate, ripple::PayChanFund, ripple::Payment, ripple::PermissionedDomainDelete, ripple::PermissionedDomainSet, ripple::SetAccount, ripple::SetOracle, ripple::SetRegularKey, ripple::SetSignerList, ripple::SetTrust, ripple::VaultClawback, ripple::VaultCreate, ripple::VaultDelete, ripple::VaultDeposit, ripple::VaultSet, ripple::VaultWithdraw, ripple::XChainAddAccountCreateAttestation, ripple::XChainAddClaimAttestation, ripple::XChainClaim, ripple::XChainCommit, ripple::XChainCreateAccountCommit, ripple::XChainCreateBridge, and ripple::XChainCreateClaimID.

Collaboration diagram for ripple::Transactor:
Collaboration graph
[legend]

Public Types

enum  ConsequencesFactoryType { Normal , Blocker , Custom }
 

Public Member Functions

ApplyResult operator() ()
 Process the transaction.
 
ApplyViewview ()
 
ApplyView const & view () const
 

Static Public Member Functions

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)
 
static TER preclaim (PreclaimContext 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)
 
template<>
NotTEC invokePreflight (PreflightContext const &ctx)
 
template<>
NotTEC invokePreflight (PreflightContext const &ctx)
 

Protected Member Functions

virtual ~Transactor ()=default
 
 Transactor (Transactor const &)=delete
 
Transactoroperator= (Transactor const &)=delete
 
TER apply ()
 
 Transactor (ApplyContext &ctx)
 
virtual void preCompute ()
 
virtual TER doApply ()=0
 

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.
 
static XRPAmount calculateOwnerReserveFee (ReadView const &view, STTx const &tx)
 
static NotTEC checkSign (ReadView const &view, ApplyFlags flags, AccountID const &idAccount, STObject const &sigObject, beast::Journal const j)
 
static bool checkExtraFeatures (PreflightContext const &ctx)
 
static std::uint32_t getFlagsMask (PreflightContext const &ctx)
 
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={})
 
template<class T , class Unit >
static bool validNumericRange (std::optional< T > value, unit::ValueUnit< Unit, T > max, unit::ValueUnit< Unit, T > min={})
 

Protected Attributes

ApplyContextctx_
 
beast::WrappedSink sink_
 
beast::Journal const j_
 
AccountID const 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.
 
TER consumeSeqProxy (SLE::pointer const &sleAccount)
 
TER payFee ()
 
void trapTransaction (uint256) const
 

Static Private Member Functions

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 140 of file Transactor.h.

Member Enumeration Documentation

◆ ConsequencesFactoryType

Enumerator
Normal 
Blocker 
Custom 

Definition at line 157 of file Transactor.h.

Constructor & Destructor Documentation

◆ ~Transactor()

virtual ripple::Transactor::~Transactor ( )
protectedvirtualdefault

◆ Transactor() [1/2]

ripple::Transactor::Transactor ( Transactor const &  )
protecteddelete

◆ Transactor() [2/2]

ripple::Transactor::Transactor ( ApplyContext ctx)
explicitprotected

Definition at line 246 of file Transactor.cpp.

Member Function Documentation

◆ operator=()

Transactor & ripple::Transactor::operator= ( Transactor const &  )
protecteddelete

◆ operator()()

ApplyResult ripple::Transactor::operator() ( )

Process the transaction.

Definition at line 1133 of file Transactor.cpp.

◆ view() [1/2]

ApplyView & ripple::Transactor::view ( )

Definition at line 163 of file Transactor.h.

◆ view() [2/2]

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

Definition at line 169 of file Transactor.h.

◆ checkSeqProxy()

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

Definition at line 442 of file Transactor.cpp.

◆ checkPriorTxAndLastLedger()

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

Definition at line 514 of file Transactor.cpp.

◆ checkFee()

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

Definition at line 342 of file Transactor.cpp.

◆ checkSign() [1/2]

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

Definition at line 727 of file Transactor.cpp.

◆ checkBatchSign()

NotTEC ripple::Transactor::checkBatchSign ( PreclaimContext const &  ctx)
static

Definition at line 736 of file Transactor.cpp.

◆ calculateBaseFee()

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

Definition at line 293 of file Transactor.cpp.

◆ invokePreflight() [1/3]

template<class T >
NotTEC ripple::Transactor::invokePreflight ( PreflightContext const &  ctx)
static

Definition at line 399 of file Transactor.h.

◆ preclaim()

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

Definition at line 233 of file Transactor.h.

◆ checkPermission()

NotTEC ripple::Transactor::checkPermission ( ReadView const &  view,
STTx const &  tx 
)
static

Definition at line 277 of file Transactor.cpp.

◆ ticketDelete()

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

Definition at line 563 of file Transactor.cpp.

◆ apply()

TER ripple::Transactor::apply ( )
protected

Definition at line 633 of file Transactor.cpp.

◆ preCompute()

void ripple::Transactor::preCompute ( )
protectedvirtual

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

Definition at line 625 of file Transactor.cpp.

◆ doApply()

virtual TER ripple::Transactor::doApply ( )
protectedpure virtual

◆ minimumFee()

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

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 332 of file Transactor.cpp.

◆ calculateOwnerReserveFee()

XRPAmount ripple::Transactor::calculateOwnerReserveFee ( ReadView const &  view,
STTx const &  tx 
)
staticprotected

Definition at line 312 of file Transactor.cpp.

◆ checkSign() [2/2]

NotTEC ripple::Transactor::checkSign ( ReadView const &  view,
ApplyFlags  flags,
AccountID const &  idAccount,
STObject const &  sigObject,
beast::Journal const  j 
)
staticprotected

Definition at line 670 of file Transactor.cpp.

◆ checkExtraFeatures()

bool ripple::Transactor::checkExtraFeatures ( PreflightContext const &  ctx)
staticprotected

Definition at line 363 of file Transactor.h.

◆ getFlagsMask()

std::uint32_t ripple::Transactor::getFlagsMask ( PreflightContext const &  ctx)
staticprotected

Definition at line 265 of file Transactor.cpp.

◆ preflightSigValidated()

NotTEC ripple::Transactor::preflightSigValidated ( PreflightContext const &  ctx)
staticprotected

Definition at line 271 of file Transactor.cpp.

◆ validDataLength()

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

Definition at line 255 of file Transactor.cpp.

◆ validNumericRange() [1/2]

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

Definition at line 426 of file Transactor.h.

◆ validNumericRange() [2/2]

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

Definition at line 435 of file Transactor.h.

◆ reset()

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

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 1071 of file Transactor.cpp.

◆ consumeSeqProxy()

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

Definition at line 544 of file Transactor.cpp.

◆ payFee()

TER ripple::Transactor::payFee ( )
private

Definition at line 407 of file Transactor.cpp.

◆ checkSingleSign()

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

Definition at line 782 of file Transactor.cpp.

◆ checkMultiSign()

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

Definition at line 814 of file Transactor.cpp.

◆ trapTransaction()

void ripple::Transactor::trapTransaction ( uint256  txHash) const
private

Definition at line 1126 of file Transactor.cpp.

◆ preflight1()

NotTEC ripple::Transactor::preflight1 ( PreflightContext const &  ctx,
std::uint32_t  flagMask 
)
staticprivate

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 163 of file Transactor.cpp.

◆ preflight2()

NotTEC ripple::Transactor::preflight2 ( PreflightContext const &  ctx)
staticprivate

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 226 of file Transactor.cpp.

◆ invokePreflight() [2/3]

template<>
NotTEC ripple::Transactor::invokePreflight ( PreflightContext const &  ctx)
static

Definition at line 37 of file Change.cpp.

◆ invokePreflight() [3/3]

template<>
NotTEC ripple::Transactor::invokePreflight ( PreflightContext const &  ctx)
static

Member Data Documentation

◆ ctx_

ApplyContext& ripple::Transactor::ctx_
protected

Definition at line 143 of file Transactor.h.

◆ sink_

beast::WrappedSink ripple::Transactor::sink_
protected

Definition at line 144 of file Transactor.h.

◆ j_

beast::Journal const ripple::Transactor::j_
protected

Definition at line 145 of file Transactor.h.

◆ account_

AccountID const ripple::Transactor::account_
protected

Definition at line 147 of file Transactor.h.

◆ mPriorBalance

XRPAmount ripple::Transactor::mPriorBalance
protected

Definition at line 148 of file Transactor.h.

◆ mSourceBalance

XRPAmount ripple::Transactor::mSourceBalance
protected

Definition at line 149 of file Transactor.h.