rippled
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
ripple::test::jtx::AMM Class Reference

Convenience class to test AMM functionality. More...

#include <AMM.h>

Collaboration diagram for ripple::test::jtx::AMM:
Collaboration graph
[legend]

Public Member Functions

 AMM (Env &env, Account const &account, STAmount const &asset1, STAmount const &asset2, bool log=false, std::uint16_t tfee=0, std::uint32_t fee=0, std::optional< std::uint32_t > flags=std::nullopt, std::optional< jtx::seq > seq=std::nullopt, std::optional< jtx::msig > ms=std::nullopt, std::optional< ter > const &ter=std::nullopt, bool close=true)
 
 AMM (Env &env, Account const &account, STAmount const &asset1, STAmount const &asset2, ter const &ter, bool log=false, bool close=true)
 
 AMM (Env &env, Account const &account, STAmount const &asset1, STAmount const &asset2, CreateArg const &arg)
 
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.
 
bool expectBalances (STAmount const &asset1, STAmount const &asset2, IOUAmount const &lpt, std::optional< AccountID > const &account=std::nullopt) const
 Verify the AMM balances.
 
std::tuple< STAmount, STAmount, STAmountbalances (Issue const &issue1, Issue const &issue2, std::optional< AccountID > const &account=std::nullopt) const
 Get AMM balances for the token pair.
 
std::tuple< STAmount, STAmount, STAmountbalances (std::optional< AccountID > const &account=std::nullopt) const
 
bool expectLPTokens (AccountID const &account, IOUAmount const &tokens) const
 
bool expectAuctionSlot (std::uint32_t fee, std::optional< std::uint8_t > timeSlot, IOUAmount expectedPrice) const
 
bool expectAuctionSlot (std::vector< AccountID > const &authAccount) const
 
bool expectTradingFee (std::uint16_t fee) const
 
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
 
bool ammExists () const
 
