20#include <xrpl/basics/base_uint.h> 
   21#include <xrpl/beast/utility/Zero.h> 
   22#include <xrpl/beast/utility/instrumentation.h> 
   23#include <xrpl/protocol/AMMCore.h> 
   24#include <xrpl/protocol/AccountID.h> 
   25#include <xrpl/protocol/Feature.h> 
   26#include <xrpl/protocol/Issue.h> 
   27#include <xrpl/protocol/Rules.h> 
   28#include <xrpl/protocol/SField.h> 
   29#include <xrpl/protocol/STAmount.h> 
   30#include <xrpl/protocol/STObject.h> 
   31#include <xrpl/protocol/TER.h> 
   32#include <xrpl/protocol/UintTypes.h> 
   33#include <xrpl/protocol/digest.h> 
   50    *currency.
begin() = AMMCurrencyCode;
 
   52        hash.begin(), hash.begin() + currency.
size() - 1, currency.
begin() + 1);
 
 
   74    if (pair && issue != pair->first && issue != pair->second)
 
 
  102    if (amount < beast::zero || (!validZero && amount == beast::zero))
 
 
  112    auto const expiration = auctionSlot[sfExpiration];
 
  115        "ripple::ammAuctionTimeSlot : minimum expiration");
 
 
  131    return rules.
enabled(featureAMM) && rules.
enabled(fixUniversalNumber);
 
 
A currency issued by an account.
 
Rules controlling protocol behavior.
 
bool enabled(uint256 const &feature) const
Returns true if a feature is enabled.
 
Issue const & issue() const
 
static constexpr std::size_t size()
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
NotTEC invalidAMMAmount(STAmount const &amount, std::optional< std::pair< Issue, Issue > > const &pair=std::nullopt, bool validZero=false)
Validate the amount.
 
Currency const & badCurrency()
We deliberately disallow the currency that looks like "XRP" because too many people were using it ins...
 
std::uint32_t constexpr TOTAL_TIME_SLOT_SECS
 
bool isXRP(AccountID const &c)
 
std::optional< std::uint8_t > ammAuctionTimeSlot(std::uint64_t current, STObject const &auctionSlot)
Get time slot of the auction slot.
 
NotTEC invalidAMMAsset(Issue const &issue, std::optional< std::pair< Issue, Issue > > const &pair=std::nullopt)
 
Currency ammLPTCurrency(Currency const &cur1, Currency const &cur2)
Calculate Liquidity Provider Token (LPT) Currency.
 
bool ammEnabled(Rules const &)
Return true if required AMM amendments are enabled.
 
Issue ammLPTIssue(Currency const &cur1, Currency const &cur2, AccountID const &ammAccountID)
Calculate LPT Issue from AMM asset pair.
 
@ current
This was a new validation and was added.
 
base_uint< 160, detail::CurrencyTag > Currency
Currency is a hash representing a specific currency.
 
NotTEC invalidAMMAssetPair(Issue const &issue1, Issue const &issue2, std::optional< std::pair< Issue, Issue > > const &pair=std::nullopt)
 
std::uint32_t constexpr AUCTION_SLOT_INTERVAL_DURATION
 
sha512_half_hasher::result_type sha512Half(Args const &... args)
Returns the SHA512-Half of a series of objects.
 
TERSubset< CanCvtToNotTEC > NotTEC