Error al crear contratos en la billetera Ethereum. Necesito ayuda [duplicar]

Estoy tratando de crear un token ERC20 fuera de ethereum, pero cuando coloco el código en el editor de la billetera ethereum, aparece un error extraño. Dice:

 "throw" is deprecated in favour of "revert()", "require()" and "assert()".
    if (balanceOf[msg.sender] < _value) throw;
                                        ^---^

(del blog de Ethereum ) ( Código fuente ) ¿Puede alguien ayudarme con esto?

¿Ha intentado compilar con un IDE diferente (como Remix en remix.ethereum.org )?

Respuestas (1)

Como dice claramente el mensaje de error

tirar ha quedado en desuso

Usar

require( balanceOf[msg.sender] >= _value)

Puede encontrar una descripción detallada en este artículo .

revert() y require() reembolsan el gas sobrante, sin embargo, assert() consume todo el gas proporcionado.

La función require debe usarse para garantizar que se cumplan condiciones válidas, como entradas o variables de estado del contrato, o para validar valores de retorno de llamadas a contratos externos. Si se usan correctamente, las herramientas de análisis pueden evaluar su contrato para identificar las condiciones y llamadas de función que llegarán a una aserción fallida. El código que funciona correctamente nunca debe llegar a una declaración de afirmación fallida; si esto sucede, hay un error en su contrato que debe corregir

.