From dc0b8aa506012fbc9147b1eb15dc86f5cd19fedb Mon Sep 17 00:00:00 2001 From: svost Date: Sun, 9 Jan 2022 23:02:56 +0300 Subject: [PATCH] Move some code from base58.h to base58.cpp --- src/base58.cpp | 22 +++++++++++++----- src/base58.h | 66 +++++++++++--------------------------------------------- 2 files changed, 29 insertions(+), 59 deletions(-) diff --git a/src/base58.cpp b/src/base58.cpp index 82893b1..e8cde34 100644 --- a/src/base58.cpp +++ b/src/base58.cpp @@ -13,11 +13,9 @@ // - Double-clicking selects the whole number as one word if it's all alphanumeric. // -#include -#include +#include "base58.h" #include "key.h" #include "script.h" -#include "base58.h" static const std::array digits = { '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', @@ -275,6 +273,20 @@ bool DecodeBase58Check(const std::string& str, std::vector& vchRe return 0; } + namespace { + class CBitcoinAddressVisitor : public boost::static_visitor { + private: + CBitcoinAddress *addr; + public: + explicit CBitcoinAddressVisitor(CBitcoinAddress *addrIn) : addr(addrIn) { } + + bool operator()(const CKeyID &id) const { return addr->Set(id); } + bool operator()(const CScriptID &id) const { return addr->Set(id); } + bool operator()(const CMalleablePubKey &mpk) const { return addr->Set(mpk); } + bool operator()([[maybe_unused]] const CNoDestination &no) const { return false; } + }; + } // namespace + bool CBitcoinAddress::Set(const CKeyID &id) { SetData(fTestNet ? PUBKEY_ADDRESS_TEST : PUBKEY_ADDRESS, &id, 20); return true; @@ -347,7 +359,7 @@ bool DecodeBase58Check(const std::string& str, std::vector& vchRe if (fSeemsSane && !fSimple) { - // Perform dditional checking + // Perform additional checking // for pubkey pair addresses CMalleablePubKey mpk; mpk.setvch(vchData); @@ -485,5 +497,3 @@ bool DecodeBase58Check(const std::string& str, std::vector& vchRe { SetSecret(vchSecret, fCompressed); } - - diff --git a/src/base58.h b/src/base58.h index 0ca0fda..d8a954a 100644 --- a/src/base58.h +++ b/src/base58.h @@ -15,13 +15,15 @@ #ifndef BITCOIN_BASE58_H #define BITCOIN_BASE58_H -#include -#include -#include // for OPENSSL_cleanse() #include "bignum.h" #include "key.h" #include "script.h" +#include // for OPENSSL_cleanse() + +#include +#include + // Encode a byte sequence as a base58-encoded string std::string EncodeBase58(const unsigned char* pbegin, const unsigned char* pend); @@ -85,21 +87,7 @@ public: * Pubkey-pair-addresses have version 1 (or 6 testnet) * The data vector contains a serialized copy of two compressed ECDSA secp256k1 public keys. */ -class CBitcoinAddress; -class CBitcoinAddressVisitor : public boost::static_visitor -{ -private: - CBitcoinAddress *addr; -public: - CBitcoinAddressVisitor(CBitcoinAddress *addrIn) : addr(addrIn) { } - bool operator()(const CKeyID &id) const; - bool operator()(const CScriptID &id) const; - bool operator()(const CMalleablePubKey &mpk) const; - bool operator()(const CNoDestination &no) const; -}; - -class CBitcoinAddress : public CBase58Data -{ +class CBitcoinAddress : public CBase58Data { public: enum { @@ -118,29 +106,11 @@ public: bool Set(const CBitcoinAddress &dest); bool IsValid() const; - CBitcoinAddress() - { - } - - CBitcoinAddress(const CTxDestination &dest) - { - Set(dest); - } - - CBitcoinAddress(const CMalleablePubKey &mpk) - { - Set(mpk); - } - - CBitcoinAddress(const std::string& strAddress) - { - SetString(strAddress); - } - - CBitcoinAddress(const char* pszAddress) - { - SetString(pszAddress); - } + CBitcoinAddress() {} + CBitcoinAddress(const CTxDestination &dest) { Set(dest); } + CBitcoinAddress(const CMalleablePubKey &mpk) { Set(mpk); } + CBitcoinAddress(const std::string& strAddress) { SetString(strAddress); } + CBitcoinAddress(const char* pszAddress) { SetString(pszAddress); } CTxDestination Get() const; bool GetKeyID(CKeyID &keyID) const; @@ -149,27 +119,17 @@ public: bool IsPair() const; }; -bool inline CBitcoinAddressVisitor::operator()(const CKeyID &id) const { return addr->Set(id); } -bool inline CBitcoinAddressVisitor::operator()(const CScriptID &id) const { return addr->Set(id); } -bool inline CBitcoinAddressVisitor::operator()(const CMalleablePubKey &mpk) const { return addr->Set(mpk); } -bool inline CBitcoinAddressVisitor::operator()(const CNoDestination &id) const { return false; } - /** A base58-encoded secret key */ -class CBitcoinSecret : public CBase58Data -{ +class CBitcoinSecret : public CBase58Data { public: void SetSecret(const CSecret& vchSecret, bool fCompressed); CSecret GetSecret(bool &fCompressedOut); - bool IsValid() const; - bool SetString(const char* pszSecret); bool SetString(const std::string& strSecret); CBitcoinSecret(const CSecret& vchSecret, bool fCompressed); - CBitcoinSecret() - { - } + CBitcoinSecret() {} }; #endif -- 1.7.1