aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-12-16 17:29:51 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2015-01-05 15:45:35 +0100
commit92cdb1aace3c7343e9c9472061508d3b01d9883d (patch)
tree19856b0e429cd7f5a166c3767e814f61f8a654f7
parentbfc6070342b9f43bcf125526e6a3c8ed34e29a71 (diff)
downloadbitcoin-92cdb1aace3c7343e9c9472061508d3b01d9883d.tar.xz
Add conversion functions arith_uint256<->uint_256
-rw-r--r--src/arith_uint256.cpp16
-rw-r--r--src/arith_uint256.h8
2 files changed, 24 insertions, 0 deletions
diff --git a/src/arith_uint256.cpp b/src/arith_uint256.cpp
index 0dba429a8d..f0b6a6a3bd 100644
--- a/src/arith_uint256.cpp
+++ b/src/arith_uint256.cpp
@@ -5,6 +5,7 @@
#include "arith_uint256.h"
+#include "uint256.h"
#include "utilstrencodings.h"
#include <stdio.h>
@@ -355,3 +356,18 @@ uint64_t arith_uint256::GetHash(const arith_uint256& salt) const
return ((((uint64_t)b) << 32) | c);
}
+
+uint256 ArithToUint256(const arith_uint256 &a)
+{
+ uint256 b;
+ // TODO: needs bswap32 on big-endian
+ memcpy(b.begin(), a.pn, a.size());
+ return b;
+}
+arith_uint256 UintToArith256(const uint256 &a)
+{
+ arith_uint256 b;
+ // TODO: needs bswap32 on big-endian
+ memcpy(b.pn, a.begin(), a.size());
+ return b;
+}
diff --git a/src/arith_uint256.h b/src/arith_uint256.h
index 9e32b124c2..5cb04f3c3c 100644
--- a/src/arith_uint256.h
+++ b/src/arith_uint256.h
@@ -13,6 +13,8 @@
#include <string>
#include <vector>
+class uint256;
+
class uint_error : public std::runtime_error {
public:
explicit uint_error(const std::string& str) : std::runtime_error(str) {}
@@ -345,6 +347,12 @@ public:
uint32_t GetCompact(bool fNegative = false) const;
uint64_t GetHash(const arith_uint256& salt) const;
+
+ friend uint256 ArithToUint256(const arith_uint256 &);
+ friend arith_uint256 UintToArith256(const uint256 &);
};
+uint256 ArithToUint256(const arith_uint256 &);
+arith_uint256 UintToArith256(const uint256 &);
+
#endif // BITCOIN_UINT256_H