Nezur written in Rust designed for fuzzing/property-testing of NEAR smart contracts. It uses advanced fuzzing mechanism based on wasm grammer to negate user-defined predicates. It is highly modular and can be extend to include sophisticated evolutionary fuzzing techniques.
- Generate Input/Calldata Generation
- Leverage both smart contracts & .wasm files to generate call data.
- Mock context generation with near-runtime
- Option to forking state trie & account impersonation { For testing over underlying deployed app }
- Parametric fuzzing & Property Testing using assertions
- Designing cheatcodes
- Environmental
- Assertion
- Fuzzer assume
- Utilities
- Designing cheatcodes
- Sequence of transaction fuzzing along with coverage guided fuzzing with optional state pruning
- SetUp function for fuzz configuration
- Devise algorithm to generate initial sequence
- Devise algorithm for state pruning using intelligent node selection
- Symbolic Constraint identification
- Generate & store logical equation that would be solved using a z3 solver which can be used by corpus to advance with fuzzing campaign
- Automatic testcase minimization for quick triage
- Code Coverage for fuzzing campaigns
- Coverage report in % of lines covered (html)
- Code Coverage for fuzzing campaigns
- Optional Corpus Generation
- Corpus replay for failed fuzz cases
- Seamless integration into development workflow (CI/CD)
- Performace evalation