X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fbase58.cpp;h=e8cde345f8ece987075a2cabb02bbde0b92f8fe4;hb=dc0b8aa506012fbc9147b1eb15dc86f5cd19fedb;hp=82893b1a394df7067d3f6ba1d7d5bce52881a0b3;hpb=ac32c470c72e4488b9691b430df554205eb0fe6c;p=novacoin.git 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); } - -