4#include <xrpl/protocol/STTx.h>
5#include <xrpl/protocol/STParsedJSON.h>
6#include <xrpl/protocol/jss.h>
7#include <xrpl/protocol_autogen/TransactionBase.h>
8#include <xrpl/protocol_autogen/TransactionBuilderBase.h>
9#include <xrpl/json/json_value.h>
44 throw std::runtime_error(
"Invalid transaction type for VaultCreate");
56 SF_ISSUE::type::value_type
59 return this->
tx_->at(sfAsset);
72 return this->
tx_->at(sfAssetsMaximum);
85 return this->
tx_->isFieldPresent(sfAssetsMaximum);
98 return this->
tx_->at(sfMPTokenMetadata);
111 return this->
tx_->isFieldPresent(sfMPTokenMetadata);
124 return this->
tx_->at(sfDomainID);
137 return this->
tx_->isFieldPresent(sfDomainID);
150 return this->
tx_->at(sfWithdrawalPolicy);
163 return this->
tx_->isFieldPresent(sfWithdrawalPolicy);
176 return this->
tx_->at(sfData);
189 return this->
tx_->isFieldPresent(sfData);
202 return this->
tx_->at(sfScale);
215 return this->
tx_->isFieldPresent(sfScale);
228 return this->
tx_->at(sfVaultKind);
241 return this->
tx_->isFieldPresent(sfVaultKind);
254 return this->
tx_->at(sfSubscriptionDate);
267 return this->
tx_->isFieldPresent(sfSubscriptionDate);
280 return this->
tx_->at(sfRedemptionDate);
293 return this->
tx_->isFieldPresent(sfRedemptionDate);
330 if (tx->getTxnType() != ttVAULT_CREATE)
360 object_[sfAssetsMaximum] = value;
371 object_[sfMPTokenMetadata] = value;
393 object_[sfWithdrawalPolicy] = value;
437 object_[sfSubscriptionDate] = value;
448 object_[sfRedemptionDate] = value;
461 sign(publicKey, secretKey);
std::shared_ptr< STTx const > tx_
The underlying transaction object being wrapped.
TransactionBase(std::shared_ptr< STTx const > tx)
Construct a transaction wrapper from an existing STTx object.
TransactionBuilderBase()=default
VaultCreateBuilder & sign(PublicKey const &publicKey, SecretKey const &secretKey)
Builder for VaultCreate transactions.
VaultCreateBuilder(SF_ACCOUNT::type::value_type account, std::decay_t< typename SF_ISSUE::type::value_type > const &asset, std::optional< SF_UINT32::type::value_type > sequence=std::nullopt, std::optional< SF_AMOUNT::type::value_type > fee=std::nullopt)
Construct a new VaultCreateBuilder with required fields.
VaultCreateBuilder & setWithdrawalPolicy(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfWithdrawalPolicy (SoeOptional).
VaultCreateBuilder & setDomainID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfDomainID (SoeOptional).
VaultCreateBuilder & setMPTokenMetadata(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfMPTokenMetadata (SoeOptional).
VaultCreateBuilder & setSubscriptionDate(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfSubscriptionDate (SoeOptional).
VaultCreateBuilder(std::shared_ptr< STTx const > tx)
Construct a VaultCreateBuilder from an existing STTx object.
VaultCreateBuilder & setRedemptionDate(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfRedemptionDate (SoeOptional).
VaultCreateBuilder & setData(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfData (SoeOptional).
VaultCreate build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the VaultCreate wrapper.
VaultCreateBuilder & setScale(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfScale (SoeOptional).
VaultCreateBuilder & setVaultKind(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfVaultKind (SoeOptional).
VaultCreateBuilder & setAssetsMaximum(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsMaximum (SoeOptional).
VaultCreateBuilder & setAsset(std::decay_t< typename SF_ISSUE::type::value_type > const &value)
Transaction-specific field setters.
Transaction: VaultCreate.
bool hasAssetsMaximum() const
Check if sfAssetsMaximum is present.
protocol_autogen::Optional< SF_UINT256::type::value_type > getDomainID() const
Get sfDomainID (SoeOptional).
bool hasMPTokenMetadata() const
Check if sfMPTokenMetadata is present.
bool hasData() const
Check if sfData is present.
bool hasRedemptionDate() const
Check if sfRedemptionDate is present.
bool hasScale() const
Check if sfScale is present.
protocol_autogen::Optional< SF_VL::type::value_type > getMPTokenMetadata() const
Get sfMPTokenMetadata (SoeOptional).
bool hasVaultKind() const
Check if sfVaultKind is present.
bool hasDomainID() const
Check if sfDomainID is present.
protocol_autogen::Optional< SF_VL::type::value_type > getData() const
Get sfData (SoeOptional).
protocol_autogen::Optional< SF_UINT8::type::value_type > getWithdrawalPolicy() const
Get sfWithdrawalPolicy (SoeOptional).
SF_ISSUE::type::value_type getAsset() const
Get sfAsset (SoeRequired).
protocol_autogen::Optional< SF_UINT8::type::value_type > getVaultKind() const
Get sfVaultKind (SoeOptional).
protocol_autogen::Optional< SF_UINT32::type::value_type > getRedemptionDate() const
Get sfRedemptionDate (SoeOptional).
bool hasWithdrawalPolicy() const
Check if sfWithdrawalPolicy is present.
protocol_autogen::Optional< SF_UINT32::type::value_type > getSubscriptionDate() const
Get sfSubscriptionDate (SoeOptional).
protocol_autogen::Optional< SF_UINT8::type::value_type > getScale() const
Get sfScale (SoeOptional).
static constexpr xrpl::TxType txType
VaultCreate(std::shared_ptr< STTx const > tx)
Construct a VaultCreate transaction wrapper from an existing STTx object.
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsMaximum() const
Get sfAssetsMaximum (SoeOptional).
bool hasSubscriptionDate() const
Check if sfSubscriptionDate is present.
std::conditional_t< std::is_reference_v< ValueType >, std::optional< std::reference_wrapper< std::remove_reference_t< ValueType > > >, std::optional< ValueType > > Optional
TxType
Transaction type identifiers.