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.
In
tweak_price
the calculation of the virtual price can be off by 1 due a combination ofisqrt
+ division rounding down.In particular this line would revert:
twocrypto-ng/contracts/main/Twocrypto.vy
Line 918 in 8621f90
Because of this line lacking a
+ 1
previously:twocrypto-ng/contracts/main/Twocrypto.vy
Lines 906 to 907 in 8621f90
While this issue doesn't seem to have cause issues onchain (probably it doesn't happen when pool is used as intended), this still create issues in testing and could potentially prevent people from withdrawing liquidity/exchanging. For this reason we increase the value of
virtual_price
by1e-18
that can be considered a safe negligible amount that can hardly be misused given virtual price has 18 decimals of precision.This is part 2 of 3 in a stack made with GitButler: