Fix invalid movement when transactoin send funds to itself #597
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.
Description
Fixes an issue when a transaction send funds to itself. If a node try to do a self repair including this transaction, an invalid_transaction_movement appear.
Error is raised because the last transaction address at a specific date return the address if the timestamp is < or = and so the transaction is validated in first as the last address at this time is thre previous transaction of the chain, but during the self repair, the last transaction at this time is the transaction itself.
So to fix this, the last transaction address at specific date returns do not return timestamp == date
Also fix the spent? flag on UTXO when the transaction is already spent
Fixes #594
Type of change
How Has This Been Tested?
Start a node -> faucet to an address
Send a transaction to itself
The unspent output of the previous address should be spent
Start a second node and the self repair should pass normaly
Checklist: