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
SMT Checker is an experimental verification tool we can enable directly in contracts via pragma experimental SMTChecker statement.
Similarly to how we run mythril in the nightly build we need to compile our contracts with the Solidity SMTChecker pragma enabled. We have an experimental branch where this is tested. Below are the steps and changes done so far:
Build custom solc with Z3 support
Note that installing Z3 for me wasn't exactly straight forward, so leaving notes here in case anyone faces the same problems:
Script the addition of SMTChecker experimental pragma in CI
Run solc contracts/PatriciaTree/Data.sol --allow-paths lib/dappsys/*.sol as an example, which results in Segmentation fault: 11 potentially meaning a bad solc build.
Note the ongoing work to better integrate the SMTChecker capabilities in the dev experience, e.g. ethereum/solc-js#316
Related materials Presentation by Chris Reitwiessner from EF DevCon4 talk by EF's Leonardo Alt on using SMTChecker
The text was updated successfully, but these errors were encountered:
SMT Checker is an experimental verification tool we can enable directly in contracts via
pragma experimental SMTChecker
statement.Similarly to how we run
mythril
in the nightly build we need to compile our contracts with the SoliditySMTChecker
pragma enabled. We have an experimental branch where this is tested. Below are the steps and changes done so far:solc
with Z3 supportNote that installing Z3 for me wasn't exactly straight forward, so leaving notes here in case anyone faces the same problems:
brew install z3
Use instructions from https://github.com/Z3Prover/z3
Clone
solc
repo and follow build from source instructionsNote that to compile as a release you need an empty
prerelease.txt
file, see Latest v0.4.25 version is marked as a nightly ethereum/solidity#5463 (comment)Install the newly built
solc
viamake install
SMTChecker
experimental pragma in CIsolc contracts/PatriciaTree/Data.sol --allow-paths lib/dappsys/*.sol
as an example, which results inSegmentation fault: 11
potentially meaning a badsolc
build.Note the ongoing work to better integrate the
SMTChecker
capabilities in the dev experience, e.g. ethereum/solc-js#316Related materials
Presentation by Chris Reitwiessner from EF
DevCon4 talk by EF's Leonardo Alt on using SMTChecker
The text was updated successfully, but these errors were encountered: