Ошибка: 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" } },