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.
What I did
Add
abs
as a builtin function to get the absolute value of anint256
.How I did it
Add
Abs
withinvyper/functions/functions.py
. The logic is fairly straightforward - the only possible overflow is with-2**255
where we end up with the same value, so I do a check that the result is != the original value.How to verify it
Run the tests. I've added hypothesis tests to verify both the runtime and compile-time behaviour, including the happy path and the reverting path.
Cute Animal Picture