Echidna printer: constant propagation over parameters init
Open
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
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