xrpld
Loading...
Searching...
No Matches
Vault.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 VaultBuilder;
17
27class Vault : public LedgerEntryBase
28{
29public:
30 static constexpr LedgerEntryType entryType = ltVAULT;
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 Vault");
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_UINT32::type::value_type
77 {
78 return this->sle_->at(sfSequence);
79 }
80
85 [[nodiscard]]
86 SF_UINT64::type::value_type
88 {
89 return this->sle_->at(sfOwnerNode);
90 }
91
96 [[nodiscard]]
97 SF_ACCOUNT::type::value_type
98 getOwner() const
99 {
100 return this->sle_->at(sfOwner);
101 }
102
107 [[nodiscard]]
108 SF_ACCOUNT::type::value_type
110 {
111 return this->sle_->at(sfAccount);
112 }
113
118 [[nodiscard]]
120 getData() const
121 {
122 if (hasData())
123 return this->sle_->at(sfData);
124 return std::nullopt;
125 }
126
131 [[nodiscard]]
132 bool
133 hasData() const
134 {
135 return this->sle_->isFieldPresent(sfData);
136 }
137
142 [[nodiscard]]
143 SF_ISSUE::type::value_type
144 getAsset() const
145 {
146 return this->sle_->at(sfAsset);
147 }
148
153 [[nodiscard]]
156 {
157 if (hasAssetsTotal())
158 return this->sle_->at(sfAssetsTotal);
159 return std::nullopt;
160 }
161
166 [[nodiscard]]
167 bool
169 {
170 return this->sle_->isFieldPresent(sfAssetsTotal);
171 }
172
177 [[nodiscard]]
180 {
181 if (hasAssetsAvailable())
182 return this->sle_->at(sfAssetsAvailable);
183 return std::nullopt;
184 }
185
190 [[nodiscard]]
191 bool
193 {
194 return this->sle_->isFieldPresent(sfAssetsAvailable);
195 }
196
201 [[nodiscard]]
204 {
205 if (hasAssetsMaximum())
206 return this->sle_->at(sfAssetsMaximum);
207 return std::nullopt;
208 }
209
214 [[nodiscard]]
215 bool
217 {
218 return this->sle_->isFieldPresent(sfAssetsMaximum);
219 }
220
225 [[nodiscard]]
228 {
229 if (hasLossUnrealized())
230 return this->sle_->at(sfLossUnrealized);
231 return std::nullopt;
232 }
233
238 [[nodiscard]]
239 bool
241 {
242 return this->sle_->isFieldPresent(sfLossUnrealized);
243 }
244
249 [[nodiscard]]
250 SF_UINT192::type::value_type
252 {
253 return this->sle_->at(sfShareMPTID);
254 }
255
260 [[nodiscard]]
261 SF_UINT8::type::value_type
263 {
264 return this->sle_->at(sfWithdrawalPolicy);
265 }
266
271 [[nodiscard]]
273 getScale() const
274 {
275 if (hasScale())
276 return this->sle_->at(sfScale);
277 return std::nullopt;
278 }
279
284 [[nodiscard]]
285 bool
286 hasScale() const
287 {
288 return this->sle_->isFieldPresent(sfScale);
289 }
290
295 [[nodiscard]]
298 {
299 if (hasLEVersion())
300 return this->sle_->at(sfLEVersion);
301 return std::nullopt;
302 }
303
308 [[nodiscard]]
309 bool
311 {
312 return this->sle_->isFieldPresent(sfLEVersion);
313 }
314
319 [[nodiscard]]
322 {
323 if (hasVaultKind())
324 return this->sle_->at(sfVaultKind);
325 return std::nullopt;
326 }
327
332 [[nodiscard]]
333 bool
335 {
336 return this->sle_->isFieldPresent(sfVaultKind);
337 }
338
343 [[nodiscard]]
346 {
348 return this->sle_->at(sfSubscriptionDate);
349 return std::nullopt;
350 }
351
356 [[nodiscard]]
357 bool
359 {
360 return this->sle_->isFieldPresent(sfSubscriptionDate);
361 }
362
367 [[nodiscard]]
370 {
371 if (hasRedemptionDate())
372 return this->sle_->at(sfRedemptionDate);
373 return std::nullopt;
374 }
375
380 [[nodiscard]]
381 bool
383 {
384 return this->sle_->isFieldPresent(sfRedemptionDate);
385 }
386};
387
395class VaultBuilder : public LedgerEntryBuilderBase<VaultBuilder>
396{
397public:
423
430 {
431 if (sle->at(sfLedgerEntryType) != ltVAULT)
432 {
433 throw std::runtime_error("Invalid ledger entry type for Vault");
434 }
435 object_ = *sle;
436 }
437
441
448 {
449 object_[sfPreviousTxnID] = value;
450 return *this;
451 }
452
459 {
460 object_[sfPreviousTxnLgrSeq] = value;
461 return *this;
462 }
463
470 {
471 object_[sfSequence] = value;
472 return *this;
473 }
474
481 {
482 object_[sfOwnerNode] = value;
483 return *this;
484 }
485
492 {
493 object_[sfOwner] = value;
494 return *this;
495 }
496
503 {
504 object_[sfAccount] = value;
505 return *this;
506 }
507
514 {
515 object_[sfData] = value;
516 return *this;
517 }
518
525 {
526 object_[sfAsset] = STIssue(sfAsset, value);
527 return *this;
528 }
529
536 {
537 object_[sfAssetsTotal] = value;
538 return *this;
539 }
540
547 {
548 object_[sfAssetsAvailable] = value;
549 return *this;
550 }
551
558 {
559 object_[sfAssetsMaximum] = value;
560 return *this;
561 }
562
569 {
570 object_[sfLossUnrealized] = value;
571 return *this;
572 }
573
580 {
581 object_[sfShareMPTID] = value;
582 return *this;
583 }
584
591 {
592 object_[sfWithdrawalPolicy] = value;
593 return *this;
594 }
595
602 {
603 object_[sfScale] = value;
604 return *this;
605 }
606
613 {
614 object_[sfLEVersion] = value;
615 return *this;
616 }
617
624 {
625 object_[sfVaultKind] = value;
626 return *this;
627 }
628
635 {
636 object_[sfSubscriptionDate] = value;
637 return *this;
638 }
639
646 {
647 object_[sfRedemptionDate] = value;
648 return *this;
649 }
650
656 Vault
657 build(uint256 const& index)
658 {
659 return Vault{std::make_shared<SLE>(std::move(object_), index)};
660 }
661};
662
663} // 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 Vault ledger entries.
Definition Vault.h:396
VaultBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (SoeRequired).
Definition Vault.h:458
VaultBuilder(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_UINT32::type::value_type > const &sequence, std::decay_t< typename SF_UINT64::type::value_type > const &ownerNode, std::decay_t< typename SF_ACCOUNT::type::value_type > const &owner, std::decay_t< typename SF_ACCOUNT::type::value_type > const &account, std::decay_t< typename SF_ISSUE::type::value_type > const &asset, std::decay_t< typename SF_UINT192::type::value_type > const &shareMPTID, std::decay_t< typename SF_UINT8::type::value_type > const &withdrawalPolicy)
Construct a new VaultBuilder with required fields.
Definition Vault.h:410
VaultBuilder & setVaultKind(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfVaultKind (SoeDefault).
Definition Vault.h:623
VaultBuilder & setOwner(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfOwner (SoeRequired).
Definition Vault.h:491
VaultBuilder & setSequence(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfSequence (SoeRequired).
Definition Vault.h:469
VaultBuilder & setAssetsAvailable(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsAvailable (SoeDefault).
Definition Vault.h:546
VaultBuilder & setWithdrawalPolicy(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfWithdrawalPolicy (SoeRequired).
Definition Vault.h:590
VaultBuilder & setRedemptionDate(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfRedemptionDate (SoeOptional).
Definition Vault.h:645
VaultBuilder & setScale(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfScale (SoeDefault).
Definition Vault.h:601
VaultBuilder & setAssetsTotal(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsTotal (SoeDefault).
Definition Vault.h:535
VaultBuilder & setShareMPTID(std::decay_t< typename SF_UINT192::type::value_type > const &value)
Set sfShareMPTID (SoeRequired).
Definition Vault.h:579
VaultBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (SoeRequired).
Definition Vault.h:480
VaultBuilder & setAsset(std::decay_t< typename SF_ISSUE::type::value_type > const &value)
Set sfAsset (SoeRequired).
Definition Vault.h:524
VaultBuilder & setSubscriptionDate(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfSubscriptionDate (SoeOptional).
Definition Vault.h:634
VaultBuilder(SLE::const_pointer sle)
Construct a VaultBuilder from an existing SLE object.
Definition Vault.h:429
Vault build(uint256 const &index)
Build and return the completed Vault wrapper.
Definition Vault.h:657
VaultBuilder & setLossUnrealized(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfLossUnrealized (SoeDefault).
Definition Vault.h:568
VaultBuilder & setData(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfData (SoeOptional).
Definition Vault.h:513
VaultBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Ledger entry-specific field setters.
Definition Vault.h:447
VaultBuilder & setLEVersion(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfLEVersion (SoeDefault).
Definition Vault.h:612
VaultBuilder & setAssetsMaximum(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsMaximum (SoeDefault).
Definition Vault.h:557
VaultBuilder & setAccount(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfAccount (SoeRequired).
Definition Vault.h:502
Ledger Entry: Vault.
Definition Vault.h:28
bool hasAssetsTotal() const
Check if sfAssetsTotal is present.
Definition Vault.h:168
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsMaximum() const
Get sfAssetsMaximum (SoeDefault).
Definition Vault.h:203
bool hasVaultKind() const
Check if sfVaultKind is present.
Definition Vault.h:334
bool hasAssetsAvailable() const
Check if sfAssetsAvailable is present.
Definition Vault.h:192
bool hasScale() const
Check if sfScale is present.
Definition Vault.h:286
SF_ISSUE::type::value_type getAsset() const
Get sfAsset (SoeRequired).
Definition Vault.h:144
Vault(SLE::const_pointer sle)
Construct a Vault ledger entry wrapper from an existing SLE object.
Definition Vault.h:36
protocol_autogen::Optional< SF_VL::type::value_type > getData() const
Get sfData (SoeOptional).
Definition Vault.h:120
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
Definition Vault.h:65
SF_ACCOUNT::type::value_type getOwner() const
Get sfOwner (SoeRequired).
Definition Vault.h:98
protocol_autogen::Optional< SF_NUMBER::type::value_type > getLossUnrealized() const
Get sfLossUnrealized (SoeDefault).
Definition Vault.h:227
protocol_autogen::Optional< SF_UINT8::type::value_type > getLEVersion() const
Get sfLEVersion (SoeDefault).
Definition Vault.h:297
static constexpr LedgerEntryType entryType
Definition Vault.h:30
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsAvailable() const
Get sfAssetsAvailable (SoeDefault).
Definition Vault.h:179
bool hasData() const
Check if sfData is present.
Definition Vault.h:133
protocol_autogen::Optional< SF_UINT8::type::value_type > getScale() const
Get sfScale (SoeDefault).
Definition Vault.h:273
SF_UINT192::type::value_type getShareMPTID() const
Get sfShareMPTID (SoeRequired).
Definition Vault.h:251
bool hasRedemptionDate() const
Check if sfRedemptionDate is present.
Definition Vault.h:382
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
Definition Vault.h:54
bool hasAssetsMaximum() const
Check if sfAssetsMaximum is present.
Definition Vault.h:216
SF_UINT8::type::value_type getWithdrawalPolicy() const
Get sfWithdrawalPolicy (SoeRequired).
Definition Vault.h:262
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsTotal() const
Get sfAssetsTotal (SoeDefault).
Definition Vault.h:155
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
Definition Vault.h:87
SF_UINT32::type::value_type getSequence() const
Get sfSequence (SoeRequired).
Definition Vault.h:76
bool hasLossUnrealized() const
Check if sfLossUnrealized is present.
Definition Vault.h:240
protocol_autogen::Optional< SF_UINT32::type::value_type > getRedemptionDate() const
Get sfRedemptionDate (SoeOptional).
Definition Vault.h:369
SF_ACCOUNT::type::value_type getAccount() const
Get sfAccount (SoeRequired).
Definition Vault.h:109
protocol_autogen::Optional< SF_UINT32::type::value_type > getSubscriptionDate() const
Get sfSubscriptionDate (SoeOptional).
Definition Vault.h:345
protocol_autogen::Optional< SF_UINT8::type::value_type > getVaultKind() const
Get sfVaultKind (SoeDefault).
Definition Vault.h:321
bool hasSubscriptionDate() const
Check if sfSubscriptionDate is present.
Definition Vault.h:358
bool hasLEVersion() const
Check if sfLEVersion is present.
Definition Vault.h:310
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