aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-12-15 10:05:51 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2015-01-05 15:14:47 +0100
commit5d3064bc44e0b608a428e230f384bd3f846dedca (patch)
treeac2c58dcc7e4d4a49b8a8c8871cd4c570a79c4b5 /src
parenta043facf5a8b75eb15547ed788296b6c3df2c586 (diff)
Temporarily add SetNull/IsNull/GetCheapHash to base_uint
Also add a stub for arith_uint256 and its conversion functions, for now completely based on uint256. Eases step-by-step migration to blob.
Diffstat (limited to 'src')
-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