Test Function: test_reentrant_call()

Test transient storage in different reentrancy contexts.

Back to test_reentrant_call().

Parametrized Test Cases

Test ID (Abbreviated) bytecode expected_storage
...fork_Cancun-blockchain_test-tstore_in_reentrant_call {0: 1, 1: 256, 2: 256}
...fork_Cancun-blockchain_test-tload_after_reentrant_tstore {0: 1, 1: 256, 2: 257}
...fork_Cancun-blockchain_test-manipulate_in_reentrant_call {0: 1, 1: 256, 2: 257, 3: 257}
...fork_Cancun-blockchain_test-tstore_in_call_then_tload_return_in_staticcall {0: 1, 1: 1, 2: 256, 3: 257, 4: 257}
...fork_Cancun-blockchain_test-tstore_before_revert_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Cancun-blockchain_test-revert_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Cancun-blockchain_test-revert_undoes_tstorage_after_successful_call {0: 0, 1: 1, 2: 256, 3: 256}
...fork_Cancun-blockchain_test-tstore_before_invalid_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Cancun-blockchain_test-invalid_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Cancun-blockchain_test-invalid_undoes_tstorage_after_successful_call {0: 0, 1: 0, 2: 256, 3: 256}
...fork_Cancun-state_test-tstore_in_reentrant_call {0: 1, 1: 256, 2: 256}
...fork_Cancun-state_test-tload_after_reentrant_tstore {0: 1, 1: 256, 2: 257}
...fork_Cancun-state_test-manipulate_in_reentrant_call {0: 1, 1: 256, 2: 257, 3: 257}
...fork_Cancun-state_test-tstore_in_call_then_tload_return_in_staticcall {0: 1, 1: 1, 2: 256, 3: 257, 4: 257}
...fork_Cancun-state_test-tstore_before_revert_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Cancun-state_test-revert_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Cancun-state_test-revert_undoes_tstorage_after_successful_call {0: 0, 1: 1, 2: 256, 3: 256}
...fork_Cancun-state_test-tstore_before_invalid_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Cancun-state_test-invalid_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Cancun-state_test-invalid_undoes_tstorage_after_successful_call {0: 0, 1: 0, 2: 256, 3: 256}
...fork_Prague-blockchain_test-tstore_in_reentrant_call {0: 1, 1: 256, 2: 256}
...fork_Prague-blockchain_test-tload_after_reentrant_tstore {0: 1, 1: 256, 2: 257}
...fork_Prague-blockchain_test-manipulate_in_reentrant_call {0: 1, 1: 256, 2: 257, 3: 257}
...fork_Prague-blockchain_test-tstore_in_call_then_tload_return_in_staticcall {0: 1, 1: 1, 2: 256, 3: 257, 4: 257}
...fork_Prague-blockchain_test-tstore_before_revert_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Prague-blockchain_test-revert_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Prague-blockchain_test-revert_undoes_tstorage_after_successful_call {0: 0, 1: 1, 2: 256, 3: 256}
...fork_Prague-blockchain_test-tstore_before_invalid_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Prague-blockchain_test-invalid_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Prague-blockchain_test-invalid_undoes_tstorage_after_successful_call {0: 0, 1: 0, 2: 256, 3: 256}
...fork_Prague-state_test-tstore_in_reentrant_call {0: 1, 1: 256, 2: 256}
...fork_Prague-state_test-tload_after_reentrant_tstore {0: 1, 1: 256, 2: 257}
...fork_Prague-state_test-manipulate_in_reentrant_call {0: 1, 1: 256, 2: 257, 3: 257}
...fork_Prague-state_test-tstore_in_call_then_tload_return_in_staticcall {0: 1, 1: 1, 2: 256, 3: 257, 4: 257}
...fork_Prague-state_test-tstore_before_revert_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Prague-state_test-revert_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Prague-state_test-revert_undoes_tstorage_after_successful_call {0: 0, 1: 1, 2: 256, 3: 256}
...fork_Prague-state_test-tstore_before_invalid_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Prague-state_test-invalid_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Prague-state_test-invalid_undoes_tstorage_after_successful_call {0: 0, 1: 0, 2: 256, 3: 256}
...fork_Osaka-blockchain_test-tstore_in_reentrant_call {0: 1, 1: 256, 2: 256}
...fork_Osaka-blockchain_test-tload_after_reentrant_tstore {0: 1, 1: 256, 2: 257}
...fork_Osaka-blockchain_test-manipulate_in_reentrant_call {0: 1, 1: 256, 2: 257, 3: 257}
...fork_Osaka-blockchain_test-tstore_in_call_then_tload_return_in_staticcall {0: 1, 1: 1, 2: 256, 3: 257, 4: 257}
...fork_Osaka-blockchain_test-tstore_before_revert_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Osaka-blockchain_test-revert_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Osaka-blockchain_test-revert_undoes_tstorage_after_successful_call {0: 0, 1: 1, 2: 256, 3: 256}
...fork_Osaka-blockchain_test-tstore_before_invalid_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Osaka-blockchain_test-invalid_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Osaka-blockchain_test-invalid_undoes_tstorage_after_successful_call {0: 0, 1: 0, 2: 256, 3: 256}
...fork_Osaka-state_test-tstore_in_reentrant_call {0: 1, 1: 256, 2: 256}
...fork_Osaka-state_test-tload_after_reentrant_tstore {0: 1, 1: 256, 2: 257}
...fork_Osaka-state_test-manipulate_in_reentrant_call {0: 1, 1: 256, 2: 257, 3: 257}
...fork_Osaka-state_test-tstore_in_call_then_tload_return_in_staticcall {0: 1, 1: 1, 2: 256, 3: 257, 4: 257}
...fork_Osaka-state_test-tstore_before_revert_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Osaka-state_test-revert_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Osaka-state_test-revert_undoes_tstorage_after_successful_call {0: 0, 1: 1, 2: 256, 3: 256}
...fork_Osaka-state_test-tstore_before_invalid_has_no_effect {0: 0, 1: 256, 2: 256}
...fork_Osaka-state_test-invalid_undoes_all {0: 0, 1: 256, 2: 257}
...fork_Osaka-state_test-invalid_undoes_tstorage_after_successful_call {0: 0, 1: 0, 2: 256, 3: 256}