Skip to content

test_invalid_static_excess_blob_gas_from_zero_on_blobs_above_target()

Documentation for tests/cancun/eip4844_blobs/test_excess_blob_gas.py::test_invalid_static_excess_blob_gas_from_zero_on_blobs_above_target@83970623.

Generate fixtures for these test cases for Prague with:

fill -v tests/cancun/eip4844_blobs/test_excess_blob_gas.py::test_invalid_static_excess_blob_gas_from_zero_on_blobs_above_target --fork Prague

Test rejection of blocks where the excessBlobGas does not increase from zero, even when the included blobs is above target.

Test is parametrized to [TARGET_BLOBS_PER_BLOCK+1, MAX_BLOBS_PER_BLOCK] new blobs.

Source code in tests/cancun/eip4844_blobs/test_excess_blob_gas.py
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
@pytest.mark.parametrize("header_excess_blob_gas", [0])
@pytest.mark.parametrize_by_fork(
    "parent_blobs",
    lambda fork: range(fork.target_blobs_per_block() + 1, fork.max_blobs_per_block() + 1),
)
@pytest.mark.parametrize("parent_excess_blobs", [0])  # Start at 0
@pytest.mark.parametrize("new_blobs", [1])
def test_invalid_static_excess_blob_gas_from_zero_on_blobs_above_target(
    blockchain_test: BlockchainTestFiller,
    env: Environment,
    pre: Mapping[Address, Account],
    blocks: List[Block],
    correct_excess_blob_gas: int,
    header_excess_blob_gas: Optional[int],
):
    """
    Test rejection of blocks where the `excessBlobGas` does not increase from
    zero, even when the included blobs is above target.

    Test is parametrized to `[TARGET_BLOBS_PER_BLOCK+1, MAX_BLOBS_PER_BLOCK]` new blobs.
    """
    if header_excess_blob_gas is None:
        raise Exception("test case is badly formatted")

    if header_excess_blob_gas == correct_excess_blob_gas:
        raise Exception("invalid test case")

    blockchain_test(
        pre=pre,
        post={},
        blocks=blocks,
        genesis_environment=env,
        tag="-".join(
            [
                f"correct:{hex(correct_excess_blob_gas)}",
                f"header:{hex(header_excess_blob_gas)}",
            ]
        ),
    )

Parametrized Test Cases

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

Test ID (Abbreviated) parent_blobs new_blobs parent_excess_blobs header_excess_blob_gas
...fork_Cancun-parent_blobs_4-blockchain_test-new_blobs_1-parent_excess_blobs_0-header_excess_blob_gas_0 4 1 0 0
...fork_Cancun-parent_blobs_5-blockchain_test-new_blobs_1-parent_excess_blobs_0-header_excess_blob_gas_0 5 1 0 0
...fork_Cancun-parent_blobs_6-blockchain_test-new_blobs_1-parent_excess_blobs_0-header_excess_blob_gas_0 6 1 0 0
...fork_Prague-parent_blobs_7-blockchain_test-new_blobs_1-parent_excess_blobs_0-header_excess_blob_gas_0 7 1 0 0
...fork_Prague-parent_blobs_8-blockchain_test-new_blobs_1-parent_excess_blobs_0-header_excess_blob_gas_0 8 1 0 0
...fork_Prague-parent_blobs_9-blockchain_test-new_blobs_1-parent_excess_blobs_0-header_excess_blob_gas_0 9 1 0 0
...fork_Osaka-parent_blobs_7-blockchain_test-new_blobs_1-parent_excess_blobs_0-header_excess_blob_gas_0 7 1 0 0
...fork_Osaka-parent_blobs_8-blockchain_test-new_blobs_1-parent_excess_blobs_0-header_excess_blob_gas_0 8 1 0 0
...fork_Osaka-parent_blobs_9-blockchain_test-new_blobs_1-parent_excess_blobs_0-header_excess_blob_gas_0 9 1 0 0