aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/primitives/block.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp
index 3b4a360395..8338762a38 100644
--- a/src/primitives/block.cpp
+++ b/src/primitives/block.cpp
@@ -8,10 +8,22 @@
#include "hash.h"
#include "tinyformat.h"
#include "utilstrencodings.h"
+#include "crypto/common.h"
uint256 CBlockHeader::GetHash() const
{
+#if defined(WORDS_BIGENDIAN)
+ uint8_t data[80];
+ WriteLE32(&data[0], nVersion);
+ memcpy(&data[4], hashPrevBlock.begin(), hashPrevBlock.size());
+ memcpy(&data[36], hashMerkleRoot.begin(), hashMerkleRoot.size());
+ WriteLE32(&data[68], nTime);
+ WriteLE32(&data[72], nBits);
+ WriteLE32(&data[76], nNonce);
+ return Hash(data, data + 80);
+#else // Can take shortcut for little endian
return Hash(BEGIN(nVersion), END(nNonce));
+#endif
}
uint256 CBlock::BuildMerkleTree(bool* fMutated) const