xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
protocol
LedgerHeader.h
1
#pragma once
2
3
#include <xrpl/basics/Slice.h>
4
#include <xrpl/basics/base_uint.h>
5
#include <xrpl/basics/chrono.h>
6
#include <xrpl/beast/utility/Zero.h>
7
#include <xrpl/protocol/Protocol.h>
8
#include <xrpl/protocol/Serializer.h>
9
#include <xrpl/protocol/XRPAmount.h>
10
11
#include <
cstdint
>
12
13
namespace
xrpl
{
14
18
struct
LedgerHeader
19
{
20
explicit
LedgerHeader
() =
default
;
21
22
//
23
// For all ledgers
24
//
25
26
LedgerIndex
seq
= 0;
27
NetClock::time_point
parentCloseTime
;
28
29
//
30
// For closed ledgers
31
//
32
33
// Closed means "tx set already determined"
34
UInt256
hash
=
beast::kZero
;
35
UInt256
txHash
=
beast::kZero
;
36
UInt256
accountHash
=
beast::kZero
;
37
UInt256
parentHash
=
beast::kZero
;
38
39
XRPAmount
drops
=
beast::kZero
;
40
41
// If validated is false, it means "not yet validated."
42
// Once validated is true, it will never be set false at a later time.
43
// VFALCO TODO Make this not mutable
44
bool
mutable
validated
=
false
;
45
bool
accepted
=
false
;
46
47
// flags indicating how this ledger close took place
48
int
closeFlags
= 0;
49
50
// the resolution for this ledger close time (2-120 seconds)
51
NetClock::duration
closeTimeResolution
= {};
52
53
// For closed ledgers, the time the ledger
54
// closed. For open ledgers, the time the ledger
55
// will close if there's no transactions.
56
//
57
NetClock::time_point
closeTime
;
58
};
59
60
// ledger close flags
61
static
std::uint32_t
const
kSLcfNoConsensusTime
= 0x01;
62
63
inline
bool
64
getCloseAgree
(
LedgerHeader
const
& info)
65
{
66
return
(info.
closeFlags
&
kSLcfNoConsensusTime
) == 0;
67
}
68
69
void
70
addRaw
(LedgerHeader
const
&, Serializer&,
bool
includeHash =
false
);
71
75
LedgerHeader
76
deserializeHeader
(Slice data,
bool
hasHash =
false
);
77
81
LedgerHeader
82
deserializePrefixedHeader
(Slice data,
bool
hasHash =
false
);
83
87
UInt256
88
calculateLedgerHash
(LedgerHeader
const
& info);
89
90
}
// namespace xrpl
xrpl::NetClock::time_point
std::chrono::time_point< NetClock > time_point
Definition
chrono.h:48
xrpl::NetClock::duration
std::chrono::duration< rep, period > duration
Definition
chrono.h:47
xrpl::XRPAmount
Definition
XRPAmount.h:28
cstdint
std::uint32_t
beast::kZero
constexpr Zero kZero
Definition
Zero.h:30
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::LedgerIndex
std::uint32_t LedgerIndex
A ledger index.
Definition
Protocol.h:382
xrpl::getCloseAgree
bool getCloseAgree(LedgerHeader const &info)
Definition
LedgerHeader.h:64
xrpl::deserializeHeader
LedgerHeader deserializeHeader(Slice data, bool hasHash=false)
Deserialize a ledger header from a byte array.
Definition
libxrpl/protocol/LedgerHeader.cpp:31
xrpl::UInt256
BaseUInt< 256 > UInt256
Definition
base_uint.h:580
xrpl::addRaw
void addRaw(LedgerHeader const &, Serializer &, bool includeHash=false)
Definition
libxrpl/protocol/LedgerHeader.cpp:14
xrpl::calculateLedgerHash
UInt256 calculateLedgerHash(LedgerHeader const &info)
Calculate the hash of a ledger header.
Definition
libxrpl/protocol/LedgerHeader.cpp:60
xrpl::kSLcfNoConsensusTime
static std::uint32_t const kSLcfNoConsensusTime
Definition
LedgerHeader.h:61
xrpl::deserializePrefixedHeader
LedgerHeader deserializePrefixedHeader(Slice data, bool hasHash=false)
Deserialize a ledger header (prefixed with 4 bytes) from a byte array.
Definition
libxrpl/protocol/LedgerHeader.cpp:54
xrpl::LedgerHeader
Information about the notional ledger backing the view.
Definition
LedgerHeader.h:19
xrpl::LedgerHeader::parentCloseTime
NetClock::time_point parentCloseTime
Definition
LedgerHeader.h:27
xrpl::LedgerHeader::seq
LedgerIndex seq
Definition
LedgerHeader.h:26
xrpl::LedgerHeader::accountHash
UInt256 accountHash
Definition
LedgerHeader.h:36
xrpl::LedgerHeader::LedgerHeader
LedgerHeader()=default
xrpl::LedgerHeader::closeFlags
int closeFlags
Definition
LedgerHeader.h:48
xrpl::LedgerHeader::txHash
UInt256 txHash
Definition
LedgerHeader.h:35
xrpl::LedgerHeader::hash
UInt256 hash
Definition
LedgerHeader.h:34
xrpl::LedgerHeader::closeTimeResolution
NetClock::duration closeTimeResolution
Definition
LedgerHeader.h:51
xrpl::LedgerHeader::parentHash
UInt256 parentHash
Definition
LedgerHeader.h:37
xrpl::LedgerHeader::drops
XRPAmount drops
Definition
LedgerHeader.h:39
xrpl::LedgerHeader::validated
bool validated
Definition
LedgerHeader.h:44
xrpl::LedgerHeader::closeTime
NetClock::time_point closeTime
Definition
LedgerHeader.h:57
xrpl::LedgerHeader::accepted
bool accepted
Definition
LedgerHeader.h:45
Generated by
1.17.0