manticore
manticore copied to clipboard
Is there a way to work with solc 0.5.x?
Summary of the problem
Manticore docker container works with 0.4.25 solc release. Is there a way to work solc - release 0.5.x?
Manticore version
0.3.4
Python version
3.7.7
OS / Environment
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.11 (jessie) Release: 8.11 Codename: jessie
Dependencies
Step to reproduce the behavior
docker container-> manticore nomefile.sol (file with 0.5.x)
Expected behavior
Analysis
Actual behavior
Error in analysis - version supported 0.4.25
Any relevant logs
2020-07-01 05:11:54,910: [24] m.e.manticore:INFO: Failed to build contract None Errors : Invalid solc compilation /share/0x1c_fixed.sol:90:32: Error: Expected ',' but got 'payable' function withdrawEth(address payable _to) external; ^-----^
. Solidity failed to generate bytecode for your contract. Check if all the abstract functions are implemented.
Manticore works best with 0.4.x releases of solidity (it's what we test against) but the support for more recent versions has improved a lot recently. We probably won't be able to switch the default version, but I've opened a PR to check that here: #1760.
In the meantime, if you install Manticore locally, it'll use whatever solc
is in your path by default, so you can try out your particular contract to see if it's supported. You can also change the solc
version URL in the Dockerfile and run it locally, depending on what works best for you.