Вы должны добавить ключевое слово памяти для строкового параметра, который был введен в версии Solidness 0.5.0
Согласно документации:
Явное расположение данных для всех переменных структуры,Типы массива или отображения теперь обязательны. Это также применяется к параметрам функции и возвращаемым переменным. Например, измените uint [] x = m_x на uint [] storage x = m_x, а функцию f (uint [] [] x) на функцию f (uint [] [] memory x), где memory - это местоположение данных и можетбыть заменены хранилищем или calldata соответственно. Обратите внимание, что для внешних функций требуются параметры с местоположением данных calldata.
Исправленный код
contract MyContract {
string value;
function get() public view returns (string memory) {
return value;
}
function set(string memory _value) public {
value = _value;
}
constructor() public {
value = "myValue";
}
}
См. Официальную документацию о критических изменениях, внесенных в версии 0.50,0