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.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Echidna testing and flat fee introduction #312
Echidna testing and flat fee introduction #312
Changes from 7 commits
ea4bb61
3493361
14d7451
b9eb482
02a813b
6065e46
4bc31b8
af4fc83
7d2d2f9
449bb9e
ceccd37
78c22e9
96b058c
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not exactly clear to me which invariant we're testing in this test? Why are we comparing initial reserves before/after a trade?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reserves should always grow with any conceivable successful trade. Unfortunately we haven't yet nailed this one, I'm not sure if the formula to calculate the value of the reserves is right, or if it is affected by precision.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add a
TODO
in the code then for the things which are further required to do?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wait, even with the fee the invariant doesn't always grow?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that there is some issue with the formula, because I remember scenarios with the reserves at practically the same level, you exchange one Dai for one yDai, the value of the reserves drops. Doesn't make much sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for my echidna ignorance—where do we actually call these functions (
testLiquidityDaiOutForYDaiIn
etc.)?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By executing
echidna-test . --contract [contract name] --config contracts/echidna/config.yaml
from the command line, echidna does a fuzzing test on allpublic
functions. Echidna tests are like normal solidity functions, that fail only if there is a failingassert
.