xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
protocol_autogen
ledger_entries
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
14
namespace
xrpl::ledger_entries
{
15
16
class
LedgerHashesBuilder
;
17
27
class
LedgerHashes
:
public
LedgerEntryBase
28
{
29
public
:
30
static
constexpr
LedgerEntryType
entryType
= ltLEDGER_HASHES;
31
36
explicit
LedgerHashes
(
SLE::const_pointer
sle)
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]]
53
protocol_autogen::Optional<SF_UINT32::type::value_type>
54
getFirstLedgerSequence
()
const
55
{
56
if
(
hasFirstLedgerSequence
())
57
return
this->
sle_
->at(sfFirstLedgerSequence);
58
return
std::nullopt;
59
}
60
65
[[nodiscard]]
66
bool
67
hasFirstLedgerSequence
()
const
68
{
69
return
this->
sle_
->isFieldPresent(sfFirstLedgerSequence);
70
}
71
76
[[nodiscard]]
77
protocol_autogen::Optional<SF_UINT32::type::value_type>
78
getLastLedgerSequence
()
const
79
{
80
if
(
hasLastLedgerSequence
())
81
return
this->
sle_
->at(sfLastLedgerSequence);
82
return
std::nullopt;
83
}
84
89
[[nodiscard]]
90
bool
91
hasLastLedgerSequence
()
const
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
115
class
LedgerHashesBuilder
:
public
LedgerEntryBuilderBase
<LedgerHashesBuilder>
116
{
117
public
:
122
LedgerHashesBuilder
(
std::decay_t<typename SF_VECTOR256::type::value_type>
const
& hashes)
123
:
LedgerEntryBuilderBase
<
LedgerHashesBuilder
>(ltLEDGER_HASHES)
124
{
125
setHashes
(hashes);
126
}
127
133
LedgerHashesBuilder
(
SLE::const_pointer
sle)
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
145
150
LedgerHashesBuilder
&
151
setFirstLedgerSequence
(
std::decay_t<typename SF_UINT32::type::value_type>
const
& value)
152
{
153
object_
[sfFirstLedgerSequence] = value;
154
return
*
this
;
155
}
156
161
LedgerHashesBuilder
&
162
setLastLedgerSequence
(
std::decay_t<typename SF_UINT32::type::value_type>
const
& value)
163
{
164
object_
[sfLastLedgerSequence] = value;
165
return
*
this
;
166
}
167
172
LedgerHashesBuilder
&
173
setHashes
(
std::decay_t<typename SF_VECTOR256::type::value_type>
const
& value)
174
{
175
object_
[sfHashes] = value;
176
return
*
this
;
177
}
178
184
LedgerHashes
185
build
(
UInt256
const
& index)
186
{
187
return
LedgerHashes
{
std::make_shared<SLE>
(std::move(
object_
), index)};
188
}
189
};
190
191
}
// namespace xrpl::ledger_entries
xrpl::STLedgerEntry::const_pointer
std::shared_ptr< STLedgerEntry const > const_pointer
Definition
STLedgerEntry.h:36
xrpl::ledger_entries::LedgerEntryBase::LedgerEntryBase
LedgerEntryBase(SLE::const_pointer sle)
Construct a ledger entry wrapper from an existing SLE object.
Definition
LedgerEntryBase.h:30
xrpl::ledger_entries::LedgerEntryBase::sle_
SLE::const_pointer sle_
The underlying serialized ledger entry being wrapped.
Definition
LedgerEntryBase.h:164
xrpl::ledger_entries::LedgerEntryBuilderBase< LedgerHashesBuilder >::LedgerEntryBuilderBase
LedgerEntryBuilderBase()=default
xrpl::ledger_entries::LedgerEntryBuilderBase< LedgerHashesBuilder >::object_
STObject object_
Definition
LedgerEntryBuilderBase.h:81
xrpl::ledger_entries::LedgerHashesBuilder
Builder for LedgerHashes ledger entries.
Definition
LedgerHashes.h:116
xrpl::ledger_entries::LedgerHashesBuilder::LedgerHashesBuilder
LedgerHashesBuilder(std::decay_t< typename SF_VECTOR256::type::value_type > const &hashes)
Construct a new LedgerHashesBuilder with required fields.
Definition
LedgerHashes.h:122
xrpl::ledger_entries::LedgerHashesBuilder::LedgerHashesBuilder
LedgerHashesBuilder(SLE::const_pointer sle)
Construct a LedgerHashesBuilder from an existing SLE object.
Definition
LedgerHashes.h:133
xrpl::ledger_entries::LedgerHashesBuilder::setLastLedgerSequence
LedgerHashesBuilder & setLastLedgerSequence(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfLastLedgerSequence (SoeOptional).
Definition
LedgerHashes.h:162
xrpl::ledger_entries::LedgerHashesBuilder::setFirstLedgerSequence
LedgerHashesBuilder & setFirstLedgerSequence(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Ledger entry-specific field setters.
Definition
LedgerHashes.h:151
xrpl::ledger_entries::LedgerHashesBuilder::setHashes
LedgerHashesBuilder & setHashes(std::decay_t< typename SF_VECTOR256::type::value_type > const &value)
Set sfHashes (SoeRequired).
Definition
LedgerHashes.h:173
xrpl::ledger_entries::LedgerHashesBuilder::build
LedgerHashes build(UInt256 const &index)
Build and return the completed LedgerHashes wrapper.
Definition
LedgerHashes.h:185
xrpl::ledger_entries::LedgerHashes
Ledger Entry: LedgerHashes.
Definition
LedgerHashes.h:28
xrpl::ledger_entries::LedgerHashes::getFirstLedgerSequence
protocol_autogen::Optional< SF_UINT32::type::value_type > getFirstLedgerSequence() const
Get sfFirstLedgerSequence (SoeOptional).
Definition
LedgerHashes.h:54
xrpl::ledger_entries::LedgerHashes::hasFirstLedgerSequence
bool hasFirstLedgerSequence() const
Check if sfFirstLedgerSequence is present.
Definition
LedgerHashes.h:67
xrpl::ledger_entries::LedgerHashes::hasLastLedgerSequence
bool hasLastLedgerSequence() const
Check if sfLastLedgerSequence is present.
Definition
LedgerHashes.h:91
xrpl::ledger_entries::LedgerHashes::getHashes
SF_VECTOR256::type::value_type getHashes() const
Get sfHashes (SoeRequired).
Definition
LedgerHashes.h:102
xrpl::ledger_entries::LedgerHashes::getLastLedgerSequence
protocol_autogen::Optional< SF_UINT32::type::value_type > getLastLedgerSequence() const
Get sfLastLedgerSequence (SoeOptional).
Definition
LedgerHashes.h:78
xrpl::ledger_entries::LedgerHashes::LedgerHashes
LedgerHashes(SLE::const_pointer sle)
Construct a LedgerHashes ledger entry wrapper from an existing SLE object.
Definition
LedgerHashes.h:36
xrpl::ledger_entries::LedgerHashes::entryType
static constexpr LedgerEntryType entryType
Definition
LedgerHashes.h:30
std::decay_t
std::make_shared
T make_shared(T... args)
std
STL namespace.
xrpl::ledger_entries
Definition
AccountRoot.h:14
xrpl::protocol_autogen::Optional
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
xrpl::UInt256
BaseUInt< 256 > UInt256
Definition
base_uint.h:580
xrpl::LedgerEntryType
LedgerEntryType
Identifiers for on-ledger objects.
Definition
LedgerFormats.h:40
optional
std::runtime_error
stdexcept
Generated by
1.17.0