diff --git a/src/base58.h b/src/base58.h index f2603e6f6..53d13d704 100644 --- a/src/base58.h +++ b/src/base58.h @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include "bignum.h" #include "BitcoinUtil.h" @@ -241,7 +243,21 @@ public: bool operator>=(const CBase58Data& b58) const { return CompareTo(b58) >= 0; } bool operator< (const CBase58Data& b58) const { return CompareTo(b58) < 0; } bool operator> (const CBase58Data& b58) const { return CompareTo(b58) > 0; } + + friend std::size_t hash_value(CBase58Data const& b58); }; +inline std::size_t hash_value(CBase58Data const& b58) +{ + std::size_t seed = 0; + + boost::hash_combine(seed, b58.nVersion); + BOOST_FOREACH(const unsigned char& x, b58.vchData) + { + boost::hash_combine(seed, x); + } + + return seed; +} #endif // vim:ts=4