crytic / crytic/slither

Constants implementing interface getters are marked as `UPPER_CASE_WITH_UNDERSCORES`

Open Beginner friendly
#930 1 comment 0 reactions 0 assignees View on GitHub
enhancement good first issue help wanted
Dominant language
Python
Stars
6.4k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

```solidity
interface I {
function version() external view returns (uint256);
}

contract C is I {
uint256 public constant override version = 1;
}
```

Due to the `override` specifier, the naming schema should not be checked at `C.version`.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the Solidity interface and contract example, then trace the naming-schema check that reports on the overriding constant. Done means C.version is not flagged when it implements the interface getter through override, while unrelated naming checks still behave as before.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, solidity
Domain
tooling
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
64/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.