Contract-Debugging

安裝舊的 Solc 編譯器版本

  • December 23, 2019

我想在本地機器上使用 solc 編譯器編譯舊版本的 solc 合約原始碼。有沒有可以下載舊的 solc 編譯器的網站?

Google透露了一個舊 solcs 的 GitHub,但我嘗試使用 node 來執行.js. 文件沒有成功(可能使用這個錯誤)。

我維護了一個名為py-solc-x的 Python 庫,它允許您同時安裝和使用多個版本的 solc。它支持版本>=0.4.11。我在下麵包含了一些程式碼範例,以了解它是如何工作的。

安裝新版本的 solc:

>>> from solcx import install_solc
>>> install_solc('v0.4.25')

檢查已安裝的版本和可以安裝的版本:

>>> from solcx import get_installed_solc_versions, get_available_solc_versions
>>> get_installed_solc_versions()
['v0.4.25', 'v0.5.3', 'v0.6.0']
>>> get_available_solc_versions()
['v0.6.0', 'v0.5.15', 'v0.5.14', 'v0.5.13', 'v0.5.12', 'v0.5.11', 'v0.5.10', 'v0.5.9', 'v0.5.8', 'v0.5.7', 'v0.5.6', 'v0.5.5', 'v0.5.4', 'v0.5.3', 'v0.5.2', 'v0.5.1', 'v0.5.0', 'v0.4.25', 'v0.4.24', 'v0.4.23', 'v0.4.22', 'v0.4.21', 'v0.4.20', 'v0.4.19', 'v0.4.18', 'v0.4.17', 'v0.4.16', 'v0.4.15', 'v0.4.14', 'v0.4.13', 'v0.4.12', 'v0.4.11']

使用 pragma 語句設置目前的 solc 版本:

>>> set_solc_version_pragma('^0.4.20 || >0.5.5 <0.7.0', check_new=True)
Using solc version 0.5.8
Newer compatible solc version exists: 0.6.0

引用自:https://ethereum.stackexchange.com/questions/78448