Skip to content

test_deploying_delegation_designation_contract()

Documentation for tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_deploying_delegation_designation_contract@88e9fb8f.

Generate fixtures for these test cases for Osaka with:

fill -v tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_deploying_delegation_designation_contract --fork Osaka

Test attempting to deploy a contract that has the same format as a delegation designation.

Source code in tests/prague/eip7702_set_code_tx/test_set_code_txs.py
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
@pytest.mark.parametrize(
    "initcode_is_delegation_designation",
    [
        pytest.param(True, id="initcode_deploys_delegation_designation"),
        pytest.param(False, id="initcode_is_delegation_designation"),
    ],
)
def test_deploying_delegation_designation_contract(
    state_test: StateTestFiller,
    pre: Alloc,
    initcode_is_delegation_designation: bool,
) -> None:
    """
    Test attempting to deploy a contract that has the same format as a
    delegation designation.
    """
    sender = pre.fund_eoa()

    set_to_code = Op.RETURN(0, 1)
    set_to_address = pre.deploy_contract(set_to_code)

    initcode: Bytes | Bytecode
    if initcode_is_delegation_designation:
        initcode = Spec.delegation_designation(set_to_address)
    else:
        initcode = Initcode(deploy_code=Spec.delegation_designation(set_to_address))

    tx = Transaction(
        sender=sender,
        to=None,
        gas_limit=100_000,
        data=initcode,
    )

    state_test(
        env=Environment(),
        pre=pre,
        tx=tx,
        post={
            sender: Account(
                nonce=1,
            ),
            tx.created_contract: Account.NONEXISTENT,
        },
    )

Parametrized Test Cases

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

Test ID (Abbreviated) initcode_is_delegation_designation
...fork_Prague-state_test-initcode_deploys_delegation_designation True
...fork_Prague-state_test-initcode_is_delegation_designation False
...fork_Prague-blockchain_test_from_state_test-initcode_deploys_delegation_designation True
...fork_Prague-blockchain_test_from_state_test-initcode_is_delegation_designation False
...fork_Osaka-state_test-initcode_deploys_delegation_designation True
...fork_Osaka-state_test-initcode_is_delegation_designation False
...fork_Osaka-blockchain_test_from_state_test-initcode_deploys_delegation_designation True
...fork_Osaka-blockchain_test_from_state_test-initcode_is_delegation_designation False