test_beacon_root_contract_calls()¶
Documentation for tests/cancun/eip4788_beacon_root/test_beacon_root_contract.py::test_beacon_root_contract_calls@88e9fb8f.
Generate fixtures for these test cases for Osaka with:
fill -v tests/cancun/eip4788_beacon_root/test_beacon_root_contract.py::test_beacon_root_contract_calls --fork Osaka
Test calling the beacon root contract in various call contexts.
These call contexts are tested:
- CALL
- DELEGATECALL
- CALLCODE
- STATICCALL
for different call gas amounts:
- exact gas (valid call)
- extra gas (valid call)
- insufficient gas (invalid call).
The expected result is that the contract call will be executed if the gas
amount is met and return the correctparent_beacon_block_root. Otherwise
the call will be invalid, and not be executed. This is highlighted within
storage by storing the return value of each call context.
Source code in tests/cancun/eip4788_beacon_root/test_beacon_root_contract.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | |
Parametrized Test Cases¶
The interactive table below is also available as a standalone page.
| Test ID (Abbreviated) | call_type | call_value | valid_input | call_gas | valid_call |
|---|---|---|---|---|---|
| ...fork_Cancun-blockchain_test-call_type_CALL-call_value_1-valid_input_True-call_gas_100000-valid_call_True | CALL | 1 | True | 100000 | True |
| ...fork_Cancun-blockchain_test-call_type_CALL-call_value_1-valid_input_True-call_gas_1000-valid_call_False | CALL | 1 | True | 1000 | False |
| ...fork_Cancun-blockchain_test-call_type_CALL-call_value_0-valid_input_True-call_gas_100000-valid_call_True | CALL | 0 | True | 100000 | True |
| ...fork_Cancun-blockchain_test-call_type_CALL-call_value_0-valid_input_True-call_gas_1000-valid_call_False | CALL | 0 | True | 1000 | False |
| ...fork_Cancun-blockchain_test-call_type_CALLCODE-call_value_0-valid_input_False-call_gas_100000-valid_call_True | CALLCODE | 0 | False | 100000 | True |
| ...fork_Cancun-blockchain_test-call_type_CALLCODE-call_value_0-valid_input_False-call_gas_1000-valid_call_False | CALLCODE | 0 | False | 1000 | False |
| ...fork_Cancun-blockchain_test-call_type_DELEGATECALL-call_value_0-valid_input_False-call_gas_100000-valid_call_True | DELEGATECALL | 0 | False | 100000 | True |
| ...fork_Cancun-blockchain_test-call_type_DELEGATECALL-call_value_0-valid_input_False-call_gas_1000-valid_call_False | DELEGATECALL | 0 | False | 1000 | False |
| ...fork_Cancun-blockchain_test-call_type_STATICCALL-call_value_0-valid_input_True-call_gas_100000-valid_call_True | STATICCALL | 0 | True | 100000 | True |
| ...fork_Cancun-blockchain_test-call_type_STATICCALL-call_value_0-valid_input_True-call_gas_1000-valid_call_False | STATICCALL | 0 | True | 1000 | False |
| ...fork_Prague-blockchain_test-call_type_CALL-call_value_1-valid_input_True-call_gas_100000-valid_call_True | CALL | 1 | True | 100000 | True |
| ...fork_Prague-blockchain_test-call_type_CALL-call_value_1-valid_input_True-call_gas_1000-valid_call_False | CALL | 1 | True | 1000 | False |
| ...fork_Prague-blockchain_test-call_type_CALL-call_value_0-valid_input_True-call_gas_100000-valid_call_True | CALL | 0 | True | 100000 | True |
| ...fork_Prague-blockchain_test-call_type_CALL-call_value_0-valid_input_True-call_gas_1000-valid_call_False | CALL | 0 | True | 1000 | False |
| ...fork_Prague-blockchain_test-call_type_CALLCODE-call_value_0-valid_input_False-call_gas_100000-valid_call_True | CALLCODE | 0 | False | 100000 | True |
| ...fork_Prague-blockchain_test-call_type_CALLCODE-call_value_0-valid_input_False-call_gas_1000-valid_call_False | CALLCODE | 0 | False | 1000 | False |
| ...fork_Prague-blockchain_test-call_type_DELEGATECALL-call_value_0-valid_input_False-call_gas_100000-valid_call_True | DELEGATECALL | 0 | False | 100000 | True |
| ...fork_Prague-blockchain_test-call_type_DELEGATECALL-call_value_0-valid_input_False-call_gas_1000-valid_call_False | DELEGATECALL | 0 | False | 1000 | False |
| ...fork_Prague-blockchain_test-call_type_STATICCALL-call_value_0-valid_input_True-call_gas_100000-valid_call_True | STATICCALL | 0 | True | 100000 | True |
| ...fork_Prague-blockchain_test-call_type_STATICCALL-call_value_0-valid_input_True-call_gas_1000-valid_call_False | STATICCALL | 0 | True | 1000 | False |
| ...fork_Osaka-blockchain_test-call_type_CALL-call_value_1-valid_input_True-call_gas_100000-valid_call_True | CALL | 1 | True | 100000 | True |
| ...fork_Osaka-blockchain_test-call_type_CALL-call_value_1-valid_input_True-call_gas_1000-valid_call_False | CALL | 1 | True | 1000 | False |
| ...fork_Osaka-blockchain_test-call_type_CALL-call_value_0-valid_input_True-call_gas_100000-valid_call_True | CALL | 0 | True | 100000 | True |
| ...fork_Osaka-blockchain_test-call_type_CALL-call_value_0-valid_input_True-call_gas_1000-valid_call_False | CALL | 0 | True | 1000 | False |
| ...fork_Osaka-blockchain_test-call_type_CALLCODE-call_value_0-valid_input_False-call_gas_100000-valid_call_True | CALLCODE | 0 | False | 100000 | True |
| ...fork_Osaka-blockchain_test-call_type_CALLCODE-call_value_0-valid_input_False-call_gas_1000-valid_call_False | CALLCODE | 0 | False | 1000 | False |
| ...fork_Osaka-blockchain_test-call_type_DELEGATECALL-call_value_0-valid_input_False-call_gas_100000-valid_call_True | DELEGATECALL | 0 | False | 100000 | True |
| ...fork_Osaka-blockchain_test-call_type_DELEGATECALL-call_value_0-valid_input_False-call_gas_1000-valid_call_False | DELEGATECALL | 0 | False | 1000 | False |
| ...fork_Osaka-blockchain_test-call_type_STATICCALL-call_value_0-valid_input_True-call_gas_100000-valid_call_True | STATICCALL | 0 | True | 100000 | True |
| ...fork_Osaka-blockchain_test-call_type_STATICCALL-call_value_0-valid_input_True-call_gas_1000-valid_call_False | STATICCALL | 0 | True | 1000 | False |