Files
rippled/include/xrpl/protocol/SystemParameters.h
Ed Hennis 475a78222f Merge remote-tracking branch 'XRPLF/pratik/Fix_asan_lsan_flagged_issues' into ximinez/number_asan
* XRPLF/pratik/Fix_asan_lsan_flagged_issues: (61 commits)
  Apply suggestion from @pratikmankawde
  refactor: Modularize app/tx (6228)
  do not fix the stack size
  refactor: Decouple app/tx from `Application` and `Config` (6227)
  increase timeout
  chore: Update clang-format to 21.1.8 (6352)
  reverted change in Number
  halt on error  = 0
  remove printXXX from asan rt args
  remove symbolize option from asan
  only run asan
  supp. coro releated asan errors
  run sanitizer tests in parallel
  refactor: Modularize `HashRouter`, `Conditions`, and `OrderBookDB` (6226)
  increase timeout for sanitizer jobs
  chore: Fix minor issues in comments (6346)
  refactor: Modularize the NetworkOPs interface (6225)
  removing timeout changes
  increase timeout for sanitizer builds, since we are seeing timeouts
  increase stack size of coroutine
  ...
2026-02-18 20:19:40 -05:00

68 lines
1.8 KiB
C++

#pragma once
#include <xrpl/basics/chrono.h>
#include <xrpl/protocol/XRPAmount.h>
#include <cstdint>
#include <string>
namespace xrpl {
// Various protocol and system specific constant globals.
/* The name of the system. */
static inline std::string const&
systemName()
{
static std::string const name = "ripple";
return name;
}
/** Configure the native currency. */
/** Number of drops in the genesis account. */
constexpr XRPAmount INITIAL_XRP{100'000'000'000 * DROPS_PER_XRP};
static_assert(INITIAL_XRP.drops() == 100'000'000'000'000'000);
static_assert(Number::largestMantissa >= INITIAL_XRP.drops());
/** Returns true if the amount does not exceed the initial XRP in existence. */
inline bool
isLegalAmount(XRPAmount const& amount)
{
return amount <= INITIAL_XRP;
}
/** Returns true if the absolute value of the amount does not exceed the initial
* XRP in existence. */
inline bool
isLegalAmountSigned(XRPAmount const& amount)
{
return amount >= -INITIAL_XRP && amount <= INITIAL_XRP;
}
/* The currency code for the native currency. */
static inline std::string const&
systemCurrencyCode()
{
static std::string const code = "XRP";
return code;
}
/** The XRP ledger network's earliest allowed sequence */
static constexpr std::uint32_t XRP_LEDGER_EARLIEST_SEQ{32570u};
/** The XRP Ledger mainnet's earliest ledger with a FeeSettings object. Only
* used in asserts and tests. */
static constexpr std::uint32_t XRP_LEDGER_EARLIEST_FEES{562177u};
/** The minimum amount of support an amendment should have. */
constexpr std::ratio<80, 100> amendmentMajorityCalcThreshold;
/** The minimum amount of time an amendment must hold a majority */
constexpr std::chrono::seconds const defaultAmendmentMajorityTime = weeks{2};
} // namespace xrpl
/** Default peer port (IANA registered) */
inline std::uint16_t constexpr DEFAULT_PEER_PORT{2459};