crytic / crytic/slither

Apply memoization to core objects

Open
#696 0 comments 0 reactions 0 assignees View on GitHub
Optimization
Dominant language
Python
Stars
6.4k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

Examples:
https://github.com/crytic/slither/blob/858677464cff0f61d1553ae2ae642963ee074153/slither/core/declarations/function.py#L241-L248

https://github.com/crytic/slither/blob/858677464cff0f61d1553ae2ae642963ee074153/slither/core/declarations/function.py#L927-L937

https://github.com/crytic/slither/blob/858677464cff0f61d1553ae2ae642963ee074153/slither/core/declarations/contract.py#L394-L395

We should add a generic way to enable/disable memoization in case the core objects are modified by a script

Contributor guide

Open the contributing guide

Research direction

Start with the memoized examples in slither/core/declarations/function.py at lines 241-248 and 927-937, then compare the example in slither/core/declarations/contract.py at lines 394-395. Determine the generic enable/disable behavior needed for core objects that scripts may modify; done means the memoization approach works consistently across these examples and can be controlled when objects change.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devtools
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.