xrpld
Loading...
Searching...
No Matches
include
xrpl
ledger
helpers
OracleHelpers.h
1
#pragma once
2
3
#include <xrpl/protocol/SField.h>
4
#include <xrpl/protocol/STArray.h>
// IWYU pragma: keep
5
#include <xrpl/protocol/STLedgerEntry.h>
6
7
#include <
cstddef
>
8
#include <
cstdint
>
9
10
namespace
xrpl
{
11
12
constexpr
std::uint32_t
kMinOracleReserveCount
= 1;
13
constexpr
std::uint32_t
kMaxOracleReserveCount
= 2;
14
constexpr
std::size_t
kOracleReserveCountThreshold
= 5;
15
16
template
<
typename
T>
17
requires
requires
(T
const
& t) { t.size(); }
18
inline
std::uint32_t
19
calculateOracleReserve
(T
const
& priceDataSeries)
20
{
21
return
priceDataSeries.size() >
kOracleReserveCountThreshold
?
kMaxOracleReserveCount
22
:
kMinOracleReserveCount
;
23
}
24
25
inline
std::uint32_t
26
calculateOracleReserve
(
SLE::const_ref
oracleSle)
27
{
28
return
calculateOracleReserve
(oracleSle->getFieldArray(sfPriceDataSeries));
29
}
30
31
}
// namespace xrpl
xrpl::STLedgerEntry::const_ref
std::shared_ptr< STLedgerEntry const > const & const_ref
Definition
STLedgerEntry.h:34
cstddef
cstdint
std::uint32_t
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::kOracleReserveCountThreshold
constexpr std::size_t kOracleReserveCountThreshold
Definition
OracleHelpers.h:14
xrpl::kMaxOracleReserveCount
constexpr std::uint32_t kMaxOracleReserveCount
Definition
OracleHelpers.h:13
xrpl::kMinOracleReserveCount
constexpr std::uint32_t kMinOracleReserveCount
Definition
OracleHelpers.h:12
xrpl::calculateOracleReserve
std::uint32_t calculateOracleReserve(T const &priceDataSeries)
Definition
OracleHelpers.h:19
std::size_t
Generated by
1.16.1