Manage multiple Solidity compiler versions.
Project description
# 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 different solc compiler versions - solc: 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 downloaded binaries are stored in ~/.solc-select/artifacts/.
## Quickstart
` pip3 install solc-select `
## Usage
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. `
Display the currently installed versions: ` $ solc-select versions 0.8.0 0.4.2 (current, set by /Users/artur/.solc-select/global-version) `
## Getting Help
Feel free to stop by our [Slack channel](https://empirehacking.slack.com/) for help on using or extending solc-select.
## FAQ
### solc-version not changing after running 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.
### “Unsupported Platform” on Windows
The solc-select version that supports Windows is currently in beta. Uninstall solc-select through pip3 uninstall solc-select and run
`bash pip install solc-select==1.0.0b1 `
Alternatively, for the most up-to-date version, clone this repository and run `bash pip install . --user `
## Known Issues
### SSL: CERTIFICATE_VERIFY_FAILED on running solc-select commands [investigation ongoing]
OS X `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](https://stackoverflow.com/a/42334357) post for additional details.
### Connection refused [investigation ongoing]
`bash 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](https://github.com/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.
## License
solc-select is licensed and distributed under the [AGPLv3](LICENSE) license. [Contact us](mailto:opensource@trailofbits.com) if you’re looking for an exception to the terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for solc_select-1.0.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cc505aee5c579e8bee750a1aa371f03347acde81b9dae475d0515654f34ccfa |
|
MD5 | f4bbf117ea16b37976567eb21e1bf945 |
|
BLAKE2b-256 | 56b73887bec6a7d8d659815f77ee8048dcd4ddc9e2384f740a3d1a3563da3d92 |