Skip to content

test_container_ambiguous_kind()

Documentation for tests/osaka/eip7692_eof_v1/eip7620_eof_create/test_subcontainer_validation.py::test_container_ambiguous_kind@3719e927.

Generate fixtures for these test cases for Osaka with:

fill -v tests/osaka/eip7692_eof_v1/eip7620_eof_create/test_subcontainer_validation.py::test_container_ambiguous_kind --fork Osaka

Test ambiguous container kind: a single subcontainer reference by both EOFCREATE and RETURNCODE.

Source code in tests/osaka/eip7692_eof_v1/eip7620_eof_create/test_subcontainer_validation.py
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
@pytest.mark.parametrize("container_idx", [0, 1, 255])
@pytest.mark.parametrize(
    "sub_container",
    [
        pytest.param(abort_sub_container, id="abort"),
        pytest.param(revert_sub_container, id="revert"),
    ],
)
def test_container_ambiguous_kind(
    eof_test: EOFTestFiller, container_idx: int, sub_container: Section
):
    """
    Test ambiguous container kind:
    a single subcontainer reference by both EOFCREATE and RETURNCODE.
    """
    sections = [
        Section.Code(
            code=(
                sum(Op.EOFCREATE[i](0, 0, 0, 0) for i in range(container_idx))
                + Op.EOFCREATE[container_idx](0, 0, 0, 0)
                + Op.RETURNCODE[container_idx](0, 0)
            ),
        ),
    ]
    sections += (container_idx + 1) * [sub_container]

    eof_test(
        container=Container(
            sections=sections,
            kind=ContainerKind.INITCODE,
        ),
        expect_exception=EOFException.AMBIGUOUS_CONTAINER_KIND,
    )

Parametrized Test Cases

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

Test ID (Abbreviated) sub_container container_idx
...fork_Osaka-eof_test-abort-container_idx_0 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x01\xff\x00\x00\x00\x00\x80\x00\x00\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 0
...fork_Osaka-eof_test-abort-container_idx_1 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x01\xff\x00\x00\x00\x00\x80\x00\x00\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 1
...fork_Osaka-eof_test-abort-container_idx_255 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x01\xff\x00\x00\x00\x00\x80\x00\x00\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 255
...fork_Osaka-eof_test-revert-container_idx_0 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x05\xff\x00\x00\x00\x00\x80\x00\x02`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 0
...fork_Osaka-eof_test-revert-container_idx_1 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x05\xff\x00\x00\x00\x00\x80\x00\x02`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 1
...fork_Osaka-eof_test-revert-container_idx_255 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x05\xff\x00\x00\x00\x00\x80\x00\x02`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 255
...fork_Osaka-state_test_from_eof_test-abort-container_idx_0 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x01\xff\x00\x00\x00\x00\x80\x00\x00\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 0
...fork_Osaka-state_test_from_eof_test-abort-container_idx_1 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x01\xff\x00\x00\x00\x00\x80\x00\x00\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 1
...fork_Osaka-state_test_from_eof_test-abort-container_idx_255 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x01\xff\x00\x00\x00\x00\x80\x00\x00\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 255
...fork_Osaka-state_test_from_eof_test-revert-container_idx_0 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x05\xff\x00\x00\x00\x00\x80\x00\x02`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 0
...fork_Osaka-state_test_from_eof_test-revert-container_idx_1 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x05\xff\x00\x00\x00\x00\x80\x00\x02`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 1
...fork_Osaka-state_test_from_eof_test-revert-container_idx_255 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x05\xff\x00\x00\x00\x00\x80\x00\x02`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 255
...fork_Osaka-blockchain_test_from_eof_test-abort-container_idx_0 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x01\xff\x00\x00\x00\x00\x80\x00\x00\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 0
...fork_Osaka-blockchain_test_from_eof_test-abort-container_idx_1 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x01\xff\x00\x00\x00\x00\x80\x00\x00\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 1
...fork_Osaka-blockchain_test_from_eof_test-abort-container_idx_255 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x01\xff\x00\x00\x00\x00\x80\x00\x00\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 255
...fork_Osaka-blockchain_test_from_eof_test-revert-container_idx_0 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x05\xff\x00\x00\x00\x00\x80\x00\x02`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 0
...fork_Osaka-blockchain_test_from_eof_test-revert-container_idx_1 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x05\xff\x00\x00\x00\x00\x80\x00\x02`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 1
...fork_Osaka-blockchain_test_from_eof_test-revert-container_idx_255 data=b'\xef\x00\x01\x01\x00\x04\x02\x00\x01\x00\x05\xff\x00\x00\x00\x00\x80\x00\x02`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=128 max_stack_increase=None max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False 255