eth-sri / securify2

Securify v2.0
Apache License 2.0
579 stars 133 forks source link

support for Solidity 0.7 #12

Open technionRamy opened 3 years ago

technionRamy commented 3 years ago

what is the latest version of Solidity that is supported and is 0.7 on the horizon?

i get this error when running on 0.7 Sol

File "/mnt/c/Users/rfakhour/Ubuntu/securify2/venv/bin/securify", line 11, in load_entry_point('securify', 'console_scripts', 'securify')() File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/main.py", line 277, in main matches.extend(pattern.find_matches()) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/analyses/patterns/static/static_analysis_patterns.py", line 73, in find_matches static = analysis_context.static_analysis File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/analyses/analysis.py", line 88, in static_analysis self._static = self.config.static_analysis(self) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/main.py", line 255, in static_analysis=lambda t: static_analysis.analyze_cfg(t.cfg, **souffle_config), File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/analyses/analysis.py", line 81, in cfg self._cfg = self.config.cfg_compiler(self) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/main.py", line 254, in cfg_compiler=lambda t: solidity_cfg_compiler.compile_cfg(t.ast).cfg, File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/solidity/solidity_cfg_compiler.py", line 84, in compile_cfg compile_evaluable_ast(ast_or_source_path) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/solidity/solidity_cfg_compiler.py", line 74, in compile_evaluable_ast implicit_terminals=True).transform(ast_dict) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 53, in transform tree = self.transform_element(element) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 65, in transform_element return self.transform_dict(element) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 123, in transform_dict setattr(node, attribute_name, self.transform_element(value)) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 89, in transform_element tmp = self.transform_element(e) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 65, in transform_element return self.transform_dict(element) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 123, in transform_dict setattr(node, attribute_name, self.transform_element(value)) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 89, in transform_element tmp = self.transform_element(e) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 65, in transform_element return self.transform_dict(element) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 123, in transform_dict setattr(node, attribute_name, self.transform_element(value)) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 65, in transform_element return self.transform_dict(element) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 123, in transform_dict setattr(node, attribute_name, self.transform_element(value)) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 89, in transform_element tmp = self.transform_element(e) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 65, in transform_element return self.transform_dict(element) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 123, in transform_dict setattr(node, attribute_name, self.transform_element(value)) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 65, in transform_element return self.transform_dict(element) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 123, in transform_dict setattr(node, attribute_name, self.transform_element(value)) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 65, in transform_element return self.__transform_dict(element) File "/mnt/c/Users/rfakhour/Ubuntu/securify2/securify/grammar/transformer.py", line 104, in __transform_dict raise GrammarError(f"Symbol '{symbol_name}' not found in grammar.") securify.grammar.GrammarError: Symbol 'FunctionCallOptions' not found in grammar.

naftalirose commented 2 years ago

I am getting a similar error for Solidity 0.8.2 anyone fix this?

clemsos commented 2 years ago

getting a similar error w 0.8.4

#19 5.175 securify.grammar.GrammarError: Symbol 'IdentifierPath' not found in grammar.
Kaylee-Hsu commented 2 years ago

Getting similar error on 0.8.11 securify.grammar.GrammarError: Symbol 'IdentifierPath' not found in grammar. Is there any update?