rippled
Loading...
Searching...
No Matches
AMMDeposit.h
1#pragma once
2
3#include <xrpld/app/tx/detail/Transactor.h>
4
5namespace xrpl {
6
7class Sandbox;
8
42class AMMDeposit : public Transactor
43{
44public:
46
47 explicit AMMDeposit(ApplyContext& ctx) : Transactor(ctx)
48 {
49 }
50
51 static bool
53
54 static std::uint32_t
56
57 static NotTEC
58 preflight(PreflightContext const& ctx);
59
60 static TER
61 preclaim(PreclaimContext const& ctx);
62
63 TER
64 doApply() override;
65
66private:
69
86 deposit(
88 AccountID const& ammAccount,
89 STAmount const& amountBalance,
90 STAmount const& amountDeposit,
91 std::optional<STAmount> const& amount2Deposit,
92 STAmount const& lptAMMBalance,
93 STAmount const& lpTokensDeposit,
94 std::optional<STAmount> const& depositMin,
95 std::optional<STAmount> const& deposit2Min,
96 std::optional<STAmount> const& lpTokensDepositMin,
97 std::uint16_t tfee);
98
114 Sandbox& view,
115 AccountID const& ammAccount,
116 STAmount const& amountBalance,
117 STAmount const& amount2Balance,
118 STAmount const& lptAMMBalance,
119 STAmount const& lpTokensDeposit,
120 std::optional<STAmount> const& depositMin,
121 std::optional<STAmount> const& deposit2Min,
122 std::uint16_t tfee);
123
140 Sandbox& view,
141 AccountID const& ammAccount,
142 STAmount const& amountBalance,
143 STAmount const& amount2Balance,
144 STAmount const& lptAMMBalance,
145 STAmount const& amount,
146 STAmount const& amount2,
147 std::optional<STAmount> const& lpTokensDepositMin,
148 std::uint16_t tfee);
149
163 Sandbox& view,
164 AccountID const& ammAccount,
165 STAmount const& amountBalance,
166 STAmount const& lptAMMBalance,
167 STAmount const& amount,
168 std::optional<STAmount> const& lpTokensDepositMin,
169 std::uint16_t tfee);
170
184 Sandbox& view,
185 AccountID const& ammAccount,
186 STAmount const& amountBalance,
187 STAmount const& amount,
188 STAmount const& lptAMMBalance,
189 STAmount const& lpTokensDeposit,
190 std::uint16_t tfee);
191
205 Sandbox& view,
206 AccountID const& ammAccount,
207 STAmount const& amountBalance,
208 STAmount const& amount,
209 STAmount const& lptAMMBalance,
210 STAmount const& ePrice,
211 std::uint16_t tfee);
212
223 Sandbox& view,
224 AccountID const& ammAccount,
225 STAmount const& amount,
226 STAmount const& amount2,
227 Issue const& lptIssue,
228 std::uint16_t tfee);
229};
230
231} // namespace xrpl
AMMDeposit implements AMM deposit Transactor.
Definition AMMDeposit.h:43
static constexpr ConsequencesFactoryType ConsequencesFactory
Definition AMMDeposit.h:45
AMMDeposit(ApplyContext &ctx)
Definition AMMDeposit.h:47
static TER preclaim(PreclaimContext const &ctx)
std::pair< TER, STAmount > equalDepositInEmptyState(Sandbox &view, AccountID const &ammAccount, STAmount const &amount, STAmount const &amount2, Issue const &lptIssue, std::uint16_t tfee)
Equal deposit in empty AMM state (LP tokens balance is 0)
static bool checkExtraFeatures(PreflightContext const &ctx)
static std::uint32_t getFlagsMask(PreflightContext const &ctx)
std::pair< TER, STAmount > singleDepositTokens(Sandbox &view, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &amount, STAmount const &lptAMMBalance, STAmount const &lpTokensDeposit, std::uint16_t tfee)
Single asset deposit (Asset1In, LPTokens) by the tokens.
std::pair< TER, STAmount > equalDepositTokens(Sandbox &view, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &amount2Balance, STAmount const &lptAMMBalance, STAmount const &lpTokensDeposit, std::optional< STAmount > const &depositMin, std::optional< STAmount > const &deposit2Min, std::uint16_t tfee)
Equal asset deposit (LPTokens) for the specified share of the AMM instance pools.
std::pair< TER, STAmount > singleDepositEPrice(Sandbox &view, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &amount, STAmount const &lptAMMBalance, STAmount const &ePrice, std::uint16_t tfee)
Single asset deposit (Asset1In, EPrice) with two constraints.
std::pair< TER, bool > applyGuts(Sandbox &view)
std::pair< TER, STAmount > singleDeposit(Sandbox &view, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &lptAMMBalance, STAmount const &amount, std::optional< STAmount > const &lpTokensDepositMin, std::uint16_t tfee)
Single asset deposit (Asset1In) by the amount.
static NotTEC preflight(PreflightContext const &ctx)
TER doApply() override
std::pair< TER, STAmount > equalDepositLimit(Sandbox &view, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &amount2Balance, STAmount const &lptAMMBalance, STAmount const &amount, STAmount const &amount2, std::optional< STAmount > const &lpTokensDepositMin, std::uint16_t tfee)
Equal asset deposit (Asset1In, Asset2In) with the constraint on the maximum amount of both assets tha...
std::pair< TER, STAmount > deposit(Sandbox &view, AccountID const &ammAccount, STAmount const &amountBalance, STAmount const &amountDeposit, std::optional< STAmount > const &amount2Deposit, STAmount const &lptAMMBalance, STAmount const &lpTokensDeposit, std::optional< STAmount > const &depositMin, std::optional< STAmount > const &deposit2Min, std::optional< STAmount > const &lpTokensDepositMin, std::uint16_t tfee)
Deposit requested assets and token amount into LP account.
State information when applying a tx.
A currency issued by an account.
Definition Issue.h:13
Discardable, editable view to a ledger.
Definition Sandbox.h:15
ApplyView & view()
Definition Transactor.h:128
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
State information when determining if a tx is likely to claim a fee.
Definition Transactor.h:53
State information when preflighting a tx.
Definition Transactor.h:15