From ef6745879d87cdb6f1061337867a689167e965a1 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 20 Dec 2023 18:11:41 -0500 Subject: [PATCH] key: Add constructor for CExtKey that takes CExtPubKey and CKey We often need to construct a CExtKey given an CExtPubKey and CKey, so implement a constructor that does that for us. --- src/key.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/key.h b/src/key.h index d6b26f891d..53acd179ba 100644 --- a/src/key.h +++ b/src/key.h @@ -223,6 +223,12 @@ struct CExtKey { a.key == b.key; } + CExtKey() = default; + CExtKey(const CExtPubKey& xpub, const CKey& key_in) : nDepth(xpub.nDepth), nChild(xpub.nChild), chaincode(xpub.chaincode), key(key_in) + { + std::copy(xpub.vchFingerprint, xpub.vchFingerprint + sizeof(xpub.vchFingerprint), vchFingerprint); + } + void Encode(unsigned char code[BIP32_EXTKEY_SIZE]) const; void Decode(const unsigned char code[BIP32_EXTKEY_SIZE]); [[nodiscard]] bool Derive(CExtKey& out, unsigned int nChild) const;