rippled
Loading...
Searching...
No Matches
NFTokenPage.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 NFTokenPageBuilder;
17
28{
29public:
30 static constexpr LedgerEntryType entryType = ltNFTOKEN_PAGE;
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 NFTokenPage");
43 }
44 }
45
46 // Ledger entry-specific field getters
47
52 [[nodiscard]]
55 {
57 return this->sle_->at(sfPreviousPageMin);
58 return std::nullopt;
59 }
60
65 [[nodiscard]]
66 bool
68 {
69 return this->sle_->isFieldPresent(sfPreviousPageMin);
70 }
71
76 [[nodiscard]]
79 {
80 if (hasNextPageMin())
81 return this->sle_->at(sfNextPageMin);
82 return std::nullopt;
83 }
84
89 [[nodiscard]]
90 bool
92 {
93 return this->sle_->isFieldPresent(sfNextPageMin);
94 }
95
101 [[nodiscard]]
102 STArray const&
104 {
105 return this->sle_->getFieldArray(sfNFTokens);
106 }
107
112 [[nodiscard]]
113 SF_UINT256::type::value_type
115 {
116 return this->sle_->at(sfPreviousTxnID);
117 }
118
123 [[nodiscard]]
124 SF_UINT32::type::value_type
126 {
127 return this->sle_->at(sfPreviousTxnLgrSeq);
128 }
129};
130
138class NFTokenPageBuilder : public LedgerEntryBuilderBase<NFTokenPageBuilder>
139{
140public:
149 {
150 setNFTokens(nFTokens);
151 setPreviousTxnID(previousTxnID);
152 setPreviousTxnLgrSeq(previousTxnLgrSeq);
153 }
154
161 {
162 if (sle->at(sfLedgerEntryType) != ltNFTOKEN_PAGE)
163 {
164 throw std::runtime_error("Invalid ledger entry type for NFTokenPage");
165 }
166 object_ = *sle;
167 }
168
177 {
178 object_[sfPreviousPageMin] = value;
179 return *this;
180 }
181
188 {
189 object_[sfNextPageMin] = value;
190 return *this;
191 }
192
198 setNFTokens(STArray const& value)
199 {
200 object_.setFieldArray(sfNFTokens, value);
201 return *this;
202 }
203
210 {
211 object_[sfPreviousTxnID] = value;
212 return *this;
213 }
214
221 {
222 object_[sfPreviousTxnLgrSeq] = value;
223 return *this;
224 }
225
232 build(uint256 const& index)
233 {
234 return NFTokenPage{std::make_shared<SLE>(std::move(object_), index)};
235 }
236};
237
238} // 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 NFTokenPage ledger entries.
NFTokenPageBuilder & setNextPageMin(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfNextPageMin (soeOPTIONAL)
NFTokenPageBuilder & setNFTokens(STArray const &value)
Set sfNFTokens (soeREQUIRED)
NFTokenPageBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfPreviousTxnID (soeREQUIRED)
NFTokenPage build(uint256 const &index)
Build and return the completed NFTokenPage wrapper.
NFTokenPageBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (soeREQUIRED)
NFTokenPageBuilder(STArray const &nFTokens, 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 NFTokenPageBuilder with required fields.
NFTokenPageBuilder & setPreviousPageMin(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Ledger entry-specific field setters.
NFTokenPageBuilder(std::shared_ptr< SLE const > sle)
Construct a NFTokenPageBuilder from an existing SLE object.
Ledger Entry: NFTokenPage.
Definition NFTokenPage.h:28
STArray const & getNFTokens() const
Get sfNFTokens (soeREQUIRED)
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (soeREQUIRED)
static constexpr LedgerEntryType entryType
Definition NFTokenPage.h:30
NFTokenPage(std::shared_ptr< SLE const > sle)
Construct a NFTokenPage ledger entry wrapper from an existing SLE object.
Definition NFTokenPage.h:36
bool hasNextPageMin() const
Check if sfNextPageMin is present.
Definition NFTokenPage.h:91
protocol_autogen::Optional< SF_UINT256::type::value_type > getNextPageMin() const
Get sfNextPageMin (soeOPTIONAL)
Definition NFTokenPage.h:78
protocol_autogen::Optional< SF_UINT256::type::value_type > getPreviousPageMin() const
Get sfPreviousPageMin (soeOPTIONAL)
Definition NFTokenPage.h:54
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (soeREQUIRED)
bool hasPreviousPageMin() const
Check if sfPreviousPageMin is present.
Definition NFTokenPage.h:67
T is_same_v
STL namespace.
LedgerEntryType
Identifiers for on-ledger objects.