/tmp/bitcoin/src/script/keyorigin.h
Line | Count | Source |
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; //!< First 32 bits of the Hash160 of the public key at the root of the path |
15 | | std::vector<uint32_t> path; |
16 | | |
17 | 39.6k | friend bool operator==(const KeyOriginInfo& a, const KeyOriginInfo& b) = default; |
18 | | |
19 | | friend bool operator<(const KeyOriginInfo& a, const KeyOriginInfo& b) |
20 | 4 | { |
21 | | // Compare the fingerprints lexicographically |
22 | 4 | if (a.fingerprint < b.fingerprint) return true; |
23 | 4 | else if (a.fingerprint > b.fingerprint) return false; |
24 | | |
25 | | // Compare the sizes of the paths, shorter is "less than" |
26 | 4 | if (a.path.size() < b.path.size()) { |
27 | 0 | return true; |
28 | 4 | } else if (a.path.size() > b.path.size()) { |
29 | 0 | return false; |
30 | 0 | } |
31 | | // Paths same length, compare them lexicographically |
32 | 4 | return a.path < b.path; |
33 | 4 | } |
34 | | |
35 | 278 | SERIALIZE_METHODS(KeyOriginInfo, obj) { READWRITE(obj.fingerprint, obj.path); }void KeyOriginInfo::SerializationOps<DataStream, KeyOriginInfo, ActionUnserialize>(KeyOriginInfo&, DataStream&, ActionUnserialize) Line | Count | Source | 35 | 278 | SERIALIZE_METHODS(KeyOriginInfo, obj) { READWRITE(obj.fingerprint, obj.path); } |
Unexecuted instantiation: void KeyOriginInfo::SerializationOps<DataStream, KeyOriginInfo const, ActionSerialize>(KeyOriginInfo const&, DataStream&, ActionSerialize) |
36 | | |
37 | | void clear() |
38 | 1.22k | { |
39 | 1.22k | fingerprint.fill(0); |
40 | 1.22k | path.clear(); |
41 | 1.22k | } |
42 | | }; |
43 | | |
44 | | #endif // BITCOIN_SCRIPT_KEYORIGIN_H |