xrpld
Loading...
Searching...
No Matches
Ticket.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 TicketBuilder;
17
27class Ticket : public LedgerEntryBase
28{
29public:
30 static constexpr LedgerEntryType entryType = ltTICKET;
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 Ticket");
43 }
44 }
45
46 // Ledger entry-specific field getters
47
52 [[nodiscard]]
53 SF_ACCOUNT::type::value_type
54 getAccount() const
55 {
56 return this->sle_->at(sfAccount);
57 }
58
63 [[nodiscard]]
64 SF_UINT64::type::value_type
66 {
67 return this->sle_->at(sfOwnerNode);
68 }
69
74 [[nodiscard]]
75 SF_UINT32::type::value_type
77 {
78 return this->sle_->at(sfTicketSequence);
79 }
80
85 [[nodiscard]]
86 SF_UINT256::type::value_type
88 {
89 return this->sle_->at(sfPreviousTxnID);
90 }
91
96 [[nodiscard]]
97 SF_UINT32::type::value_type
99 {
100 return this->sle_->at(sfPreviousTxnLgrSeq);
101 }
102};
103
111class TicketBuilder : public LedgerEntryBuilderBase<TicketBuilder>
112{
113public:
131
138 {
139 if (sle->at(sfLedgerEntryType) != ltTICKET)
140 {
141 throw std::runtime_error("Invalid ledger entry type for Ticket");
142 }
143 object_ = *sle;
144 }
145
149
156 {
157 object_[sfAccount] = value;
158 return *this;
159 }
160
167 {
168 object_[sfOwnerNode] = value;
169 return *this;
170 }
171
178 {
179 object_[sfTicketSequence] = value;
180 return *this;
181 }
182
189 {
190 object_[sfPreviousTxnID] = value;
191 return *this;
192 }
193
200 {
201 object_[sfPreviousTxnLgrSeq] = value;
202 return *this;
203 }
204
210 Ticket
211 build(uint256 const& index)
212 {
213 return Ticket{std::make_shared<SLE>(std::move(object_), index)};
214 }
215};
216
217} // namespace xrpl::ledger_entries
std::shared_ptr< STLedgerEntry const > const_pointer
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.
Builder for Ticket ledger entries.
Definition Ticket.h:112
TicketBuilder & setAccount(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Ledger entry-specific field setters.
Definition Ticket.h:155
Ticket build(uint256 const &index)
Build and return the completed Ticket wrapper.
Definition Ticket.h:211
TicketBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfPreviousTxnID (SoeRequired).
Definition Ticket.h:188
TicketBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (SoeRequired).
Definition Ticket.h:199
TicketBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (SoeRequired).
Definition Ticket.h:166
TicketBuilder & setTicketSequence(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfTicketSequence (SoeRequired).
Definition Ticket.h:177
TicketBuilder(SLE::const_pointer sle)
Construct a TicketBuilder from an existing SLE object.
Definition Ticket.h:137
TicketBuilder(std::decay_t< typename SF_ACCOUNT::type::value_type > const &account, std::decay_t< typename SF_UINT64::type::value_type > const &ownerNode, std::decay_t< typename SF_UINT32::type::value_type > const &ticketSequence, 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 TicketBuilder with required fields.
Definition Ticket.h:122
Ledger Entry: Ticket.
Definition Ticket.h:28
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
Definition Ticket.h:98
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
Definition Ticket.h:87
static constexpr LedgerEntryType entryType
Definition Ticket.h:30
SF_ACCOUNT::type::value_type getAccount() const
Get sfAccount (SoeRequired).
Definition Ticket.h:54
SF_UINT32::type::value_type getTicketSequence() const
Get sfTicketSequence (SoeRequired).
Definition Ticket.h:76
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
Definition Ticket.h:65
Ticket(SLE::const_pointer sle)
Construct a Ticket ledger entry wrapper from an existing SLE object.
Definition Ticket.h:36
T make_shared(T... args)
STL namespace.
LedgerEntryType
Identifiers for on-ledger objects.
BaseUInt< 256 > uint256
Definition base_uint.h:580