#pragma once #include #include #include #include #include #include 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 { public: AcceptedLedgerTx( std::shared_ptr const& ledger, std::shared_ptr const&, std::shared_ptr const&); [[nodiscard]] std::shared_ptr const& getTxn() const { return mTxn; } [[nodiscard]] TxMeta const& getMeta() const { return mMeta; } [[nodiscard]] boost::container::flat_set const& getAffected() const { return mAffected; } [[nodiscard]] TxID getTransactionID() const { return mTxn->getTransactionID(); } [[nodiscard]] TxType getTxnType() const { return mTxn->getTxnType(); } [[nodiscard]] TER getResult() const { return mMeta.getResultTER(); } [[nodiscard]] std::uint32_t getTxnSeq() const { return mMeta.getIndex(); } [[nodiscard]] std::string getEscMeta() const; [[nodiscard]] Json::Value const& getJson() const { return mJson; } private: std::shared_ptr mTxn; TxMeta mMeta; boost::container::flat_set mAffected; Blob mRawMeta; Json::Value mJson; }; } // namespace xrpl