|
rippled
|
AMMCreate implements Automatic Market Maker(AMM) creation Transactor. More...


Public Types | |
| enum | ConsequencesFactoryType { Normal, Blocker, Custom } |
Public Member Functions | |
| AMMCreate (ApplyContext &ctx) | |
| TER | doApply () override |
| Attempt to create the AMM instance. More... | |
| std::pair< TER, bool > | operator() () |
| Process the transaction. More... | |
| ApplyView & | view () |
| ApplyView const & | view () const |
Static Public Member Functions | |
| static NotTEC | preflight (PreflightContext const &ctx) |
| static XRPAmount | calculateBaseFee (ReadView const &view, STTx const &tx) |
| static TER | preclaim (PreclaimContext const &ctx) |
| static NotTEC | checkSeqProxy (ReadView const &view, STTx const &tx, beast::Journal j) |
| static NotTEC | checkPriorTxAndLastLedger (PreclaimContext const &ctx) |
| static TER | checkFee (PreclaimContext const &ctx, XRPAmount baseFee) |
| static NotTEC | checkSign (PreclaimContext const &ctx) |
| static TER | ticketDelete (ApplyView &view, AccountID const &account, uint256 const &ticketIndex, beast::Journal j) |
Static Public Attributes | |
| static constexpr ConsequencesFactoryType | ConsequencesFactory {Normal} |
Protected Member Functions | |
| TER | apply () |
| virtual void | preCompute () |
Static Protected Member Functions | |
| 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. More... | |
Protected Attributes | |
| ApplyContext & | ctx_ |
| const beast::Journal | j_ |
| const AccountID | account_ |
| XRPAmount | mPriorBalance |
| XRPAmount | mSourceBalance |
Private Member Functions | |
| std::pair< TER, XRPAmount > | reset (XRPAmount fee) |
| Reset the context, discarding any changes made and adjust the fee. More... | |
| TER | consumeSeqProxy (SLE::pointer const &sleAccount) |
| TER | payFee () |
Static Private Member Functions | |
| static NotTEC | checkSingleSign (PreclaimContext const &ctx) |
| static NotTEC | checkMultiSign (PreclaimContext const &ctx) |
AMMCreate implements Automatic Market Maker(AMM) creation Transactor.
It creates a new AMM instance with two tokens. Any trader, or Liquidity Provider (LP), can create the AMM instance and receive in return shares of the AMM pool in the form on LPTokens. The number of tokens that LP gets are determined by LPTokens = sqrt(A * B), where A and B is the current composition of the AMM pool. LP can add (AMMDeposit) or withdraw (AMMWithdraw) tokens from AMM and AMM can be used transparently in the payment or offer crossing transactions. Trading fee is charged to the traders for the trades executed against AMM instance. The fee is added to the AMM pool and distributed to the LPs in proportion to the LPTokens upon liquidity removal. The fee can be voted on by LP's (AMMVote). LP's can continuously bid (AMMBid) for the 24 hour auction slot, which enables LP's to trade at zero trading fee. AMM instance creates AccountRoot object with disabled master key for book-keeping of XRP balance if one of the tokens is XRP, a trustline for each IOU token, a trustline to keep track of LPTokens, and ltAMM ledger object. AccountRoot ID is generated internally from the parent's hash. ltAMM's object ID is hash{token1.currency, token1.issuer, token2.currency, token2.issuer}, where issue1 < issue2. ltAMM object provides mapping from the hash to AccountRoot ID and contains: AMMAccount - AMM AccountRoot ID. TradingFee - AMM voted TradingFee. VoteSlots - Array of VoteEntry, contains fee vote information. AuctionSlot - Auction slot, contains discounted fee bid information. LPTokenBalance - LPTokens outstanding balance. AMMToken - currency/issuer information for AMM tokens. AMMDeposit, AMMWithdraw, AMMVote, and AMMBid transactions use the hash to access AMM instance.
Definition at line 57 of file AMMCreate.h.
|
inherited |
| Enumerator | |
|---|---|
| Normal | |
| Blocker | |
| Custom | |
Definition at line 101 of file Transactor.h.
|
explicit |
Definition at line 62 of file AMMCreate.h.
|
static |
Definition at line 36 of file AMMCreate.cpp.
Definition at line 82 of file AMMCreate.cpp.
|
static |
Definition at line 89 of file AMMCreate.cpp.
|
overridevirtual |
Attempt to create the AMM instance.
Implements ripple::Transactor.
Definition at line 366 of file AMMCreate.cpp.
Process the transaction.
Definition at line 827 of file Transactor.cpp.
|
inherited |
Definition at line 107 of file Transactor.h.
|
inherited |
Definition at line 113 of file Transactor.h.
|
staticinherited |
Definition at line 263 of file Transactor.cpp.
|
staticinherited |
Definition at line 335 of file Transactor.cpp.
|
staticinherited |
Definition at line 190 of file Transactor.cpp.
|
staticinherited |
Definition at line 478 of file Transactor.cpp.
|
staticinherited |
Definition at line 383 of file Transactor.cpp.
|
protectedinherited |
Definition at line 443 of file Transactor.cpp.
|
protectedvirtualinherited |
Reimplemented in ripple::SetSignerList, ripple::CreateOffer, and ripple::Change.
Definition at line 437 of file Transactor.cpp.
|
staticprotectedinherited |
Compute the minimum fee required to process a transaction with a given baseFee based on the current server load.
| app | The application hosting the server |
| baseFee | The base fee of a candidate transaction |
| fees | Fee settings from the current ledger |
| flags | Transaction processing fees |
Definition at line 180 of file Transactor.cpp.
Reset the context, discarding any changes made and adjust the fee.
Definition at line 788 of file Transactor.cpp.
|
privateinherited |
Definition at line 365 of file Transactor.cpp.
|
privateinherited |
Definition at line 243 of file Transactor.cpp.
|
staticprivateinherited |
Definition at line 488 of file Transactor.cpp.
|
staticprivateinherited |
Definition at line 562 of file Transactor.cpp.
|
staticconstexpr |
Definition at line 60 of file AMMCreate.h.
|
protectedinherited |
Definition at line 88 of file Transactor.h.
|
protectedinherited |
Definition at line 89 of file Transactor.h.
|
protectedinherited |
Definition at line 91 of file Transactor.h.
|
protectedinherited |
Definition at line 92 of file Transactor.h.
|
protectedinherited |
Definition at line 93 of file Transactor.h.
1.8.17