test_reentrant_call()¶
Documentation for tests/cancun/eip1153_tstore/test_tstorage_reentrancy_contexts.py::test_reentrant_call@88e9fb8f.
Generate fixtures for these test cases for Osaka with:
fill -v tests/cancun/eip1153_tstore/test_tstorage_reentrancy_contexts.py::test_reentrant_call --fork Osaka
Test transient storage in different reentrancy contexts.
Source code in tests/cancun/eip1153_tstore/test_tstorage_reentrancy_contexts.py
317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 | |
Parametrized Test Cases¶
The interactive table below is also available as a standalone page.
| Test ID (Abbreviated) | bytecode | expected_storage |
|---|---|---|
| ...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_Cancun-blockchain_test_from_state_test-tstore_in_reentrant_call | {0: 1, 1: 256, 2: 256} | |
| ...fork_Cancun-blockchain_test_from_state_test-tload_after_reentrant_tstore | {0: 1, 1: 256, 2: 257} | |
| ...fork_Cancun-blockchain_test_from_state_test-manipulate_in_reentrant_call | {0: 1, 1: 256, 2: 257, 3: 257} | |
| ...fork_Cancun-blockchain_test_from_state_test-tstore_in_call_then_tload_return_in_staticcall | {0: 1, 1: 1, 2: 256, 3: 257, 4: 257} | |
| ...fork_Cancun-blockchain_test_from_state_test-tstore_before_revert_has_no_effect | {0: 0, 1: 256, 2: 256} | |
| ...fork_Cancun-blockchain_test_from_state_test-revert_undoes_all | {0: 0, 1: 256, 2: 257} | |
| ...fork_Cancun-blockchain_test_from_state_test-revert_undoes_tstorage_after_successful_call | {0: 0, 1: 1, 2: 256, 3: 256} | |
| ...fork_Cancun-blockchain_test_from_state_test-tstore_before_invalid_has_no_effect | {0: 0, 1: 256, 2: 256} | |
| ...fork_Cancun-blockchain_test_from_state_test-invalid_undoes_all | {0: 0, 1: 256, 2: 257} | |
| ...fork_Cancun-blockchain_test_from_state_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_Prague-blockchain_test_from_state_test-tstore_in_reentrant_call | {0: 1, 1: 256, 2: 256} | |
| ...fork_Prague-blockchain_test_from_state_test-tload_after_reentrant_tstore | {0: 1, 1: 256, 2: 257} | |
| ...fork_Prague-blockchain_test_from_state_test-manipulate_in_reentrant_call | {0: 1, 1: 256, 2: 257, 3: 257} | |
| ...fork_Prague-blockchain_test_from_state_test-tstore_in_call_then_tload_return_in_staticcall | {0: 1, 1: 1, 2: 256, 3: 257, 4: 257} | |
| ...fork_Prague-blockchain_test_from_state_test-tstore_before_revert_has_no_effect | {0: 0, 1: 256, 2: 256} | |
| ...fork_Prague-blockchain_test_from_state_test-revert_undoes_all | {0: 0, 1: 256, 2: 257} | |
| ...fork_Prague-blockchain_test_from_state_test-revert_undoes_tstorage_after_successful_call | {0: 0, 1: 1, 2: 256, 3: 256} | |
| ...fork_Prague-blockchain_test_from_state_test-tstore_before_invalid_has_no_effect | {0: 0, 1: 256, 2: 256} | |
| ...fork_Prague-blockchain_test_from_state_test-invalid_undoes_all | {0: 0, 1: 256, 2: 257} | |
| ...fork_Prague-blockchain_test_from_state_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} | |
| ...fork_Osaka-blockchain_test_from_state_test-tstore_in_reentrant_call | {0: 1, 1: 256, 2: 256} | |
| ...fork_Osaka-blockchain_test_from_state_test-tload_after_reentrant_tstore | {0: 1, 1: 256, 2: 257} | |
| ...fork_Osaka-blockchain_test_from_state_test-manipulate_in_reentrant_call | {0: 1, 1: 256, 2: 257, 3: 257} | |
| ...fork_Osaka-blockchain_test_from_state_test-tstore_in_call_then_tload_return_in_staticcall | {0: 1, 1: 1, 2: 256, 3: 257, 4: 257} | |
| ...fork_Osaka-blockchain_test_from_state_test-tstore_before_revert_has_no_effect | {0: 0, 1: 256, 2: 256} | |
| ...fork_Osaka-blockchain_test_from_state_test-revert_undoes_all | {0: 0, 1: 256, 2: 257} | |
| ...fork_Osaka-blockchain_test_from_state_test-revert_undoes_tstorage_after_successful_call | {0: 0, 1: 1, 2: 256, 3: 256} | |
| ...fork_Osaka-blockchain_test_from_state_test-tstore_before_invalid_has_no_effect | {0: 0, 1: 256, 2: 256} | |
| ...fork_Osaka-blockchain_test_from_state_test-invalid_undoes_all | {0: 0, 1: 256, 2: 257} | |
| ...fork_Osaka-blockchain_test_from_state_test-invalid_undoes_tstorage_after_successful_call | {0: 0, 1: 0, 2: 256, 3: 256} |