Skip to content

test_set_code_to_log()

Documentation for tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_to_log@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_log --fork Prague

Test setting the code of an account to a contract that performs the log operation.

Source code in tests/prague/eip7702_set_code_tx/test_set_code_txs.py
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
@pytest.mark.parametrize(
    "log_opcode",
    [
        Op.LOG0,
        Op.LOG1,
        Op.LOG2,
        Op.LOG3,
        Op.LOG4,
    ],
)
@pytest.mark.with_all_evm_code_types
def test_set_code_to_log(
    state_test: StateTestFiller,
    pre: Alloc,
    log_opcode: Op,
):
    """Test setting the code of an account to a contract that performs the log operation."""
    sender = pre.fund_eoa()

    set_to_code = (
        Op.MSTORE(0, 0x1234)
        + log_opcode(size=32, topic_1=1, topic_2=2, topic_3=3, topic_4=4)
        + Op.STOP
    )
    set_to_address = pre.deploy_contract(set_to_code)

    tx = Transaction(
        gas_limit=10_000_000,
        to=sender,
        value=0,
        authorization_list=[
            AuthorizationTuple(
                address=set_to_address,
                nonce=1,
                signer=sender,
            ),
        ],
        sender=sender,
    )

    state_test(
        env=Environment(),
        pre=pre,
        tx=tx,
        post={
            sender: Account(
                nonce=2,
                code=Spec.delegation_designation(set_to_address),
            ),
        },
    )

Parametrized Test Cases

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

Test ID (Abbreviated) evm_code_type log_opcode
...fork_Prague-evm_code_type_LEGACY-state_test-log_opcode_LOG0 LEGACY LOG0
...fork_Prague-evm_code_type_LEGACY-state_test-log_opcode_LOG1 LEGACY LOG1
...fork_Prague-evm_code_type_LEGACY-state_test-log_opcode_LOG2 LEGACY LOG2
...fork_Prague-evm_code_type_LEGACY-state_test-log_opcode_LOG3 LEGACY LOG3
...fork_Prague-evm_code_type_LEGACY-state_test-log_opcode_LOG4 LEGACY LOG4
...fork_Prague-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG0 LEGACY LOG0
...fork_Prague-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG1 LEGACY LOG1
...fork_Prague-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG2 LEGACY LOG2
...fork_Prague-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG3 LEGACY LOG3
...fork_Prague-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG4 LEGACY LOG4
...fork_Osaka-evm_code_type_LEGACY-state_test-log_opcode_LOG0 LEGACY LOG0
...fork_Osaka-evm_code_type_LEGACY-state_test-log_opcode_LOG1 LEGACY LOG1
...fork_Osaka-evm_code_type_LEGACY-state_test-log_opcode_LOG2 LEGACY LOG2
...fork_Osaka-evm_code_type_LEGACY-state_test-log_opcode_LOG3 LEGACY LOG3
...fork_Osaka-evm_code_type_LEGACY-state_test-log_opcode_LOG4 LEGACY LOG4
...fork_Osaka-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG0 LEGACY LOG0
...fork_Osaka-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG1 LEGACY LOG1
...fork_Osaka-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG2 LEGACY LOG2
...fork_Osaka-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG3 LEGACY LOG3
...fork_Osaka-evm_code_type_LEGACY-blockchain_test_from_state_test-log_opcode_LOG4 LEGACY LOG4
...fork_Osaka-evm_code_type_EOF_V1-state_test-log_opcode_LOG0 EOF_V1 LOG0
...fork_Osaka-evm_code_type_EOF_V1-state_test-log_opcode_LOG1 EOF_V1 LOG1
...fork_Osaka-evm_code_type_EOF_V1-state_test-log_opcode_LOG2 EOF_V1 LOG2
...fork_Osaka-evm_code_type_EOF_V1-state_test-log_opcode_LOG3 EOF_V1 LOG3
...fork_Osaka-evm_code_type_EOF_V1-state_test-log_opcode_LOG4 EOF_V1 LOG4
...fork_Osaka-evm_code_type_EOF_V1-blockchain_test_from_state_test-log_opcode_LOG0 EOF_V1 LOG0
...fork_Osaka-evm_code_type_EOF_V1-blockchain_test_from_state_test-log_opcode_LOG1 EOF_V1 LOG1
...fork_Osaka-evm_code_type_EOF_V1-blockchain_test_from_state_test-log_opcode_LOG2 EOF_V1 LOG2
...fork_Osaka-evm_code_type_EOF_V1-blockchain_test_from_state_test-log_opcode_LOG3 EOF_V1 LOG3
...fork_Osaka-evm_code_type_EOF_V1-blockchain_test_from_state_test-log_opcode_LOG4 EOF_V1 LOG4