xrpld
Loading...
Searching...
No Matches
Bridge.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 BridgeBuilder;
17
27class Bridge : public LedgerEntryBase
28{
29public:
30 static constexpr LedgerEntryType entryType = ltBRIDGE;
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 Bridge");
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_AMOUNT::type::value_type
66 {
67 return this->sle_->at(sfSignatureReward);
68 }
69
74 [[nodiscard]]
77 {
79 return this->sle_->at(sfMinAccountCreateAmount);
80 return std::nullopt;
81 }
82
87 [[nodiscard]]
88 bool
90 {
91 return this->sle_->isFieldPresent(sfMinAccountCreateAmount);
92 }
93
98 [[nodiscard]]
99 SF_XCHAIN_BRIDGE::type::value_type
101 {
102 return this->sle_->at(sfXChainBridge);
103 }
104
109 [[nodiscard]]
110 SF_UINT64::type::value_type
112 {
113 return this->sle_->at(sfXChainClaimID);
114 }
115
120 [[nodiscard]]
121 SF_UINT64::type::value_type
123 {
124 return this->sle_->at(sfXChainAccountCreateCount);
125 }
126
131 [[nodiscard]]
132 SF_UINT64::type::value_type
134 {
135 return this->sle_->at(sfXChainAccountClaimCount);
136 }
137
142 [[nodiscard]]
143 SF_UINT64::type::value_type
145 {
146 return this->sle_->at(sfOwnerNode);
147 }
148
153 [[nodiscard]]
154 SF_UINT256::type::value_type
156 {
157 return this->sle_->at(sfPreviousTxnID);
158 }
159
164 [[nodiscard]]
165 SF_UINT32::type::value_type
167 {
168 return this->sle_->at(sfPreviousTxnLgrSeq);
169 }
170};
171
179class BridgeBuilder : public LedgerEntryBuilderBase<BridgeBuilder>
180{
181public:
196 {
197 setAccount(account);
198 setSignatureReward(signatureReward);
199 setXChainBridge(xChainBridge);
200 setXChainClaimID(xChainClaimID);
201 setXChainAccountCreateCount(xChainAccountCreateCount);
202 setXChainAccountClaimCount(xChainAccountClaimCount);
203 setOwnerNode(ownerNode);
204 setPreviousTxnID(previousTxnID);
205 setPreviousTxnLgrSeq(previousTxnLgrSeq);
206 }
207
214 {
215 if (sle->at(sfLedgerEntryType) != ltBRIDGE)
216 {
217 throw std::runtime_error("Invalid ledger entry type for Bridge");
218 }
219 object_ = *sle;
220 }
221
225
232 {
233 object_[sfAccount] = value;
234 return *this;
235 }
236
243 {
244 object_[sfSignatureReward] = value;
245 return *this;
246 }
247
254 {
255 object_[sfMinAccountCreateAmount] = value;
256 return *this;
257 }
258
265 {
266 object_[sfXChainBridge] = value;
267 return *this;
268 }
269
276 {
277 object_[sfXChainClaimID] = value;
278 return *this;
279 }
280
287 {
288 object_[sfXChainAccountCreateCount] = value;
289 return *this;
290 }
291
298 {
299 object_[sfXChainAccountClaimCount] = value;
300 return *this;
301 }
302
309 {
310 object_[sfOwnerNode] = value;
311 return *this;
312 }
313
320 {
321 object_[sfPreviousTxnID] = value;
322 return *this;
323 }
324
331 {
332 object_[sfPreviousTxnLgrSeq] = value;
333 return *this;
334 }
335
341 Bridge
342 build(uint256 const& index)
343 {
344 return Bridge{std::make_shared<SLE>(std::move(object_), index)};
345 }
346};
347
348} // namespace xrpl::ledger_entries
std::shared_ptr< STLedgerEntry const > const_pointer
Builder for Bridge ledger entries.
Definition Bridge.h:180
BridgeBuilder(SLE::const_pointer sle)
Construct a BridgeBuilder from an existing SLE object.
Definition Bridge.h:213
BridgeBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfPreviousTxnID (SoeRequired).
Definition Bridge.h:319
BridgeBuilder & setXChainClaimID(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfXChainClaimID (SoeRequired).
Definition Bridge.h:275
Bridge build(uint256 const &index)
Build and return the completed Bridge wrapper.
Definition Bridge.h:342
BridgeBuilder & setMinAccountCreateAmount(std::decay_t< typename SF_AMOUNT::type::value_type > const &value)
Set sfMinAccountCreateAmount (SoeOptional).
Definition Bridge.h:253
BridgeBuilder & setXChainBridge(std::decay_t< typename SF_XCHAIN_BRIDGE::type::value_type > const &value)
Set sfXChainBridge (SoeRequired).
Definition Bridge.h:264
BridgeBuilder & setAccount(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Ledger entry-specific field setters.
Definition Bridge.h:231
BridgeBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (SoeRequired).
Definition Bridge.h:308
BridgeBuilder & setSignatureReward(std::decay_t< typename SF_AMOUNT::type::value_type > const &value)
Set sfSignatureReward (SoeRequired).
Definition Bridge.h:242
BridgeBuilder & setXChainAccountCreateCount(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfXChainAccountCreateCount (SoeRequired).
Definition Bridge.h:286
BridgeBuilder(std::decay_t< typename SF_ACCOUNT::type::value_type > const &account, std::decay_t< typename SF_AMOUNT::type::value_type > const &signatureReward, std::decay_t< typename SF_XCHAIN_BRIDGE::type::value_type > const &xChainBridge, std::decay_t< typename SF_UINT64::type::value_type > const &xChainClaimID, std::decay_t< typename SF_UINT64::type::value_type > const &xChainAccountCreateCount, std::decay_t< typename SF_UINT64::type::value_type > const &xChainAccountClaimCount, 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 BridgeBuilder with required fields.
Definition Bridge.h:194
BridgeBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (SoeRequired).
Definition Bridge.h:330
BridgeBuilder & setXChainAccountClaimCount(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfXChainAccountClaimCount (SoeRequired).
Definition Bridge.h:297
Ledger Entry: Bridge.
Definition Bridge.h:28
SF_UINT64::type::value_type getXChainAccountCreateCount() const
Get sfXChainAccountCreateCount (SoeRequired).
Definition Bridge.h:122
SF_UINT64::type::value_type getXChainClaimID() const
Get sfXChainClaimID (SoeRequired).
Definition Bridge.h:111
bool hasMinAccountCreateAmount() const
Check if sfMinAccountCreateAmount is present.
Definition Bridge.h:89
SF_UINT64::type::value_type getXChainAccountClaimCount() const
Get sfXChainAccountClaimCount (SoeRequired).
Definition Bridge.h:133
static constexpr LedgerEntryType entryType
Definition Bridge.h:30
SF_XCHAIN_BRIDGE::type::value_type getXChainBridge() const
Get sfXChainBridge (SoeRequired).
Definition Bridge.h:100
SF_ACCOUNT::type::value_type getAccount() const
Get sfAccount (SoeRequired).
Definition Bridge.h:54
Bridge(SLE::const_pointer sle)
Construct a Bridge ledger entry wrapper from an existing SLE object.
Definition Bridge.h:36
protocol_autogen::Optional< SF_AMOUNT::type::value_type > getMinAccountCreateAmount() const
Get sfMinAccountCreateAmount (SoeOptional).
Definition Bridge.h:76
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
Definition Bridge.h:144
SF_AMOUNT::type::value_type getSignatureReward() const
Get sfSignatureReward (SoeRequired).
Definition Bridge.h:65
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
Definition Bridge.h:166
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
Definition Bridge.h:155
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.
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