Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error building dockerfile using solc 0.7.4 #19

Open
0xKurt opened this issue Dec 6, 2020 · 4 comments
Open

Error building dockerfile using solc 0.7.4 #19

0xKurt opened this issue Dec 6, 2020 · 4 comments

Comments

@0xKurt
Copy link

0xKurt commented Dec 6, 2020

in Dockerfile:

ARG SOLC=0.7.4

Error message:

Step 18/21 : RUN cd /sec/securify/staticanalysis/souffle_analysis &&         souffle --dl-program=../dl-program         --fact-dir=/sec/securify/staticanalysis/facts_in         --output-dir=/sec/securify/staticanalysis/facts_out         -L../libfunctors -w analysis.dl
 ---> Running in 9adeb4f73d41
Removing intermediate container 9adeb4f73d41
 ---> 8bcefeb788a6
Step 19/21 : ENV LD_LIBRARY_PATH /sec/securify/staticanalysis/libfunctors
 ---> Running in c6387ab83f6d
Removing intermediate container c6387ab83f6d
 ---> b3ccbab49d2b
Step 20/21 : RUN cd /sec/securify/ && securify staticanalysis/testContract.sol
 ---> Running in e8843cf8adfd
pragma directive defines a prior version to 0.7.4. Changing pragma version to 0.7.4....
Traceback (most recent call last):
  File "/sec/securify/grammar/attributes/evaluators/evaluator_demand_iterative.py", line 53, in evaluate
    result = super()._execute_rule(rule, arguments)
  File "/sec/securify/grammar/attributes/evaluators/evaluator_base.py", line 42, in _execute_rule
    return rule.func(**{name: node for name, node in arguments.items()})
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 2295, in expression_value
    declaration = self.resolve()
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 2287, in resolve
    return self.resolve_reference(self.referenced_declaration)
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 46, in resolve_reference
    return self.root().ast_nodes_by_id().get(node_id, None)
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 161, in ast_nodes_by_id
    return {d.id: d for d in self.descendants() if d is not None}
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 161, in <dictcomp>
    return {d.id: d for d in self.descendants() if d is not None}
  File "/sec/securify/grammar/__init__.py", line 313, in descendants
    yield from ProductionOps.descendants(child)
  File "/sec/securify/grammar/__init__.py", line 313, in descendants
    yield from ProductionOps.descendants(child)
  File "/sec/securify/grammar/__init__.py", line 309, in descendants
    for child in ProductionOps.children(self):
  File "/sec/securify/grammar/__init__.py", line 300, in children
    child = getattr(self, name)
AttributeError: 'VariableDeclaration__AllAttrsMixin' object has no attribute 'value'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/bin/securify", line 11, in <module>
    load_entry_point('securify==0.0.1', 'console_scripts', 'securify')()
  File "/sec/securify/__main__.py", line 277, in main
    matches.extend(pattern.find_matches())
  File "/sec/securify/analyses/patterns/static/static_analysis_patterns.py", line 73, in find_matches
    static = analysis_context.static_analysis
  File "/sec/securify/analyses/analysis.py", line 88, in static_analysis
    self._static = self.config.static_analysis(self)
  File "/sec/securify/__main__.py", line 255, in <lambda>
    static_analysis=lambda t: static_analysis.analyze_cfg(t.cfg, **souffle_config),
  File "/sec/securify/analyses/analysis.py", line 81, in cfg
    self._cfg = self.config.cfg_compiler(self)
  File "/sec/securify/__main__.py", line 254, in <lambda>
    cfg_compiler=lambda t: solidity_cfg_compiler.compile_cfg(t.ast).cfg,
  File "/sec/securify/solidity/solidity_cfg_compiler.py", line 88, in compile_cfg
    cfg = ast_attr.cfg
  File "/sec/securify/grammar/attributes/evaluators/evaluator_demand_base.py", line 84, in __get__
    return self.__evaluator.evaluate(instance, self.__name)
  File "/sec/securify/grammar/attributes/evaluators/evaluator_demand_iterative.py", line 57, in evaluate
    f"Rule trace: {self.__rule_trace(dependency_path)}") from e
securify.grammar.attributes.AttributeGrammarError: Error during evaluation of rule 'expression_value'. 
Rule trace: 
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 199)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 272)
	PushdownRule next_cfgs_unlinked (ImplicitPushdown)
	PushdownRule push_cfgs (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 163)
	SynthesizeRule contract_cfg_unlinked (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 258)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 529)
	SynthesizeRule cfg_unmodified (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 507)
	SynthesizeRule cfg_body (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 500)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 869)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 1520)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 2013)
	SynthesizeRule expression_value (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 2293)
The command '/bin/sh -c cd /sec/securify/ && securify staticanalysis/testContract.sol' returned a non-zero code: 1
@YannisSach
Copy link
Collaborator

Hi Kurt,

Unfortunately, Solidity version 0.7.+ is not yet fully supported. We are aware of the issue and we are working on it.

@andyoulovexy
Copy link

Hi Kurt,

