EIP20.Sol no compila. En remix.ethereum.org, intento implementar un token de prueba

Seguí las instrucciones y obtuve un error:

Token esperado de error de análisis; obtuvo 'LParen' emit Transfer (msg.sender, _to_value);

¿Cómo puedo solucionar esto?

Código:

function transfer(address _to, uint256 _value) public returns (bool success) { 
    require(balances[msg.sender] >= _value); 
    balances[msg.sender] -= _value; 
    balances[_to] += _value; 
    emit Transfer(msg.sender, _to, _value); //solhint-disable-line indent, no-unused-vars return true; 
}
Desde este enlace de video youtube.com/watch?v=d5EipPVafsA
El error está en la línea 43. El código está debajo
transferencia de funciones (dirección _a, uint256 _valor) devoluciones públicas (éxito bool) { require(saldos[mensaje.remitente] >= _valor); saldos[mensaje.remitente] -= _valor; saldos[_a] += _valor; emit Transfer(msg.sender, _to, _value); //solhint-disable-line indent, no-unused-vars return true; }
El error está aquí emit Transfer(msg.sender, _to, _value);
Agregue su código completo a la pregunta con el formato adecuado. Sospecho que está utilizando una versión anterior del compilador que aún no admite la emitpalabra clave
¿Dice demasiado largo por 2348 caracteres?
Bueno, al menos proporcione un enlace al código completo: lo copió y pegó desde algún lugar
solidez de pragma ^0.4.21;

Respuestas (1)

Si copio y pego EIP20.sol y EIP20Interface.sol del github de ConsenSys proporcionado a Remix (en el mismo archivo), se compila perfectamente. También dudo que ConsenSys publique código que ni siquiera compila.

Sospecho que tu problema está en otra parte. ¿Quizás accidentalmente modificaste tu código de alguna manera?

Si está diciendo que el error está en la Transferlínea, supongo que está usando un compilador demasiado antiguo que aún no tiene la emitpalabra clave para eventos. Se incluye en versiones a partir de la 0.4.21.

Gracias por revisar. Voy a revisar dos veces el código. Estoy seguro de que no toqué nada excepto cambiar el 4.21 a 4.19 en EIP20Interface.sol porque hubo un error con 4.21.
El código no compilará
solidez de pragma ^0.4.21;
Si lo cambias a 4.19, ¿se compilará?
eh 0.4.19 no compilará porque no tiene la emitpalabra clave. Tienes que usar 0.4.21 o más reciente.
Entonces, ¿por qué EIPInterface.sol no se compila con la versión 4.21? Por favor avise caliente para arreglarlo. Gracias.
Cumple muy bien aquí, como ya dije
Ok, probaré tu sugerencia. Gracias por trabajar conmigo.
¡Tengo el mismo problema! El archivo de interfaz solo se compilará en 4.19 y el archivo de token no se compilará en absoluto con esta versión. Tener exactamente el mismo error de análisis