wallet: assert to ensure accuracy of CMerkleTx::GetBlocksToMaturity

According to my understanding, it should not be possible for coinbase
transactions to be conflicting, thus it should not be possible for
GetDepthInMainChain to return a negative result. If it did, this would
also result in innacurate results for GetBlocksToMaturity due to the
math therein. asserting ensures accuracy.
This commit is contained in:
Ben Woosley 2018-07-13 12:41:42 -04:00
parent 2ea7eb62b2
commit 93de2891fa
No known key found for this signature in database
GPG key ID: 6EE5F3785F78B345

View file

@ -4397,7 +4397,9 @@ int CMerkleTx::GetBlocksToMaturity() const
{
if (!IsCoinBase())
return 0;
return std::max(0, (COINBASE_MATURITY+1) - GetDepthInMainChain());
int chain_depth = GetDepthInMainChain();
assert(chain_depth >= 0); // coinbase tx should not be conflicted
return std::max(0, (COINBASE_MATURITY+1) - chain_depth);
}