crytic / crytic/slither

Echidna printer: constant propagation over parameters init

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

Description

```solidity
contract A{
uint a;
constructor(uint param) public {
a = param;
}

function f() public (uint){
return a + 10;
}

}

contract B is A{
constructor() public A(10){ }
}
```

We could use `A(10)` to do additional constant propagation in `f()`

Contributor guide

Open the contributing guide

Research direction

The issue names the Echidna printer but no file or test. Begin by locating its constant-propagation entry point and tracing how inherited constructor arguments are represented; use the Solidity example as the regression case, with completion meaning A(10) lets the printer recognize a as constant in f().

Written by the indexing model from the issue text.

Assessment

Tech stack
python, solidity
Domain
devtools, security
Issue type
Feature
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.