rippled
Loading...
Searching...
No Matches
include
xrpl
tx
paths
AMMLiquidity.h
1
#pragma once
2
3
#include <xrpl/basics/Log.h>
4
#include <xrpl/ledger/ReadView.h>
5
#include <xrpl/ledger/View.h>
6
#include <xrpl/protocol/Quality.h>
7
#include <xrpl/tx/transactors/dex/AMMContext.h>
8
#include <xrpl/tx/transactors/dex/AMMHelpers.h>
9
#include <xrpl/tx/transactors/dex/AMMUtils.h>
10
11
namespace
xrpl
{
12
13
template
<
typename
TIn,
typename
TOut>
14
class
AMMOffer;
15
30
template
<
typename
TIn,
typename
TOut>
31
class
AMMLiquidity
32
{
33
private
:
34
inline
static
Number
const
InitialFibSeqPct
=
Number
(5) / 20000;
35
AMMContext
&
ammContext_
;
36
AccountID
const
ammAccountID_
;
37
std::uint32_t
const
tradingFee_
;
38
Issue
const
issueIn_
;
39
Issue
const
issueOut_
;
40
// Initial AMM pool balances
41
TAmounts<TIn, TOut>
const
initialBalances_
;
42
beast::Journal
const
j_
;
43
44
public
:
45
AMMLiquidity
(
46
ReadView
const
& view,
47
AccountID
const
& ammAccountID,
48
std::uint32_t
tradingFee
,
49
Issue
const
&
in
,
50
Issue
const
&
out
,
51
AMMContext
& ammContext,
52
beast::Journal
j);
53
~AMMLiquidity
() =
default
;
54
AMMLiquidity
(
AMMLiquidity
const
&) =
delete
;
55
AMMLiquidity
&
56
operator=
(
AMMLiquidity
const
&) =
delete
;
57
63
std::optional<AMMOffer<TIn, TOut>
>
64
getOffer
(
ReadView
const
& view,
std::optional<Quality>
const
& clobQuality)
const
;
65
66
AccountID
const
&
67
ammAccount
()
const
68
{
69
return
ammAccountID_
;
70
}
71
72
bool
73
multiPath
()
const
74
{
75
return
ammContext_
.
multiPath
();
76
}
77
78
std::uint32_t
79
tradingFee
()
const
80
{
81
return
tradingFee_
;
82
}
83
84
AMMContext
&
85
context
()
const
86
{
87
return
ammContext_
;
88
}
89
90
Issue
const
&
91
issueIn
()
const
92
{
93
return
issueIn_
;
94
}
95
96
Issue
const
&
97
issueOut
()
const
98
{
99
return
issueOut_
;
100
}
101
102
private
:
105
TAmounts<TIn, TOut>
106
fetchBalances
(
ReadView
const
& view)
const
;
107
115
TAmounts<TIn, TOut>
116
generateFibSeqOffer
(TAmounts<TIn, TOut>
const
& balances)
const
;
117
127
std::optional<AMMOffer<TIn, TOut>
>
128
maxOffer
(TAmounts<TIn, TOut>
const
& balances,
Rules
const
& rules)
const
;
129
};
130
131
}
// namespace xrpl
beast::Journal
A generic endpoint for log messages.
Definition
Journal.h:40
xrpl::AMMContext
Maintains AMM info per overall payment engine execution and individual iteration.
Definition
AMMContext.h:16
xrpl::AMMContext::multiPath
bool multiPath() const
Definition
AMMContext.h:43
xrpl::AMMLiquidity
AMMLiquidity class provides AMM offers to BookStep class.
Definition
AMMLiquidity.h:32
xrpl::AMMLiquidity::j_
beast::Journal const j_
Definition
AMMLiquidity.h:42
xrpl::AMMLiquidity::generateFibSeqOffer
TAmounts< TIn, TOut > generateFibSeqOffer(TAmounts< TIn, TOut > const &balances) const
Generate AMM offers with the offer size based on Fibonacci sequence.
Definition
AMMLiquidity.cpp:40
xrpl::AMMLiquidity::multiPath
bool multiPath() const
Definition
AMMLiquidity.h:73
xrpl::AMMLiquidity::issueOut_
Issue const issueOut_
Definition
AMMLiquidity.h:39
xrpl::AMMLiquidity::~AMMLiquidity
~AMMLiquidity()=default
xrpl::AMMLiquidity::InitialFibSeqPct
static Number const InitialFibSeqPct
Definition
AMMLiquidity.h:34
xrpl::AMMLiquidity::ammAccount
AccountID const & ammAccount() const
Definition
AMMLiquidity.h:67
xrpl::AMMLiquidity::AMMLiquidity
AMMLiquidity(AMMLiquidity const &)=delete
xrpl::AMMLiquidity::initialBalances_
TAmounts< TIn, TOut > const initialBalances_
Definition
AMMLiquidity.h:41
xrpl::AMMLiquidity::ammAccountID_
AccountID const ammAccountID_
Definition
AMMLiquidity.h:36
xrpl::AMMLiquidity::operator=
AMMLiquidity & operator=(AMMLiquidity const &)=delete
xrpl::AMMLiquidity::maxOffer
std::optional< AMMOffer< TIn, TOut > > maxOffer(TAmounts< TIn, TOut > const &balances, Rules const &rules) const
Generate max offer.
Definition
AMMLiquidity.cpp:105
xrpl::AMMLiquidity::fetchBalances
TAmounts< TIn, TOut > fetchBalances(ReadView const &view) const
Fetches current AMM balances.
Definition
AMMLiquidity.cpp:27
xrpl::AMMLiquidity::getOffer
std::optional< AMMOffer< TIn, TOut > > getOffer(ReadView const &view, std::optional< Quality > const &clobQuality) const
Generate AMM offer.
Definition
AMMLiquidity.cpp:125
xrpl::AMMLiquidity::issueOut
Issue const & issueOut() const
Definition
AMMLiquidity.h:97
xrpl::AMMLiquidity::issueIn_
Issue const issueIn_
Definition
AMMLiquidity.h:38
xrpl::AMMLiquidity::issueIn
Issue const & issueIn() const
Definition
AMMLiquidity.h:91
xrpl::AMMLiquidity::context
AMMContext & context() const
Definition
AMMLiquidity.h:85
xrpl::AMMLiquidity::tradingFee_
std::uint32_t const tradingFee_
Definition
AMMLiquidity.h:37
xrpl::AMMLiquidity::tradingFee
std::uint32_t tradingFee() const
Definition
AMMLiquidity.h:79
xrpl::AMMLiquidity::ammContext_
AMMContext & ammContext_
Definition
AMMLiquidity.h:35
xrpl::Issue
A currency issued by an account.
Definition
Issue.h:13
xrpl::Number
Number is a floating point type that can represent a wide range of values.
Definition
Number.h:207
xrpl::ReadView
A view into a ledger.
Definition
ReadView.h:31
xrpl::Rules
Rules controlling protocol behavior.
Definition
Rules.h:18
xrpl::base_uint< 160, detail::AccountIDTag >
std::uint32_t
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::QualityDirection::in
@ in
xrpl::QualityDirection::out
@ out
std::optional
Generated by
1.9.8