Skip to content
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

Add slither-prop tool: Automatic generation of unit-tests and Echidna properties #428

Merged
merged 5 commits into from
Apr 17, 2020

Conversation

montyly
Copy link
Member

@montyly montyly commented Apr 2, 2020

Features:

- Generate properties based on given scenarios. This PR includes ERC20 properties, for the  following scenarios
   - Transferable - Test the correct tokens transfer
   - Pausable - Test the pausable functionality
   - NotMintable - Test that no one can mint tokens
   - NotMintableNotBurnable - Test that no one can mint or burn tokens
   - NotBurnable - Test that no one can burn tokens
   - Burnable - Test the burn of tokens. Require the "burn(address) returns()" function
- Truffle support:
   - Generation of the migration file
   - Generation of unit tests files. For each scenario, one file test the correct initialization, and the second one contains the actual tests
- Echidna support

@montyly
Copy link
Member Author

montyly commented Apr 2, 2020

What is missing to merge this PR:

  • Handling of throw/revert in unit tests
  • Tests and user documentation. The documentation might be directly written for building-secure-contracts

On the long run, we will add

  • Other ERCs,
  • New scenarios,
  • Support for other platform (embark/ etherlime, ...)

montyly added 3 commits April 3, 2020 16:17
- Add support of return false/revert call in truffle test
- Improve errors reporting
Improve properties
@montyly montyly marked this pull request as ready for review April 6, 2020 09:23
@montyly montyly merged commit 9623a27 into dev Apr 17, 2020
@montyly montyly deleted the dev-slither-prop branch April 17, 2020 09:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant