Ошибка синтаксического анализа в солидности, ожидаемый идентификатор, но зарезервированное ключевое слово «неизменяемый»

#blockchain #solidity #erc20 #bep20

Вопрос:

Я пытаюсь скомпилировать свой код на своем смарт-контракте токена на солидности, но эта строка вызывает ошибку:

 address public immutable BUSD = address(0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56); //BUSD
 

Сообщение об ошибке:

 contracts/Work Protocol.sol:32:20: ParserError: Expected identifier but got reserved keyword 'immutable'
address public immutable BUSD = address(0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56); //BUSD
^-------^
 

Ответ №1:

immutable была введена в 0.6.5, если вы используете любую версию старше этой, вы получите ошибку компиляции, о которой вы упомянули.

Версия 0.6.5 Solidity исправляет важную ошибку и вводит неизменяемость в качестве основной функции.

https://github.com/ethereum/solidity/releases/tag/v0.6.5

Комментарии:

1. Огромное спасибо!. Очень Ценю Ваш Ответ. Позвольте Мне Попробовать

2. я получаю эту ошибку при компиляции. как мне это решить/ ошибка ниже не найдена / IUniswapV2Router.sol

3. Это сообщение означает, что этот путь к контракту не был найден в вашей среде, если вы используете сторонний контракт, убедитесь, что у вас есть все контракты, необходимые для этого, в вашем пути, также убедитесь, что путь импорта указан правильно в вашем контракте, в любом случае об этом трудно догадаться только с предоставленной вами информацией, лучше поделиться более подробной информацией о контракте, который вы используете, а также о том, как вы его составляете

4. это контракт третьей стороны, и я использую солидность для компиляции. Вот ссылка github.com/Loudmarket/LoudMarket/blob/main/LM.sol

5. Спасибо. действительно ценю