1#ifndef XRPL_TEST_JTX_AMM_H_INCLUDED 
    2#define XRPL_TEST_JTX_AMM_H_INCLUDED 
    4#include <test/jtx/Account.h> 
    5#include <test/jtx/Env.h> 
    6#include <test/jtx/multisign.h> 
    7#include <test/jtx/seq.h> 
    8#include <test/jtx/ter.h> 
   10#include <xrpld/rpc/GRPCHandlers.h> 
   12#include <xrpl/json/json_value.h> 
   13#include <xrpl/protocol/STAmount.h> 
   14#include <xrpl/protocol/TxFlags.h> 
  160        bool ignoreParams = 
false,
 
  336        if (
auto const res = amm.ammRpcInfo())
 
  337            s << res.toStyledString();
 
 
 
std::string toStyledString() const
 
Floating point representation of amounts with high dynamic range.
 
A currency issued by an account.
 
constexpr TIss const & get() const
 
Convenience class to test AMM functionality.
 
std::optional< IOUAmount > bidMin_
 
Json::Value ammRpcInfo(std::optional< AccountID > const &account=std::nullopt, std::optional< std::string > const &ledgerIndex=std::nullopt, std::optional< Issue > issue1=std::nullopt, std::optional< Issue > issue2=std::nullopt, std::optional< AccountID > const &ammAccount=std::nullopt, bool ignoreParams=false, unsigned apiVersion=RPC::apiInvalidVersion) const
Send amm_info RPC command.
 
void submit(Json::Value const &jv, std::optional< jtx::seq > const &seq, std::optional< ter > const &ter)
 
void vote(std::optional< Account > const &account, std::uint32_t feeVal, std::optional< std::uint32_t > const &flags=std::nullopt, std::optional< jtx::seq > const &seq=std::nullopt, std::optional< std::pair< Issue, Issue > > const &assets=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
friend std::ostream & operator<<(std::ostream &s, AMM const &amm)
 
AccountID create(std::uint32_t tfee=0, std::optional< std::uint32_t > const &flags=std::nullopt, std::optional< jtx::seq > const &seq=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
bool expectAuctionSlot(std::uint32_t fee, std::optional< std::uint8_t > timeSlot, IOUAmount expectedPrice) const
 
std::string operator[](AccountID const &lp)
 
std::tuple< STAmount, STAmount, STAmount > balances(Issue const &issue1, Issue const &issue2, std::optional< AccountID > const &account=std::nullopt) const
Get AMM balances for the token pair.
 
void ammDelete(AccountID const &deleter, std::optional< ter > const &ter=std::nullopt)
 
bool expectAmmInfo(STAmount const &asset1, STAmount const &asset2, IOUAmount const &balance, Json::Value const &jv) const
 
void setClose(bool close)
 
IOUAmount lastPurchasePrice_
 
AccountID const & ammAccount() const
 
IOUAmount initialTokens()
 
AccountID const ammAccount_
 
bool expectTradingFee(std::uint16_t fee) const
 
Json::Value operator()(AccountID const &lp)
 
std::optional< msig > const msig_
 
IOUAmount withdraw(std::optional< Account > const &account, std::optional< LPToken > const &tokens, std::optional< STAmount > const &asset1OutDetails=std::nullopt, std::optional< std::uint32_t > const &flags=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
bool expectBalances(STAmount const &asset1, STAmount const &asset2, IOUAmount const &lpt, std::optional< AccountID > const &account=std::nullopt) const
Verify the AMM balances.
 
Account const creatorAccount_
 
std::tuple< STAmount, STAmount, STAmount > balances(std::optional< AccountID > const &account=std::nullopt) const
 
std::optional< IOUAmount > bidMax_
 
IOUAmount const initialLPTokens_
 
IOUAmount getLPTokensBalance(std::optional< AccountID > const &account=std::nullopt) const
 
Json::Value bid(BidArg const &arg)
 
bool expectAmmRpcInfo(STAmount const &asset1, STAmount const &asset2, IOUAmount const &balance, std::optional< AccountID > const &account=std::nullopt, std::optional< std::string > const &ledger_index=std::nullopt, std::optional< AccountID > const &ammAccount=std::nullopt) const
 
void setTokens(Json::Value &jv, std::optional< std::pair< Issue, Issue > > const &assets=std::nullopt)
 
IOUAmount withdrawAll(std::optional< Account > const &account, std::optional< STAmount > const &asset1OutDetails=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
bool expectLPTokens(AccountID const &account, IOUAmount const &tokens) const
 
Immutable cryptographic account descriptor.
 
A transaction testing environment.
 
LPToken(std::uint64_t tokens)
 
STAmount tokens(Issue const &ammIssue) const
 
IOUAmount const & tokens() const
 
LPToken(IOUAmount tokens)
 
Set the expected result code for a JTx The test will fail if the code doesn't match.
 
static constexpr auto apiInvalidVersion
 
Json::Value trust(AccountID const &account, STAmount const &amount, std::uint32_t flags=0)
 
Json::Value ammClawback(Account const &issuer, Account const &holder, Issue const &asset, Issue const &asset2, std::optional< STAmount > const &amount)
 
Json::Value pay(Account const &account, AccountID const &to, STAmount const &amount)
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
constexpr std::uint32_t tfOneAssetWithdrawAll
 
constexpr std::uint32_t tfWithdrawAll
 
std::vector< Account > authAccounts
 
std::optional< std::variant< int, IOUAmount, STAmount > > bidMin
 
std::optional< std::variant< int, IOUAmount, STAmount > > bidMax
 
std::optional< Account > account
 
std::optional< std::pair< Issue, Issue > > assets
 
std::optional< jtx::msig > ms
 
std::optional< Account > account
 
std::optional< STAmount > asset1In
 
std::optional< std::pair< Issue, Issue > > assets
 
std::optional< STAmount > maxEP
 
std::optional< STAmount > asset2In
 
std::optional< std::uint16_t > tfee
 
std::optional< LPToken > tokens
 
std::optional< Account > account
 
std::optional< std::pair< Issue, Issue > > assets
 
std::optional< STAmount > asset2Out
 
std::optional< IOUAmount > maxEP
 
std::optional< Account > account
 
std::optional< STAmount > asset1Out
 
std::optional< std::pair< Issue, Issue > > assets
 
std::optional< LPToken > tokens
 
Set the sequence number on a JTx.