#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&); std::shared_ptr const& getTxn() const { return mTxn; } TxMeta const& getMeta() const { return mMeta; } boost::container::flat_set 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 mTxn; TxMeta mMeta; boost::container::flat_set mAffected; Blob mRawMeta; Json::Value mJson; }; } // namespace xrpl