xrpld
Loading...
Searching...
No Matches
Amendments.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
17
28{
29public:
30 static constexpr LedgerEntryType entryType = ltAMENDMENTS;
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 Amendments");
43 }
44 }
45
46 // Ledger entry-specific field getters
47
52 [[nodiscard]]
55 {
56 if (hasAmendments())
57 return this->sle_->at(sfAmendments);
58 return std::nullopt;
59 }
60
65 [[nodiscard]]
66 bool
68 {
69 return this->sle_->isFieldPresent(sfAmendments);
70 }
71
77 [[nodiscard]]
80 {
81 if (this->sle_->isFieldPresent(sfMajorities))
82 return this->sle_->getFieldArray(sfMajorities);
83 return std::nullopt;
84 }
85
90 [[nodiscard]]
91 bool
93 {
94 return this->sle_->isFieldPresent(sfMajorities);
95 }
96
101 [[nodiscard]]
104 {
105 if (hasPreviousTxnID())
106 return this->sle_->at(sfPreviousTxnID);
107 return std::nullopt;
108 }
109
114 [[nodiscard]]
115 bool
117 {
118 return this->sle_->isFieldPresent(sfPreviousTxnID);
119 }
120
125 [[nodiscard]]
128 {
130 return this->sle_->at(sfPreviousTxnLgrSeq);
131 return std::nullopt;
132 }
133
138 [[nodiscard]]
139 bool
141 {
142 return this->sle_->isFieldPresent(sfPreviousTxnLgrSeq);
143 }
144};
145
153class AmendmentsBuilder : public LedgerEntryBuilderBase<AmendmentsBuilder>
154{
155public:
163
170 {
171 if (sle->at(sfLedgerEntryType) != ltAMENDMENTS)
172 {
173 throw std::runtime_error("Invalid ledger entry type for Amendments");
174 }
175 object_ = *sle;
176 }
177
179
186 {
187 object_[sfAmendments] = value;
188 return *this;
189 }
190
196 setMajorities(STArray const& value)
197 {
198 object_.setFieldArray(sfMajorities, value);
199 return *this;
200 }
201
208 {
209 object_[sfPreviousTxnID] = value;
210 return *this;
211 }
212
219 {
220 object_[sfPreviousTxnLgrSeq] = value;
221 return *this;
222 }
223
230 build(uint256 const& index)
231 {
232 return Amendments{std::make_shared<SLE>(std::move(object_), index)};
233 }
234};
235
236} // namespace xrpl::ledger_entries
std::shared_ptr< STLedgerEntry const > const_pointer
Builder for Amendments ledger entries.
Definition Amendments.h:154
AmendmentsBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfPreviousTxnID (SoeOptional).
Definition Amendments.h:207
AmendmentsBuilder & setAmendments(std::decay_t< typename SF_VECTOR256::type::value_type > const &value)
Ledger entry-specific field setters.
Definition Amendments.h:185
AmendmentsBuilder()
Construct a new AmendmentsBuilder with required fields.
Definition Amendments.h:159
Amendments build(uint256 const &index)
Build and return the completed Amendments wrapper.
Definition Amendments.h:230
AmendmentsBuilder(SLE::const_pointer sle)
Construct a AmendmentsBuilder from an existing SLE object.
Definition Amendments.h:169
AmendmentsBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (SoeOptional).
Definition Amendments.h:218
AmendmentsBuilder & setMajorities(STArray const &value)
Set sfMajorities (SoeOptional).
Definition Amendments.h:196
Ledger Entry: Amendments.
Definition Amendments.h:28
std::optional< std::reference_wrapper< STArray const > > getMajorities() const
Get sfMajorities (SoeOptional).
Definition Amendments.h:79
protocol_autogen::Optional< SF_VECTOR256::type::value_type > getAmendments() const
Get sfAmendments (SoeOptional).
Definition Amendments.h:54
bool hasPreviousTxnLgrSeq() const
Check if sfPreviousTxnLgrSeq is present.
Definition Amendments.h:140
bool hasPreviousTxnID() const
Check if sfPreviousTxnID is present.
Definition Amendments.h:116
Amendments(SLE::const_pointer sle)
Construct a Amendments ledger entry wrapper from an existing SLE object.
Definition Amendments.h:36
protocol_autogen::Optional< SF_UINT32::type::value_type > getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeOptional).
Definition Amendments.h:127
protocol_autogen::Optional< SF_UINT256::type::value_type > getPreviousTxnID() const
Get sfPreviousTxnID (SoeOptional).
Definition Amendments.h:103
bool hasAmendments() const
Check if sfAmendments is present.
Definition Amendments.h:67
static constexpr LedgerEntryType entryType
Definition Amendments.h:30
bool hasMajorities() const
Check if sfMajorities is present.
Definition Amendments.h:92
LedgerEntryBase(SLE::const_pointer sle)
Construct a ledger entry wrapper from an existing SLE object.
SLE::const_pointer sle_
The underlying serialized ledger entry being wrapped.
T make_shared(T... args)
STL namespace.
std::conditional_t< std::is_reference_v< ValueType >, std::optional< std::reference_wrapper< std::remove_reference_t< ValueType > > >, std::optional< ValueType > > Optional
Definition Utils.h:9
LedgerEntryType
Identifiers for on-ledger objects.
BaseUInt< 256 > uint256
Definition base_uint.h:562