Skip to content

test_set_code_to_precompile()

Documentation for tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_to_precompile@21fb11c8.

Generate fixtures for these test cases for Prague with:

fill -v tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_to_precompile --fork Prague

Test setting the code of an account to a pre-compile address.

Source code in tests/prague/eip7702_set_code_tx/test_set_code_txs.py
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
@pytest.mark.with_all_call_opcodes(
    selector=(
        lambda opcode: opcode
        not in [Op.STATICCALL, Op.CALLCODE, Op.DELEGATECALL, Op.EXTDELEGATECALL, Op.EXTSTATICCALL]
    )
)
@pytest.mark.with_all_precompiles
def test_set_code_to_precompile(
    state_test: StateTestFiller,
    pre: Alloc,
    precompile: int,
    call_opcode: Op,
):
    """Test setting the code of an account to a pre-compile address."""
    auth_signer = pre.fund_eoa(auth_account_start_balance)

    caller_code_storage = Storage()
    caller_code = (
        Op.SSTORE(
            caller_code_storage.store_next(call_return_code(opcode=call_opcode, success=True)),
            call_opcode(address=auth_signer),
        )
        + Op.SSTORE(caller_code_storage.store_next(0), Op.RETURNDATASIZE)
        + Op.STOP
    )
    caller_code_address = pre.deploy_contract(caller_code)

    tx = Transaction(
        sender=pre.fund_eoa(),
        gas_limit=500_000,
        to=caller_code_address,
        authorization_list=[
            AuthorizationTuple(
                address=Address(precompile),
                nonce=0,
                signer=auth_signer,
            ),
        ],
    )

    state_test(
        env=Environment(),
        pre=pre,
        tx=tx,
        post={
            auth_signer: Account(
                nonce=1,
                code=Spec.delegation_designation(Address(precompile)),
            ),
            caller_code_address: Account(
                storage=caller_code_storage,
            ),
        },
    )

Parametrized Test Cases

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

Test ID (Abbreviated) precompile call_opcode evm_code_type
...fork_Prague-precompile_0x000000000000000000000000000000000000000b-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000b CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000b-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000b CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000c-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000c CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000c-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000c CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000d-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000d CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000d-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000d CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000e-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000e CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000e-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000e CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000f-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000f CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000f-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000f CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000010-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000010 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000010-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000010 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000011-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000011 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000011-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000011 CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000a-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000a CALL LEGACY
...fork_Prague-precompile_0x000000000000000000000000000000000000000a-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000a CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000009-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000009 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000009-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000009 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000005-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000005 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000005-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000005 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000006-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000006 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000006-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000006 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000007-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000007 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000007-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000007 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000008-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000008 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000008-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000008 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000001-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000001 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000001-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000001 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000002-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000002 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000002-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000002 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000003-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000003 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000003-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000003 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000004-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000004 CALL LEGACY
...fork_Prague-precompile_0x0000000000000000000000000000000000000004-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000004 CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000b-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 000000000b EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000b-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000b EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000b-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000b CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000b-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000b CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000c-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 000000000c EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000c-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000c EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000c-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000c CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000c-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000c CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000d-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 000000000d EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000d-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000d EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000d-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000d CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000d-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000d CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000e-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 000000000e EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000e-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000e EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000e-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000e CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000e-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000e CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000f-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 000000000f EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000f-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000f EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000f-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000f CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000f-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000f CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000010-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000010 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000010-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000010 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000010-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000010 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000010-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000010 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000011-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000011 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000011-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000011 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000011-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000011 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000011-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000011 CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000a-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 000000000a EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000a-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000a EXTCALL EOF_V1
...fork_Osaka-precompile_0x000000000000000000000000000000000000000a-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 000000000a CALL LEGACY
...fork_Osaka-precompile_0x000000000000000000000000000000000000000a-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 000000000a CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000009-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000009 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000009-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000009 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000009-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000009 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000009-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000009 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000005-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000005 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000005-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000005 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000005-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000005 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000005-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000005 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000006-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000006 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000006-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000006 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000006-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000006 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000006-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000006 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000007-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000007 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000007-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000007 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000007-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000007 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000007-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000007 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000008-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000008 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000008-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000008 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000008-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000008 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000008-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000008 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000001-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000001 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000001-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000001 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000001-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000001 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000001-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000001 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000002-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000002 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000002-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000002 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000002-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000002 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000002-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000002 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000003-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000003 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000003-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000003 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000003-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000003 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000003-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000003 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000004-call_opcode_EXTCALL-evm_code_type_EOF_V1-state_test 0x000000000000000000000000000000 0000000004 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000004-call_opcode_EXTCALL-evm_code_type_EOF_V1-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000004 EXTCALL EOF_V1
...fork_Osaka-precompile_0x0000000000000000000000000000000000000004-call_opcode_CALL-evm_code_type_LEGACY-state_test 0x000000000000000000000000000000 0000000004 CALL LEGACY
...fork_Osaka-precompile_0x0000000000000000000000000000000000000004-call_opcode_CALL-evm_code_type_LEGACY-blockchain_test_from_state_test 0x000000000000000000000000000000 0000000004 CALL LEGACY