xrpld
Loading...
Searching...
No Matches
TransactionProposal.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 = ltTRANSACTION_PROPOSAL;
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 TransactionProposal");
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
86 [[nodiscard]]
89 {
90 return this->sle_->getFieldObject(sfProposedTransaction);
91 }
92
97 [[nodiscard]]
98 SF_UINT32::type::value_type
100 {
101 return this->sle_->at(sfExpiration);
102 }
103
108 [[nodiscard]]
109 SF_UINT64::type::value_type
111 {
112 return this->sle_->at(sfOwnerNode);
113 }
114};
115
123class TransactionProposalBuilder : public LedgerEntryBuilderBase<TransactionProposalBuilder>
124{
125public:
136 : LedgerEntryBuilderBase<TransactionProposalBuilder>(ltTRANSACTION_PROPOSAL)
137 {
138 setPreviousTxnID(previousTxnID);
139 setPreviousTxnLgrSeq(previousTxnLgrSeq);
140 setOwner(owner);
141 setProposedTransaction(proposedTransaction);
142 setExpiration(expiration);
143 setOwnerNode(ownerNode);
144 }
145
152 {
153 if (sle->at(sfLedgerEntryType) != ltTRANSACTION_PROPOSAL)
154 {
155 throw std::runtime_error("Invalid ledger entry type for TransactionProposal");
156 }
157 object_ = *sle;
158 }
159
163
170 {
171 object_[sfPreviousTxnID] = value;
172 return *this;
173 }
174
181 {
182 object_[sfPreviousTxnLgrSeq] = value;
183 return *this;
184 }
185
192 {
193 object_[sfOwner] = value;
194 return *this;
195 }
196
203 {
204 object_.setFieldObject(sfProposedTransaction, value);
205 return *this;
206 }
207
214 {
215 object_[sfExpiration] = value;
216 return *this;
217 }
218
225 {
226 object_[sfOwnerNode] = value;
227 return *this;
228 }
229
236 build(UInt256 const& index)
237 {
238 return TransactionProposal{std::make_shared<SLE>(std::move(object_), index)};
239 }
240};
241
242} // 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 TransactionProposal ledger entries.
TransactionProposal build(UInt256 const &index)
Build and return the completed TransactionProposal wrapper.
TransactionProposalBuilder & setProposedTransaction(STObject const &value)
Set sfProposedTransaction (SoeRequired).
TransactionProposalBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Ledger entry-specific field setters.
TransactionProposalBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (SoeRequired).
TransactionProposalBuilder(SLE::const_pointer sle)
Construct a TransactionProposalBuilder from an existing SLE object.
TransactionProposalBuilder & setExpiration(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfExpiration (SoeRequired).
TransactionProposalBuilder(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, STObject const &proposedTransaction, std::decay_t< typename SF_UINT32::type::value_type > const &expiration, std::decay_t< typename SF_UINT64::type::value_type > const &ownerNode)
Construct a new TransactionProposalBuilder with required fields.
TransactionProposalBuilder & setOwner(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfOwner (SoeRequired).
TransactionProposalBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (SoeRequired).
Ledger Entry: TransactionProposal.
STObject getProposedTransaction() const
Get sfProposedTransaction (SoeRequired).
SF_ACCOUNT::type::value_type getOwner() const
Get sfOwner (SoeRequired).
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
TransactionProposal(SLE::const_pointer sle)
Construct a TransactionProposal ledger entry wrapper from an existing SLE object.
SF_UINT32::type::value_type getExpiration() const
Get sfExpiration (SoeRequired).
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
static constexpr LedgerEntryType entryType
T make_shared(T... args)
STL namespace.
BaseUInt< 256 > UInt256
Definition base_uint.h:580
LedgerEntryType
Identifiers for on-ledger objects.