Timeline for Why do `throw` and `revert()` create different bytecodes?
Current License: CC BY-SA 3.0
6 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Mar 7, 2018 at 8:36 | comment | added | alper |
How throw will continue to consume all available gas? so can we conclude that throw won't return unused gas to the sender?@RobHitchens
|
|
Jul 11, 2017 at 17:05 | vote | accept | SCBuergel | ||
Jul 11, 2017 at 17:05 | comment | added | SCBuergel |
ok thanks, now I got to my misunderstanding: the solidity revert() will return the gas, not the REVERT opcode which is used by both revert() and throw in Solidity, hence we need the difference in bytecode, thanks!
|
|
Jul 11, 2017 at 15:16 | comment | added | Rob Hitchens | I may be mistaken. My intuition says we can't get different results from identical code. Since revert and throw do (will) perform slightly different operations with respect to the gas, a difference in the code is to be expected. Put another way, if the compiled code was identical, how would the EVM know what to do with the gas? | |
Jul 11, 2017 at 14:30 | comment | added | SCBuergel |
Thank you. My understanding of those docs is however that both revert() and throw should compile into a REVERT opcode. Then I would expect at Metropolis to handle this opcode correspondingly (with a gas refund). I do not see why this would lead to different compiled code now or ever.
|
|
Jul 11, 2017 at 14:16 | history | answered | Rob Hitchens | CC BY-SA 3.0 |