Unfortunately, Solidity version 0.7.+ is not yet fully supported. We are aware of the issue and we are working on it.

which versions supported?0.6.0 isn't support?

@2027304527
Copy link

in Dockerfile:

ARG SOLC=0.7.4

Error message:

Step 18/21 : RUN cd /sec/securify/staticanalysis/souffle_analysis &&         souffle --dl-program=../dl-program         --fact-dir=/sec/securify/staticanalysis/facts_in         --output-dir=/sec/securify/staticanalysis/facts_out         -L../libfunctors -w analysis.dl
 ---> Running in 9adeb4f73d41
Removing intermediate container 9adeb4f73d41
 ---> 8bcefeb788a6
Step 19/21 : ENV LD_LIBRARY_PATH /sec/securify/staticanalysis/libfunctors
 ---> Running in c6387ab83f6d
Removing intermediate container c6387ab83f6d
 ---> b3ccbab49d2b
Step 20/21 : RUN cd /sec/securify/ && securify staticanalysis/testContract.sol
 ---> Running in e8843cf8adfd
pragma directive defines a prior version to 0.7.4. Changing pragma version to 0.7.4....
Traceback (most recent call last):
  File "/sec/securify/grammar/attributes/evaluators/evaluator_demand_iterative.py", line 53, in evaluate
    result = super()._execute_rule(rule, arguments)
  File "/sec/securify/grammar/attributes/evaluators/evaluator_base.py", line 42, in _execute_rule
    return rule.func(**{name: node for name, node in arguments.items()})
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 2295, in expression_value
    declaration = self.resolve()
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 2287, in resolve
    return self.resolve_reference(self.referenced_declaration)
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 46, in resolve_reference
    return self.root().ast_nodes_by_id().get(node_id, None)
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 161, in ast_nodes_by_id
    return {d.id: d for d in self.descendants() if d is not None}
  File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 161, in <dictcomp>
    return {d.id: d for d in self.descendants() if d is not None}
  File "/sec/securify/grammar/__init__.py", line 313, in descendants
    yield from ProductionOps.descendants(child)
  File "/sec/securify/grammar/__init__.py", line 313, in descendants
    yield from ProductionOps.descendants(child)
  File "/sec/securify/grammar/__init__.py", line 309, in descendants
    for child in ProductionOps.children(self):
  File "/sec/securify/grammar/__init__.py", line 300, in children
    child = getattr(self, name)
AttributeError: 'VariableDeclaration__AllAttrsMixin' object has no attribute 'value'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/bin/securify", line 11, in <module>
    load_entry_point('securify==0.0.1', 'console_scripts', 'securify')()
  File "/sec/securify/__main__.py", line 277, in main
    matches.extend(pattern.find_matches())
  File "/sec/securify/analyses/patterns/static/static_analysis_patterns.py", line 73, in find_matches
    static = analysis_context.static_analysis
  File "/sec/securify/analyses/analysis.py", line 88, in static_analysis
    self._static = self.config.static_analysis(self)
  File "/sec/securify/__main__.py", line 255, in <lambda>
    static_analysis=lambda t: static_analysis.analyze_cfg(t.cfg, **souffle_config),
  File "/sec/securify/analyses/analysis.py", line 81, in cfg
    self._cfg = self.config.cfg_compiler(self)
  File "/sec/securify/__main__.py", line 254, in <lambda>
    cfg_compiler=lambda t: solidity_cfg_compiler.compile_cfg(t.ast).cfg,
  File "/sec/securify/solidity/solidity_cfg_compiler.py", line 88, in compile_cfg
    cfg = ast_attr.cfg
  File "/sec/securify/grammar/attributes/evaluators/evaluator_demand_base.py", line 84, in __get__
    return self.__evaluator.evaluate(instance, self.__name)
  File "/sec/securify/grammar/attributes/evaluators/evaluator_demand_iterative.py", line 57, in evaluate
    f"Rule trace: {self.__rule_trace(dependency_path)}") from e
securify.grammar.attributes.AttributeGrammarError: Error during evaluation of rule 'expression_value'. 
Rule trace: 
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 199)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 272)
	PushdownRule next_cfgs_unlinked (ImplicitPushdown)
	PushdownRule push_cfgs (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 163)
	SynthesizeRule contract_cfg_unlinked (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 258)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 529)
	SynthesizeRule cfg_unmodified (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 507)
	SynthesizeRule cfg_body (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 500)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 869)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 1520)
	SynthesizeRule cfg (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 2013)
	SynthesizeRule expression_value (File "/sec/securify/solidity/v_0_5_x/solidity_grammar_core.py", line 2293)
The command '/bin/sh -c cd /sec/securify/ && securify staticanalysis/testContract.sol' returned a non-zero code: 1

Hello, I have also encountered the same problem. Have you resolved it?

@2027304527
Copy link

Hi Kurt,

Unfortunately, Solidity version 0.7.+ is not yet fully supported. We are aware of the issue and we are working on it.

Hello, I have also encountered the same problem. Have you resolved it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants