You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Brownie v1.6.9 - Python development framework for Ethereum
Compiling contracts...
Solc version: 0.5.17+commit.d19bba13.Linux.gpp
Optimizer: Enabled Runs: 200
EVM Version: Istanbul
Generating build data...
File "brownie/_cli/__main__.py", line 57, in main
importlib.import_module(f"brownie._cli.{cmd}").main()
File "brownie/_cli/compile.py", line 30, in main
project.load(project_path)
File "brownie/project/main.py", line 513, in load
return Project(name, project_path)
File "brownie/project/main.py", line 132, in __init__
self.load()
File "brownie/project/main.py", line 161, in load
self._compile(changed, self._compiler_config, False)
File "brownie/project/main.py", line 78, in _compile
interface_sources=self._sources.get_interface_sources(),
File "brownie/project/compiler/__init__.py", line 120, in compile_and_format
build_json.update(generate_build_json(input_json, output_json, compiler_data, silent))
File "brownie/project/compiler/__init__.py", line 227, in generate_build_json
source_nodes, statement_nodes, branch_nodes = solidity._get_nodes(output_json)
File "brownie/project/compiler/solidity.py", line 519, in _get_nodes
source_nodes = solcast.from_standard_output(output_json)
File "solcast/main.py", line 33, in from_standard_output
source_nodes = set_dependencies(source_nodes)
File "solcast/dependencies.py", line 42, in set_dependencies
_add_dependencies(contract)
File "solcast/dependencies.py", line 52, in _add_dependencies
contract.dependencies |= _add_dependencies(node)
File "solcast/dependencies.py", line 52, in _add_dependencies
contract.dependencies |= _add_dependencies(node)
File "solcast/dependencies.py", line 52, in _add_dependencies
contract.dependencies |= _add_dependencies(node)
File line, line 983, in times]
File "solcast/dependencies.py", line 51, in _add_dependencies
for node in contract.dependencies.copy():
RecursionError: maximum recursion depth exceeded while calling a Python object
This may be jumping the gun considering #368 has yet to be addressed. Thought I'd share this since there were no import errors from the compiler. Is it possible to replace recursion here?
The text was updated successfully, but these errors were encountered:
Found the issue! In contracts-exchange-libs/contracts/src/LibOrder.sol:
libraryLibOrder{usingLibOrderforOrder;
This caused py-solc-ast to break while trying to determine the deps-of-deps of LibOrder. I hadn't anticipated a contract depending on itself.
I'll push a new patch version of py-solc-ast right away. With the patch I'm able to locally compile the repo built from your refactor.sh script. Also with the soon-to-merge work in #390 you can set the reampping in the config file and avoid the last egrep statement.
Environment information
brownie
Version: 1.6.9ganache-cli
Version: 6.9.1solc
Version: 0.5.17What was wrong?
Tried to compile 0x exchange contract as found on https://github.com/0xProject/0x-monorepo/tree/development/contracts using a bash script
refactor.sh
:and this MANIFEST file in the same directory as refactor.sh:
Using this command to reproduce the error:
Python stack trace:
This may be jumping the gun considering #368 has yet to be addressed. Thought I'd share this since there were no import errors from the compiler. Is it possible to replace recursion here?
The text was updated successfully, but these errors were encountered: