xrpld
Loading...
Searching...
No Matches
RCLCxLedger.h
1#pragma once
2
3#include <xrpld/app/ledger/LedgerToJson.h>
4
5#include <xrpl/basics/chrono.h>
6#include <xrpl/json/json_value.h>
7#include <xrpl/ledger/Ledger.h>
8#include <xrpl/protocol/LedgerHeader.h>
9#include <xrpl/protocol/Protocol.h>
10#include <xrpl/protocol/RippleLedgerHash.h>
11
12#include <memory>
13#include <utility>
14
15namespace xrpl {
16
23{
24public:
28 using ID = LedgerHash;
33
41 RCLCxLedger() = default;
42
51
55 [[nodiscard]] Seq const&
56 seq() const
57 {
58 return ledger->header().seq;
59 }
60
64 [[nodiscard]] ID const&
65 id() const
66 {
67 return ledger->header().hash;
68 }
69
73 [[nodiscard]] ID const&
74 parentID() const
75 {
76 return ledger->header().parentHash;
77 }
78
82 [[nodiscard]] NetClock::duration
84 {
85 return ledger->header().closeTimeResolution;
86 }
87
91 [[nodiscard]] bool
92 closeAgree() const
93 {
94 return xrpl::getCloseAgree(ledger->header());
95 }
96
100 [[nodiscard]] NetClock::time_point
101 closeTime() const
102 {
103 return ledger->header().closeTime;
104 }
105
109 [[nodiscard]] NetClock::time_point
111 {
112 return ledger->header().parentCloseTime;
113 }
114
118 [[nodiscard]] json::Value
119 getJson() const
120 {
121 return xrpl::getJson({*ledger, {}});
122 }
123
131};
132} // namespace xrpl
Represents a JSON value.
Definition json_value.h:117
std::chrono::time_point< NetClock > time_point
Definition chrono.h:48
std::chrono::duration< rep, period > duration
Definition chrono.h:47
LedgerHash ID
Unique identifier of a ledger.
Definition RCLCxLedger.h:28
NetClock::duration closeTimeResolution() const
Resolution used when calculating this ledger's close time.
Definition RCLCxLedger.h:83
bool closeAgree() const
Whether consensus process agreed on close time of the ledger.
Definition RCLCxLedger.h:92
RCLCxLedger(std::shared_ptr< Ledger const > l)
Constructor.
Definition RCLCxLedger.h:48
RCLCxLedger()=default
Default constructor.
NetClock::time_point parentCloseTime() const
The close time of this ledger's parent.
LedgerIndex Seq
Sequence number of a ledger.
Definition RCLCxLedger.h:32
Seq const & seq() const
Sequence number of the ledger.
Definition RCLCxLedger.h:56
ID const & parentID() const
Unique identifier (hash) of this ledger's parent.
Definition RCLCxLedger.h:74
std::shared_ptr< Ledger const > ledger
The ledger instance.
ID const & id() const
Unique identifier (hash) of this ledger.
Definition RCLCxLedger.h:65
NetClock::time_point closeTime() const
The close time of this ledger.
json::Value getJson() const
JSON representation of this ledger.
STL namespace.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
std::uint32_t LedgerIndex
A ledger index.
Definition Protocol.h:370
bool getCloseAgree(LedgerHeader const &info)
uint256 LedgerHash
json::Value getJson(LedgerFill const &fill)
Return a new json::Value representing the ledger with given options.