#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 txn_; } [[nodiscard]] TxMeta const& getMeta() const { return meta_; } [[nodiscard]] boost::container::flat_set const& getAffected() const { return affected_; } [[nodiscard]] TxID getTransactionID() const { return txn_->getTransactionID(); } [[nodiscard]] TxType getTxnType() const { return txn_->getTxnType(); } [[nodiscard]] TER getResult() const { return meta_.getResultTER(); } [[nodiscard]] std::uint32_t getTxnSeq() const { return meta_.getIndex(); } [[nodiscard]] std::string getEscMeta() const; [[nodiscard]] json::Value const& getJson() const { return json_; } private: std::shared_ptr txn_; TxMeta meta_; boost::container::flat_set affected_; Blob rawMeta_; json::Value json_; }; } // namespace xrpl