rippled
Loading...
Searching...
No Matches
MPToken.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 MPTokenBuilder;
17
28{
29public:
30 static constexpr LedgerEntryType entryType = ltMPTOKEN;
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 MPToken");
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_UINT192::type::value_type
66 {
67 return this->sle_->at(sfMPTokenIssuanceID);
68 }
69
74 [[nodiscard]]
77 {
78 if (hasMPTAmount())
79 return this->sle_->at(sfMPTAmount);
80 return std::nullopt;
81 }
82
87 [[nodiscard]]
88 bool
90 {
91 return this->sle_->isFieldPresent(sfMPTAmount);
92 }
93
98 [[nodiscard]]
101 {
102 if (hasLockedAmount())
103 return this->sle_->at(sfLockedAmount);
104 return std::nullopt;
105 }
106
111 [[nodiscard]]
112 bool
114 {
115 return this->sle_->isFieldPresent(sfLockedAmount);
116 }
117
122 [[nodiscard]]
123 SF_UINT64::type::value_type
125 {
126 return this->sle_->at(sfOwnerNode);
127 }
128
133 [[nodiscard]]
134 SF_UINT256::type::value_type
136 {
137 return this->sle_->at(sfPreviousTxnID);
138 }
139
144 [[nodiscard]]
145 SF_UINT32::type::value_type
147 {
148 return this->sle_->at(sfPreviousTxnLgrSeq);
149 }
150};
151
159class MPTokenBuilder : public LedgerEntryBuilderBase<MPTokenBuilder>
160{
161public:
179
186 {
187 if (sle->at(sfLedgerEntryType) != ltMPTOKEN)
188 {
189 throw std::runtime_error("Invalid ledger entry type for MPToken");
190 }
191 object_ = *sle;
192 }
193
202 {
203 object_[sfAccount] = value;
204 return *this;
205 }
206
213 {
214 object_[sfMPTokenIssuanceID] = value;
215 return *this;
216 }
217
224 {
225 object_[sfMPTAmount] = value;
226 return *this;
227 }
228
235 {
236 object_[sfLockedAmount] = value;
237 return *this;
238 }
239
246 {
247 object_[sfOwnerNode] = value;
248 return *this;
249 }
250
257 {
258 object_[sfPreviousTxnID] = value;
259 return *this;
260 }
261
268 {
269 object_[sfPreviousTxnLgrSeq] = value;
270 return *this;
271 }
272
278 MPToken
279 build(uint256 const& index)
280 {
281 return MPToken{std::make_shared<SLE>(std::move(object_), index)};
282 }
283};
284
285} // 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 MPToken ledger entries.
Definition MPToken.h:160
MPTokenBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfPreviousTxnID (soeREQUIRED)
Definition MPToken.h:256
MPTokenBuilder & setAccount(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Ledger entry-specific field setters.
Definition MPToken.h:201
MPTokenBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (soeREQUIRED)
Definition MPToken.h:267
MPTokenBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (soeREQUIRED)
Definition MPToken.h:245
MPTokenBuilder & setMPTokenIssuanceID(std::decay_t< typename SF_UINT192::type::value_type > const &value)
Set sfMPTokenIssuanceID (soeREQUIRED)
Definition MPToken.h:212
MPToken build(uint256 const &index)
Build and return the completed MPToken wrapper.
Definition MPToken.h:279
MPTokenBuilder & setLockedAmount(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfLockedAmount (soeOPTIONAL)
Definition MPToken.h:234
MPTokenBuilder(std::decay_t< typename SF_ACCOUNT::type::value_type > const &account, std::decay_t< typename SF_UINT192::type::value_type > const &mPTokenIssuanceID, std::decay_t< typename SF_UINT64::type::value_type > const &ownerNode, 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 MPTokenBuilder with required fields.
Definition MPToken.h:170
MPTokenBuilder & setMPTAmount(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfMPTAmount (soeDEFAULT)
Definition MPToken.h:223
MPTokenBuilder(std::shared_ptr< SLE const > sle)
Construct a MPTokenBuilder from an existing SLE object.
Definition MPToken.h:185
Ledger Entry: MPToken.
Definition MPToken.h:28
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (soeREQUIRED)
Definition MPToken.h:135
SF_UINT192::type::value_type getMPTokenIssuanceID() const
Get sfMPTokenIssuanceID (soeREQUIRED)
Definition MPToken.h:65
SF_ACCOUNT::type::value_type getAccount() const
Get sfAccount (soeREQUIRED)
Definition MPToken.h:54
static constexpr LedgerEntryType entryType
Definition MPToken.h:30
protocol_autogen::Optional< SF_UINT64::type::value_type > getMPTAmount() const
Get sfMPTAmount (soeDEFAULT)
Definition MPToken.h:76
bool hasMPTAmount() const
Check if sfMPTAmount is present.
Definition MPToken.h:89
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (soeREQUIRED)
Definition MPToken.h:146
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (soeREQUIRED)
Definition MPToken.h:124
bool hasLockedAmount() const
Check if sfLockedAmount is present.
Definition MPToken.h:113
MPToken(std::shared_ptr< SLE const > sle)
Construct a MPToken ledger entry wrapper from an existing SLE object.
Definition MPToken.h:36
protocol_autogen::Optional< SF_UINT64::type::value_type > getLockedAmount() const
Get sfLockedAmount (soeOPTIONAL)
Definition MPToken.h:100
T is_same_v
STL namespace.
LedgerEntryType
Identifiers for on-ledger objects.