Fix remaining dust on oToken when burning all #1672
Closed
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.
Makes OUSD/OETH not leave dust when the entire balance of an account is redeemed. Closes #1495
To detect when we were burning the entire funds for an account, the old code did this:
currentCredits == creditAmount || currentCredits - 1 == creditAmount
This would not detect the problem if the creditAmount rounding error differed by more than 1.
Changed the code to the much more direct:
amount == balanceOf(account)
Maybe 1K gas more, but we only burn on redeems (super rare), and some AMO allocations.
Also:
Contract change checklist: