rippled
Loading...
Searching...
No Matches
SignerList.h
1// This file is auto-generated. Do not edit.
2#pragma once
3
4#include <xrpl/protocol/STLedgerEntry.h>
5#include <xrpl/protocol/STParsedJSON.h>
6#include <xrpl/protocol/jss.h>
7#include <xrpl/protocol_autogen/LedgerEntryBase.h>
8#include <xrpl/protocol_autogen/LedgerEntryBuilderBase.h>
9#include <xrpl/json/json_value.h>
10
11#include <stdexcept>
12#include <optional>
13
14namespace xrpl::ledger_entries {
15
16class SignerListBuilder;
17
28{
29public:
30 static constexpr LedgerEntryType entryType = ltSIGNER_LIST;
31
37 : LedgerEntryBase(std::move(sle))
38 {
39 // Verify ledger entry type
40 if (sle_->getType() != entryType)
41 {
42 throw std::runtime_error("Invalid ledger entry type for SignerList");
43 }
44 }
45
46 // Ledger entry-specific field getters
47
52 [[nodiscard]]
54 getOwner() const
55 {
56 if (hasOwner())
57 return this->sle_->at(sfOwner);
58 return std::nullopt;
59 }
60
65 [[nodiscard]]
66 bool
67 hasOwner() const
68 {
69 return this->sle_->isFieldPresent(sfOwner);
70 }
71
76 [[nodiscard]]
77 SF_UINT64::type::value_type
79 {
80 return this->sle_->at(sfOwnerNode);
81 }
82
87 [[nodiscard]]
88 SF_UINT32::type::value_type
90 {
91 return this->sle_->at(sfSignerQuorum);
92 }
93
99 [[nodiscard]]
100 STArray const&
102 {
103 return this->sle_->getFieldArray(sfSignerEntries);
104 }
105
110 [[nodiscard]]
111 SF_UINT32::type::value_type
113 {
114 return this->sle_->at(sfSignerListID);
115 }
116
121 [[nodiscard]]
122 SF_UINT256::type::value_type
124 {
125 return this->sle_->at(sfPreviousTxnID);
126 }
127
132 [[nodiscard]]
133 SF_UINT32::type::value_type
135 {
136 return this->sle_->at(sfPreviousTxnLgrSeq);
137 }
138};
139
147class SignerListBuilder : public LedgerEntryBuilderBase<SignerListBuilder>
148{
149public:
161 {
162 setOwnerNode(ownerNode);
163 setSignerQuorum(signerQuorum);
164 setSignerEntries(signerEntries);
165 setSignerListID(signerListID);
166 setPreviousTxnID(previousTxnID);
167 setPreviousTxnLgrSeq(previousTxnLgrSeq);
168 }
169
176 {
177 if (sle->at(sfLedgerEntryType) != ltSIGNER_LIST)
178 {
179 throw std::runtime_error("Invalid ledger entry type for SignerList");
180 }
181 object_ = *sle;
182 }
183
192 {
193 object_[sfOwner] = value;
194 return *this;
195 }
196
203 {
204 object_[sfOwnerNode] = value;
205 return *this;
206 }
207
214 {
215 object_[sfSignerQuorum] = value;
216 return *this;
217 }
218
225 {
226 object_.setFieldArray(sfSignerEntries, value);
227 return *this;
228 }
229
236 {
237 object_[sfSignerListID] = value;
238 return *this;
239 }
240
247 {
248 object_[sfPreviousTxnID] = value;
249 return *this;
250 }
251
258 {
259 object_[sfPreviousTxnLgrSeq] = value;
260 return *this;
261 }
262
269 build(uint256 const& index)
270 {
271 return SignerList{std::make_shared<SLE>(std::move(object_), index)};
272 }
273};
274
275} // namespace xrpl::ledger_entries
void setFieldArray(SField const &field, STArray const &v)
Definition STObject.cpp:819
Base class for type-safe ledger entry wrappers.
std::shared_ptr< SLE const > sle_
The underlying serialized ledger entry being wrapped.
Base class for all ledger entry builders.
Builder for SignerList ledger entries.
Definition SignerList.h:148
SignerListBuilder & setSignerQuorum(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfSignerQuorum (soeREQUIRED)
Definition SignerList.h:213
SignerListBuilder & setOwner(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Ledger entry-specific field setters.
Definition SignerList.h:191
SignerListBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (soeREQUIRED)
Definition SignerList.h:202
SignerListBuilder(std::decay_t< typename SF_UINT64::type::value_type > const &ownerNode, std::decay_t< typename SF_UINT32::type::value_type > const &signerQuorum, STArray const &signerEntries, std::decay_t< typename SF_UINT32::type::value_type > const &signerListID, std::decay_t< typename SF_UINT256::type::value_type > const &previousTxnID, std::decay_t< typename SF_UINT32::type::value_type > const &previousTxnLgrSeq)
Construct a new SignerListBuilder with required fields.
Definition SignerList.h:159
SignerListBuilder & setSignerListID(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfSignerListID (soeREQUIRED)
Definition SignerList.h:235
SignerListBuilder(std::shared_ptr< SLE const > sle)
Construct a SignerListBuilder from an existing SLE object.
Definition SignerList.h:175
SignerListBuilder & setSignerEntries(STArray const &value)
Set sfSignerEntries (soeREQUIRED)
Definition SignerList.h:224
SignerListBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfPreviousTxnID (soeREQUIRED)
Definition SignerList.h:246
SignerList build(uint256 const &index)
Build and return the completed SignerList wrapper.
Definition SignerList.h:269
SignerListBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (soeREQUIRED)
Definition SignerList.h:257
Ledger Entry: SignerList.
Definition SignerList.h:28
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (soeREQUIRED)
Definition SignerList.h:134
bool hasOwner() const
Check if sfOwner is present.
Definition SignerList.h:67
protocol_autogen::Optional< SF_ACCOUNT::type::value_type > getOwner() const
Get sfOwner (soeOPTIONAL)
Definition SignerList.h:54
SF_UINT32::type::value_type getSignerListID() const
Get sfSignerListID (soeREQUIRED)
Definition SignerList.h:112
SignerList(std::shared_ptr< SLE const > sle)
Construct a SignerList ledger entry wrapper from an existing SLE object.
Definition SignerList.h:36
STArray const & getSignerEntries() const
Get sfSignerEntries (soeREQUIRED)
Definition SignerList.h:101
SF_UINT32::type::value_type getSignerQuorum() const
Get sfSignerQuorum (soeREQUIRED)
Definition SignerList.h:89
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (soeREQUIRED)
Definition SignerList.h:123
static constexpr LedgerEntryType entryType
Definition SignerList.h:30
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (soeREQUIRED)
Definition SignerList.h:78
T is_same_v
STL namespace.
LedgerEntryType
Identifiers for on-ledger objects.