diff options
author | Cory Fields <cory-nospam-@coryfields.com> | 2015-04-21 18:09:37 -0400 |
---|---|---|
committer | Jonas Schnelli <jonas.schnelli@include7.ch> | 2015-05-06 17:22:46 +0200 |
commit | a574899671d428682b339ff988363ecaf7dfcd07 (patch) | |
tree | dcf40bfa5daab7b6d18a9f301eb460069859ee8c /src/pubkey.h | |
parent | 8cf1485f3b7a976548128c0d3866747819cbea51 (diff) |
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.h | 36 |
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; |