aboutsummaryrefslogtreecommitdiff
path: root/src/pubkey.h
diff options
context:
space:
mode:
authorCory Fields <cory-nospam-@coryfields.com>2015-04-21 18:09:37 -0400
committerJonas Schnelli <jonas.schnelli@include7.ch>2015-05-06 17:22:46 +0200
commita574899671d428682b339ff988363ecaf7dfcd07 (patch)
treedcf40bfa5daab7b6d18a9f301eb460069859ee8c /src/pubkey.h
parent8cf1485f3b7a976548128c0d3866747819cbea51 (diff)
downloadbitcoin-a574899671d428682b339ff988363ecaf7dfcd07.tar.xz
chaincodes: abstract away more chaincode behavior
[squashme] replace struct CCainCode with a typedef uint256 ChainCode
Diffstat (limited to 'src/pubkey.h')
-rw-r--r--src/pubkey.h36
1 files changed, 4 insertions, 32 deletions
diff --git a/src/pubkey.h b/src/pubkey.h
index 8924708835..cce9c826e5 100644
--- a/src/pubkey.h
+++ b/src/pubkey.h
@@ -31,35 +31,7 @@ public:
CKeyID(const uint160& in) : uint160(in) {}
};
-struct CChainCode
-{
- unsigned char data[32];
-
- void SetNull()
- {
- memset(data, 0, sizeof(data));
- }
-
- CChainCode()
- {
- SetNull();
- }
-
- bool IsNull() const
- {
- for (int i=0; i<32; i++)
- if (data[i])
- return false;
- return true;
- }
-
- ADD_SERIALIZE_METHODS;
-
- template <typename Stream, typename Operation>
- inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) {
- READWRITE(FLATDATA(data));
- }
-};
+typedef uint256 ChainCode;
/** An encapsulated public key. */
class CPubKey
@@ -212,20 +184,20 @@ public:
bool Decompress();
//! Derive BIP32 child pubkey.
- bool Derive(CPubKey& pubkeyChild, unsigned char ccChild[32], unsigned int nChild, const unsigned char cc[32]) const;
+ bool Derive(CPubKey& pubkeyChild, ChainCode &ccChild, unsigned int nChild, const ChainCode& cc) const;
};
struct CExtPubKey {
unsigned char nDepth;
unsigned char vchFingerprint[4];
unsigned int nChild;
- CChainCode chaincode;
+ ChainCode chaincode;
CPubKey pubkey;
friend bool operator==(const CExtPubKey &a, const CExtPubKey &b)
{
return a.nDepth == b.nDepth && memcmp(&a.vchFingerprint[0], &b.vchFingerprint[0], 4) == 0 && a.nChild == b.nChild &&
- memcmp(&a.chaincode.data[0], &b.chaincode.data[0], 32) == 0 && a.pubkey == b.pubkey;
+ a.chaincode == b.chaincode && a.pubkey == b.pubkey;
}
void Encode(unsigned char code[74]) const;