Add conversion functions arith_uint256<->uint_256

This commit is contained in:
Wladimir J. van der Laan 2014-12-16 17:29:51 +01:00
parent bfc6070342
commit 92cdb1aace
2 changed files with 24 additions and 0 deletions

View file

@ -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;
}

View file

@ -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