Bitcoin Core
32.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
script
keyorigin.h
Go to the documentation of this file.
1
// Copyright (c) 2019-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef BITCOIN_SCRIPT_KEYORIGIN_H
6
#define BITCOIN_SCRIPT_KEYORIGIN_H
7
8
#include <
pubkey.h
>
9
#include <
serialize.h
>
10
#include <vector>
11
12
struct
KeyOriginInfo
13
{
14
KeyFingerprint
fingerprint
;
15
std::vector<uint32_t>
path
;
16
17
friend
bool
operator==
(
const
KeyOriginInfo
& a,
const
KeyOriginInfo
& b) =
default
;
18
19
friend
bool
operator<
(
const
KeyOriginInfo
& a,
const
KeyOriginInfo
& b)
20
{
21
// Compare the fingerprints lexicographically
22
if
(a.
fingerprint
< b.
fingerprint
)
return
true
;
23
else
if
(a.
fingerprint
> b.
fingerprint
)
return
false
;
24
25
// Compare the sizes of the paths, shorter is "less than"
26
if
(a.
path
.size() < b.
path
.size()) {
27
return
true
;
28
}
else
if
(a.
path
.size() > b.
path
.size()) {
29
return
false
;
30
}
31
// Paths same length, compare them lexicographically
32
return
a.
path
< b.
path
;
33
}
34
35
SERIALIZE_METHODS
(
KeyOriginInfo
, obj) {
READWRITE
(obj.fingerprint, obj.path); }
36
37
void
clear
()
38
{
39
fingerprint
.fill(0);
40
path
.clear();
41
}
42
};
43
44
#endif
// BITCOIN_SCRIPT_KEYORIGIN_H
pubkey.h
KeyFingerprint
std::array< unsigned char, 4 > KeyFingerprint
Definition
pubkey.h:22
serialize.h
READWRITE
#define READWRITE(...)
Definition
serialize.h:148
KeyOriginInfo
Definition
keyorigin.h:13
KeyOriginInfo::SERIALIZE_METHODS
SERIALIZE_METHODS(KeyOriginInfo, obj)
Definition
keyorigin.h:35
KeyOriginInfo::fingerprint
KeyFingerprint fingerprint
First 32 bits of the Hash160 of the public key at the root of the path.
Definition
keyorigin.h:14
KeyOriginInfo::operator==
friend bool operator==(const KeyOriginInfo &a, const KeyOriginInfo &b)=default
KeyOriginInfo::path
std::vector< uint32_t > path
Definition
keyorigin.h:15
KeyOriginInfo::operator<
friend bool operator<(const KeyOriginInfo &a, const KeyOriginInfo &b)
Definition
keyorigin.h:19
KeyOriginInfo::clear
void clear()
Definition
keyorigin.h:37
Generated on
for Bitcoin Core by
1.18.0