IOUAmount deposit (std::optional< Account > const &account, LPToken tokens, std::optional< STAmount > const &asset1InDetails=std::nullopt, std::optional< std::uint32_t > const &flags=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
IOUAmount deposit (std::optional< Account > const &account, STAmount const &asset1InDetails, std::optional< STAmount > const &asset2InAmount=std::nullopt, std::optional< STAmount > const &maxEP=std::nullopt, std::optional< std::uint32_t > const &flags=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
IOUAmount deposit (std::optional< Account > const &account, std::optional< LPToken > tokens, std::optional< STAmount > const &asset1In, std::optional< STAmount > const &asset2In, std::optional< STAmount > const &maxEP, std::optional< std::uint32_t > const &flags, std::optional< std::pair< Issue, Issue > > const &assets, std::optional< jtx::seq > const &seq, std::optional< std::uint16_t > const &tfee=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
IOUAmount deposit (DepositArg const &arg)
 
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)
 
IOUAmount withdrawAll (std::optional< Account > const &account, std::optional< STAmount > const &asset1OutDetails=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
IOUAmount withdraw (std::optional< Account > const &account, STAmount const &asset1Out, std::optional< STAmount > const &asset2Out=std::nullopt, std::optional< IOUAmount > const &maxEP=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
IOUAmount withdraw (std::optional< Account > const &account, std::optional< LPToken > const &tokens, std::optional< STAmount > const &asset1Out, std::optional< STAmount > const &asset2Out, std::optional< IOUAmount > const &maxEP, std::optional< std::uint32_t > const &flags, std::optional< std::pair< Issue, Issue > > const &assets, std::optional< jtx::seq > const &seq, std::optional< ter > const &ter=std::nullopt)
 
IOUAmount withdraw (WithdrawArg const &arg)
 
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)
 
void vote (VoteArg const &arg)
 
Json::Value bid (BidArg const &arg)
 
AccountID const & ammAccount () const
 
Issue lptIssue () const
 
IOUAmount tokens () const
 
IOUAmount getLPTokensBalance (std::optional< AccountID > const &account=std::nullopt) const
 
std::string operator[] (AccountID const &lp)
 
Json::Value operator() (AccountID const &lp)
 
void ammDelete (AccountID const &deleter, std::optional< ter > const &ter=std::nullopt)
 
void setClose (bool close)
 
uint256 ammID () const
 
void setTokens (Json::Value &jv, std::optional< std::pair< Issue, Issue > > const &assets=std::nullopt)
 

Private Member Functions

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)
 
IOUAmount deposit (std::optional< Account > const &account, Json::Value &jv, std::optional< std::pair< Issue, Issue > > const &assets=std::nullopt, std::optional< jtx::seq > const &seq=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
IOUAmount withdraw (std::optional< Account > const &account, Json::Value &jv, std::optional< jtx::seq > const &seq, std::optional< std::pair< Issue, Issue > > const &assets=std::nullopt, std::optional< ter > const &ter=std::nullopt)
 
void log (bool log)
 
bool expectAmmInfo (STAmount const &asset1, STAmount const &asset2, IOUAmount const &balance, Json::Value const &jv) const
 
void submit (Json::Value const &jv, std::optional< jtx::seq > const &seq, std::optional< ter > const &ter)
 
bool expectAuctionSlot (auto &&cb) const
 
IOUAmount initialTokens ()
 

Private Attributes

Envenv_
 
Account const creatorAccount_
 
STAmount const asset1_
 
STAmount const asset2_
 
uint256 const ammID_
 
bool log_
 
bool doClose_
 
IOUAmount lastPurchasePrice_
 
std::optional< IOUAmountbidMin_
 
std::optional< IOUAmountbidMax_
 
std::optional< msig > const msig_
 
std::uint32_t const fee_
 
AccountID const ammAccount_
 
Issue const lptIssue_
 
IOUAmount const initialLPTokens_
 

Friends

std::ostreamoperator<< (std::ostream &s, AMM const &amm)
 

Detailed Description

Convenience class to test AMM functionality.

Definition at line 104 of file AMM.h.

Constructor & Destructor Documentation

◆ AMM() [1/3]

ripple::test::jtx::AMM::AMM ( Env env,
Account const &  account,
STAmount const &  asset1,
STAmount const &  asset2,
bool  log = false,
std::uint16_t  tfee = 0,
std::uint32_t  fee = 0,
std::optional< std::uint32_t flags = std::nullopt,
std::optional< jtx::seq seq = std::nullopt,
std::optional< jtx::msig ms = std::nullopt,
std::optional< ter > const &  ter = std::nullopt,
bool  close = true 
)

Definition at line 36 of file AMM.cpp.

◆ AMM() [2/3]

ripple::test::jtx::AMM::AMM ( Env env,
Account const &  account,
STAmount const &  asset1,
STAmount const &  asset2,
ter const &  ter,
bool  log = false,
bool  close = true 
)

Definition at line 70 of file AMM.cpp.

◆ AMM() [3/3]

ripple::test::jtx::AMM::AMM ( Env env,
Account const &  account,
STAmount const &  asset1,
STAmount const &  asset2,
CreateArg const &  arg 
)

Definition at line 93 of file AMM.cpp.

Member Function Documentation

◆ ammRpcInfo()

Json::Value ripple::test::jtx::AMM::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.

Definition at line 147 of file AMM.cpp.

◆ expectBalances()

bool ripple::test::jtx::AMM::expectBalances ( STAmount const &  asset1,
STAmount const &  asset2,
IOUAmount const &  lpt,
std::optional< AccountID > const &  account = std::nullopt 
) const

Verify the AMM balances.

Definition at line 218 of file AMM.cpp.

◆ balances() [1/2]

std::tuple< STAmount, STAmount, STAmount > ripple::test::jtx::AMM::balances ( Issue const &  issue1,
Issue const &  issue2,
std::optional< AccountID > const &  account = std::nullopt 
) const

Get AMM balances for the token pair.

Definition at line 193 of file AMM.cpp.

◆ balances() [2/2]

std::tuple< STAmount, STAmount, STAmount > ripple::test::jtx::AMM::balances ( std::optional< AccountID > const &  account = std::nullopt) const

Definition at line 181 of file AMM.h.

◆ expectLPTokens()

bool ripple::test::jtx::AMM::expectLPTokens ( AccountID const &  account,
IOUAmount const &  tokens 
) const

Definition at line 248 of file AMM.cpp.

◆ expectAuctionSlot() [1/3]

bool ripple::test::jtx::AMM::expectAuctionSlot ( std::uint32_t  fee,
std::optional< std::uint8_t timeSlot,
IOUAmount  expectedPrice 
) const
Parameters
feeexpected discounted fee
timeSlotexpected time slot
expectedPriceexpected slot price

Definition at line 261 of file AMM.cpp.

◆ expectAuctionSlot() [2/3]

bool ripple::test::jtx::AMM::expectAuctionSlot ( std::vector< AccountID > const &  authAccount) const

Definition at line 279 of file AMM.cpp.

◆ expectTradingFee()

bool ripple::test::jtx::AMM::expectTradingFee ( std::uint16_t  fee) const

Definition at line 298 of file AMM.cpp.

◆ expectAmmRpcInfo()

bool ripple::test::jtx::AMM::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

Definition at line 314 of file AMM.cpp.

◆ ammExists()

bool ripple::test::jtx::AMM::ammExists ( ) const

Definition at line 306 of file AMM.cpp.

◆ deposit() [1/5]

IOUAmount ripple::test::jtx::AMM::deposit ( std::optional< Account > const &  account,
LPToken  tokens,
std::optional< STAmount > const &  asset1InDetails = std::nullopt,
std::optional< std::uint32_t > const &  flags = std::nullopt,
std::optional< ter > const &  ter = std::nullopt 
)

Definition at line 397 of file AMM.cpp.

◆ deposit() [2/5]

IOUAmount ripple::test::jtx::AMM::deposit ( std::optional< Account > const &  account,
STAmount const &  asset1InDetails,
std::optional< STAmount > const &  asset2InAmount = std::nullopt,
std::optional< STAmount > const &  maxEP = std::nullopt,
std::optional< std::uint32_t > const &  flags = std::nullopt,
std::optional< ter > const &  ter = std::nullopt 
)

Definition at line 418 of file AMM.cpp.

◆ deposit() [3/5]

IOUAmount ripple::test::jtx::AMM::deposit ( std::optional< Account > const &  account,
std::optional< LPToken tokens,
std::optional< STAmount > const &  asset1In,
std::optional< STAmount > const &  asset2In,
std::optional< STAmount > const &  maxEP,
std::optional< std::uint32_t > const &  flags,
std::optional< std::pair< Issue, Issue > > const &  assets,
std::optional< jtx::seq > const &  seq,
std::optional< std::uint16_t > const &  tfee = std::nullopt,
std::optional< ter > const &  ter = std::nullopt 
)

Definition at line 441 of file AMM.cpp.

◆ deposit() [4/5]

IOUAmount ripple::test::jtx::AMM::deposit ( DepositArg const &  arg)

Definition at line 488 of file AMM.cpp.

◆ withdraw() [1/5]

IOUAmount ripple::test::jtx::AMM::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 
)

Definition at line 523 of file AMM.cpp.

◆ withdrawAll()

IOUAmount ripple::test::jtx::AMM::withdrawAll ( std::optional< Account > const &  account,
std::optional< STAmount > const &  asset1OutDetails = std::nullopt,
std::optional< ter > const &  ter = std::nullopt 
)

Definition at line 260 of file AMM.h.

◆ withdraw() [2/5]

IOUAmount ripple::test::jtx::AMM::withdraw ( std::optional< Account > const &  account,
STAmount const &  asset1Out,
std::optional< STAmount > const &  asset2Out = std::nullopt,
std::optional< IOUAmount > const &  maxEP = std::nullopt,
std::optional< ter > const &  ter = std::nullopt 
)

Definition at line 543 of file AMM.cpp.

◆ withdraw() [3/5]

IOUAmount ripple::test::jtx::AMM::withdraw ( std::optional< Account > const &  account,
std::optional< LPToken > const &  tokens,
std::optional< STAmount > const &  asset1Out,
std::optional< STAmount > const &  asset2Out,
std::optional< IOUAmount > const &  maxEP,
std::optional< std::uint32_t > const &  flags,
std::optional< std::pair< Issue, Issue > > const &  assets,
std::optional< jtx::seq > const &  seq,
std::optional< ter > const &  ter = std::nullopt 
)

Definition at line 564 of file AMM.cpp.

◆ withdraw() [4/5]

IOUAmount ripple::test::jtx::AMM::withdraw ( WithdrawArg const &  arg)

Definition at line 608 of file AMM.cpp.

◆ vote() [1/2]

void ripple::test::jtx::AMM::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 
)

Definition at line 623 of file AMM.cpp.

◆ vote() [2/2]

void ripple::test::jtx::AMM::vote ( VoteArg const &  arg)

Definition at line 644 of file AMM.cpp.

◆ bid()

Json::Value ripple::test::jtx::AMM::bid ( BidArg const &  arg)

Definition at line 650 of file AMM.cpp.

◆ ammAccount()

AccountID const & ripple::test::jtx::AMM::ammAccount ( ) const

Definition at line 312 of file AMM.h.

◆ lptIssue()

Issue ripple::test::jtx::AMM::lptIssue ( ) const

Definition at line 318 of file AMM.h.

◆ tokens()

IOUAmount ripple::test::jtx::AMM::tokens ( ) const

Definition at line 324 of file AMM.h.

◆ getLPTokensBalance()

IOUAmount ripple::test::jtx::AMM::getLPTokensBalance ( std::optional< AccountID > const &  account = std::nullopt) const

Definition at line 231 of file AMM.cpp.

◆ operator[]()

std::string ripple::test::jtx::AMM::operator[] ( AccountID const &  lp)

Definition at line 342 of file AMM.h.

◆ operator()()

Json::Value ripple::test::jtx::AMM::operator() ( AccountID const &  lp)

Definition at line 348 of file AMM.h.

◆ ammDelete()

void ripple::test::jtx::AMM::ammDelete ( AccountID const &  deleter,
std::optional< ter > const &  ter = std::nullopt 
)

Definition at line 778 of file AMM.cpp.

◆ setClose()

void ripple::test::jtx::AMM::setClose ( bool  close)

Definition at line 359 of file AMM.h.

◆ ammID()

uint256 ripple::test::jtx::AMM::ammID ( ) const

Definition at line 365 of file AMM.h.

◆ setTokens()

void ripple::test::jtx::AMM::setTokens ( Json::Value jv,
std::optional< std::pair< Issue, Issue > > const &  assets = std::nullopt 
)

Definition at line 357 of file AMM.cpp.

◆ create()

AccountID ripple::test::jtx::AMM::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 
)
private

