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 Oracle");
53 SF_ACCOUNT::type::value_type
56 return this->
sle_->at(sfOwner);
68 return this->
sle_->at(sfOracleDocumentID);
80 return this->
sle_->isFieldPresent(sfOracleDocumentID);
88 SF_VL::type::value_type
91 return this->
sle_->at(sfProvider);
103 return this->
sle_->getFieldArray(sfPriceDataSeries);
111 SF_VL::type::value_type
114 return this->
sle_->at(sfAssetClass);
122 SF_UINT32::type::value_type
125 return this->
sle_->at(sfLastUpdateTime);
137 return this->
sle_->at(sfURI);
149 return this->
sle_->isFieldPresent(sfURI);
157 SF_UINT64::type::value_type
160 return this->
sle_->at(sfOwnerNode);
168 SF_UINT256::type::value_type
171 return this->
sle_->at(sfPreviousTxnID);
179 SF_UINT32::type::value_type
182 return this->
sle_->at(sfPreviousTxnLgrSeq);
227 if (sle->at(sfLedgerEntryType) != ltORACLE)
254 object_[sfOracleDocumentID] = value;
276 object_.setFieldArray(sfPriceDataSeries, value);
298 object_[sfLastUpdateTime] = value;
331 object_[sfPreviousTxnID] = value;
342 object_[sfPreviousTxnLgrSeq] = 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 Oracle ledger entries.
OracleBuilder & setPreviousTxnLgrSeq(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfPreviousTxnLgrSeq (SoeRequired).
OracleBuilder & setURI(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfURI (SoeOptional).
OracleBuilder(SLE::const_pointer sle)
Construct a OracleBuilder from an existing SLE object.
OracleBuilder & setAssetClass(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfAssetClass (SoeRequired).
OracleBuilder(std::decay_t< typename SF_ACCOUNT::type::value_type > const &owner, std::decay_t< typename SF_VL::type::value_type > const &provider, STArray const &priceDataSeries, std::decay_t< typename SF_VL::type::value_type > const &assetClass, std::decay_t< typename SF_UINT32::type::value_type > const &lastUpdateTime, 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 OracleBuilder with required fields.
OracleBuilder & setProvider(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfProvider (SoeRequired).
OracleBuilder & setLastUpdateTime(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfLastUpdateTime (SoeRequired).
OracleBuilder & setOwner(std::decay_t< typename SF_ACCOUNT::type::value_type > const &value)
Ledger entry-specific field setters.
OracleBuilder & setPreviousTxnID(std::decay_t< typename SF_UINT256::type::value_type > const &value)
Set sfPreviousTxnID (SoeRequired).
OracleBuilder & setOwnerNode(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfOwnerNode (SoeRequired).
OracleBuilder & setOracleDocumentID(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfOracleDocumentID (SoeOptional).
Oracle build(uint256 const &index)
Build and return the completed Oracle wrapper.
OracleBuilder & setPriceDataSeries(STArray const &value)
Set sfPriceDataSeries (SoeRequired).
protocol_autogen::Optional< SF_VL::type::value_type > getURI() const
Get sfURI (SoeOptional).
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
Oracle(SLE::const_pointer sle)
Construct a Oracle ledger entry wrapper from an existing SLE object.
SF_VL::type::value_type getProvider() const
Get sfProvider (SoeRequired).
bool hasURI() const
Check if sfURI is present.
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
SF_VL::type::value_type getAssetClass() const
Get sfAssetClass (SoeRequired).
static constexpr LedgerEntryType entryType
SF_ACCOUNT::type::value_type getOwner() const
Get sfOwner (SoeRequired).
SF_UINT32::type::value_type getLastUpdateTime() const
Get sfLastUpdateTime (SoeRequired).
protocol_autogen::Optional< SF_UINT32::type::value_type > getOracleDocumentID() const
Get sfOracleDocumentID (SoeOptional).
bool hasOracleDocumentID() const
Check if sfOracleDocumentID is present.
STArray const & getPriceDataSeries() const
Get sfPriceDataSeries (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.