X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fbase58.h;h=90ce34b05b50c7d700d314b6c51e9338bc0ea016;hb=66116c3847eeb3f0619bc084d96f5add41a156c8;hp=d3a153b1e4ea6797ecf245432fe404c6094ecd74;hpb=922e8e2929a2e78270868385aa46f96002fbcff3;p=novacoin.git diff --git a/src/base58.h b/src/base58.h index d3a153b..90ce34b 100644 --- a/src/base58.h +++ b/src/base58.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2011 The Bitcoin Developers +// Copyright (c) 2009-2012 The Bitcoin Developers // Distributed under the MIT/X11 software license, see the accompanying // file license.txt or http://www.opensource.org/licenses/mit-license.php. @@ -169,7 +169,7 @@ inline bool DecodeBase58Check(const std::string& str, std::vector -// Base class for all base58-encoded data +/** Base class for all base58-encoded data */ class CBase58Data { protected: @@ -252,11 +252,12 @@ public: bool operator> (const CBase58Data& b58) const { return CompareTo(b58) > 0; } }; -// base58-encoded bitcoin addresses -// Public-key-hash-addresses have version 0 (or 192 testnet) -// The data vector contains RIPEMD160(SHA256(pubkey)), where pubkey is the serialized public key -// Script-hash-addresses have version 5 (or 196 testnet) -// The data vector contains RIPEMD160(SHA256(cscript)), where cscript is the serialized redemption script +/** base58-encoded bitcoin addresses. + * Public-key-hash-addresses have version 0 (or 111 testnet). + * The data vector contains RIPEMD160(SHA256(pubkey)), where pubkey is the serialized public key. + * Script-hash-addresses have version 5 (or 196 testnet). + * The data vector contains RIPEMD160(SHA256(cscript)), where cscript is the serialized redemption script. + */ class CBitcoinAddress : public CBase58Data { public: @@ -287,7 +288,7 @@ public: bool IsValid() const { - int nExpectedSize = 20; + unsigned int nExpectedSize = 20; bool fExpectTestNet = false; switch(nVersion) { @@ -356,6 +357,7 @@ public: } }; +/** A base58-encoded secret key */ class CBitcoinSecret : public CBase58Data { public: @@ -394,6 +396,16 @@ public: return fExpectTestNet == fTestNet && (vchData.size() == 32 || (vchData.size() == 33 && vchData[32] == 1)); } + bool SetString(const char* pszSecret) + { + return CBase58Data::SetString(pszSecret) && IsValid(); + } + + bool SetString(const std::string& strSecret) + { + return SetString(strSecret.c_str()); + } + CBitcoinSecret(const CSecret& vchSecret, bool fCompressed) { SetSecret(vchSecret, fCompressed);