port code from +17 branch, fix operator *=
[novacoin.git] / src / bignum.h
index c8ba566..e3838bc 100644 (file)
@@ -5,10 +5,14 @@
 #ifndef BITCOIN_BIGNUM_H
 #define BITCOIN_BIGNUM_H
 
+
+#include "util.h"
+#include "uint256.h"
+
+#include <openssl/bn.h>
+
 #include <stdexcept>
 #include <vector>
-#include <openssl/bn.h>
-#include "util.h"
 
 /** Errors thrown by the bignum class */
 class bignum_error : public std::runtime_error
@@ -92,6 +96,8 @@ public:
         BN_clear_free(bn);
     }
 
+    CBigNum(bool n)     { bn = BN_new(); setuint32(n); }
+
     CBigNum(int8_t  n)  { bn = BN_new(); if (n >= 0) setuint32(n); else setint64(n); }
     CBigNum(int16_t n)  { bn = BN_new(); if (n >= 0) setuint32(n); else setint64(n); }
     CBigNum(int32_t n)  { bn = BN_new(); if (n >= 0) setuint32(n); else setint64(n); }
@@ -718,9 +724,7 @@ public:
     friend inline const CBigNum operator/(const CBigNum& a, const CBigNum& b);
     friend inline const CBigNum operator%(const CBigNum& a, const CBigNum& b);
     friend inline const CBigNum operator*(const CBigNum& a, const CBigNum& b);
-    friend inline bool operator<(const CBigNum& a, const CBigNum& b);
     friend inline const CBigNum operator+(const CBigNum& a, const CBigNum& b);
-    friend inline const CBigNum operator-(const CBigNum& a, const CBigNum& b);
     friend inline const CBigNum operator*(const CBigNum& a);
     
     friend inline const CBigNum operator-(const CBigNum& a);