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);
252 if (tx->getTxnType() != ttVAULT_CREATE)
280 object_[sfAssetsMaximum] = value;
291 object_[sfMPTokenMetadata] = value;
313 object_[sfWithdrawalPolicy] = value;
348 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(std::shared_ptr< STTx const > tx)
Construct a VaultCreateBuilder from an existing STTx object.
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 & 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 hasScale() const
Check if sfScale is present.
protocol_autogen::Optional< SF_VL::type::value_type > getMPTokenMetadata() const
Get sfMPTokenMetadata (SoeOptional).
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).
bool hasWithdrawalPolicy() const
Check if sfWithdrawalPolicy is present.
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).
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.