1#include <xrpld/app/ledger/LocalTxs.h>
3#include <xrpl/basics/base_uint.h>
4#include <xrpl/ledger/CanonicalTXSet.h>
5#include <xrpl/ledger/ReadView.h>
6#include <xrpl/protocol/AccountID.h>
7#include <xrpl/protocol/Indexes.h>
8#include <xrpl/protocol/Protocol.h>
9#include <xrpl/protocol/SField.h>
10#include <xrpl/protocol/STTx.h>
52 ,
id_(txn->getTransactionID())
53 ,
account_(txn->getAccountID(sfAccount))
56 if (txn->isFieldPresent(sfLastLedgerSequence))
111 txns_.emplace_back(index, txn);
124 for (
auto const& it :
txns_)
138 txns_.remove_if([&view](
auto const& txn) {
144 AccountID const acctID = txn.getAccount();
151 SeqProxy const seqProx = txn.getSeqProxy();
154 return acctSeq > seqProx;
Holds transactions which were deferred to the next pass of consensus.
void insert(std::shared_ptr< STTx const > txn)
AccountID const & getAccount() const
uint256 const & getID() const
LocalTx(LedgerIndex index, std::shared_ptr< STTx const > const &txn)
std::shared_ptr< STTx const > txn_
SeqProxy getSeqProxy() const
bool isExpired(LedgerIndex i) const
std::shared_ptr< STTx const > const & getTX() const
void sweep(ReadView const &view) override
std::size_t size() override
void pushBack(LedgerIndex index, std::shared_ptr< STTx const > const &txn) override
std::list< LocalTx > txns_
CanonicalTXSet getTxSet() override
virtual bool exists(Keylet const &k) const =0
Determine if a state item exists.
virtual SLE::const_pointer read(Keylet const &k) const =0
Return the state item associated with a key.
virtual LedgerHeader const & header() const =0
Returns information about the ledger.
virtual bool txExists(key_type const &key) const =0
Returns true if a tx exists in the tx map.
A type that represents either a sequence value or a ticket value.
static constexpr SeqProxy sequence(std::uint32_t v)
Factory function to return a sequence-based SeqProxy.
constexpr bool isTicket() const
constexpr std::uint32_t value() const
constexpr bool isSeq() const
Keylet ticket(AccountID const &id, std::uint32_t ticketSeq)
A ticket belonging to an account.
Keylet account(AccountID const &id) noexcept
AccountID root.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
std::uint32_t LedgerIndex
A ledger index.
std::unique_ptr< LocalTxs > makeLocalTxs()
BaseUInt< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.