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@8f516ce0.

Generate fixtures for these test cases for Prague with:

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

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
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
@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,
):
    """
    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