Definition at line 115 of file AMM.cpp.

◆ deposit() [5/5]

IOUAmount ripple::test::jtx::AMM::deposit ( std::optional< Account > const &  account,
Json::Value jv,
std::optional< std::pair< Issue, Issue > > const &  assets = std::nullopt,
std::optional< jtx::seq > const &  seq = std::nullopt,
std::optional< ter > const &  ter = std::nullopt 
)
private

Definition at line 378 of file AMM.cpp.

◆ withdraw() [5/5]

IOUAmount ripple::test::jtx::AMM::withdraw ( std::optional< Account > const &  account,
Json::Value jv,
std::optional< jtx::seq > const &  seq,
std::optional< std::pair< Issue, Issue > > const &  assets = std::nullopt,
std::optional< ter > const &  ter = std::nullopt 
)
private

Definition at line 504 of file AMM.cpp.

◆ log()

void ripple::test::jtx::AMM::log ( bool  log)
private

Definition at line 400 of file AMM.h.

◆ expectAmmInfo()

bool ripple::test::jtx::AMM::expectAmmInfo ( STAmount const &  asset1,
STAmount const &  asset2,
IOUAmount const &  balance,
Json::Value const &  jv 
) const
private

Definition at line 328 of file AMM.cpp.

◆ submit()

