xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
conditions
Condition.h
1
#pragma once
2
3
#include <xrpl/basics/Buffer.h>
4
#include <xrpl/basics/Slice.h>
5
#include <xrpl/conditions/detail/utils.h>
6
7
#include <
cstddef
>
8
#include <
cstdint
>
9
#include <
memory
>
10
#include <
set
>
11
#include <
system_error
>
12
#include <
utility
>
13
14
namespace
xrpl::cryptoconditions
{
15
16
enum class
Type
:
std::uint8_t
{
17
PreimageSha256
= 0,
18
PrefixSha256
= 1,
19
ThresholdSha256
= 2,
20
RsaSha256
= 3,
21
Ed25519Sha256
= 4
22
};
23
24
class
Condition
25
{
26
public
:
35
static
constexpr
std::size_t
kMaxSerializedCondition
= 128;
36
48
static
std::unique_ptr<Condition>
49
deserialize
(
Slice
s,
std::error_code
& ec);
50
51
public
:
52
Type
type
;
53
60
Buffer
fingerprint
;
61
65
std::uint32_t
cost
;
66
70
std::set<Type>
subtypes
;
71
72
Condition
(
Type
t,
std::uint32_t
c,
Slice
fp) :
type
(t),
fingerprint
(fp),
cost
(c)
73
{
74
}
75
76
Condition
(
Type
t,
std::uint32_t
c,
Buffer
&& fp) :
type
(t),
fingerprint
(
std
::move(fp)),
cost
(c)
77
{
78
}
79
80
~Condition
() =
default
;
81
82
Condition
(
Condition
const
&) =
default
;
83
Condition
(
Condition
&&) =
default
;
84
85
Condition
() =
delete
;
86
};
87
88
inline
bool
89
operator==
(
Condition
const
& lhs,
Condition
const
& rhs)
90
{
91
return
lhs.
type
== rhs.
type
&& lhs.
cost
== rhs.
cost
&& lhs.
subtypes
== rhs.
subtypes
&&
92
lhs.
fingerprint
== rhs.
fingerprint
;
93
}
94
95
}
// namespace xrpl::cryptoconditions
xrpl::Buffer
Like std::vector<char> but better.
Definition
Buffer.h:19
xrpl::Slice
An immutable linear range of bytes.
Definition
Slice.h:28
xrpl::cryptoconditions::Condition
Definition
Condition.h:25
xrpl::cryptoconditions::Condition::fingerprint
Buffer fingerprint
An identifier for this condition.
Definition
Condition.h:60
xrpl::cryptoconditions::Condition::Condition
Condition()=delete
xrpl::cryptoconditions::Condition::type
Type type
Definition
Condition.h:52
xrpl::cryptoconditions::Condition::subtypes
std::set< Type > subtypes
For compound conditions, set of conditions includes.
Definition
Condition.h:70
xrpl::cryptoconditions::Condition::Condition
Condition(Condition &&)=default
xrpl::cryptoconditions::Condition::kMaxSerializedCondition
static constexpr std::size_t kMaxSerializedCondition
The largest binary condition we support.
Definition
Condition.h:35
xrpl::cryptoconditions::Condition::Condition
Condition(Type t, std::uint32_t c, Buffer &&fp)
Definition
Condition.h:76
xrpl::cryptoconditions::Condition::cost
std::uint32_t cost
The cost associated with this condition.
Definition
Condition.h:65
xrpl::cryptoconditions::Condition::Condition
Condition(Type t, std::uint32_t c, Slice fp)
Definition
Condition.h:72
xrpl::cryptoconditions::Condition::deserialize
static std::unique_ptr< Condition > deserialize(Slice s, std::error_code &ec)
Load a condition from its binary form.
Definition
Condition.cpp:138
xrpl::cryptoconditions::Condition::~Condition
~Condition()=default
xrpl::cryptoconditions::Condition::Condition
Condition(Condition const &)=default
xrpl::cryptoconditions::PreimageSha256
Definition
PreimageSha256.h:19
cstddef
cstdint
std::error_code
std::uint8_t
memory
std
STL namespace.
xrpl::cryptoconditions
Definition
Condition.h:14
xrpl::cryptoconditions::Type
Type
Definition
Condition.h:16
xrpl::cryptoconditions::Type::PrefixSha256
@ PrefixSha256
Definition
Condition.h:18
xrpl::cryptoconditions::Type::ThresholdSha256
@ ThresholdSha256
Definition
Condition.h:19
xrpl::cryptoconditions::Type::Ed25519Sha256
@ Ed25519Sha256
Definition
Condition.h:21
xrpl::cryptoconditions::Type::RsaSha256
@ RsaSha256
Definition
Condition.h:20
xrpl::cryptoconditions::operator==
bool operator==(Condition const &lhs, Condition const &rhs)
Definition
Condition.h:89
set
std::size_t
system_error
std::unique_ptr
utility
Generated by
1.17.0