crytic / crytic/crytic-compile

[Bug]: KeyError: 1006 when checking brownie project

Open
#272 10 comments 1 reaction 0 assignees View on GitHub
bug
Dominant language
Python
Stars
197
Forks
97
PR merge metrics
No merged PRs in 30d

Description

### What happened?

When running slither on a brownie based project I see the following error output:
```
Missing inheritance
Missing inheritance
Missing inheritance
Missing inheritance
Traceback (most recent call last):
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/__main__.py", line 743, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/__main__.py", line 84, in process_all
) = process_single(compilation, args, detector_classes, printer_classes)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/__main__.py", line 67, in process_single
slither = Slither(target, ast_format=ast, **vars(args))
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/slither.py", line 120, in __init__
parser.parse_contracts()
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 424, in parse_contracts
self._analyze_first_part(contracts_to_be_analyzed, libraries)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 485, in _analyze_first_part
self._parse_struct_var_modifiers_functions(contract)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 555, in _parse_struct_var_modifiers_functions
contract.parse_functions()
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/declarations/contract.py", line 351, in parse_functions
self._parse_function(function)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/declarations/contract.py", line 337, in _parse_function
func.set_offset(function_data["src"], self._contract.compilation_unit)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/core/source_mapping/source_mapping.py", line 124, in set_offset
self._source_mapping = self._convert_source_mapping(offset, compilation_unit)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/core/source_mapping/source_mapping.py", line 101, in _convert_source_mapping
(lines, starting_column, ending_column) = self._compute_line(
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/core/source_mapping/source_mapping.py", line 43, in _compute_line
end_line, ending_column = compilation_unit.core.crytic_compile.get_line_from_offset(
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/crytic_compile/crytic_compile.py", line 291, in get_line_from_offset
return lines_delimiters[offset]
KeyError: 1006
None
Error in .
Traceback (most recent call last):
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/__main__.py", line 743, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/__main__.py", line 84, in process_all
) = process_single(compilation, args, detector_classes, printer_classes)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/__main__.py", line 67, in process_single
slither = Slither(target, ast_format=ast, **vars(args))
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/slither.py", line 120, in __init__
parser.parse_contracts()
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 424, in parse_contracts
self._analyze_first_part(contracts_to_be_analyzed, libraries)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 485, in _analyze_first_part
self._parse_struct_var_modifiers_functions(contract)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 555, in _parse_struct_var_modifiers_functions
contract.parse_functions()
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/declarations/contract.py", line 351, in parse_functions
self._parse_function(function)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/solc_parsing/declarations/contract.py", line 337, in _parse_function
func.set_offset(function_data["src"], self._contract.compilation_unit)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/core/source_mapping/source_mapping.py", line 124, in set_offset
self._source_mapping = self._convert_source_mapping(offset, compilation_unit)
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/core/source_mapping/source_mapping.py", line 101, in _convert_source_mapping
(lines, starting_column, ending_column) = self._compute_line(
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/slither/core/source_mapping/source_mapping.py", line 43, in _compute_line
end_line, ending_column = compilation_unit.core.crytic_compile.get_line_from_offset(
File "/Users/paul/Library/Caches/pypoetry/virtualenvs/raisync-NwuNULVI-py3.9/lib/python3.9/site-packages/crytic_compile/crytic_compile.py", line 291, in get_line_from_offset
return lines_delimiters[offset]
KeyError: 1006
```

### Can you share code with us to reproduce this bug?

unfortunately not right now

### Version

0.8.2

### Relevant log output

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.