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 Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
ripple::SetSignerList Class Reference

See the README.md for an overview of the SetSignerList transaction that this class implements. More...

#include <SetSignerList.h>

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

Public Types

enum  ConsequencesFactoryType { Normal , Blocker , Custom }
 

Public Member Functions

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

Static Public Member Functions

static std::uint32_t getFlagsMask (PreflightContext const &ctx)
 
static NotTEC preflight (PreflightContext const &ctx)
 
static TER removeFromLedger (Application &app, ApplyView &view, AccountID const &account, beast::Journal j)
 
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 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)
 

Static Public Attributes

static constexpr ConsequencesFactoryType ConsequencesFactory {Blocker}
 

Protected Member Functions

TER apply ()
 

Static Protected Member Functions

static NotTEC checkSign (ReadView const &view, ApplyFlags flags, 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 bool checkExtraFeatures (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 Types

enum  Operation { unknown , set , destroy }
 

Private Member Functions

TER replaceSignerList ()
 
TER destroySignerList ()
 
void writeSignersToSLE (SLE::pointer const &ledgerEntry, std::uint32_t flags) const
 
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 std::tuple< NotTEC, std::uint32_t, std::vector< SignerEntries::SignerEntry >, OperationdetermineOperation (STTx const &tx, ApplyFlags flags, beast::Journal j)
 
static NotTEC validateQuorumAndSignerEntries (std::uint32_t quorum, std::vector< SignerEntries::SignerEntry > const &signers, AccountID const &account, beast::Journal j, Rules const &)
 
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.
 

Private Attributes

Operation do_ {unknown}
 
std::uint32_t quorum_ {0}
 
std::vector< SignerEntries::SignerEntrysigners_
 

Detailed Description

See the README.md for an overview of the SetSignerList transaction that this class implements.

Definition at line 19 of file SetSignerList.h.

Member Enumeration Documentation

◆ Operation

Enumerator
unknown 
set 
destroy 

Definition at line 23 of file SetSignerList.h.

◆ ConsequencesFactoryType

Enumerator
Normal 
Blocker 
Custom 

Definition at line 138 of file Transactor.h.

Constructor & Destructor Documentation

◆ SetSignerList()

ripple::SetSignerList::SetSignerList ( ApplyContext ctx)
explicit

Definition at line 31 of file SetSignerList.h.

Member Function Documentation

◆ getFlagsMask()

std::uint32_t ripple::SetSignerList::getFlagsMask ( PreflightContext const &  ctx)
static

Definition at line 62 of file SetSignerList.cpp.

◆ preflight()

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

Definition at line 69 of file SetSignerList.cpp.

◆ doApply()

TER ripple::SetSignerList::doApply ( )
overridevirtual

Implements ripple::Transactor.

Definition at line 104 of file SetSignerList.cpp.

◆ preCompute()

void ripple::SetSignerList::preCompute ( )
overridevirtual

Reimplemented from ripple::Transactor.

Definition at line 125 of file SetSignerList.cpp.

◆ removeFromLedger()

TER ripple::SetSignerList::removeFromLedger ( Application app,
ApplyView view,
AccountID const &  account,
beast::Journal  j 
)
static

Definition at line 224 of file SetSignerList.cpp.

◆ determineOperation()

std::tuple< NotTEC, std::uint32_t, std::vector< SignerEntries::SignerEntry >, SetSignerList::Operation > ripple::SetSignerList::determineOperation ( STTx const &  tx,
ApplyFlags  flags,
beast::Journal  j 
)
staticprivate

Definition at line 28 of file SetSignerList.cpp.

◆ validateQuorumAndSignerEntries()

NotTEC ripple::SetSignerList::validateQuorumAndSignerEntries ( std::uint32_t  quorum,
std::vector< SignerEntries::SignerEntry > const &  signers,
AccountID const &  account,
beast::Journal  j,
Rules const &  rules 
)
staticprivate

Definition at line 239 of file SetSignerList.cpp.

◆ replaceSignerList()

TER ripple::SetSignerList::replaceSignerList ( )
private

Definition at line 299 of file SetSignerList.cpp.

◆ destroySignerList()

TER ripple::SetSignerList::destroySignerList ( )
private

Definition at line 361 of file SetSignerList.cpp.

◆ writeSignersToSLE()

void ripple::SetSignerList::writeSignersToSLE ( SLE::pointer const &  ledgerEntry,
std::uint32_t  flags 
) const
private

Definition at line 381 of file SetSignerList.cpp.

◆ operator()()

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

Process the transaction.

Definition at line 1105 of file Transactor.cpp.

◆ view() [1/2]

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

Definition at line 144 of file Transactor.h.

◆ view() [2/2]

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

Definition at line 150 of file Transactor.h.

◆ checkSeqProxy()

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

Definition at line 415 of file Transactor.cpp.

◆ checkPriorTxAndLastLedger()

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

Definition at line 486 of file Transactor.cpp.

◆ checkFee()

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

Definition at line 315 of file Transactor.cpp.

◆ checkSign() [1/2]

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

Definition at line 699 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 
)
staticprotectedinherited

Definition at line 642 of file Transactor.cpp.

◆ checkBatchSign()

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

Definition at line 708 of file Transactor.cpp.

◆ calculateBaseFee()

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

Definition at line 266 of file Transactor.cpp.

◆ invokePreflight() [1/3]

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

Definition at line 380 of file Transactor.h.

◆ invokePreflight() [2/3]

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

Definition at line 18 of file Change.cpp.

◆ invokePreflight() [3/3]

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

◆ preclaim()

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

Definition at line 214 of file Transactor.h.

◆ checkPermission()

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

Definition at line 250 of file Transactor.cpp.

◆ ticketDelete()

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

Definition at line 535 of file Transactor.cpp.

◆ apply()

TER ripple::Transactor::apply ( )
protectedinherited

Definition at line 605 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 305 of file Transactor.cpp.

◆ calculateOwnerReserveFee()

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

Definition at line 285 of file Transactor.cpp.

◆ checkExtraFeatures()

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

Definition at line 344 of file Transactor.h.

◆ preflightSigValidated()

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

Definition at line 244 of file Transactor.cpp.

◆ validDataLength()

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

Definition at line 228 of file Transactor.cpp.

◆ validNumericRange() [1/2]

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

Definition at line 407 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 = {} 
)
staticprotectedinherited

