Skip to content

test_slotnum_set_code()

Documentation for tests/amsterdam/eip7843_slotnum/test_slotnum.py::test_slotnum_set_code@ffe48572.

Generate fixtures for these test cases for Bogota with:

fill -v tests/amsterdam/eip7843_slotnum/test_slotnum.py::test_slotnum_set_code --fork Bogota

Test SLOTNUM inside a set-code delegated account (EIP-7702).

Source code in tests/amsterdam/eip7843_slotnum/test_slotnum.py
@EIPChecklist.Opcode.Test.ExecutionContext.SetCode()
def test_slotnum_set_code(
    state_test: StateTestFiller,
    pre: Alloc,
) -> None:
    """
    Test SLOTNUM inside a set-code delegated account (EIP-7702).
    """
    slot_number = 0xC0FFEE

    auth_signer = pre.fund_eoa(amount=0)
    set_code = Op.SSTORE(0, Op.SLOTNUM) + Op.STOP
    set_code_to_address = pre.deploy_contract(set_code)

    tx = Transaction(
        to=auth_signer,
        authorization_list=[
            AuthorizationTuple(
                address=set_code_to_address,
                nonce=0,
                signer=auth_signer,
            ),
        ],
        sender=pre.fund_eoa(),
    )

    post = {
        set_code_to_address: Account(storage={}),
        auth_signer: Account(
            nonce=1,
            code=Spec7702.delegation_designation(set_code_to_address),
            storage={0: slot_number},
        ),
    }

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

Parametrized Test Cases

This test generates 1 parametrized test case across 2 forks.