manticore
manticore copied to clipboard
Manticore fails basic command on multiple python versions
Summary of the problem
The following basic command has not been running on Mac. I changed the python version several times, from 3.9, to 3.7, to 3.6.
Manticore version
Version: 0.3.6
Python version
Tried on multiple versions with pyenv versions
3.6.0
3.6.15
* 3.6.5
3.7.6
OS / Environment
MacOS 10.15.7
Dependencies
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
importlib-metadata==4.8.3
intervaltree==3.1.0
manticore==0.3.6
ply==3.11
prettytable==2.5.0
protobuf==3.19.1
pyevmasm==0.2.3
pysha3==1.0.2
PyYAML==6.0
rlp==3.0.0
sortedcontainers==2.4.0
toolz==0.11.2
typing-extensions==4.0.1
wasm==1.2
wcwidth==0.2.5
z3-solver==4.8.14.0
zipp==3.6.0
Step to reproduce the behavior
python -m manticore <contract>.sol --contract <contract_name> --verbose-trace
Expected behavior
Maticore should successfully run the same way its running in the docker container.
Actual behavior
2022-01-08 14:25:25,514: [6436] m.c.manticore:WARNING: Manticore is only supported on Linux. Proceed at your own risk!
2022-01-08 14:25:25,813: [6436] m.main:INFO: Registered plugins: IntrospectionAPIPlugin, <class 'manticore.ethereum.plugins.SkipRevertBasicBlocks'>, <class 'manticore.ethereum.plugins.VerboseTrace'>, <class 'manticore.ethereum.plugins.FilterFunctions'>
2022-01-08 14:25:25,814: [6436] m.main:INFO: Beginning analysis
2022-01-08 14:25:25,833: [6436] m.e.manticore:INFO: Starting symbolic create contract
Process Process-1:
Traceback (most recent call last):
File "/Users/<user>/.pyenv/versions/3.6.5/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/Users/<user>/.pyenv/versions/3.6.5/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/Users/<user>/.pyenv/versions/3.6.5/lib/python3.6/site-packages/manticore/ethereum/manticore.py", line 1756, in worker_finalize
finalizer(q.get_nowait())
File "/Users/<user>/.pyenv/versions/3.6.5/lib/python3.6/site-packages/manticore/ethereum/manticore.py", line 1747, in finalizer
if only_alive_states and last_tx.result in {"REVERT", "THROW", "TXERROR"}:
AttributeError: 'NoneType' object has no attribute 'result'
2022-01-08 14:25:26,149: [6436] m.c.manticore:INFO: Results in /Users/<user>/Documents/projects/folder/contracts/mcore_hq0p1q4x
2022-01-08 14:25:26,150: [6436] m.c.manticore:WARNING: Manticore failed to run
Any relevant logs
N/a
This same command runs successfully in the docker container. Could it be that I'm using mac?
I tried it on multiple python versions, as I've seen discussed in several discussions/forums online.
I also saw this issue, and tried these solutions, but to no avail. I was seeing this same error as well on another version, but changing to python 3.6 didn't work.
https://github.com/trailofbits/manticore/issues/1713#issue-620841810
I also have the same error message (AttributeError: 'NoneType' object has no attribute 'result') using Python 3.7 and 3.8 in a docker (ubuntu:18.04) environment and using Manticore version 0.3.6.
I tried both building Manticore from the git repository and by using pip install.