rippled
Loading...
Searching...
No Matches
include/xrpl/protocol_autogen/ledger_entries/Oracle.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 OracleBuilder;
17
27class Oracle : public LedgerEntryBase
28{
29public:
30 static constexpr LedgerEntryType entryType = ltORACLE;
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 Oracle");
43 }
44 }
45
46 // Ledger entry-specific field getters
47
52 [[nodiscard]]
53 SF_ACCOUNT::type::value_type
54 getOwner() const
55 {
56 return this->sle_->at(sfOwner);
57 }
58
63 [[nodiscard]]
66 {
68 return this->sle_->at(sfOracleDocumentID);
69 return std::nullopt;
70 }
71
76 [[nodiscard]]
77 bool
79 {
80 return this->sle_->isFieldPresent(sfOracleDocumentID);
81 }
82
87 [[nodiscard]]
88 SF_VL::type::value_type
90 {
91 return this->sle_->at(sfProvider);
92 }
93
99 [[nodiscard]]
100 STArray const&
102 {
103 return this->sle_->getFieldArray(sfPriceDataSeries);
104 }
105
110 [[nodiscard]]
111 SF_VL::type::value_type
113 {
114 return this->sle_->at(sfAssetClass);
115 }
116
121 [[nodiscard]]
122 SF_UINT32::type::value_type
124 {
125 return this->sle_->at(sfLastUpdateTime);
126 }
127
132 [[nodiscard]]
134 getURI() const
135 {
136 if (hasURI())
137 return this->sle_->at(sfURI);
138 return std::nullopt;
139 }
140
145 [[nodiscard]]
146 bool
147 hasURI() const
148 {
149 return this->sle_->isFieldPresent(sfURI);
150 }
151
156 [[nodiscard]]
157 SF_UINT64::type::value_type
159 {
160 return this->sle_->at(sfOwnerNode);
161 }
162
167 [[nodiscard]]
168 SF_UINT256::type::value_type
170 {
171 return this->sle_->at(sfPreviousTxnID);
172 }
173
178 [[nodiscard]]
179 SF_UINT32::type::value_type
181 {
182 return this->sle_->at(sfPreviousTxnLgrSeq);
183 }
184};
185
193class OracleBuilder : public LedgerEntryBuilderBase<OracleBuilder>
194{
195public:
209 {
210 setOwner(owner);
211 setProvider(provider);
212 setPriceDataSeries(priceDataSeries);
213 setAssetClass(assetClass);
214 setLastUpdateTime(lastUpdateTime);
215 setOwnerNode(ownerNode);
216 setPreviousTxnID(previousTxnID);
217 setPreviousTxnLgrSeq(previousTxnLgrSeq);
218 }
219
226 {
227 if (sle->at(sfLedgerEntryType) != ltORACLE)
228 {
229 throw std::runtime_error("Invalid ledger entry type for Oracle");
230 }
231 object_ = *sle;
232 }
233
242 {
243 object_[sfOwner] = value;
244 return *this;
245 }
246
253 {
254 object_[sfOracleDocumentID] = value;
255 return *this;
256 }
257
264 {
265 object_[sfProvider] = value;
266 return *this;
267 }
268
275 {
276 object_.setFieldArray(sfPriceDataSeries, value);
277 return *this;
278 }
279
286 {
287 object_[sfAssetClass] = value;
288 return *this;
289 }
290
297 {
298 object_[sfLastUpdateTime] = value;
299 return *this;
300 }
301
308 {
309 object_[sfURI] = value;
310 return *this;
311 }
312
319 {
320 object_[sfOwnerNode] = value;
321 return *this;
322 }
323
330 {
331 object_[sfPreviousTxnID] = value;
332 return *this;
333 }
334
341 {
342 object_[sfPreviousTxnLgrSeq] = value;
343 return *this;
344 }
345
351 Oracle
352 build(uint256 const& index)
353 {
354 return Oracle{std::make_shared<SLE>(std::move(object_), index)};
355 }
356};
357
358} // namespace xrpl::ledger_entries
void setFieldArray(SField const &field, STArray const &v)
Definition STObject.cpp:819
Base class for type-safe ledger entry wrappers.
std::shared_ptr< SLE const > sle_
The underlying serialized ledger entry being wrapped.
Base class for all ledger entry builders.
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 & 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(std::shared_ptr< SLE const > sle)
Construct a OracleBuilder from an existing SLE object.
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)
Oracle(std::shared_ptr< SLE const > sle)
Construct a Oracle ledger entry wrapper from an existing SLE object.
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)
SF_VL::type::value_type getProvider() const
Get sfProvider (soeREQUIRED)
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (soeREQUIRED)
SF_VL::type::value_type getAssetClass() const
Get sfAssetClass (soeREQUIRED)
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)
T is_same_v
STL namespace.
LedgerEntryType
Identifiers for on-ledger objects.