aboutsummaryrefslogtreecommitdiff
path: root/src/pow.cpp
diff options
context:
space:
mode:
authorCory Fields <cory-nospam-@coryfields.com>2015-03-25 15:00:32 -0400
committerCory Fields <cory-nospam-@coryfields.com>2015-04-10 15:33:37 -0400
commitfd311996e877d567a4e34a19b47e94d66e07100a (patch)
treef31151a0086d06c8463de3c5b33471c11922930b /src/pow.cpp
parentc8a13501196fc79a3f728683b74f9d586dda46c1 (diff)
downloadbitcoin-fd311996e877d567a4e34a19b47e94d66e07100a.tar.xz
consensus: don't use arith_uint256 in consensus.h
Requiring arith_uint256 at such a base level is not good for modularity.
Diffstat (limited to 'src/pow.cpp')
-rw-r--r--src/pow.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/pow.cpp b/src/pow.cpp
index cf7ac387f2..fc6ed4f3d1 100644
--- a/src/pow.cpp
+++ b/src/pow.cpp
@@ -13,7 +13,7 @@
unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params)
{
- unsigned int nProofOfWorkLimit = params.powLimit.GetCompact();
+ unsigned int nProofOfWorkLimit = UintToArith256(params.powLimit).GetCompact();
// Genesis block
if (pindexLast == NULL)
@@ -61,6 +61,7 @@ unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nF
nActualTimespan = params.nPowTargetTimespan*4;
// Retarget
+ const arith_uint256 bnPowLimit = UintToArith256(params.powLimit);
arith_uint256 bnNew;
arith_uint256 bnOld;
bnNew.SetCompact(pindexLast->nBits);
@@ -68,8 +69,8 @@ unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nF
bnNew *= nActualTimespan;
bnNew /= params.nPowTargetTimespan;
- if (bnNew > params.powLimit)
- bnNew = params.powLimit;
+ if (bnNew > bnPowLimit)
+ bnNew = bnPowLimit;
/// debug print
LogPrintf("GetNextWorkRequired RETARGET\n");
@@ -89,7 +90,7 @@ bool CheckProofOfWork(uint256 hash, unsigned int nBits, const Consensus::Params&
bnTarget.SetCompact(nBits, &fNegative, &fOverflow);
// Check range
- if (fNegative || bnTarget == 0 || fOverflow || bnTarget > params.powLimit)
+ if (fNegative || bnTarget == 0 || fOverflow || bnTarget > UintToArith256(params.powLimit))
return error("CheckProofOfWork(): nBits below minimum work");
// Check proof of work matches claimed amount