rippled
Loading...
Searching...
No Matches
AMMInvariant.h
1#pragma once
2
3#include <xrpl/beast/utility/Journal.h>
4#include <xrpl/ledger/ReadView.h>
5#include <xrpl/protocol/STAmount.h>
6#include <xrpl/protocol/STTx.h>
7#include <xrpl/protocol/TER.h>
8
9#include <optional>
10
11namespace xrpl {
12
14{
18 bool ammPoolChanged_{false};
19
20public:
21 enum class ZeroAllowed : bool { No = false, Yes = true };
22
24 {
25 }
26 void
28
29 bool
30 finalize(STTx const&, TER const, XRPAmount const, ReadView const&, beast::Journal const&);
31
32private:
33 bool
34 finalizeBid(bool enforce, beast::Journal const&) const;
35 bool
36 finalizeVote(bool enforce, beast::Journal const&) const;
37 bool
38 finalizeCreate(STTx const&, ReadView const&, bool enforce, beast::Journal const&) const;
39 bool
40 finalizeDelete(bool enforce, TER res, beast::Journal const&) const;
41 bool
42 finalizeDeposit(STTx const&, ReadView const&, bool enforce, beast::Journal const&) const;
43 // Includes clawback
44 bool
45 finalizeWithdraw(STTx const&, ReadView const&, bool enforce, beast::Journal const&) const;
46 bool
47 finalizeDEX(bool enforce, beast::Journal const&) const;
48 bool
49 generalInvariant(STTx const&, ReadView const&, ZeroAllowed zeroAllowed, beast::Journal const&)
50 const;
51};
52
53} // namespace xrpl
A generic endpoint for log messages.
Definition Journal.h:40
A view into a ledger.
Definition ReadView.h:31
std::optional< AccountID > ammAccount_
bool finalize(STTx const &, TER const, XRPAmount const, ReadView const &, beast::Journal const &)
bool finalizeWithdraw(STTx const &, ReadView const &, bool enforce, beast::Journal const &) const
bool finalizeBid(bool enforce, beast::Journal const &) const
bool finalizeCreate(STTx const &, ReadView const &, bool enforce, beast::Journal const &) const
bool finalizeDEX(bool enforce, beast::Journal const &) const
void visitEntry(bool, std::shared_ptr< SLE const > const &, std::shared_ptr< SLE const > const &)
bool finalizeDeposit(STTx const &, ReadView const &, bool enforce, beast::Journal const &) const
bool generalInvariant(STTx const &, ReadView const &, ZeroAllowed zeroAllowed, beast::Journal const &) const
std::optional< STAmount > lptAMMBalanceAfter_
bool finalizeVote(bool enforce, beast::Journal const &) const
bool finalizeDelete(bool enforce, TER res, beast::Journal const &) const
std::optional< STAmount > lptAMMBalanceBefore_
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5