Manage and switch between Solidity compiler versions
A tool to quickly switch between Solidity compiler versions.
The tool is split into two CLI utilities: -
solc-select: manages installing and setting different
solccompiler versions -
solc: wrapper around
solcwhich picks the right version according to what was set via
solcbinaries are downloaded from https://binaries.soliditylang.org/ which contains official artifacts for many historial and modern
solcversions for Linux and macOS.
The downloaded binaries are stored in
pip3 install solc-select
The global version of
solccan be set with the
$ solc --version solc, the solidity compiler commandline interface Version: 0.5.2+commit.1df8f40c.Linux.g++ $ solc-select use 0.4.24 Switched global version to 0.4.24 $ solc --version solc, the solidity compiler commandline interface Version: 0.4.24+commit.e67f0147.Linux.g++
SOLC_VERSIONenvironment variable to override the global version:
$ solc --version solc, the solidity compiler commandline interface Version: 0.4.24+commit.e67f0147.Linux.g++ $ SOLC_VERSION=0.5.2 solc --version solc, the solidity compiler commandline interface Version: 0.5.2+commit.1df8f40c.Linux.g++
You can list all available versions with
$ solc-select install Available versions to install: 0.3.6 0.4.0 ... 0.8.0 0.8.1
And install the one you need with with
$ solc-select install 0.8.1 Installing '0.8.1'... Version '0.8.1' installed.
Display the currently installed versions:
$ solc-select versions 0.8.0 0.4.2 (current, set by /Users/artur/.solc-select/global-version)
Feel free to stop by our Slack channel for help on using or extending
solc-select use [version]or setting
Uninstall other installations of solc on your machine.
solc-selectre-installs solc binaries for your operating system and acts as a wrapper for solc. With duplicate solc installations, this may result in your
solcversion not being up to date.
SSL: CERTIFICATE_VERIFY_FAILEDon running
solc-selectcommands [investigation ongoing]
bash pip3 install certifi /Applications/Python\ 3.8/Install\ Certificates.command
Python distributions on OS X has no certificates and cannot validate SSL connections, a breaking change introduced in Python 3.6. See StackOverflow post for additional details.
Connection refused[investigation ongoing]
pip3 uninstall solc-select pip3 install solc-select==0.2.0 solc-select install
Try downgrading to
solc-select version 0.2.0.
solc-selectpulls older Linux binaries from crytic/solc which seems to have introduced unexpected behavior in certain instances.
solc-selectis licensed and distributed under the AGPLv3 license. Contact us if you’re looking for an exception to the terms.