
Un contrato que sigue ejecutándose tras una llamada fallida no tiene hoy una forma confiable de determinar si el llamado se revirtió intencionadamente o simplemente se quedó sin gas, según lo eligió el remitente. Esta brecha es la raíz del griefing por gas insuficiente, y una nueva propuesta en borrador intenta cerrarla a nivel EVM. EIP-8456, abierta a discusión en Ethereum Magicians el lunes, añade una instrucción llamada CALLSTATUS, provisionalmente en el opcode 0xA5 con un costo de 2 gas. Esta instrucción empuja el estado de finalización de la llamada o creación más reciente en el marco actual como tres bits. El bit 0 indica una reversión, el bit 1 indica una parada excepcional, como falta de gas, y el bit 2 indica que algo en un marco inferior se detuvo. El autor señala que la única evidencia disponible hoy es el cálculo de gasleft() tras la llamada, y que cada bifurcación de repricing ha roto esos umbrales. El propuesto gas bidimensional de EIP-8037 haría aún más débil ese cálculo, ya que su reservorio no es visible a través del opcode GAS. Entonces, ¿por qué el tercer bit? La mayoría de las llamadas reales pasan por intermediarios como proxies, el wrapper functionCall de OpenZeppelin, Multicall3 o verificadores de firma ERC-1271. Si solo se informara el estado final del llamado directo, un wrapper que capture una parada por falta de gas y revierta con un motivo parecería una reversión intencionada. El borrador mantiene una bandera persistente que viaja hacia arriba en cada marco, por lo que un remitente que solo controle el gas nunca podrá hacer que un llamador lea una reversión simple. Se informan resultados en lugar de causas, y un llamado aún puede producir una parada intencionada con INVALID. Solo protege código escrito después de su implementación, ya que los contratos desplegados no lo leerán. Aún no hay revisiones externas, el número del opcode sigue abierto, y un prototipo junto con pruebas para los 58 casos listados aún está pendiente. Enlace - https://t.co/KnByUBgWrY
