Test Function: test_reentrant_call()

Test transient storage in different reentrancy contexts.

Parametrized Test Cases

Test ID bytecode expected_storage
tstore_in_reentrant_call {0: 1, 1: 256, 2: 256}
tload_after_reentrant_tstore {0: 1, 1: 256, 2: 257}
manipulate_in_reentrant_call {0: 1, 1: 256, 2: 257, 3: 257}
tstore_in_call_then_tload_return_in_staticcall {0: 1, 1: 1, 2: 256, 3: 257, 4: 257}
tstore_before_revert_has_no_effect {0: 0, 1: 256, 2: 256}
revert_undoes_all {0: 0, 1: 256, 2: 257}
revert_undoes_tstorage_after_successful_call {0: 0, 1: 1, 2: 256, 3: 256}
tstore_before_invalid_has_no_effect {0: 0, 1: 256, 2: 256}
invalid_undoes_all {0: 0, 1: 256, 2: 257}
invalid_undoes_tstorage_after_successful_call {0: 0, 1: 0, 2: 256, 3: 256}
tstore_in_reentrant_call {0: 1, 1: 256, 2: 256}
tload_after_reentrant_tstore {0: 1, 1: 256, 2: 257}
manipulate_in_reentrant_call {0: 1, 1: 256, 2: 257, 3: 257}
tstore_in_call_then_tload_return_in_staticcall {0: 1, 1: 1, 2: 256, 3: 257, 4: 257}
tstore_before_revert_has_no_effect {0: 0, 1: 256, 2: 256}
revert_undoes_all {0: 0, 1: 256, 2: 257}
revert_undoes_tstorage_after_successful_call {0: 0, 1: 1, 2: 256, 3: 256}
tstore_before_invalid_has_no_effect {0: 0, 1: 256, 2: 256}
invalid_undoes_all {0: 0, 1: 256, 2: 257}
invalid_undoes_tstorage_after_successful_call {0: 0, 1: 0, 2: 256, 3: 256}