rippled
Loading...
Searching...
No Matches
PermissionedDomain.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 PermissionedDomainBuilder;
17
28{
29public:
30 static constexpr LedgerEntryType entryType = ltPERMISSIONED_DOMAIN;
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 PermissionedDomain");
43 }
44 }
45
46 // Ledger entry-specific field getters
47
52 [[nodiscard]]
53 SF_ACCOUNT::type::value_type
54 getOwner() const
55 {
56 return this->sle_->at(sfOwner);
57 }
58
63 [[nodiscard]]
64 SF_UINT32::type::value_type
66 {
67 return this->sle_->at(sfSequence);
68 }
69
75 [[nodiscard]]
76 STArray const&
78 {
79 return this->sle_->getFieldArray(sfAcceptedCredentials);
80 }
81
86 [[nodiscard]]
87 SF_UINT64::type::value_type
89 {
90 return this->sle_->at(sfOwnerNode);
91 }
92
97 [[nodiscard]]
98 SF_UINT256::type::value_type
100 {
101 return this->sle_->at(sfPreviousTxnID);
102 }
103
108 [[nodiscard]]
109 SF_UINT32::type::value_type
111 {
112 return this->sle_->at(sfPreviousTxnLgrSeq);
113 }
114};
115
123class PermissionedDomainBuilder : public LedgerEntryBuilderBase<PermissionedDomainBuilder>
124{
125public:
136 : LedgerEntryBuilderBase<PermissionedDomainBuilder>(ltPERMISSIONED_DOMAIN)
137 {
138 setOwner(owner);
139 setSequence(sequence);
140 setAcceptedCredentials(acceptedCredentials);
141 setOwnerNode(ownerNode);
142 setPreviousTxnID(previousTxnID);
143 setPreviousTxnLgrSeq(previousTxnLgrSeq);
144 }
145
152 {
153 if (sle->at(sfLedgerEntryType) != ltPERMISSIONED_DOMAIN)
154 {
155 throw std::runtime_error("Invalid ledger entry type for PermissionedDomain");
156 }
157 object_ = *sle;
158 }
159
168 {
169 object_[sfOwner] = value;
170 return *this;
171 }
172
179 {
180 object_[sfSequence] = value;
181 return *this;
182 }
183
190 {
191 object_.setFieldArray(sfAcceptedCredentials, value);
192 return *this;
193 }
194
201 {
202 object_[sfOwnerNode] = value;
203 return *this;
204 }
205
212 {
213 object_[sfPreviousTxnID] = value;
214 return *this;
215 }
216
223 {
224 object_[sfPreviousTxnLgrSeq] = value;
225 return *this;
226 }
227
234 build(uint256 const& index)
235 {
236 return PermissionedDomain{std::make_shared<SLE>(std::move(object_), index)};
237 }
238};
239
240} // 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 PermissionedDomain ledger entries.
PermissionedDomain build(uint256 const &index)
Build and return the completed PermissionedDomain wrapper.
PermissionedDomainBuilder(std::shared_ptr< SLE const > sle)
Construct a PermissionedDomainBuilder from an existing SLE object.
PermissionedDomainBuilder & setSequence(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfSequence (soeREQUIRED)
PermissionedDomainBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (soeREQUIRED)
PermissionedDomainBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfPreviousTxnID (soeREQUIRED)
PermissionedDomainBuilder(std::decay_t< typename SF_ACCOUNT::type::value_type > const &owner, std::decay_t< typename SF_UINT32::type::value_type > const &sequence, STArray const &acceptedCredentials, 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 PermissionedDomainBuilder with required fields.
PermissionedDomainBuilder & setOwner(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Ledger entry-specific field setters.
PermissionedDomainBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (soeREQUIRED)
PermissionedDomainBuilder & setAcceptedCredentials(STArray const &value)
Set sfAcceptedCredentials (soeREQUIRED)
Ledger Entry: PermissionedDomain.
STArray const & getAcceptedCredentials() const
Get sfAcceptedCredentials (soeREQUIRED)
static constexpr LedgerEntryType entryType
SF_UINT32::type::value_type getSequence() const
Get sfSequence (soeREQUIRED)
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (soeREQUIRED)
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (soeREQUIRED)
SF_ACCOUNT::type::value_type getOwner() const
Get sfOwner (soeREQUIRED)
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (soeREQUIRED)
PermissionedDomain(std::shared_ptr< SLE const > sle)
Construct a PermissionedDomain ledger entry wrapper from an existing SLE object.
T is_same_v
STL namespace.
LedgerEntryType
Identifiers for on-ledger objects.