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>
42 throw std::runtime_error(
"Invalid ledger entry type for Vault");
53 SF_UINT256::type::value_type
56 return this->
sle_->at(sfPreviousTxnID);
64 SF_UINT32::type::value_type
67 return this->
sle_->at(sfPreviousTxnLgrSeq);
75 SF_UINT32::type::value_type
78 return this->
sle_->at(sfSequence);
86 SF_UINT64::type::value_type
89 return this->
sle_->at(sfOwnerNode);
97 SF_ACCOUNT::type::value_type
100 return this->
sle_->at(sfOwner);
108 SF_ACCOUNT::type::value_type
111 return this->
sle_->at(sfAccount);
123 return this->
sle_->at(sfData);
135 return this->
sle_->isFieldPresent(sfData);
143 SF_ISSUE::type::value_type
146 return this->
sle_->at(sfAsset);
158 return this->
sle_->at(sfAssetsTotal);
170 return this->
sle_->isFieldPresent(sfAssetsTotal);
182 return this->
sle_->at(sfAssetsAvailable);
194 return this->
sle_->isFieldPresent(sfAssetsAvailable);
206 return this->
sle_->at(sfAssetsMaximum);
218 return this->
sle_->isFieldPresent(sfAssetsMaximum);
230 return this->
sle_->at(sfLossUnrealized);
242 return this->
sle_->isFieldPresent(sfLossUnrealized);
250 SF_UINT192::type::value_type
253 return this->
sle_->at(sfShareMPTID);
261 SF_UINT8::type::value_type
264 return this->
sle_->at(sfWithdrawalPolicy);
276 return this->
sle_->at(sfScale);
288 return this->
sle_->isFieldPresent(sfScale);
335 if (sle->at(sfLedgerEntryType) != ltVAULT)
351 object_[sfPreviousTxnID] = value;
362 object_[sfPreviousTxnLgrSeq] = value;
439 object_[sfAssetsTotal] = value;
450 object_[sfAssetsAvailable] = value;
461 object_[sfAssetsMaximum] = value;
472 object_[sfLossUnrealized] = value;
494 object_[sfWithdrawalPolicy] = value;
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.
LedgerEntryBuilderBase()=default
Builder for Vault ledger entries.
VaultBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (SoeRequired).
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.
VaultBuilder & setOwner(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfOwner (SoeRequired).
VaultBuilder & setSequence(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfSequence (SoeRequired).
VaultBuilder & setAssetsAvailable(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsAvailable (SoeDefault).
VaultBuilder & setWithdrawalPolicy(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfWithdrawalPolicy (SoeRequired).
VaultBuilder & setScale(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfScale (SoeDefault).
VaultBuilder & setAssetsTotal(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsTotal (SoeDefault).
VaultBuilder & setShareMPTID(std::decay_t< typename SF_UINT192::type::value_type > const &value)
Set sfShareMPTID (SoeRequired).
VaultBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (SoeRequired).
VaultBuilder & setAsset(std::decay_t< typename SF_ISSUE::type::value_type > const &value)
Set sfAsset (SoeRequired).
VaultBuilder(SLE::const_pointer sle)
Construct a VaultBuilder from an existing SLE object.
Vault build(uint256 const &index)
Build and return the completed Vault wrapper.
VaultBuilder & setLossUnrealized(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfLossUnrealized (SoeDefault).
VaultBuilder & setData(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfData (SoeOptional).
VaultBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Ledger entry-specific field setters.
VaultBuilder & setAssetsMaximum(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsMaximum (SoeDefault).
VaultBuilder & setAccount(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Set sfAccount (SoeRequired).
bool hasAssetsTotal() const
Check if sfAssetsTotal is present.
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsMaximum() const
Get sfAssetsMaximum (SoeDefault).
bool hasAssetsAvailable() const
Check if sfAssetsAvailable is present.
bool hasScale() const
Check if sfScale is present.
SF_ISSUE::type::value_type getAsset() const
Get sfAsset (SoeRequired).
Vault(SLE::const_pointer sle)
Construct a Vault ledger entry wrapper from an existing SLE object.
protocol_autogen::Optional< SF_VL::type::value_type > getData() const
Get sfData (SoeOptional).
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
SF_ACCOUNT::type::value_type getOwner() const
Get sfOwner (SoeRequired).
protocol_autogen::Optional< SF_NUMBER::type::value_type > getLossUnrealized() const
Get sfLossUnrealized (SoeDefault).
static constexpr LedgerEntryType entryType
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsAvailable() const
Get sfAssetsAvailable (SoeDefault).
bool hasData() const
Check if sfData is present.
protocol_autogen::Optional< SF_UINT8::type::value_type > getScale() const
Get sfScale (SoeDefault).
SF_UINT192::type::value_type getShareMPTID() const
Get sfShareMPTID (SoeRequired).
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
bool hasAssetsMaximum() const
Check if sfAssetsMaximum is present.
SF_UINT8::type::value_type getWithdrawalPolicy() const
Get sfWithdrawalPolicy (SoeRequired).
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsTotal() const
Get sfAssetsTotal (SoeDefault).
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
SF_UINT32::type::value_type getSequence() const
Get sfSequence (SoeRequired).
bool hasLossUnrealized() const
Check if sfLossUnrealized is present.
SF_ACCOUNT::type::value_type getAccount() const
Get sfAccount (SoeRequired).
std::conditional_t< std::is_reference_v< ValueType >, std::optional< std::reference_wrapper< std::remove_reference_t< ValueType > > >, std::optional< ValueType > > Optional
LedgerEntryType
Identifiers for on-ledger objects.