Skip to content

test_eof_calls_with_value()

Documentation for tests/osaka/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_with_value@3719e927.

Generate fixtures for these test cases for Osaka with:

fill -v tests/osaka/eip7692_eof_v1/eip7069_extcall/test_calls.py::test_eof_calls_with_value --fork Osaka

Test EOF contracts calls handle value calls with and without enough balance.

Source code in tests/osaka/eip7692_eof_v1/eip7069_extcall/test_calls.py
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
@pytest.mark.parametrize(
    "balance", [0, 1, 2, pytest.param(2**256 - 1, marks=pytest.mark.pre_alloc_modify)]
)
@pytest.mark.parametrize("value", [0, 1, 2, 2**256 - 1])
def test_eof_calls_with_value(
    state_test: StateTestFiller,
    pre: Alloc,
    sender: EOA,
    balance: int,
    value: int,
):
    """Test EOF contracts calls handle value calls with and without enough balance."""
    env = Environment()

    noop_callee_address = pre.deploy_contract(Container.Code(Op.STOP))

    calling_contract_address = pre.deploy_contract(
        Container.Code(
            Op.SSTORE(slot_call_result, Op.EXTCALL(address=noop_callee_address, value=value))
            + Op.SSTORE(slot_code_worked, value_code_worked)
            + Op.STOP
        ),
        balance=balance,
    )
    tx = Transaction(
        sender=sender,
        to=calling_contract_address,
        gas_limit=50000000,
    )

    calling_storage = {
        slot_code_worked: value_code_worked,
        slot_call_result: EXTCALL_REVERT if balance < value else EXTCALL_SUCCESS,
    }

    post = {
        calling_contract_address: Account(storage=calling_storage),
        noop_callee_address: Account(balance=0 if balance < value else value),
    }

    state_test(
        env=env,
        pre=pre,
        post=post,
        tx=tx,
    )

Parametrized Test Cases

The interactive table below is also available as a standalone page.

Test ID (Abbreviated) value balance
...fork_Osaka-state_test-value_0-balance_0 0 0
...fork_Osaka-state_test-value_0-balance_1 0 1
...fork_Osaka-state_test-value_0-balance_2 0 2
...fork_Osaka-state_test-value_0-balance_115792089237316195423570985008687907853269984665640564039457584007913129639935 0 115792089237316195423570985008687907853269984665640564039457584007913129639935
...fork_Osaka-state_test-value_1-balance_0 1 0
...fork_Osaka-state_test-value_1-balance_1 1 1
...fork_Osaka-state_test-value_1-balance_2 1 2
...fork_Osaka-state_test-value_1-balance_115792089237316195423570985008687907853269984665640564039457584007913129639935 1 115792089237316195423570985008687907853269984665640564039457584007913129639935
...fork_Osaka-state_test-value_2-balance_0 2 0
...fork_Osaka-state_test-value_2-balance_1 2 1
...fork_Osaka-state_test-value_2-balance_2 2 2
...fork_Osaka-state_test-value_2-balance_115792089237316195423570985008687907853269984665640564039457584007913129639935 2 115792089237316195423570985008687907853269984665640564039457584007913129639935
...fork_Osaka-state_test-value_115792089237316195423570985008687907853269984665640564039457584007913129639935-balance_0 115792089237316195423570985008687907853269984665640564039457584007913129639935 0
...fork_Osaka-state_test-value_115792089237316195423570985008687907853269984665640564039457584007913129639935-balance_1 115792089237316195423570985008687907853269984665640564039457584007913129639935 1
...fork_Osaka-state_test-value_115792089237316195423570985008687907853269984665640564039457584007913129639935-balance_2 115792089237316195423570985008687907853269984665640564039457584007913129639935 2
...fork_Osaka-state_test-value_115792089237316195423570985008687907853269984665640564039457584007913129639935-balance_115792089237316195423570985008687907853269984665640564039457584007913129639935 115792089237316195423570985008687907853269984665640564039457584007913129639935 115792089237316195423570985008687907853269984665640564039457584007913129639935
...fork_Osaka-blockchain_test_from_state_test-value_0-balance_0 0 0
...fork_Osaka-blockchain_test_from_state_test-value_0-balance_1 0 1
...fork_Osaka-blockchain_test_from_state_test-value_0-balance_2 0 2
...fork_Osaka-blockchain_test_from_state_test-value_0-balance_115792089237316195423570985008687907853269984665640564039457584007913129639935 0 115792089237316195423570985008687907853269984665640564039457584007913129639935
...fork_Osaka-blockchain_test_from_state_test-value_1-balance_0 1 0
...fork_Osaka-blockchain_test_from_state_test-value_1-balance_1 1 1
...fork_Osaka-blockchain_test_from_state_test-value_1-balance_2 1 2
...fork_Osaka-blockchain_test_from_state_test-value_1-balance_115792089237316195423570985008687907853269984665640564039457584007913129639935 1 115792089237316195423570985008687907853269984665640564039457584007913129639935
...fork_Osaka-blockchain_test_from_state_test-value_2-balance_0 2 0
...fork_Osaka-blockchain_test_from_state_test-value_2-balance_1 2 1
...fork_Osaka-blockchain_test_from_state_test-value_2-balance_2 2 2
...fork_Osaka-blockchain_test_from_state_test-value_2-balance_115792089237316195423570985008687907853269984665640564039457584007913129639935 2 115792089237316195423570985008687907853269984665640564039457584007913129639935
...fork_Osaka-blockchain_test_from_state_test-value_115792089237316195423570985008687907853269984665640564039457584007913129639935-balance_0 115792089237316195423570985008687907853269984665640564039457584007913129639935 0
...fork_Osaka-blockchain_test_from_state_test-value_115792089237316195423570985008687907853269984665640564039457584007913129639935-balance_1 115792089237316195423570985008687907853269984665640564039457584007913129639935 1
...fork_Osaka-blockchain_test_from_state_test-value_115792089237316195423570985008687907853269984665640564039457584007913129639935-balance_2 115792089237316195423570985008687907853269984665640564039457584007913129639935 2
...fork_Osaka-blockchain_test_from_state_test-value_115792089237316195423570985008687907853269984665640564039457584007913129639935-balance_115792089237316195423570985008687907853269984665640564039457584007913129639935 115792089237316195423570985008687907853269984665640564039457584007913129639935 115792089237316195423570985008687907853269984665640564039457584007913129639935