Solidez: ParserError: Pragma esperado, directiva de importación o definición de contrato/interfaz/biblioteca. uint edad privada; ^

Estoy usando Atomjunto con etheratomy no entiendo por qué este código simple no se ejecutará:

pragma solidity ^0.4.19

contract MyFirstContract {
    string private name;
    uint private age;

    function setName(string newName) {
        name = newName;
    }

    function getName() returns (string) {
        return name;
    }
}

Me muestra el siguiente error:

:5:5: ParserError: Expected pragma, import directive or contract/interface/library definition. uint private age; ^

¿Alguien tiene una idea de lo que está mal?

Respuestas (1)

Te falta un ;después de declarar qué versión de solidity estás usando. Use esto pragma solidity ^0.4.19;en la primera línea en su lugar. Considere usar remix IDE en el futuro para ayudar a resolver estos pequeños errores.

También puede usar viewen la getNamefunción, esto se puede usar ya que la función solo lee datos y no le costará a Ether ejecutar. Aquí está la función actualizada

function getName() view returns (string) {
    return name;
}

código actualizado

pragma solidity ^0.4.19;

contract MyFirstContract {
    string private name;
    uint private age;

function setName(string newName) {
    name = newName;
    }

function getName() view returns (string) {
    return name;
    }
}
Remix da exactamente el mismo mensaje de error. (Esto no es sorprendente porque ambos usan el mismo compilador de Solidity).
¿Está seguro? Cuando lo compilo en el editor en línea no obtengo errores.
Pegué el código de la pregunta en Remix y obtuve el mismo error.
Para ser claros, estaba respondiendo a "Considere usar remix IDE en el futuro para ayudar a resolver estos pequeños errores". Quería señalar que Remix y etheratom se comportan igual en este caso.
He actualizado mi respuesta con mi código editado, intente poner eso y espero que funcione
El código actualizado es, por supuesto, correcto. Mi punto era que Remix y etheratom dan el mismo error para el código original .
Cierto, mal leíste un poco. ¡Pensé que estaba recibiendo el mismo error con el código actualizado! ¡Me alegro de que funcione! Remix brinda consejos útiles sobre dónde están los errores, personalmente me gusta usarlo, pero depende de usted.
No soy la persona que hizo la pregunta. Solo me aseguro de que sepan que no tienen que cambiarse a Remix. No hay nada malo con etheratom.