aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arith_uint256.h19
-rw-r--r--src/uint256.h20
2 files changed, 39 insertions, 0 deletions
diff --git a/src/arith_uint256.h b/src/arith_uint256.h
new file mode 100644
index 0000000000..3bb384ca8a
--- /dev/null
+++ b/src/arith_uint256.h
@@ -0,0 +1,19 @@
+#ifndef BITCOIN_ARITH_UINT256_H
+#define BITCOIN_ARITH_UINT256_H
+
+// Temporary for migration to opaque uint160/256
+#include "uint256.h"
+
+class arith_uint256 : public uint256 {
+public:
+ arith_uint256() {}
+ arith_uint256(const base_uint<256>& b) : uint256(b) {}
+ arith_uint256(uint64_t b) : uint256(b) {}
+ explicit arith_uint256(const std::string& str) : uint256(str) {}
+ explicit arith_uint256(const std::vector<unsigned char>& vch) : uint256(vch) {}
+};
+
+#define ArithToUint256(x) (x)
+#define UintToArith256(x) (x)
+
+#endif // BITCOIN_UINT256_H
diff --git a/src/uint256.h b/src/uint256.h
index 139270ac49..8189b27cb3 100644
--- a/src/uint256.h
+++ b/src/uint256.h
@@ -283,6 +283,23 @@ public:
{
s.read((char*)pn, sizeof(pn));
}
+
+ // Temporary for migration to opaque uint160/256
+ uint64_t GetCheapHash() const
+ {
+ return GetLow64();
+ }
+ void SetNull()
+ {
+ memset(pn, 0, sizeof(pn));
+ }
+ bool IsNull() const
+ {
+ for (int i = 0; i < WIDTH; i++)
+ if (pn[i] != 0)
+ return false;
+ return true;
+ }
};
/** 160-bit unsigned big integer. */
@@ -330,4 +347,7 @@ public:
uint64_t GetHash(const uint256& salt) const;
};
+// Temporary for migration to opaque uint160/256
+inline uint256 uint256S(const std::string &x) { return uint256(x); }
+
#endif // BITCOIN_UINT256_H