mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 15:09:59 +01:00
Move {Get,Set}Compact from bignum to uint256
This commit is contained in:
17
src/main.h
17
src/main.h
@@ -10,7 +10,6 @@
|
||||
#include "bitcoin-config.h"
|
||||
#endif
|
||||
|
||||
#include "bignum.h"
|
||||
#include "chainparams.h"
|
||||
#include "coins.h"
|
||||
#include "core.h"
|
||||
@@ -816,13 +815,19 @@ public:
|
||||
return (int64_t)nTime;
|
||||
}
|
||||
|
||||
CBigNum GetBlockWork() const
|
||||
uint256 GetBlockWork() const
|
||||
{
|
||||
CBigNum bnTarget;
|
||||
bnTarget.SetCompact(nBits);
|
||||
if (bnTarget <= 0)
|
||||
uint256 bnTarget;
|
||||
bool fNegative;
|
||||
bool fOverflow;
|
||||
bnTarget.SetCompact(nBits, &fNegative, &fOverflow);
|
||||
if (fNegative || fOverflow || bnTarget == 0)
|
||||
return 0;
|
||||
return (CBigNum(1)<<256) / (bnTarget+1);
|
||||
// We need to compute 2**256 / (bnTarget+1), but we can't represent 2**256
|
||||
// as it's too large for a uint256. However, as 2**256 is at least as large
|
||||
// as bnTarget+1, it is equal to ((2**256 - bnTarget - 1) / (bnTarget+1)) + 1,
|
||||
// or ~bnTarget / (nTarget+1) + 1.
|
||||
return (~bnTarget / (bnTarget + 1)) + 1;
|
||||
}
|
||||
|
||||
bool CheckIndex() const
|
||||
|
||||
Reference in New Issue
Block a user