| 
| static NotTEC  | checkSign (ReadView const &view, ApplyFlags flags, AccountID const &idAccount, STObject const &sigObject, beast::Journal const j) | 
|   | 
| static XRPAmount  | minimumFee (Application &app, XRPAmount baseFee, Fees const &fees, ApplyFlags flags) | 
|   | Compute the minimum fee required to process a transaction with a given baseFee based on the current server load.  
  | 
|   | 
| static XRPAmount  | calculateOwnerReserveFee (ReadView const &view, STTx const &tx) | 
|   | 
| static NotTEC  | preflightSigValidated (PreflightContext const &ctx) | 
|   | 
| static bool  | validDataLength (std::optional< Slice > const &slice, std::size_t maxLength) | 
|   | 
| template<class T >  | 
| static bool  | validNumericRange (std::optional< T > value, T max, T min={}) | 
|   | 
| template<class T , class Unit >  | 
| static bool  | validNumericRange (std::optional< T > value, unit::ValueUnit< Unit, T > max, unit::ValueUnit< Unit, T > min={}) | 
|   | 
 | 
| std::pair< TER, bool >  | applyGuts (Sandbox &view) | 
|   | 
| 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.  
  | 
|   | 
| 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 >  | 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 that the trader is willing to deposit.  
  | 
|   | 
| 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.  
  | 
|   | 
| 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 >  | 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, 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)  
  | 
|   | 
| std::pair< TER, XRPAmount >  | reset (XRPAmount fee) | 
|   | Reset the context, discarding any changes made and adjust the fee.  
  | 
|   | 
| TER  | consumeSeqProxy (SLE::pointer const &sleAccount) | 
|   | 
| TER  | payFee () | 
|   | 
| void  | trapTransaction (uint256) const | 
|   | 
AMMDeposit implements AMM deposit Transactor. 
The deposit transaction is used to add liquidity to the AMM instance pool, thus obtaining some share of the instance's pools in the form of LPTokens. If the trader deposits proportional values of both assets without changing their relative price, then no trading fee is charged on the transaction. The trader can specify different combination of the fields in the deposit. LPTokens - transaction assumes proportional deposit of pools assets in exchange for the specified amount of LPTokens of the AMM instance. Asset1In - transaction assumes single asset deposit of the amount of asset specified by Asset1In. This is essentially a swap and an equal asset deposit. Asset1In and Asset2In - transaction assumes proportional deposit of pool assets with the constraints on the maximum amount of each asset that the trader is willing to deposit. Asset1In and LPTokens - transaction assumes that a single asset asset1 is deposited to obtain some share of the AMM instance's pools represented by amount of LPTokens. Asset1In and EPrice - transaction assumes single asset deposit with the following two constraints: a. amount of asset1 if specified (not 0) in Asset1In specifies the maximum amount of asset1 that the trader is willing to deposit b. The effective-price of the LPTokens traded out does not exceed the specified EPrice. Following updates after a successful AMMDeposit transaction: The deposited asset, if XRP, is transferred from the account that initiated the transaction to the AMM instance account, thus changing the Balance field of each account. The deposited asset, if tokens, are balanced between the AMM account and the issuer account trustline. The LPTokens are issued by the AMM instance account to the account that initiated the transaction and a new trustline is created, if there does not exist one. The pool composition is updated. 
- See also
 - XLS30d:AMMDeposit transaction 
 
Definition at line 62 of file AMMDeposit.h.
 
Equal asset deposit (Asset1In, Asset2In) with the constraint on the maximum amount of both assets that the trader is willing to deposit. 
Proportional deposit of pool assets with the constraints on the maximum amount of each asset that the trader is willing to deposit.
The trading fee is not charged. 
- Parameters
 - 
  
    | view |  | 
    | ammAccount |  | 
    | amountBalance | current AMM asset1 balance  | 
    | amount2Balance | current AMM asset2 balance  | 
    | lptAMMBalance | current AMM LPT balance  | 
    | amount | maximum asset1 deposit amount  | 
    | amount2 | maximum asset2 deposit amount  | 
    | lpTokensDepositMin | minimum accepted LPTokens deposit  | 
    | tfee | trading fee in basis points  | 
  
   
- Returns
 
