EVM/Exec: CallTooDeep is an error not a fatal error
Context
As it says in CREATE : Call depth limit reached only affect the return value and do not cause the calling context to revert. Or the fatal error cause the calling context to revert. CallTooDeep must be an error not a fatal error.
Manually testing the MR
To test my solution, I use evm_evaluation.
stStaticCall_static_Call1024PreCalls2_data_index_1_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_LoopCallsDepthThenRevert_data_index_0_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_CallRecursiveBomb3_data_index_0_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_Call1024BalanceTooLow2_data_index_1_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_Call1024PreCalls_data_index_1_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_ABAcalls1_data_index_0_gas_index_0_value_index_0: Failure -> Success
stRecursiveCreate_recursiveCreateReturnValue_data_index_0_gas_index_0_value_index_0: Failure -> Success
stSystemOperationsTest_ABAcalls1_data_index_0_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_ABAcalls3_data_index_1_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_CallRecursiveBombPreCall2_data_index_0_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_CallRecursiveBombPreCall_data_index_0_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_Call1024BalanceTooLow_data_index_1_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_Call1024PreCalls3_data_index_1_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_CallRecursiveBomb0_data_index_0_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_ABAcalls2_data_index_1_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_Call1024OOG_data_index_1_gas_index_0_value_index_0: Failure -> Success
stRecursiveCreate_recursiveCreate_data_index_0_gas_index_0_value_index_0: Failure -> Success
stStaticCall_static_ABAcalls1_data_index_1_gas_index_0_value_index_0: Failure -> Success
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rst
for the protocol and the environment,CHANGES.rst
at the root of the repository for everything else). -
Select suitable reviewers using the Reviewers
field below. -
Select as Assignee
the next person who should take action on that MR
Edited by Antoine Lanco