Skip to content

Latest commit

 

History

History
47 lines (47 loc) · 1.94 KB

TODO.md

File metadata and controls

47 lines (47 loc) · 1.94 KB

TODO

  • General
    • Cleanup repo (remove unnecessary files, automate testing, etc.)
    • Graceful error handling
    • join operations between contexts
    • Trait/Lang separation cleanup
    • Propogate requirements across variables (i.e. y = x; & x != 0; therefore y != 0;)
  • Language
    • Better import handling (foundry.toml reading?)
    • User Types, i.e. type MyType is uint256;
    • Better Library handling
    • Operator overloading
    • Storage
      • Consider constructor
      • Consider non-constructor initializer
    • Functions
      • Call modifier at start of function analysis
      • Call modifiers when calling another function from within a function
      • Handle virtual/overriding
    • Consider unchecked math
      • Keep uncheckedness for the entire block
      • Pass uncheckedness into bin_op
    • Support assembly
    • Improve Support for for/while loops
      • Be smarter about the variables by looking at max num of iters and determine if we should just unroll & execute it
      • Take a guess at the gas usage inside the body of the for-loop and try to set upper bounds
    • Support ++i/i++/--i/i++
    • Support low-level call
  • Analyzers
    • Bound Analyzer
      • Cleanup CLI output
      • Fix multiple calls to single function that don't show
    • Taint Analyzer
    • Gas Optimization Analyzer
      • Unchecked Recommendation Analyzer
      • Storage Variable Initialization Analyzer
    • Invariant Analyzer
    • Reentrancy Analyzer
  • Queries
    • Access Control Querier
      • Cleanup output
    • Code Path Querier
  • Long term
    • GUI for better exploring code execution forks
    • LSP/IDE integration
    • DSL for writing queries
    • Export bounds for SMT solvers (z3, cvc5, etc.)