rippled
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
16class AmendmentsBuilder;
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
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
void setFieldArray(SField const &field, STArray const &v)
Definition STObject.cpp:819
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
AmendmentsBuilder(std::shared_ptr< SLE const > sle)
Construct a AmendmentsBuilder from an existing SLE object.
Definition Amendments.h:169
Amendments build(uint256 const &index)
Build and return the completed Amendments wrapper.
Definition Amendments.h:230
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
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
Amendments(std::shared_ptr< SLE const > sle)
Construct a Amendments ledger entry wrapper from an existing SLE object.
Definition Amendments.h:36
static constexpr LedgerEntryType entryType
Definition Amendments.h:30
bool hasMajorities() const
Check if sfMajorities is present.
Definition Amendments.h:92
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.
T is_same_v
STL namespace.
LedgerEntryType
Identifiers for on-ledger objects.