Bug: missing params causing assertion error during ssa generation
- Dominant language
- Python
- Stars
- 6.4k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
### Describe the issue:
When running slither in my project I got errors detected then slither broke down with assertion error.I have slither installed using Pip3.
### Code example to reproduce the issue:
Running slither on the root directory
### Version:
0.9.1
### Relevant log output:
```shell
'npx hardhat compile --force' running
Generating typings for: 486 artifacts in dir: types for target: ethers-v5
Successfully generated 956 typings!
Compiled 389 Solidity files successfully
Warning: This declaration shadows an existing declaration.
--> contracts/mocks/tokens/MAYC.sol:1700:58:
|
1700 | function calculateStartingIndex(uint256 blockNumber, uint256 collectionSize)
| ^^^^^^^^^^^^^^^^^^^^^^
Note: The shadowed declaration is here:
--> contracts/mocks/tokens/MAYC.sol:1473:5:
|
1473 | uint256 public collectionSize;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning: Unreachable code.
--> contracts/protocol/libraries/paraspace-upgradeability/ParaReentrancyGuard.sol:73:9:
|
73 | rgs._status = _NOT_ENTERED;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning: Unreachable code.
--> contracts/protocol/tokenization/base/IncentivizedERC20.sol:154:9:
|
154 | return true;
| ^^^^^^^^^^^
Warning: Unreachable code.
--> contracts/protocol/tokenization/base/IncentivizedERC20.sol:192:9:
|
192 | return true;
| ^^^^^^^^^^^
Warning: Function state mutability can be restricted to view
--> contracts/protocol/pool/PoolCore.sol:811:5:
|
811 | function echidna_test() public returns (bool) {
| ^ (Relevant source part starts here and spans across multiple lines).
Missing params 'constructor(string,string,uint256,uint256)'
Missing params 'constructor(string,string,uint256,uint256)'
Traceback (most recent call last):
File "/opt/homebrew/lib/python3.10/site-packages/slither/__main__.py", line 826, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
File "/opt/homebrew/lib/python3.10/site-packages/slither/__main__.py", line 97, in process_all
) = process_single(compilation, args, detector_classes, printer_classes)
File "/opt/homebrew/lib/python3.10/site-packages/slither/__main__.py", line 75, in process_single
slither = Slither(target, ast_format=ast, **vars(args))
File "/opt/homebrew/lib/python3.10/site-packages/slither/slither.py", line 130, in __init__
parser.analyze_contracts()
File "/opt/homebrew/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 500, in analyze_contracts
self._convert_to_slithir()
File "/opt/homebrew/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 694, in _convert_to_slithir
contract.convert_expression_to_slithir_ssa()
File "/opt/homebrew/lib/python3.10/site-packages/slither/core/declarations/contract.py", line 1359, in convert_expression_to_slithir_ssa
func.generate_slithir_ssa(all_ssa_state_variables_instances)
File "/opt/homebrew/lib/python3.10/site-packages/slither/core/declarations/function_contract.py", line 110, in generate_slithir_ssa
add_ssa_ir(self, all_ssa_state_variables_instances)
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 182, in add_ssa_ir
generate_ssa_irs(
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 297, in generate_ssa_irs
generate_ssa_irs(
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 297, in generate_ssa_irs
generate_ssa_irs(
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 297, in generate_ssa_irs
generate_ssa_irs(
[Previous line repeated 2 more times]
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 241, in generate_ssa_irs
new_ir = copy_ir(
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 670, in copy_ir
lvalue = get_variable(ir, lambda x: x.lvalue, *instances)
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 630, in get_variable
variable = get(variable, *instances)
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 609, in get
assert isinstance(
AssertionError
Error in .
Traceback (most recent call last):
File "/opt/homebrew/lib/python3.10/site-packages/slither/__main__.py", line 826, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
File "/opt/homebrew/lib/python3.10/site-packages/slither/__main__.py", line 97, in process_all
) = process_single(compilation, args, detector_classes, printer_classes)
File "/opt/homebrew/lib/python3.10/site-packages/slither/__main__.py", line 75, in process_single
slither = Slither(target, ast_format=ast, **vars(args))
File "/opt/homebrew/lib/python3.10/site-packages/slither/slither.py", line 130, in __init__
parser.analyze_contracts()
File "/opt/homebrew/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 500, in analyze_contracts
self._convert_to_slithir()
File "/opt/homebrew/lib/python3.10/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 694, in _convert_to_slithir
contract.convert_expression_to_slithir_ssa()
File "/opt/homebrew/lib/python3.10/site-packages/slither/core/declarations/contract.py", line 1359, in convert_expression_to_slithir_ssa
func.generate_slithir_ssa(all_ssa_state_variables_instances)
File "/opt/homebrew/lib/python3.10/site-packages/slither/core/declarations/function_contract.py", line 110, in generate_slithir_ssa
add_ssa_ir(self, all_ssa_state_variables_instances)
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 182, in add_ssa_ir
generate_ssa_irs(
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 297, in generate_ssa_irs
generate_ssa_irs(
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 297, in generate_ssa_irs
generate_ssa_irs(
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 297, in generate_ssa_irs
generate_ssa_irs(
[Previous line repeated 2 more times]
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 241, in generate_ssa_irs
new_ir = copy_ir(
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 670, in copy_ir
lvalue = get_variable(ir, lambda x: x.lvalue, *instances)
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 630, in get_variable
variable = get(variable, *instances)
File "/opt/homebrew/lib/python3.10/site-packages/slither/slithir/utils/ssa.py", line 609, in get
assert isinstance(
AssertionError
```
Contributor guide
Assessment
This issue has not been assessed yet.