-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Description
If the change list has duplicated outputs, meaning 2 entries saying that output index X is a change, we will break the output confirming UI.
For instance, if we have 3 outputs and 2 entries on the change list saying that output index 0 is change we will show to the user to confirm outputs:
Output 1/1Output 2/1
This can be specially bad if we had 2 outputs, since it actually shows Output 1/0, it can also show Output 1/-1 depending on how we manipulate this.
Solution
When parsing the change list we need to check for duplicates and fail the transaction if any are found.
Since we do not have data on the transaction yet we can parse the change list and when we parse the number of outputs on the transaction we also need to check that the highest change index is on the transaction (since we do not have duplicates this also checks that the number of change outputs is lower than the number of outputs).