@ -17,6 +17,7 @@
# include <vector>
# include <vector>
const unsigned int BIP32_EXTKEY_SIZE = 74 ;
const unsigned int BIP32_EXTKEY_SIZE = 74 ;
const unsigned int BIP32_EXTKEY_WITH_VERSION_SIZE = 78 ;
/** A reference to a CKey: the Hash160 of its serialized public key */
/** A reference to a CKey: the Hash160 of its serialized public key */
class CKeyID : public uint160
class CKeyID : public uint160
@ -283,6 +284,7 @@ public:
} ;
} ;
struct CExtPubKey {
struct CExtPubKey {
unsigned char version [ 4 ] ;
unsigned char nDepth ;
unsigned char nDepth ;
unsigned char vchFingerprint [ 4 ] ;
unsigned char vchFingerprint [ 4 ] ;
unsigned int nChild ;
unsigned int nChild ;
@ -305,6 +307,8 @@ struct CExtPubKey {
void Encode ( unsigned char code [ BIP32_EXTKEY_SIZE ] ) const ;
void Encode ( unsigned char code [ BIP32_EXTKEY_SIZE ] ) const ;
void Decode ( const unsigned char code [ BIP32_EXTKEY_SIZE ] ) ;
void Decode ( const unsigned char code [ BIP32_EXTKEY_SIZE ] ) ;
void EncodeWithVersion ( unsigned char code [ BIP32_EXTKEY_WITH_VERSION_SIZE ] ) const ;
void DecodeWithVersion ( const unsigned char code [ BIP32_EXTKEY_WITH_VERSION_SIZE ] ) ;
bool Derive ( CExtPubKey & out , unsigned int nChild ) const ;
bool Derive ( CExtPubKey & out , unsigned int nChild ) const ;
} ;
} ;