#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
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); }
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);