rippled
Loading...
Searching...
No Matches
xrpld
app
paths
AMMLiquidity.h
1
#pragma once
2
3
#include <xrpld/app/misc/AMMHelpers.h>
4
#include <xrpld/app/misc/AMMUtils.h>
5
#include <xrpld/app/paths/AMMContext.h>
6
7
#include <xrpl/basics/Log.h>
8
#include <xrpl/ledger/ReadView.h>
9
#include <xrpl/ledger/View.h>
10
#include <xrpl/protocol/Quality.h>
11
12
namespace
xrpl
{
13
14
template
<
typename
TIn,
typename
TOut>
15
class
AMMOffer;
16
31
template
<
typename
TIn,
typename
TOut>
32
class
AMMLiquidity
33
{
34
private
:
35
inline
static
Number
const
InitialFibSeqPct
=
Number
(5) / 20000;
36
AMMContext
&
ammContext_
;
37
AccountID
const
ammAccountID_
;
38
std::uint32_t
const
tradingFee_
;
39
Issue
const
issueIn_
;
40
Issue
const
issueOut_
;
41
// Initial AMM pool balances
42
TAmounts<TIn, TOut>
const
initialBalances_
;
43
beast::Journal
const
j_
;
44
45
public
:
46
AMMLiquidity
(
47
ReadView
const
& view,
48
AccountID
const
& ammAccountID,
49
std::uint32_t
tradingFee
,
50
Issue
const
&
in
,
51
Issue
const
&
out
,
52
AMMContext
& ammContext,
53
beast::Journal
j);
54
~AMMLiquidity
() =
default
;
55
AMMLiquidity
(
AMMLiquidity
const
&) =
delete
;
56
AMMLiquidity
&
57
operator=
(
AMMLiquidity
const
&) =
delete
;
58
64
std::optional<AMMOffer<TIn, TOut>
>
65
getOffer
(
ReadView
const
& view,
std::optional<Quality>
const
& clobQuality)
const
;
66
67
AccountID
const
&
68
ammAccount
()
const
69
{
70
return
ammAccountID_
;
71
}
72
73
bool
74
multiPath
()
const
75
{
76
return
ammContext_
.
multiPath
();
77
}
78
79
std::uint32_t
80
tradingFee
()
const
81
{
82
return
tradingFee_
;
83
}
84
85
AMMContext
&
86
context
()
const
87
{
88
return
ammContext_
;
89
}
90
91
Issue
const
&
92
issueIn
()
const
93
{
94
return
issueIn_
;
95
}
96
97
Issue
const
&
98
issueOut
()
const
99
{
100
return
issueOut_
;
101
}
102
103
private
:
106
TAmounts<TIn, TOut>
107
fetchBalances
(
ReadView
const
& view)
const
;
108
116
TAmounts<TIn, TOut>
117
generateFibSeqOffer
(TAmounts<TIn, TOut>
const
& balances)
const
;
118
128
std::optional<AMMOffer<TIn, TOut>
>
129
maxOffer
(TAmounts<TIn, TOut>
const
& balances,
Rules
const
& rules)
const
;
130
};
131
132
}
// 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:33
xrpl::AMMLiquidity::j_
beast::Journal const j_
Definition
AMMLiquidity.h:43
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:74
xrpl::AMMLiquidity::issueOut_
Issue const issueOut_
Definition
AMMLiquidity.h:40
xrpl::AMMLiquidity::~AMMLiquidity
~AMMLiquidity()=default
xrpl::AMMLiquidity::InitialFibSeqPct
static Number const InitialFibSeqPct
Definition
AMMLiquidity.h:35
xrpl::AMMLiquidity::ammAccount
AccountID const & ammAccount() const
Definition
AMMLiquidity.h:68
xrpl::AMMLiquidity::AMMLiquidity
AMMLiquidity(AMMLiquidity const &)=delete
xrpl::AMMLiquidity::initialBalances_
TAmounts< TIn, TOut > const initialBalances_
Definition
AMMLiquidity.h:42
xrpl::AMMLiquidity::ammAccountID_
AccountID const ammAccountID_
Definition
AMMLiquidity.h:37
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:95
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:116
xrpl::AMMLiquidity::issueOut
Issue const & issueOut() const
Definition
AMMLiquidity.h:98
xrpl::AMMLiquidity::issueIn_
Issue const issueIn_
Definition
AMMLiquidity.h:39
xrpl::AMMLiquidity::issueIn
Issue const & issueIn() const
Definition
AMMLiquidity.h:92
xrpl::AMMLiquidity::context
AMMContext & context() const
Definition
AMMLiquidity.h:86
xrpl::AMMLiquidity::tradingFee_
std::uint32_t const tradingFee_
Definition
AMMLiquidity.h:38
xrpl::AMMLiquidity::tradingFee
std::uint32_t tradingFee() const
Definition
AMMLiquidity.h:80
xrpl::AMMLiquidity::ammContext_
AMMContext & ammContext_
Definition
AMMLiquidity.h:36
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