rippled
Loading...
Searching...
No Matches
LedgerHashes.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 LedgerHashesBuilder;
17
28{
29public:
30 static constexpr LedgerEntryType entryType = ltLEDGER_HASHES;
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 LedgerHashes");
43 }
44 }
45
46 // Ledger entry-specific field getters
47
52 [[nodiscard]]
55 {
57 return this->sle_->at(sfFirstLedgerSequence);
58 return std::nullopt;
59 }
60
65 [[nodiscard]]
66 bool
68 {
69 return this->sle_->isFieldPresent(sfFirstLedgerSequence);
70 }
71
76 [[nodiscard]]
79 {
81 return this->sle_->at(sfLastLedgerSequence);
82 return std::nullopt;
83 }
84
89 [[nodiscard]]
90 bool
92 {
93 return this->sle_->isFieldPresent(sfLastLedgerSequence);
94 }
95
100 [[nodiscard]]
101 SF_VECTOR256::type::value_type
102 getHashes() const
103 {
104 return this->sle_->at(sfHashes);
105 }
106};
107
115class LedgerHashesBuilder : public LedgerEntryBuilderBase<LedgerHashesBuilder>
116{
117public:
127
134 {
135 if (sle->at(sfLedgerEntryType) != ltLEDGER_HASHES)
136 {
137 throw std::runtime_error("Invalid ledger entry type for LedgerHashes");
138 }
139 object_ = *sle;
140 }
141
150 {
151 object_[sfFirstLedgerSequence] = value;
152 return *this;
153 }
154
161 {
162 object_[sfLastLedgerSequence] = value;
163 return *this;
164 }
165
172 {
173 object_[sfHashes] = value;
174 return *this;
175 }
176
183 build(uint256 const& index)
184 {
185 return LedgerHashes{std::make_shared<SLE>(std::move(object_), index)};
186 }
187};
188
189} // namespace xrpl::ledger_entries
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 LedgerHashes ledger entries.
LedgerHashes build(uint256 const &index)
Build and return the completed LedgerHashes wrapper.
LedgerHashesBuilder(std::decay_t< typename SF_VECTOR256::type::value_type > const &hashes)
Construct a new LedgerHashesBuilder with required fields.
LedgerHashesBuilder(std::shared_ptr< SLE const > sle)
Construct a LedgerHashesBuilder from an existing SLE object.
LedgerHashesBuilder & setLastLedgerSequence(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfLastLedgerSequence (soeOPTIONAL)
LedgerHashesBuilder & setFirstLedgerSequence(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Ledger entry-specific field setters.
LedgerHashesBuilder & setHashes(std::decay_t< typename SF_VECTOR256::type::value_type > const &value)
Set sfHashes (soeREQUIRED)
Ledger Entry: LedgerHashes.
protocol_autogen::Optional< SF_UINT32::type::value_type > getFirstLedgerSequence() const
Get sfFirstLedgerSequence (soeOPTIONAL)
bool hasFirstLedgerSequence() const
Check if sfFirstLedgerSequence is present.
bool hasLastLedgerSequence() const
Check if sfLastLedgerSequence is present.
SF_VECTOR256::type::value_type getHashes() const
Get sfHashes (soeREQUIRED)
protocol_autogen::Optional< SF_UINT32::type::value_type > getLastLedgerSequence() const
Get sfLastLedgerSequence (soeOPTIONAL)
static constexpr LedgerEntryType entryType
LedgerHashes(std::shared_ptr< SLE const > sle)
Construct a LedgerHashes ledger entry wrapper from an existing SLE object.
T is_same_v
STL namespace.
LedgerEntryType
Identifiers for on-ledger objects.