Ошибка: Truffle в настоящее время использует solc 0.5.16, но в одном или нескольких ваших контрактах указано «pragma solidity ^0.8.0»

Ошибка: Truffle в настоящее время использует solc 0.5.16, но в одном или нескольких ваших контрактах указано «pragma solidity ^ 0.8.0»

Вот фото ошибки - https://gyazo.com/2f5ea2f50cc1d4ef5eea2f21d0e04fe7

Все мои контракты используют прагму ^ 0.8.0. Моя конфигурация трюфелей также использует ту же версию, что и здесь - https://gyazo.com/1ec8b28ca48902c091004f8659cf678d

Пожалуйста помоги. Большое спасибо.

5 ответов

Опустите "^". Нет version:"^0.8.0"

      compilers: {
       solc: {
           version: "0.8.0"  
       }

}

Раскомментируйте эту строку из truffle-config.js:

      compilers: {
  solc: {
    version: "0.8.10",  // <-- this one
    .
    .
    ...

@Yilmaz прав, что версию нужно изменить. Измените файл truffle-config.js на правильную версию компилятора. Убедитесь, что у вас установлена ​​версия. У меня была такая же ошибка, потому что версия не была установлена. Если ваш файл выглядит так:

      compilers: {
  solc: {
    // version: "0.5.1",    // Fetch exact version from solc-bin (default: truffle's version)
    // docker: true,        // Use "0.5.1" you've installed locally with docker (default: false)
    // settings: {          // See the solidity docs for advice about optimization and evmVersion
    //  optimizer: {
    //    enabled: false,
    //    runs: 200
    //  },
    //  evmVersion: "Byzantium"
    // }
}

Измените его на что-то вроде этого:

      compilers: {
  solc: {
    version: "^0.8.0"
}

Если вы используете Windows, измените имя файла «truffle.js» на «truffle.config.js», а внутри файла конфигурации truffle добавьте эту строку кода, если она не существует.

        compilers: {
solc: {
  version: "0.8.0" 

убедитесь, что не используете "^" в version:"0.8.0"

      }

}

или поместите параметр компилятора чуть ниже module.exports, например;

module.exports = { compilers: { solc: { version: "0.8.6" } },

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