Я получаю эту ошибку в VSCode при попытке скомпилировать с помощью брауни. Я понимаю, что эта ошибка связана с тем, что версия прагмы в одном из моих файлов отличается от моего компилятора:
PS C:\Users\me\Documents\Code\Blockchain\brownie_fundme> brownie compile
INFO: Could not find files for the given pattern(s).
Brownie v1.18.1 - Python development framework for Ethereum
Compiling contracts...
Solc version: 0.8.13
Optimizer: Enabled Runs: 200
EVM Version: Istanbul
CompilerError: solc returned the following errors:
ParserError: Source file requires different compiler version (current compiler is 0.8.13+commit.abaa5c0e.Windows.msvc) - note that nightly builds are considered to be strictly less than the released version
--> C:/Users/me/.brownie/packages/smartcontractkit/[email protected]/contracts/src/v0.6/vendor/SafeMathChainlink.sol:2:1:
|
2 | pragma solidity ^0.6.0;
| ^^^^^^^^^^^^^^^^^^^^^^^
Я попытался изменить версию своего компилятора, используя расширение VSCode «Solidity» Хуана Бланко, на «Изменить версию компилятора глобальной/рабочей области (удаленно)», выбрав версию 0.6.0. (Я подтвердил, что это добавляет "solidity.compileUsingRemoteVersion": "v0.6.0+commit.6c089d02"
к моему файлу settings.json).
Но когда я снова запускаю brownie compile
, я все равно получаю ту же ошибку:
«...ParserError: Исходный файл требует другой версии компилятора (текущий компилятор 0.8.13+commit.abaa5c0e.Windows.msvc)...», показывающий, что моя версия компилятора не изменилась.
(У меня установлен удаленный компилятор по умолчанию, и я также пытался перезапустить все открытые терминалы после внесения этих изменений.)
Я установил solcx с pip, а также имею папку .solcx в моем каталоге «C:/Users/me», которая содержит папку «solc-v0.8.13». Я попытался удалить эту папку и снова скомпилировать, но брауни автоматически загрузил ту же версию 0.8.13.
Я не понимаю, как изменить версию компилятора глобальной или рабочей области. Может ли версия solc переопределяться откуда-то, кроме моих настроек VSCode?
Добавьте следующий файл brownie-config.yaml
в свой проект:
compiler:
solc:
version: 0.6.12
Когда вы compile
, домовой скачает solc
версию из конфига.