void ripple::test::jtx::AMM::submit ( Json::Value const &  jv,
std::optional< jtx::seq > const &  seq,
std::optional< ter > const &  ter 
)
private

Definition at line 714 of file AMM.cpp.

◆ expectAuctionSlot() [3/3]

bool ripple::test::jtx::AMM::expectAuctionSlot ( auto &&  cb) const
private

Definition at line 745 of file AMM.cpp.

◆ initialTokens()

IOUAmount ripple::test::jtx::AMM::initialTokens ( )
private

Definition at line 25 of file AMM.cpp.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream s,
AMM const &  amm 
)
friend

Definition at line 333 of file AMM.h.

Member Data Documentation

◆ env_

Env& ripple::test::jtx::AMM::env_
private

Definition at line 106 of file AMM.h.

◆ creatorAccount_

Account const ripple::test::jtx::AMM::creatorAccount_
private

Definition at line 107 of file AMM.h.

◆ asset1_

STAmount const ripple::test::jtx::AMM::asset1_
private

Definition at line 108 of file AMM.h.

◆ asset2_

STAmount const ripple::test::jtx::AMM::asset2_
private

Definition at line 109 of file AMM.h.

◆ ammID_

uint256 const ripple::test::jtx::AMM::ammID_
private

Definition at line 110 of file AMM.h.

◆ log_

bool ripple::test::jtx::AMM::log_
private

Definition at line 111 of file AMM.h.

◆ doClose_

bool ripple::test::jtx::AMM::doClose_
private

Definition at line 112 of file AMM.h.

◆ lastPurchasePrice_

IOUAmount ripple::test::jtx::AMM::lastPurchasePrice_
private

Definition at line 114 of file AMM.h.

◆ bidMin_

std::optional<IOUAmount> ripple::test::jtx::AMM::bidMin_
private

Definition at line 115 of file AMM.h.

◆ bidMax_

std::optional<IOUAmount> ripple::test::jtx::AMM::bidMax_
private

Definition at line 116 of file AMM.h.

◆ msig_

std::optional<msig> const ripple::test::jtx::AMM::msig_
private

Definition at line 118 of file AMM.h.

◆ fee_

std::uint32_t const ripple::test::jtx::AMM::fee_
private

Definition at line 120 of file AMM.h.

◆ ammAccount_

AccountID const ripple::test::jtx::AMM::ammAccount_
private

Definition at line 121 of file AMM.h.

◆ lptIssue_

Issue const ripple::test::jtx::AMM::lptIssue_
private

Definition at line 122 of file AMM.h.

◆ initialLPTokens_

IOUAmount const ripple::test::jtx::AMM::initialLPTokens_
private

Definition at line 123 of file AMM.h.