a = (t/T) * A (1) b = (t/T) * B (2) where A,B: current pool composition T: current balance of outstanding LPTokens a: balance of asset A being added b: balance of asset B being added t: balance of LPTokens issued to LP after a successful transaction Use equation 1 to compute the amount of t, given the amount in Asset1In. Let this be Z Use equation 2 to compute the amount of asset2, given t~Z. Let the computed amount of asset2 be X. If X <= amount in Asset2In: The amount of asset1 to be deposited is the one specified in Asset1In The amount of asset2 to be deposited is X The amount of LPTokens to be issued is Z If X > amount in Asset2In: Use equation 2 to compute , given the amount in Asset2In. Let this be W Use equation 1 to compute the amount of asset1, given t~W from above. Let the computed amount of asset1 be Y If Y <= amount in Asset1In: The amount of asset1 to be deposited is Y The amount of asset2 to be deposited is the one specified in Asset2In The amount of LPTokens to be issued is W else, failed transaction 
Definition at line 721 of file AMMDeposit.cpp.
 
 
Single asset deposit (Asset1In) by the amount. 
Single asset deposit of the amount of asset specified by Asset1In.
The trading fee is charged. 
- Parameters
 - 
  
    | view |  | 
    | ammAccount |  | 
    | amountBalance | current AMM asset1 balance  | 
    | lptAMMBalance | current AMM LPT balance  | 
    | amount | requested asset1 deposit amount  | 
    | lpTokensDepositMin | minimum accepted LPTokens deposit  | 
    | tfee | trading fee in basis points  | 
  
   
- Returns
 
t = T * (b / B - x) / (1 + x) (3) where f1 = (1 - 0.5 * tfee) / (1 - tfee) x = sqrt(f1**2 + b / (B * (1 - tfee)) - f1 Use equation 3 
- See also
 - singleDeposit to compute amount of LPTokens to be issued, given the amount in Asset1In. 
 
Definition at line 798 of file AMMDeposit.cpp.
 
 
Single asset deposit (Asset1In, LPTokens) by the tokens. 
Single asset asset1 is deposited to obtain some share of the AMM instance's pools represented by amount of LPTokens.
The trading fee is charged. 
- Parameters
 - 
  
    | view |  | 
    | ammAccount |  | 
    | amountBalance | current AMM asset1 balance  | 
    | amount | max asset1 to deposit  | 
    | lptAMMBalance | current AMM LPT balance  | 
    | lpTokensDeposit | amount of tokens to deposit  | 
    | tfee | trading fee in basis points  | 
  
   
- Returns
 
Use equation 4 to compute the amount of asset1 to be deposited, given t represented by amount of LPTokens. Equation 4 solves equation 3 
- See also
 - singleDeposit for b. Fail if b exceeds specified Max amount to deposit. 
 
Definition at line 845 of file AMMDeposit.cpp.
 
 
Single asset deposit (Asset1In, EPrice) with two constraints. 
Single asset deposit with two constraints.
The trading fee is charged. 
- Parameters
 - 
  
    | view |  | 
    | ammAccount |  | 
    | amountBalance | current AMM asset1 balance  | 
    | amount | requested asset1 deposit amount  | 
    | lptAMMBalance | current AMM LPT balance  | 
    | ePrice | maximum effective price  | 
    | tfee |  | 
  
   
- Returns
 
a. Amount of asset1 if specified (not 0) in Asset1In specifies the maximum amount of asset1 that the trader is willing to deposit. b. The effective-price of the LPToken traded out does not exceed the specified EPrice. The effective price (EP) of a trade is defined as the ratio of the tokens the trader sold or swapped in (Token B) and the token they got in return or swapped out (Token A). EP(B/A) = b/a (III) Use equation 3 
- See also
 - singleDeposit to compute the amount of LPTokens out, given the amount of Asset1In. Let this be X. Use equation III to compute the effective-price of the trade given Asset1In amount as the asset in and the LPTokens amount X as asset out. Let this be Y. If Y <= amount in EPrice: The amount of asset1 to be deposited is given by amount in Asset1In The amount of LPTokens to be issued is X If (Y>EPrice) OR (amount in Asset1In does not exist): Use equations 3 
 
- 
singleDeposit & III and the given EPrice to compute the following two variables: The amount of asset1 in. Let this be Q The amount of LPTokens out. Let this be W The amount of asset1 to be deposited is Q The amount of LPTokens to be issued is W 
 
Definition at line 903 of file AMMDeposit.cpp.