Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
A tool to quickly switch between Solidity compiler versions.
The tool is split into two CLI utilities:
solc-select
: manages installing and setting different solc
compiler versionssolc
: wrapper around solc
which picks the right version according to what was set via solc-select
The solc
binaries are downloaded from https://binaries.soliditylang.org/ which contains
official artifacts for many historial and modern solc
versions for Linux and macOS.
The versioned binaries are stored in ~/.solc-select/artifacts/
.
pip3 install solc-select
To automatically install and use a version, run solc-select use <version> --always-install
.
solc
requires Rosetta to be installed. See the FAQ on how to install Rosetta.
The global version of solc
can be set with the solc-select use <version>
command:
$ 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++
Use SOLC_VERSION
environment 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
:
$ 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 solc-select install <version>
:
$ solc-select install 0.8.1
Installing '0.8.1'...
Version '0.8.1' installed.
You can also install the latest version with solc-select install latest
and use the latest version with solc-select use latest
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
.
On newer solc-select
versions, this might show as solc binaries for macOS are Intel-only. Please install Rosetta on your Mac to continue.
solc
requires Rosetta to be installed. To see whether you have Rosetta
installed on your Mac, run
pgrep -q oahd && echo Rosetta is installed || echo Rosetta is NOT installed
If it is not installed, it can be installed with the command
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
solc-select use [version]
or setting SOLC_VERSION
Uninstall other installations of solc on your machine. solc-select
re-installs solc binaries for your operating system and acts as a wrapper for solc. With duplicate solc installations, this may result in your solc
version not being up to date.
The solc-select version that supports Windows is currently in beta. Uninstall solc-select
through pip3 uninstall solc-select
and run
pip install solc-select==1.0.0b1
Alternatively, for the most up-to-date version, clone this repository and run
pip install . --user
SSL: CERTIFICATE_VERIFY_FAILED
on running solc-select
commands [investigation ongoing]OS X
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
.
Our 0.2.1
version of solc-select
pulls older Linux binaries from crytic/solc which seems to have introduced unexpected behavior in certain instances.
solc-select
version changes, but solc --version does not match
Users seem to be experiencing situations in which the following command is successful:
solc-select use <version>
However, when running the following command, it points to an older version of Solidity.
solc --version
solc-select
is intended to work with custom binaries. This means that Solidity installed through other means (i.e: brew install solidity
) will not work!.
Uninstall other versions Solidity from your computer.
solc-select
is licensed and distributed under the AGPLv3 license. Contact us if you’re looking for an exception to the terms.
FAQs
Manage multiple Solidity compiler versions.
We found that solc-select demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.