3#include <xrpl/basics/Log.h>
4#include <xrpl/ledger/ReadView.h>
5#include <xrpl/ledger/View.h>
6#include <xrpl/ledger/helpers/AMMHelpers.h>
7#include <xrpl/protocol/Concepts.h>
8#include <xrpl/protocol/Quality.h>
9#include <xrpl/tx/transactors/dex/AMMContext.h>
13template <StepAmount TIn, StepAmount TOut>
30template <
typename TIn,
typename TOut>
90 [[nodiscard]]
Asset const&
96 [[nodiscard]]
Asset const&
A generic endpoint for log messages.
Maintains AMM info per overall payment engine execution and individual iteration.
TAmounts< TIn, TOut > generateFibSeqOffer(TAmounts< TIn, TOut > const &balances) const
Generate AMM offers with the offer size based on Fibonacci sequence.
Asset const & assetOut() const
AccountID const & ammAccount() const
AMMLiquidity(AMMLiquidity const &)=delete
TAmounts< TIn, TOut > const initialBalances_
AccountID const ammAccountID_
AMMLiquidity & operator=(AMMLiquidity const &)=delete
std::optional< AMMOffer< TIn, TOut > > maxOffer(TAmounts< TIn, TOut > const &balances, Rules const &rules) const
Generate max offer.
TAmounts< TIn, TOut > fetchBalances(ReadView const &view) const
Fetches current AMM balances.
Asset const & assetIn() const
std::optional< AMMOffer< TIn, TOut > > getOffer(ReadView const &view, std::optional< Quality > const &clobQuality) const
Generate AMM offer.
AMMLiquidity(ReadView const &view, AccountID const &ammAccountID, std::uint32_t tradingFee, Asset const &in, Asset const &out, AMMContext &ammContext, beast::Journal j)
static Number const kInitialFibSeqPct
AMMContext & context() const
std::uint32_t const tradingFee_
std::uint32_t tradingFee() const
Represents synthetic AMM offer in BookStep.
Number is a floating point type that can represent a wide range of values.
Rules controlling protocol behavior.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
BaseUInt< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.
Represents a pair of input and output currencies.