From f38c46bbad059bc1ed8fd34d5e87a236a7edd2ae Mon Sep 17 00:00:00 2001 From: jl777 Date: Wed, 7 Aug 2019 00:44:11 -1100 Subject: [PATCH] Fix ctB calc --- src/pow.cpp | 11 +++++++---- src/rpc/mining.cpp | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/pow.cpp b/src/pow.cpp index 3f0219ee8..81c0df76b 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -189,10 +189,13 @@ arith_uint256 zawy_exponential(arith_uint256 bnTarget,int32_t mult) arith_uint256 zawy_ctB(arith_uint256 bnTarget,uint32_t solvetime) { - bnTarget /= arith_uint256(K); - bnTarget *= arith_uint256((int64_t)solvetime * solvetime * 1000); - bnTarget /= arith_uint256(T * T * 784); - bnTarget *= arith_uint256(K); + int64_t num; + num = (K * (int64_t)solvetime * solvetime * 1000) / (T * T * 784); + if ( num > 1 ) + { + bnTarget /= arith_uint256(K); + bnTarget *= arith_uint256(num); + } return(bnTarget); } diff --git a/src/rpc/mining.cpp b/src/rpc/mining.cpp index e14a1cd05..00af7fd4b 100644 --- a/src/rpc/mining.cpp +++ b/src/rpc/mining.cpp @@ -428,7 +428,7 @@ UniValue genminingCSV(const UniValue& params, bool fHelp) str[32] = 0; //hash = pindex->GetBlockHash(); memset(&hash,0,sizeof(hash)); - if ( (pindex->nBits & 3) != 0 ) + if ( i > 64 && (pindex->nBits & 3) != 0 ) hash = zawy_ctB(bnTarget,solvetime); for (z=0; z<16; z++) sprintf(&str2[z<<1],"%02x",((uint8_t *)&hash)[31-z]);