20#ifndef RIPPLE_APP_TX_AMMLIQUIDITY_H_INCLUDED
21#define RIPPLE_APP_TX_AMMLIQUIDITY_H_INCLUDED
23#include <xrpld/app/misc/AMMHelpers.h>
24#include <xrpld/app/misc/AMMUtils.h>
25#include <xrpld/app/paths/AMMContext.h>
26#include <xrpld/ledger/ReadView.h>
27#include <xrpld/ledger/View.h>
28#include <xrpl/basics/Log.h>
29#include <xrpl/protocol/Quality.h>
30#include <xrpl/protocol/STLedgerEntry.h>
34template <
typename TIn,
typename TOut>
51template <
typename TIn,
typename TOut>
150 maxOffer(TAmounts<TIn, TOut>
const& balances,
Rules const& rules)
const;
A generic endpoint for log messages.
Maintains AMM info per overall payment engine execution and individual iteration.
AMMLiquidity class provides AMM offers to BookStep class.
AMMLiquidity(AMMLiquidity const &)=delete
AMMContext & context() const
Issue const & issueOut() const
AccountID const ammAccountID_
std::uint32_t tradingFee() const
Issue const & issueIn() const
std::optional< AMMOffer< TIn, TOut > > getOffer(ReadView const &view, std::optional< Quality > const &clobQuality) const
Generate AMM offer.
TAmounts< TIn, TOut > fetchBalances(ReadView const &view) const
Fetches current AMM balances.
AccountID const & ammAccount() const
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 > const initialBalances_
static const Number InitialFibSeqPct
std::uint32_t const tradingFee_
TAmounts< TIn, TOut > generateFibSeqOffer(TAmounts< TIn, TOut > const &balances) const
Generate AMM offers with the offer size based on Fibonacci sequence.
A currency issued by an account.
Rules controlling protocol behavior.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
AccountID ammAccountID(std::uint16_t prefix, uint256 const &parentHash, uint256 const &ammID)
Calculate AMM account ID.