Solidity code parsing error
pipermerriam opened this issue · 0 comments
pipermerriam commented
What is wrong?
Traceback (most recent call last):
File "/home/web/venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3.7/contextlib.py", line 74, in inner
return func(*args, **kwds)
File "/home/web/venv/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/home/web/venv/lib/python3.7/site-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/home/web/venv/lib/python3.7/site-packages/rest_framework/views.py", line 466, in dispatch
response = self.handle_exception(exc)
File "/home/web/venv/lib/python3.7/site-packages/rest_framework/views.py", line 463, in dispatch
response = handler(request, *args, **kwargs)
File "./func_sig_registry/registry/views.py", line 87, in post
if not serializer.is_valid():
File "/home/web/venv/lib/python3.7/site-packages/rest_framework/serializers.py", line 213, in is_valid
self._validated_data = self.run_validation(self.initial_data)
File "/home/web/venv/lib/python3.7/site-packages/rest_framework/serializers.py", line 407, in run_validation
value = self.to_internal_value(data)
File "/home/web/venv/lib/python3.7/site-packages/rest_framework/serializers.py", line 439, in to_internal_value
validated_value = validate_method(validated_value)
File "./func_sig_registry/registry/forms.py", line 34, in validate_text_signature
return normalize_function_signature(value)
File "./func_sig_registry/utils/solidity.py", line 194, in normalize_function_signature
raise ValueError('could not parse function args') from e
ValueError: could not parse function argsTraceback (most recent call last):
File "./func_sig_registry/utils/solidity.py", line 192, in normalize_function_signature
args_tuple_type = parse_type(normalize_type(f'({arg_types})'))
File "/home/web/venv/lib/python3.7/site-packages/eth_abi/grammar.py", line 125, in parse
raise ParseError(e.text, e.pos, e.expr)
ParseError: Parse error at ')' (column 3) in type string '())'Traceback (most recent call last):
File "/home/web/venv/lib/python3.7/site-packages/eth_abi/grammar.py", line 123, in parse
return super().parse(type_str)
File "/home/web/venv/lib/python3.7/site-packages/parsimonious/nodes.py", line 254, in parse
return self._parse_or_match(text, pos, 'parse')
File "/home/web/venv/lib/python3.7/site-packages/parsimonious/nodes.py", line 289, in _parse_or_match
return self.visit(getattr(self.grammar, method_name)(text, pos=pos))
File "/home/web/venv/lib/python3.7/site-packages/parsimonious/grammar.py", line 115, in parse
return self.default_rule.parse(text, pos=pos)
File "/home/web/venv/lib/python3.7/site-packages/parsimonious/expressions.py", line 122, in parse
raise IncompleteParseError(text, node.end, self)
IncompleteParseError: Rule 'type' matched in its entirety, but it didn't consume all the text. The non-matching portion of the text begins with ')' (line 1, column 3).Traceback (most recent call last):
File "./func_sig_registry/utils/solidity.py", line 186, in normalize_function_signature
args_tuple_type = parse_type(normalize_type(f'({args})'))
File "/home/web/venv/lib/python3.7/site-packages/eth_abi/grammar.py", line 125, in parse
raise ParseError(e.text, e.pos, e.expr)
ParseError: Parse error at ' inte' (column 3) in type string '() internal view virtual returns (address payable)'Traceback (most recent call last):
File "/home/web/venv/lib/python3.7/site-packages/eth_abi/grammar.py", line 123, in parse
return super().parse(type_str)
File "/home/web/venv/lib/python3.7/site-packages/parsimonious/nodes.py", line 254, in parse
return self._parse_or_match(text, pos, 'parse')
File "/home/web/venv/lib/python3.7/site-packages/parsimonious/nodes.py", line 289, in _parse_or_match
return self.visit(getattr(self.grammar, method_name)(text, pos=pos))
File "/home/web/venv/lib/python3.7/site-packages/parsimonious/grammar.py", line 115, in parse
return self.default_rule.parse(text, pos=pos)
File "/home/web/venv/lib/python3.7/site-packages/parsimonious/expressions.py", line 122, in parse
raise IncompleteParseError(text, node.end, self)
IncompleteParseError: Rule 'type' matched in its entirety, but it didn't consume all the text. The non-matching portion of the text begins with ' internal view virtu' (line 1, column 3).
This was triggered by the submission of:
"function _msgSender() internal view virtual returns (address payable)"
How can it be fixed
🤷 didn't investigate yet