xrpld
Loading...
Searching...
No Matches
Sponsorship.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
17
28{
29public:
30 static constexpr LedgerEntryType entryType = ltSPONSORSHIP;
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 Sponsorship");
43 }
44 }
45
46 // Ledger entry-specific field getters
47
52 [[nodiscard]]
53 SF_UINT256::type::value_type
55 {
56 return this->sle_->at(sfPreviousTxnID);
57 }
58
63 [[nodiscard]]
64 SF_UINT32::type::value_type
66 {
67 return this->sle_->at(sfPreviousTxnLgrSeq);
68 }
69
74 [[nodiscard]]
75 SF_ACCOUNT::type::value_type
76 getOwner() const
77 {
78 return this->sle_->at(sfOwner);
79 }
80
85 [[nodiscard]]
86 SF_ACCOUNT::type::value_type
87 getSponsee() const
88 {
89 return this->sle_->at(sfSponsee);
90 }
91
96 [[nodiscard]]
99 {
100 if (hasFeeAmount())
101 return this->sle_->at(sfFeeAmount);
102 return std::nullopt;
103 }
104
109 [[nodiscard]]
110 bool
112 {
113 return this->sle_->isFieldPresent(sfFeeAmount);
114 }
115
120 [[nodiscard]]
122 getMaxFee() const
123 {
124 if (hasMaxFee())
125 return this->sle_->at(sfMaxFee);
126 return std::nullopt;
127 }
128
133 [[nodiscard]]
134 bool
135 hasMaxFee() const
136 {
137 return this->sle_->isFieldPresent(sfMaxFee);
138 }
139
144 [[nodiscard]]
147 {
149 return this->sle_->at(sfRemainingOwnerCount);
150 return std::nullopt;
151 }
152
157 [[nodiscard]]
158 bool
160 {
161 return this->sle_->isFieldPresent(sfRemainingOwnerCount);
162 }
163
168 [[nodiscard]]
169 SF_UINT64::type::value_type
171 {
172 return this->sle_->at(sfOwnerNode);
173 }
174
179 [[nodiscard]]
180 SF_UINT64::type::value_type
182 {
183 return this->sle_->at(sfSponseeNode);
184 }
185};
186
194class SponsorshipBuilder : public LedgerEntryBuilderBase<SponsorshipBuilder>
195{
196public:
216
223 {
224 if (sle->at(sfLedgerEntryType) != ltSPONSORSHIP)
225 {
226 throw std::runtime_error("Invalid ledger entry type for Sponsorship");
227 }
228 object_ = *sle;
229 }
230
234
241 {
242 object_[sfPreviousTxnID] = value;
243 return *this;
244 }
245
252 {
253 object_[sfPreviousTxnLgrSeq] = value;
254 return *this;
255 }
256
263 {
264 object_[sfOwner] = value;
265 return *this;
266 }
267
274 {
275 object_[sfSponsee] = value;
276 return *this;
277 }
278
285 {
286 object_[sfFeeAmount] = value;
287 return *this;
288 }
289
296 {
297 object_[sfMaxFee] = value;
298 return *this;
299 }
300
307 {
308 object_[sfRemainingOwnerCount] = value;
309 return *this;
310 }
311
318 {
319 object_[sfOwnerNode] = value;
320 return *this;
321 }
322
329 {
330 object_[sfSponseeNode] = value;
331 return *this;
332 }
333
340 build(uint256 const& index)
341 {
342 return Sponsorship{std::make_shared<SLE>(std::move(object_), index)};
343 }
344};
345
346} // 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 Sponsorship ledger entries.
Sponsorship build(uint256 const &index)
Build and return the completed Sponsorship wrapper.
SponsorshipBuilder & setOwner(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfOwner (SoeRequired).
SponsorshipBuilder(SLE::const_pointer sle)
Construct a SponsorshipBuilder from an existing SLE object.
SponsorshipBuilder & setSponseeNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfSponseeNode (SoeRequired).
SponsorshipBuilder(std::decay_t< typename SF_UINT256::type::value_type > const &previousTxnID, std::decay_t< typename SF_UINT32::type::value_type > const &previousTxnLgrSeq, std::decay_t< typename SF_ACCOUNT::type::value_type > const &owner, std::decay_t< typename SF_ACCOUNT::type::value_type > const &sponsee, std::decay_t< typename SF_UINT64::type::value_type > const &ownerNode, std::decay_t< typename SF_UINT64::type::value_type > const &sponseeNode)
Construct a new SponsorshipBuilder with required fields.
SponsorshipBuilder & setSponsee(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfSponsee (SoeRequired).
SponsorshipBuilder & setRemainingOwnerCount(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfRemainingOwnerCount (SoeDefault).
SponsorshipBuilder & setMaxFee(std::decay_t< typename SF_AMOUNT::type::value_type > const &value)
Set sfMaxFee (SoeOptional).
SponsorshipBuilder & setFeeAmount(std::decay_t< typename SF_AMOUNT::type::value_type > const &value)
Set sfFeeAmount (SoeOptional).
SponsorshipBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (SoeRequired).
SponsorshipBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Ledger entry-specific field setters.
SponsorshipBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (SoeRequired).
Ledger Entry: Sponsorship.
Definition Sponsorship.h:28
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
Definition Sponsorship.h:54
Sponsorship(SLE::const_pointer sle)
Construct a Sponsorship ledger entry wrapper from an existing SLE object.
Definition Sponsorship.h:36
SF_ACCOUNT::type::value_type getSponsee() const
Get sfSponsee (SoeRequired).
Definition Sponsorship.h:87
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
SF_UINT64::type::value_type getSponseeNode() const
Get sfSponseeNode (SoeRequired).
protocol_autogen::Optional< SF_UINT32::type::value_type > getRemainingOwnerCount() const
Get sfRemainingOwnerCount (SoeDefault).
bool hasMaxFee() const
Check if sfMaxFee is present.
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
Definition Sponsorship.h:65
protocol_autogen::Optional< SF_AMOUNT::type::value_type > getMaxFee() const
Get sfMaxFee (SoeOptional).
SF_ACCOUNT::type::value_type getOwner() const
Get sfOwner (SoeRequired).
Definition Sponsorship.h:76
bool hasRemainingOwnerCount() const
Check if sfRemainingOwnerCount is present.
static constexpr LedgerEntryType entryType
Definition Sponsorship.h:30
bool hasFeeAmount() const
Check if sfFeeAmount is present.
protocol_autogen::Optional< SF_AMOUNT::type::value_type > getFeeAmount() const
Get sfFeeAmount (SoeOptional).
Definition Sponsorship.h:98
T make_shared(T... args)
STL namespace.
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
LedgerEntryType
Identifiers for on-ledger objects.
BaseUInt< 256 > uint256
Definition base_uint.h:580