xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
tx
transactors
account
tx/transactors/account/SignerListSet.h
1
#pragma once
2
3
#include <xrpl/beast/utility/Journal.h>
4
#include <xrpl/core/ServiceRegistry.h>
5
#include <xrpl/ledger/ApplyView.h>
6
#include <xrpl/ledger/ReadView.h>
7
#include <xrpl/protocol/AccountID.h>
8
#include <xrpl/protocol/Rules.h>
9
#include <xrpl/protocol/STTx.h>
10
#include <xrpl/protocol/TER.h>
11
#include <xrpl/protocol/XRPAmount.h>
12
#include <xrpl/tx/ApplyContext.h>
13
#include <xrpl/tx/SignerEntries.h>
14
#include <xrpl/tx/Transactor.h>
15
16
#include <
cstdint
>
17
#include <
tuple
>
18
#include <
vector
>
19
20
namespace
xrpl
{
21
26
class
SignerListSet
:
public
Transactor
27
{
28
private
:
29
// Values determined during preCompute for use later.
30
enum class
Operation
{
Unknown
,
Set
,
Destroy
};
31
Operation
do_
{
Operation::Unknown
};
32
std::uint32_t
quorum_
{0};
33
std::vector<SignerEntries::SignerEntry>
signers_
;
34
35
public
:
36
static
constexpr
auto
kConsequencesFactory
=
ConsequencesFactoryType::Blocker
;
37
38
explicit
SignerListSet
(
ApplyContext
& ctx) :
Transactor
(ctx)
39
{
40
}
41
42
static
std::uint32_t
43
getFlagsMask
(
PreflightContext
const
& ctx);
44
45
static
NotTEC
46
preflight
(
PreflightContext
const
& ctx);
47
48
TER
49
doApply
()
override
;
50
void
51
preCompute
()
override
;
52
53
void
54
visitInvariantEntry
(
bool
isDelete,
SLE::ConstRef
before,
SLE::ConstRef
after
)
override
;
55
56
[[nodiscard]]
bool
57
finalizeInvariants
(
58
STTx
const
& tx,
59
TER
result,
60
XRPAmount
fee,
61
ReadView
const
&
view
,
62
beast::Journal
const
& j)
override
;
63
64
// Interface used by AccountDelete
65
static
TER
66
removeFromLedger
(
67
ServiceRegistry
& registry,
68
ApplyView
&
view
,
69
AccountID
const
& account,
70
beast::Journal
j);
71
72
private
:
73
static
std::tuple<NotTEC, std::uint32_t, std::vector<SignerEntries::SignerEntry>
,
Operation
>
74
determineOperation
(
STTx
const
& tx,
ApplyFlags
flags,
beast::Journal
j);
75
76
static
NotTEC
77
validateQuorumAndSignerEntries
(
78
std::uint32_t
quorum,
79
std::vector<SignerEntries::SignerEntry>
const
& signers,
80
AccountID
const
& account,
81
beast::Journal
j,
82
Rules
const
&);
83
84
TER
85
replaceSignerList
();
86
TER
87
destroySignerList
();
88
89
void
90
writeSignersToSLE
(
SLE::pointer
const
& ledgerEntry,
std::uint32_t
flags)
const
;
91
};
92
93
}
// namespace xrpl
beast::Journal
A generic endpoint for log messages.
Definition
Journal.h:44
xrpl::ApplyContext
State information when applying a tx.
Definition
ApplyContext.h:28
xrpl::ApplyView
Writeable view to a ledger, for applying a transaction.
Definition
ApplyView.h:141
xrpl::ReadView
A view into a ledger.
Definition
ReadView.h:41
xrpl::Rules
Rules controlling protocol behavior.
Definition
Rules.h:40
xrpl::STLedgerEntry::pointer
std::shared_ptr< STLedgerEntry > pointer
Definition
STLedgerEntry.h:34
xrpl::STLedgerEntry::ConstRef
std::shared_ptr< STLedgerEntry const > const & ConstRef
Definition
STLedgerEntry.h:37
xrpl::STTx
Definition
STTx.h:43
xrpl::ServiceRegistry
Service registry for dependency injection.
Definition
ServiceRegistry.h:98
xrpl::SignerListSet::Operation
Operation
Definition
tx/transactors/account/SignerListSet.h:30
xrpl::SignerListSet::Operation::Destroy
@ Destroy
Definition
tx/transactors/account/SignerListSet.h:30
xrpl::SignerListSet::Operation::Set
@ Set
Definition
tx/transactors/account/SignerListSet.h:30
xrpl::SignerListSet::Operation::Unknown
@ Unknown
Definition
tx/transactors/account/SignerListSet.h:30
xrpl::SignerListSet::preflight
static NotTEC preflight(PreflightContext const &ctx)
Definition
SignerListSet.cpp:82
xrpl::SignerListSet::preCompute
void preCompute() override
Definition
SignerListSet.cpp:133
xrpl::SignerListSet::determineOperation
static std::tuple< NotTEC, std::uint32_t, std::vector< SignerEntries::SignerEntry >, Operation > determineOperation(STTx const &tx, ApplyFlags flags, beast::Journal j)
Definition
SignerListSet.cpp:44
xrpl::SignerListSet::kConsequencesFactory
static constexpr auto kConsequencesFactory
Definition
tx/transactors/account/SignerListSet.h:36
xrpl::SignerListSet::do_
Operation do_
Definition
tx/transactors/account/SignerListSet.h:31
xrpl::SignerListSet::quorum_
std::uint32_t quorum_
Definition
tx/transactors/account/SignerListSet.h:32
xrpl::SignerListSet::finalizeInvariants
bool finalizeInvariants(STTx const &tx, TER result, XRPAmount fee, ReadView const &view, beast::Journal const &j) override
Check transaction-specific post-conditions after all entries have been visited.
Definition
SignerListSet.cpp:415
xrpl::SignerListSet::validateQuorumAndSignerEntries
static NotTEC validateQuorumAndSignerEntries(std::uint32_t quorum, std::vector< SignerEntries::SignerEntry > const &signers, AccountID const &account, beast::Journal j, Rules const &)
Definition
SignerListSet.cpp:240
xrpl::SignerListSet::SignerListSet
SignerListSet(ApplyContext &ctx)
Definition
tx/transactors/account/SignerListSet.h:38
xrpl::SignerListSet::replaceSignerList
TER replaceSignerList()
Definition
SignerListSet.cpp:299
xrpl::SignerListSet::doApply
TER doApply() override
Definition
SignerListSet.cpp:112
xrpl::SignerListSet::signers_
std::vector< SignerEntries::SignerEntry > signers_
Definition
tx/transactors/account/SignerListSet.h:33
xrpl::SignerListSet::removeFromLedger
static TER removeFromLedger(ServiceRegistry ®istry, ApplyView &view, AccountID const &account, beast::Journal j)
Definition
SignerListSet.cpp:225
xrpl::SignerListSet::destroySignerList
TER destroySignerList()
Definition
SignerListSet.cpp:357
xrpl::SignerListSet::writeSignersToSLE
void writeSignersToSLE(SLE::pointer const &ledgerEntry, std::uint32_t flags) const
Definition
SignerListSet.cpp:376
xrpl::SignerListSet::getFlagsMask
static std::uint32_t getFlagsMask(PreflightContext const &ctx)
Definition
SignerListSet.cpp:75
xrpl::SignerListSet::visitInvariantEntry
void visitInvariantEntry(bool isDelete, SLE::ConstRef before, SLE::ConstRef after) override
Inspect a single ledger entry modified by this transaction.
Definition
SignerListSet.cpp:409
xrpl::Transactor::ConsequencesFactoryType::Blocker
@ Blocker
Definition
Transactor.h:175
xrpl::Transactor::view
ApplyView & view()
Definition
Transactor.h:184
xrpl::Transactor::Transactor
Transactor(Transactor const &)=delete
xrpl::XRPAmount
Definition
XRPAmount.h:28
cstdint
std::uint32_t
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::NotTEC
TERSubset< CanCvtToNotTEC > NotTEC
Definition
TER.h:614
xrpl::after
bool after(NetClock::time_point now, std::uint32_t mark)
Has the specified time passed?
Definition
View.cpp:644
xrpl::ApplyFlags
ApplyFlags
Definition
ApplyView.h:27
xrpl::AccountID
BaseUInt< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.
Definition
AccountID.h:34
xrpl::TER
TERSubset< CanCvtToTER > TER
Definition
TER.h:654
xrpl::PreflightContext
State information when preflighting a tx.
Definition
Transactor.h:39
tuple
vector
Generated by
1.17.0