Definition at line 416 of file Transactor.h.

◆ reset()

std::pair< TER, XRPAmount > ripple::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 1043 of file Transactor.cpp.

◆ consumeSeqProxy()

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

Definition at line 516 of file Transactor.cpp.

◆ payFee()

TER ripple::Transactor::payFee ( )
privateinherited

Definition at line 380 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 
)
staticprivateinherited

Definition at line 754 of file Transactor.cpp.

◆ checkMultiSign()

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

Definition at line 786 of file Transactor.cpp.

◆ trapTransaction()

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

Definition at line 1098 of file Transactor.cpp.

◆ preflight1()

NotTEC ripple::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 144 of file Transactor.cpp.

◆ preflight2()

NotTEC ripple::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 199 of file Transactor.cpp.

Member Data Documentation

◆ do_

Operation ripple::SetSignerList::do_ {unknown}
private

Definition at line 24 of file SetSignerList.h.

◆ quorum_

std::uint32_t ripple::SetSignerList::quorum_ {0}
private

Definition at line 25 of file SetSignerList.h.

◆ signers_

std::vector<SignerEntries::SignerEntry> ripple::SetSignerList::signers_
private

Definition at line 26 of file SetSignerList.h.

◆ ConsequencesFactory

constexpr ConsequencesFactoryType ripple::SetSignerList::ConsequencesFactory {Blocker}
staticconstexpr

Definition at line 29 of file SetSignerList.h.

◆ ctx_

ApplyContext& ripple::Transactor::ctx_
protectedinherited

Definition at line 124 of file Transactor.h.

◆ sink_

beast::WrappedSink ripple::Transactor::sink_
protectedinherited

Definition at line 125 of file Transactor.h.

◆ j_

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

Definition at line 126 of file Transactor.h.

◆ account_

AccountID const ripple::Transactor::account_
protectedinherited

Definition at line 128 of file Transactor.h.

◆ mPriorBalance

XRPAmount ripple::Transactor::mPriorBalance
protectedinherited

Definition at line 129 of file Transactor.h.

◆ mSourceBalance

XRPAmount ripple::Transactor::mSourceBalance
protectedinherited

Definition at line 130 of file Transactor.h.