Branch data Line data Source code
# 1 : : // Copyright (c) 2019-2020 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 <serialize.h> # 9 : : #include <vector> # 10 : : # 11 : : struct KeyOriginInfo # 12 : : { # 13 : : unsigned char fingerprint[4]; //!< First 32 bits of the Hash160 of the public key at the root of the path # 14 : : std::vector<uint32_t> path; # 15 : : # 16 : : friend bool operator==(const KeyOriginInfo& a, const KeyOriginInfo& b) # 17 : 4800 : { # 18 [ + - ][ + - ]: 4800 : return std::equal(std::begin(a.fingerprint), std::end(a.fingerprint), std::begin(b.fingerprint)) && a.path == b.path; # 19 : 4800 : } # 20 : : # 21 : 39910 : SERIALIZE_METHODS(KeyOriginInfo, obj) { READWRITE(obj.fingerprint, obj.path); } # 22 : : # 23 : : void clear() # 24 : 847384 : { # 25 : 847384 : memset(fingerprint, 0, 4); # 26 : 847384 : path.clear(); # 27 : 847384 : } # 28 : : }; # 29 : : # 30 : : #endif // BITCOIN_SCRIPT_KEYORIGIN_H