File tree Expand file tree Collapse file tree 3 files changed +74
-64
lines changed Expand file tree Collapse file tree 3 files changed +74
-64
lines changed Original file line number Diff line number Diff line change @@ -246,6 +246,7 @@ BITCOIN_CORE_H = \
246
246
util/fees.h \
247
247
util/getuniquepath.h \
248
248
util/golombrice.h \
249
+ util/hash_type.h \
249
250
util/hasher.h \
250
251
util/macros.h \
251
252
util/message.h \
Original file line number Diff line number Diff line change 8
8
9
9
#include < script/interpreter.h>
10
10
#include < uint256.h>
11
+ #include < util/hash_type.h>
11
12
12
13
#include < string>
13
14
#include < variant>
@@ -18,70 +19,6 @@ class CKeyID;
18
19
class CScript ;
19
20
struct ScriptHash ;
20
21
21
- template <typename HashType>
22
- class BaseHash
23
- {
24
- protected:
25
- HashType m_hash;
26
-
27
- public:
28
- BaseHash () : m_hash() {}
29
- explicit BaseHash (const HashType& in) : m_hash(in) {}
30
-
31
- unsigned char * begin ()
32
- {
33
- return m_hash.begin ();
34
- }
35
-
36
- const unsigned char * begin () const
37
- {
38
- return m_hash.begin ();
39
- }
40
-
41
- unsigned char * end ()
42
- {
43
- return m_hash.end ();
44
- }
45
-
46
- const unsigned char * end () const
47
- {
48
- return m_hash.end ();
49
- }
50
-
51
- operator std::vector<unsigned char >() const
52
- {
53
- return std::vector<unsigned char >{m_hash.begin (), m_hash.end ()};
54
- }
55
-
56
- std::string ToString () const
57
- {
58
- return m_hash.ToString ();
59
- }
60
-
61
- bool operator ==(const BaseHash<HashType>& other) const noexcept
62
- {
63
- return m_hash == other.m_hash ;
64
- }
65
-
66
- bool operator !=(const BaseHash<HashType>& other) const noexcept
67
- {
68
- return !(m_hash == other.m_hash );
69
- }
70
-
71
- bool operator <(const BaseHash<HashType>& other) const noexcept
72
- {
73
- return m_hash < other.m_hash ;
74
- }
75
-
76
- size_t size () const
77
- {
78
- return m_hash.size ();
79
- }
80
-
81
- unsigned char * data () { return m_hash.data (); }
82
- const unsigned char * data () const { return m_hash.data (); }
83
- };
84
-
85
22
/* * A reference to a CScript: the Hash160 of its serialization (see script.h) */
86
23
class CScriptID : public BaseHash <uint160>
87
24
{
Original file line number Diff line number Diff line change
1
+ // Copyright (c) 2020-2021 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_UTIL_HASH_TYPE_H
6
+ #define BITCOIN_UTIL_HASH_TYPE_H
7
+
8
+ template <typename HashType>
9
+ class BaseHash
10
+ {
11
+ protected:
12
+ HashType m_hash;
13
+
14
+ public:
15
+ BaseHash () : m_hash() {}
16
+ explicit BaseHash (const HashType& in) : m_hash(in) {}
17
+
18
+ unsigned char * begin ()
19
+ {
20
+ return m_hash.begin ();
21
+ }
22
+
23
+ const unsigned char * begin () const
24
+ {
25
+ return m_hash.begin ();
26
+ }
27
+
28
+ unsigned char * end ()
29
+ {
30
+ return m_hash.end ();
31
+ }
32
+
33
+ const unsigned char * end () const
34
+ {
35
+ return m_hash.end ();
36
+ }
37
+
38
+ operator std::vector<unsigned char >() const
39
+ {
40
+ return std::vector<unsigned char >{m_hash.begin (), m_hash.end ()};
41
+ }
42
+
43
+ std::string ToString () const
44
+ {
45
+ return m_hash.ToString ();
46
+ }
47
+
48
+ bool operator ==(const BaseHash<HashType>& other) const noexcept
49
+ {
50
+ return m_hash == other.m_hash ;
51
+ }
52
+
53
+ bool operator !=(const BaseHash<HashType>& other) const noexcept
54
+ {
55
+ return !(m_hash == other.m_hash );
56
+ }
57
+
58
+ bool operator <(const BaseHash<HashType>& other) const noexcept
59
+ {
60
+ return m_hash < other.m_hash ;
61
+ }
62
+
63
+ size_t size () const
64
+ {
65
+ return m_hash.size ();
66
+ }
67
+
68
+ unsigned char * data () { return m_hash.data (); }
69
+ const unsigned char * data () const { return m_hash.data (); }
70
+ };
71
+
72
+ #endif // BITCOIN_UTIL_HASH_TYPE_H
You can’t perform that action at this time.
0 commit comments