мой ide vs (можно найти версию solc 0.4.17), но мой solcjs 0.4.24. когда я запускаю этот простой код
`pragma solidity^ 0.4.45;
contract test{
function multiply(uint a) constant returns(uint d){
return a*7;
}
}
есть предупреждение «security/enforce-explicit-visibility: видимость явно не указана для функции умножения».
Когда я запускаю другой простой код, появляется предупреждение: «изменчивость состояния функции [solc] может быть ограничена чистым».
Что-то не так с конфликтом версий в solc/solcjs? Как мне это решить?
Первое предупреждение говорит о том, что вы забыли отметить видимость (общедоступную, приватную, внешнюю или внутреннюю) вашей функции.
Второе означает, что ваша функция может быть помечена как pure
, что означает, что она не читает и не пишет из блокчейна. constant
или view
функциям разрешено читать из блокчейна, а вашей — нет.
См. документы для получения более подробной информации.
Это должно устранить некоторые предупреждения:
pragma solidity ^0.4.24;
contract test{
function multiply(uint a) public pure returns(uint d){
return a*7;
}
}