Files
rippled/include/xrpl/ledger/AcceptedLedgerTx.h
Jingchen ac0ad3627f refactor: Modularize HashRouter, Conditions, and OrderBookDB (#6226)
This change modularizes additional components by moving code to `libxrpl`.
2026-02-13 10:34:37 -05:00

88 lines
1.7 KiB
C++

#pragma once
#include <xrpl/basics/CountedObject.h>
#include <xrpl/ledger/ReadView.h>
#include <xrpl/protocol/AccountID.h>
#include <xrpl/protocol/STTx.h>
#include <xrpl/protocol/TxMeta.h>
#include <boost/container/flat_set.hpp>
namespace xrpl {
/**
A transaction that is in a closed ledger.
Description
An accepted ledger transaction contains additional information that the
server needs to tell clients about the transaction. For example,
- The transaction in JSON form
- Which accounts are affected
* This is used by InfoSub to report to clients
- Cached stuff
*/
class AcceptedLedgerTx : public CountedObject<AcceptedLedgerTx>
{
public:
AcceptedLedgerTx(
std::shared_ptr<ReadView const> const& ledger,
std::shared_ptr<STTx const> const&,
std::shared_ptr<STObject const> const&);
std::shared_ptr<STTx const> const&
getTxn() const
{
return mTxn;
}
TxMeta const&
getMeta() const
{
return mMeta;
}
boost::container::flat_set<AccountID> const&
getAffected() const
{
return mAffected;
}
TxID
getTransactionID() const
{
return mTxn->getTransactionID();
}
TxType
getTxnType() const
{
return mTxn->getTxnType();
}
TER
getResult() const
{
return mMeta.getResultTER();
}
std::uint32_t
getTxnSeq() const
{
return mMeta.getIndex();
}
std::string
getEscMeta() const;
Json::Value const&
getJson() const
{
return mJson;
}
private:
std::shared_ptr<STTx const> mTxn;
TxMeta mMeta;
boost::container::flat_set<AccountID> mAffected;
Blob mRawMeta;
Json::Value mJson;
};
} // namespace xrpl