-
Notifications
You must be signed in to change notification settings - Fork 484
Closed
Labels
Description
Summary of the problem
Manticore uses filename_of_contract
which has been removed on crytic-compile v0.2.2 (via crytic/crytic-compile#223)
https://github.com/trailofbits/manticore/blob/master/manticore/ethereum/manticore.py#L305
This causes manticore to throw an exception. Downgrading crytic-compile with pip install crytic-compile==0.2.1
fixes this issue.
Manticore version
Version: 0.3.6
Python version
Python 3.6.9
OS / Environment
Distributor ID: Ubuntu
Description: Ubuntu 18.04.6 LTS
Release: 18.04
Codename: bionic
Dependencies
cryptography==2.1.4
crytic-compile==0.2.2
cytoolz==0.11.2
dataclasses==0.8
eth-hash==0.3.2
eth-typing==3.0.0
eth-utils==2.0.0
future==0.18.2
idna==2.6
importlib-metadata==4.8.2
intervaltree==3.1.0
keyring==10.6.0
keyrings.alt==3.0
manticore==0.3.6
ply==3.11
prettytable==2.4.0
protobuf==3.19.1
pycrypto==2.6.1
pyevmasm==0.2.3
pygobject==3.26.1
pysha3==1.0.2
python-apt==1.6.5+ubuntu0.7
pyxdg==0.25
PyYAML==6.0
rlp==3.0.0
SecretStorage==2.3.1
six==1.11.0
solc-select==0.2.1
sortedcontainers==2.4.0
toolz==0.11.2
typing-extensions==4.0.1
unattended-upgrades==0.1
wasm==1.2
wcwidth==0.2.5
z3-solver==4.8.13.0
zipp==3.6.0
Step to reproduce the behavior
Run manticore tests from https://github.com/crytic/building-secure-contracts
Expected behavior
Tests run
Actual behavior
Manticore throws an exception
Any relevant logs
Traceback (most recent call last):
File "example_run.py", line 9, in <module>
contract_account = m.solidity_create_contract(f, owner=user_account)
File "/usr/local/lib/python3.6/dist-packages/manticore/ethereum/manticore.py", line 576, in solidity_create_contract
source_code, contract_name_i, libraries=deps, crytic_compile_args=compile_args
File "/usr/local/lib/python3.6/dist-packages/manticore/ethereum/manticore.py", line 350, in _compile
source_code, contract_name, libraries, crytic_compile_args
File "/usr/local/lib/python3.6/dist-packages/manticore/ethereum/manticore.py", line 305, in _compile_through_crytic_compile
filename = compilation_unit.filename_of_contract(name).absolute
AttributeError: 'CompilationUnit' object has no attribute 'filename_of_contract'