mi ide es vs (puede encontrar que la versión de solc es 0.4.17), pero mi solcjs es 0.4.24.cuando ejecuto este código simple
`pragma solidity^ 0.4.45;
contract test{
function multiply(uint a) constant returns(uint d){
return a*7;
}
}
hay una advertencia "seguridad/exigir-visibilidad-explícita: No se especificó visibilidad explícitamente para la función de multiplicación".
Cuando ejecuto otro código simple, aparece una advertencia con "[solc] La mutabilidad del estado de la función se puede restringir a puro".
¿Hay algún problema con el conflicto de versiones sobre solc/solcjs? ¿Cómo lo soluciono?
La primera advertencia dice que olvidó marcar la visibilidad (pública, privada, externa o interna) de su función.
El segundo significa que su función se puede marcar como pure
, lo que significa que no lee ni escribe desde la cadena de bloques. constant
o view
las funciones pueden leer desde la cadena de bloques, pero la tuya no.
Ver los documentos para más detalles
Esto debería eliminar algunas advertencias:
pragma solidity ^0.4.24;
contract test{
function multiply(uint a) public pure returns(uint d){
return a*7;
}
}