Open ChmielewskiKamil opened 1 year ago
Are you installing Manticore from PyPI or the latest commit on this repo? I tried to reproduce your results using the latest commit of Manticore, and it correctly removes the newer protobuf:
$ python3.9 -m venv manticore-env
$ source manticore-venv/bin/activate
$ pip install protobuf
Collecting protobuf
Downloading protobuf-4.21.9-cp37-abi3-macosx_10_9_universal2.whl (483 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 483.8/483.8 kB 4.2 MB/s eta 0:00:00
Installing collected packages: protobuf
Successfully installed protobuf-4.21.9
$ pip install .
[...]
Collecting protobuf~=3.20
Downloading protobuf-3.20.3-cp39-cp39-macosx_10_9_x86_64.whl (982 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 982.8/982.8 kB 4.0 MB/s eta 0:00:00
[...]
Attempting uninstall: protobuf
Found existing installation: protobuf 4.21.9
Uninstalling protobuf-4.21.9:
Successfully uninstalled protobuf-4.21.9
Successfully installed crytic-compile-0.2.4 cytoolz-0.12.0 eth-hash-0.5.1 eth-typing-3.2.0 eth-utils-2.1.0 future-0.18.2 intervaltree-3.1.0 manticore-0.3.7 ply-3.11 prettytable-3.5.0 protobuf-3.20.3 pyevmasm-0.2.3 pysha3-1.0.2 pyyaml-6.0 rlp-3.0.0 sortedcontainers-2.4.0 toolz-0.12.0 wasm-1.2 wcwidth-0.2.5 z3-solver-4.11.2.0
If you're using Manticore from PyPI, then I can reproduce your issue, and we'll need to create a new release of Manticore to fix it. Thank you for the report!
I am installing the PyPi version.
I am glad that I could be of some help!
Now I get AttributeError: module 'collections' has no attribute 'Callable'
Summary of the problem
This is my first-ever use of Manticore so please take it with a grain of salt.
I've installed Manticore in a virtual environment with Python 3.9.13 and run Manticore on a contract with
manticore token.sol
. After that I get the following error:TypeError: Descriptors cannot not be created directly.
. The actual log is in the any relevant logs section below.I've managed to fix the issue by downgrading the protobuf package to version 3.20.1 (as mentioned in #2558) by running
pip install protobuf==3.20.1
I've noticed that during the installation of Manticore (
pip install manticore
) it is using the cached version of protobuff:I've deleted the virtual environment and repeated the installation process 2 times with the same result.
I am aware of the fact that the protobuf v4 package is not supported yet (as there is #2559) but for a beginner user like me, this was a little headache to fix. I was not aware of the existence of the protobuf in the first place 😅
I am not sure if this is the expected behavior or not.
Thanks!
Manticore version
Version: 0.3.7
Python version
Python 3.9.13
OS / Environment
macOS Monterey Version 12.6 Apple M1 chip
Dependencies
crytic-compile==0.2.2 cytoolz==0.12.0 eth-hash==0.5.1 eth-typing==3.2.0 eth-utils==2.1.0 future==0.18.2 intervaltree==3.1.0 manticore==0.3.7 ply==3.11 prettytable==3.5.0 protobuf==3.20.1 pyevmasm==0.2.3 pysha3==1.0.2 PyYAML==6.0 rlp==3.0.0 sortedcontainers==2.4.0 toolz==0.12.0 wasm==1.2 wcwidth==0.2.5 z3-solver==4.11.2.0
Step to reproduce the behavior
python3.9 -m venv manticore-env
source manticore-env/bin/activate
cd
into the contracts foldermanticore token.sol
)Expected behavior
Start the analysis
Actual behavior
Type error
Any relevant logs