Невозможно изменить версию компилятора solc в VSCode

Я получаю эту ошибку в 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?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавьте следующий файл brownie-config.yaml в свой проект:

compiler:
  solc:
    version: 0.6.12

Когда вы compile, домовой скачает solc версию из конфига.

Другие вопросы по теме

Вопрос Solidity «Функция должна указать переопределенный контракт»
Разница между массивом состояний, инициализированным с использованием литералов, и другим массивом состояний, инициализированным с помощью «нового» оператора в Solidity?
Как условно выполнить итерацию сопоставления структур и вернуть только некоторые структуры — Solidity
Ошибка: supportChain устарел, вместо этого передайте сети
Существует ли система блокчейна с открытым исходным кодом для хранения небольших данных, таких как ключи и хэши, помимо биткойнов?
Как я могу добавить несколько входов в Solidity?
The Graph: как я могу включить в свой ответ это значение «цены», которое существует в другом типе GraphQL?
Мониторинг транзакций кошелька Polygon с помощью С#
Солана. Несоответствующая сумма перевода и изменение баланса целевого счета
Как получить общий баланс кошелька в Blockcypher API?