Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Manage and switch between Solidity compiler versions

License

NotificationsYou must be signed in to change notification settings

crytic/solc-select

A tool to quickly switch between Solidity compiler versions.

The tool is split into two CLI utilities:

  • solc-select: manages installing and setting differentsolc compiler versions
  • solc: wrapper aroundsolc which picks the right version according to what was set viasolc-select

Thesolc binaries are downloaded fromhttps://binaries.soliditylang.org/ which containsofficial artifacts for many historial and modernsolc versions for Linux and macOS.

The versioned binaries are stored in~/.solc-select/artifacts/.

Installation

Using pip

pip3 install solc-select

Using uv (recommended for development)

uv tool install solc-select

To automatically install and use a version, runsolc-select use <version> --always-install.

Running on ARM (Mac M1/M2)

solc-select provides native ARM64 support for versions 0.8.5-0.8.23, and universal binary support for 0.8.24+. For versions older than 0.8.5, Rosetta is required. See the FAQ onhow to install Rosetta.

Usage

Quick Start

# Install and set a specific Solidity versionsolc-select use 0.8.19 --always-install# Check the current versionsolc --version

Managing Versions

The global version ofsolc will automatically be set to the latest version. You can change this with thesolc-select use <version> command:

$ solc --versionsolc, the solidity compiler commandline interfaceVersion: 0.5.2+commit.1df8f40c.Linux.g++$ solc-select use 0.4.24Switched global version to 0.4.24$ solc --versionsolc, the solidity compiler commandline interfaceVersion: 0.4.24+commit.e67f0147.Linux.g++

UseSOLC_VERSION environment variable to override the global version:

$ solc --versionsolc, the solidity compiler commandline interfaceVersion: 0.4.24+commit.e67f0147.Linux.g++$ SOLC_VERSION=0.5.2 solc --versionsolc, the solidity compiler commandline interfaceVersion: 0.5.2+commit.1df8f40c.Linux.g++

By default, solc-select will halt if you try to use a version that you do not have installed already. Use the--always-install flags to bypass this.

$ solc-select use 0.8.1 --always-installInstalling'0.8.1'...Version'0.8.1' installed.

Available Commands

# List all available versionssolc-select install# Install a specific versionsolc-select install 0.8.19# Switch to an installed versionsolc-select use 0.8.19# List installed versionssolc-select versions# Install and switch to a version in one commandsolc-select use 0.8.19 --always-install

Getting Help

Feel free to stop by ourSlack channel for help on using or extendingsolc-select.

FAQ

OSError: [Errno 86] Bad CPU type in executable

On newersolc-select versions, this might show assolc binaries for macOS are Intel-only. Please install Rosetta on your Mac to continue. orsolc binaries previous to 0.8.5 for macOS are Intel-only. Please install Rosetta on your Mac to continue.

solc releases earlier than 0.8.5 require Rosetta to be installed. Versions 0.8.5-0.8.23 run natively on ARM64, and 0.8.24+ use universal binaries. To seewhether 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-version not changing after runningsolc-select use [version] or settingSOLC_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 yoursolc version not being up to date.

"Unsupported Platform" on Windows

You might be using an old version ofsolc-select or Python if you are seeing this error message. The current stable release supports Windows; try upgrading yoursolc-select installation with the following command.

pip install --upgrade solc-select

Known Issues

SSL: CERTIFICATE_VERIFY_FAILED on runningsolc-select commands [investigation ongoing]

OS X: Python distributions on OS X has no certificates and cannot validate SSL connections, a breaking change introduced in Python 3.6. SeeStackOverflow post for additional details.

The following commands may resolve the issue; adjust the Python version to the one installed on your system:

pip3 install certifi/Applications/Python\3.8/Install\Certificates.command

Connection refused [investigation ongoing]

Our0.2.1 version ofsolc-select pulls older Linux binaries fromcrytic/solc which seems to have introduced unexpected behavior in certain instances. Apparently,certain ISPs such as Jio may be blocking access to certain GitHub domains. If possible, try using a different Internet provider to see if it resolves the problem.

Alternatively, try downgrading tosolc-select version 0.2.0.

pip3 uninstall solc-selectpip3 install solc-select==0.2.0solc-select install

solc-select version changes, butsolc --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) willnot work!.

Uninstall other versions Solidity from your computer.

License

solc-select is licensed and distributed under theAGPLv3 license.Contact us if you’re looking for an exception to the terms.

About

Manage and switch between Solidity compiler versions

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors28


[8]ページ先頭

©2009-2025 Movatter.jp