Skip to content

EVM/Exec: CallTooDeep is an error not a fatal error

Antoine Lanco requested to merge antoine@functori@call-too-deep-error into master

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

Merge request reports