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

[Bug-Candidate]: Failed to generate IR #2680

Open
highskore opened this issue Mar 3, 2025 · 0 comments
Open

[Bug-Candidate]: Failed to generate IR #2680

highskore opened this issue Mar 3, 2025 · 0 comments
Labels
bug-candidate Bugs reports that are not yet confirmed

Comments

@highskore
Copy link

Describe the issue:

Seems like using custom type wrapping is making making slither solc parsing fail, I'm trying to run slither on any repository that has the latest version of https://github.com/rhinestonewtf/modulekit installed

Code example to reproduce the issue:

pnpm install [email protected]
slither .

Version:

0.11.0

Relevant log output:

'forge clean' running (wd: /testmodule)
'forge config --json' running
'forge build --build-info --skip */test/** */script/** --force' running (wd: /testmodule)
ERROR:SlitherSolcParsing:
Failed to generate IR for ERC7579HybridValidatorBase._packValidationData. Please open an issue https://github.com/crytic/slither/issues.
ERC7579HybridValidatorBase._packValidationData (node_modules/@rhinestone/modulekit/src/module-bases/ERC7579ValidatorBase.sol#25-35):
 	ValidationData.wrap(_packValidationData(sigFailed,validUntil,validAfter))
Traceback (most recent call last):
  File "/usr/local/bin/slither", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/local/lib/python3.11/site-packages/slither/__main__.py", line 776, in main
    main_impl(all_detector_classes=detectors, all_printer_classes=printers)
  File "/usr/local/lib/python3.11/site-packages/slither/__main__.py", line 882, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/slither/__main__.py", line 107, in process_all
    ) = process_single(compilation, args, detector_classes, printer_classes)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/slither/__main__.py", line 80, in process_single
    slither = Slither(target, ast_format=ast, **vars(args))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/slither/slither.py", line 202, in __init__
    self._init_parsing_and_analyses(kwargs.get("skip_analyze", False))
  File "/usr/local/lib/python3.11/site-packages/slither/slither.py", line 221, in _init_parsing_and_analyses
    raise e
  File "/usr/local/lib/python3.11/site-packages/slither/slither.py", line 217, in _init_parsing_and_analyses
    parser.analyze_contracts()
  File "/usr/local/lib/python3.11/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 593, in analyze_contracts
    self._convert_to_slithir()
  File "/usr/local/lib/python3.11/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 827, in _convert_to_slithir
    raise e
  File "/usr/local/lib/python3.11/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 812, in _convert_to_slithir
    func.generate_slithir_and_analyze()
  File "/usr/local/lib/python3.11/site-packages/slither/core/declarations/function.py", line 1837, in generate_slithir_and_analyze
    node.slithir_generation()
  File "/usr/local/lib/python3.11/site-packages/slither/core/cfg/node.py", line 707, in slithir_generation
    self._irs = convert_expression(expression, self)  # type:ignore
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/slither/slithir/convert.py", line 114, in convert_expression
    visitor = ExpressionToSlithIR(expression, node)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/slither/visitors/slithir/expression_to_slithir.py", line 174, in __init__
    self._visit_expression(self.expression)
  File "/usr/local/lib/python3.11/site-packages/slither/visitors/expression/expression.py", line 76, in _visit_expression
    visitor(expression)
  File "/usr/local/lib/python3.11/site-packages/slither/visitors/expression/expression.py", line 91, in _visit_call_expression
    self._visit_expression(expression.called)
  File "/usr/local/lib/python3.11/site-packages/slither/visitors/expression/expression.py", line 78, in _visit_expression
    self._post_visit(expression)
  File "/usr/local/lib/python3.11/site-packages/slither/visitors/expression/expression.py", line 276, in _post_visit
    self._post_member_access(expression)
  File "/usr/local/lib/python3.11/site-packages/slither/visitors/slithir/expression_to_slithir.py", line 612, in _post_member_access
    member = Member(expr, Constant(expression.member_name), val_ref)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/slither/slithir/operations/member.py", line 34, in __init__
    assert is_valid_rvalue(variable_left) or isinstance(
@highskore highskore added the bug-candidate Bugs reports that are not yet confirmed label Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug-candidate Bugs reports that are not yet confirmed
Projects
None yet
Development

No branches or pull requests

1 participant