mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-23 23:20:33 +00:00
Co-authored-by: tequ <git@tequ.dev> Co-authored-by: yinyiqian1 <yqian@ripple.com> Co-authored-by: Mayukha Vadari <mvadari@ripple.com> Co-authored-by: Mayukha Vadari <mvadari@gmail.com> Co-authored-by: xrplf-ai-reviewer[bot] <266832837+xrplf-ai-reviewer[bot]@users.noreply.github.com> Co-authored-by: Peter Chen <34582813+PeterChen13579@users.noreply.github.com> Co-authored-by: Zhiyuan Wang <96991820+Kassaking7@users.noreply.github.com> Co-authored-by: Ayaz Salikhov <asalikhov@ripple.com> Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com> Co-authored-by: Zhiyuan Wang <1830604455@qq.com>
32 lines
867 B
C++
32 lines
867 B
C++
#pragma once
|
|
|
|
#include <xrpl/protocol/SField.h>
|
|
#include <xrpl/protocol/STArray.h> // IWYU pragma: keep
|
|
#include <xrpl/protocol/STLedgerEntry.h>
|
|
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
|
|
namespace xrpl {
|
|
|
|
constexpr std::uint32_t kMinOracleReserveCount = 1;
|
|
constexpr std::uint32_t kMaxOracleReserveCount = 2;
|
|
constexpr std::size_t kOracleReserveCountThreshold = 5;
|
|
|
|
template <typename T>
|
|
requires requires(T const& t) { t.size(); }
|
|
inline std::uint32_t
|
|
calculateOracleReserve(T const& priceDataSeries)
|
|
{
|
|
return priceDataSeries.size() > kOracleReserveCountThreshold ? kMaxOracleReserveCount
|
|
: kMinOracleReserveCount;
|
|
}
|
|
|
|
inline std::uint32_t
|
|
calculateOracleReserve(SLE::const_ref oracleSle)
|
|
{
|
|
return calculateOracleReserve(oracleSle->getFieldArray(sfPriceDataSeries));
|
|
}
|
|
|
|
} // namespace xrpl
|