Aquí: http://solidity.readthedocs.io/en/v0.4.21/units-and-global-variables.html , establece
Puede ser que te encuentres con Out-of-Gas para sha256, ripemd160 o ecrecover en una cadena de bloques privada. La razón de esto es que se implementan como los llamados contratos precompilados y estos contratos solo existen realmente después de recibir el primer mensaje (aunque su código de contrato está codificado). Los mensajes a contratos no existentes son más caros y, por lo tanto, la ejecución se encuentra con un error de falta de gas. Una solución para este problema es enviar primero, por ejemplo, 1 Wei a cada uno de los contratos antes de usarlos en sus contratos reales. Esto no es un problema en la red oficial o de prueba.
También se está quedando sin gasolina en Ropsten, estoy llamando a una función que involucra ecrecover
y no se está ejecutando.
Aunque, la misma función funcionó bien en las pruebas de trufas. Ejecutando la misma función en Remix , obtén
Error de estimación de gas con el siguiente mensaje (ver más abajo). Es probable que la ejecución de la transacción falle. ¿Quieres forzar el envío? Error: el gas requerido excede la asignación o siempre falla la transacción
Etherscan Tx: https://ropsten.etherscan.io/tx/0x229a4e16f4464809181a24a16e1db2acb82b11ac160c26a1aa5e692495fb4d4a
¿Cómo puedo ejecutar esta función usando Ropsten?
Lo hice funcionar. El problema fue con el prefijo en la firma, es decir \x19Ethereum Signed Message:\n32
. Se pueden encontrar más detalles del problema aquí: https://github.com/OpenZeppelin/zeppelin-solidity/issues/644
ismael
Aniket
medvedev1088
hexteto