crytic / crytic/slither

IR: add support for IndexRangeAccess

Open
#552 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
6.4k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

https://github.com/crytic/slither/pull/550 converted IndexRangeAccess to direct array access.

While this allow Slither to reason on the codebase, it lead to an incorrect IR generated. We need to investigate how to properly handle slices.

From my understanding they can only be used in `abi.decode`, so this is likely not a high priority for now.

- [ ] Collect examples where array slices are used
- [ ] Evaluate how to integrate the slices in the IR

Related:
- https://github.com/crytic/slither/pull/550
- https://github.com/crytic/slither/issues/545

Contributor guide

Open the contributing guide

Research direction

Start by reviewing pull request 550 and issue 545, then collect Solidity examples that use array slices, especially in abi.decode. Evaluate how IndexRangeAccess should be represented in the IR; done means slices are handled correctly without converting them to incorrect direct array access.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, solidity
Domain
compilers, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.