mining: Remove unneeded disapproval check #2397
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This removes a now unneeded check for unmineable transactions due to
block disapproval from the template generation code.
Previously this check was meant to ensure that the list of transactions
considered for inclusion in a block template did not include
transactions with an input referencing a regular transaction from a
parent disapproved block.
However this check is redudant due to check executed earlier in the
template building loop that asserts all inputs are valid utxos
according to the PoV of the parent block and taking into account whether
the new block being created will approve or disapprove it.
The check being removed had a bug due to the dcrutil.Tx being duplicated
without also copying the internal tree, which caused transactions to
later fail to be added to the template due to an unknown tree being
used.
Removing this corrects template generation for disapproved blocks. This can be verified by running the current code with
--debuglevel=MINR=trace
and configuring the wallet to disapprove some block. Notice there will be errors such as: