Su constructor no es payable
.
Las funciones de contrato se lanzan si se envía Ether y la función no está marcada explícitamente payable
. Esto ayuda a evitar que Ether quede aislado en contratos que no lo esperaban y no tienen una función de retiro con la que recuperarlo.
Dado que la función MyToken(
... no es payable
la implementación en sí misma falla con una excepción cuando llega Ether no deseado/inesperado.
Puedes resolver eso con
function MyToken(...) payable {}
Veo que tiene una payable
función alternativa para que pueda implementar el contacto y luego enviar fondos a la dirección del contrato.
A primera vista, este contrato parece no tener forma de recuperar el Ether que se le envió, por lo que se quema una vez que se transfiere. De hecho, esto muestra que es importante que los diseñadores consideren cómo entra y sale Ether y por qué es deseable evitar recibos no deseados.
Espero eso ayude.
Gracias por la respuesta; Tengo otra pregunta para usted: ¿por qué se llama a la función de respaldo aunque envíe 0 ether al principio?
Ajoy Bhatia