Skip to content

test_invalid_excess_blob_gas_target_blobs_increase_from_zero()

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

Generate fixtures for these test cases for Prague with:

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

Test rejection of blocks where the excessBlobGas increases from zero, even when the included blobs are on or below target.

Test is parametrized according to [0, TARGET_BLOBS_PER_BLOCK new blobs.

Source code in tests/cancun/eip4844_blobs/test_excess_blob_gas.py
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
@pytest.mark.parametrize_by_fork(
    "header_excess_blobs_delta",
    lambda fork: range(1, fork.max_blobs_per_block()),
)
@pytest.mark.parametrize_by_fork(
    "parent_blobs",
    lambda fork: range(0, fork.target_blobs_per_block() + 1),
)
@pytest.mark.parametrize("parent_excess_blobs", [0])  # Start at 0
@pytest.mark.parametrize("new_blobs", [1])
def test_invalid_excess_blob_gas_target_blobs_increase_from_zero(
    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` increases from zero,
    even when the included blobs are on or below target.

    Test is parametrized according to `[0, TARGET_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 header_excess_blobs_delta new_blobs parent_excess_blobs
...fork_Cancun-parent_blobs_0-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 1 1 0
...fork_Cancun-parent_blobs_0-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 2 1 0
...fork_Cancun-parent_blobs_0-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 3 1 0
...fork_Cancun-parent_blobs_0-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 4 1 0
...fork_Cancun-parent_blobs_0-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 5 1 0
...fork_Cancun-parent_blobs_1-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 1 1 0
...fork_Cancun-parent_blobs_1-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 2 1 0
...fork_Cancun-parent_blobs_1-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 3 1 0
...fork_Cancun-parent_blobs_1-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 4 1 0
...fork_Cancun-parent_blobs_1-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 5 1 0
...fork_Cancun-parent_blobs_2-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 1 1 0
...fork_Cancun-parent_blobs_2-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 2 1 0
...fork_Cancun-parent_blobs_2-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 3 1 0
...fork_Cancun-parent_blobs_2-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 4 1 0
...fork_Cancun-parent_blobs_2-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 5 1 0
...fork_Cancun-parent_blobs_3-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 1 1 0
...fork_Cancun-parent_blobs_3-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 2 1 0
...fork_Cancun-parent_blobs_3-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 3 1 0
...fork_Cancun-parent_blobs_3-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 4 1 0
...fork_Cancun-parent_blobs_3-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 5 1 0
...fork_Prague-parent_blobs_0-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 1 1 0
...fork_Prague-parent_blobs_0-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 2 1 0
...fork_Prague-parent_blobs_0-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 3 1 0
...fork_Prague-parent_blobs_0-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 4 1 0
...fork_Prague-parent_blobs_0-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 5 1 0
...fork_Prague-parent_blobs_0-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 6 1 0
...fork_Prague-parent_blobs_0-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 7 1 0
...fork_Prague-parent_blobs_0-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 8 1 0
...fork_Prague-parent_blobs_1-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 1 1 0
...fork_Prague-parent_blobs_1-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 2 1 0
...fork_Prague-parent_blobs_1-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 3 1 0
...fork_Prague-parent_blobs_1-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 4 1 0
...fork_Prague-parent_blobs_1-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 5 1 0
...fork_Prague-parent_blobs_1-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 6 1 0
...fork_Prague-parent_blobs_1-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 7 1 0
...fork_Prague-parent_blobs_1-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 8 1 0
...fork_Prague-parent_blobs_2-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 1 1 0
...fork_Prague-parent_blobs_2-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 2 1 0
...fork_Prague-parent_blobs_2-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 3 1 0
...fork_Prague-parent_blobs_2-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 4 1 0
...fork_Prague-parent_blobs_2-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 5 1 0
...fork_Prague-parent_blobs_2-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 6 1 0
...fork_Prague-parent_blobs_2-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 7 1 0
...fork_Prague-parent_blobs_2-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 8 1 0
...fork_Prague-parent_blobs_3-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 1 1 0
...fork_Prague-parent_blobs_3-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 2 1 0
...fork_Prague-parent_blobs_3-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 3 1 0
...fork_Prague-parent_blobs_3-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 4 1 0
...fork_Prague-parent_blobs_3-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 5 1 0
...fork_Prague-parent_blobs_3-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 6 1 0
...fork_Prague-parent_blobs_3-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 7 1 0
...fork_Prague-parent_blobs_3-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 8 1 0
...fork_Prague-parent_blobs_4-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 1 1 0
...fork_Prague-parent_blobs_4-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 2 1 0
...fork_Prague-parent_blobs_4-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 3 1 0
...fork_Prague-parent_blobs_4-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 4 1 0
...fork_Prague-parent_blobs_4-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 5 1 0
...fork_Prague-parent_blobs_4-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 6 1 0
...fork_Prague-parent_blobs_4-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 7 1 0
...fork_Prague-parent_blobs_4-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 8 1 0
...fork_Prague-parent_blobs_5-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 1 1 0
...fork_Prague-parent_blobs_5-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 2 1 0
...fork_Prague-parent_blobs_5-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 3 1 0
...fork_Prague-parent_blobs_5-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 4 1 0
...fork_Prague-parent_blobs_5-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 5 1 0
...fork_Prague-parent_blobs_5-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 6 1 0
...fork_Prague-parent_blobs_5-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 7 1 0
...fork_Prague-parent_blobs_5-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 8 1 0
...fork_Prague-parent_blobs_6-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 1 1 0
...fork_Prague-parent_blobs_6-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 2 1 0
...fork_Prague-parent_blobs_6-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 3 1 0
...fork_Prague-parent_blobs_6-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 4 1 0
...fork_Prague-parent_blobs_6-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 5 1 0
...fork_Prague-parent_blobs_6-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 6 1 0
...fork_Prague-parent_blobs_6-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 7 1 0
...fork_Prague-parent_blobs_6-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 8 1 0
...fork_Osaka-parent_blobs_0-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 1 1 0
...fork_Osaka-parent_blobs_0-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 2 1 0
...fork_Osaka-parent_blobs_0-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 3 1 0
...fork_Osaka-parent_blobs_0-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 4 1 0
...fork_Osaka-parent_blobs_0-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 5 1 0
...fork_Osaka-parent_blobs_0-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 6 1 0
...fork_Osaka-parent_blobs_0-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 7 1 0
...fork_Osaka-parent_blobs_0-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 0 8 1 0
...fork_Osaka-parent_blobs_1-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 1 1 0
...fork_Osaka-parent_blobs_1-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 2 1 0
...fork_Osaka-parent_blobs_1-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 3 1 0
...fork_Osaka-parent_blobs_1-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 4 1 0
...fork_Osaka-parent_blobs_1-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 5 1 0
...fork_Osaka-parent_blobs_1-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 6 1 0
...fork_Osaka-parent_blobs_1-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 7 1 0
...fork_Osaka-parent_blobs_1-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 1 8 1 0
...fork_Osaka-parent_blobs_2-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 1 1 0
...fork_Osaka-parent_blobs_2-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 2 1 0
...fork_Osaka-parent_blobs_2-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 3 1 0
...fork_Osaka-parent_blobs_2-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 4 1 0
...fork_Osaka-parent_blobs_2-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 5 1 0
...fork_Osaka-parent_blobs_2-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 6 1 0
...fork_Osaka-parent_blobs_2-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 7 1 0
...fork_Osaka-parent_blobs_2-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 2 8 1 0
...fork_Osaka-parent_blobs_3-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 1 1 0
...fork_Osaka-parent_blobs_3-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 2 1 0
...fork_Osaka-parent_blobs_3-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 3 1 0
...fork_Osaka-parent_blobs_3-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 4 1 0
...fork_Osaka-parent_blobs_3-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 5 1 0
...fork_Osaka-parent_blobs_3-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 6 1 0
...fork_Osaka-parent_blobs_3-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 7 1 0
...fork_Osaka-parent_blobs_3-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 3 8 1 0
...fork_Osaka-parent_blobs_4-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 1 1 0
...fork_Osaka-parent_blobs_4-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 2 1 0
...fork_Osaka-parent_blobs_4-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 3 1 0
...fork_Osaka-parent_blobs_4-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 4 1 0
...fork_Osaka-parent_blobs_4-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 5 1 0
...fork_Osaka-parent_blobs_4-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 6 1 0
...fork_Osaka-parent_blobs_4-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 7 1 0
...fork_Osaka-parent_blobs_4-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 4 8 1 0
...fork_Osaka-parent_blobs_5-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 1 1 0
...fork_Osaka-parent_blobs_5-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 2 1 0
...fork_Osaka-parent_blobs_5-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 3 1 0
...fork_Osaka-parent_blobs_5-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 4 1 0
...fork_Osaka-parent_blobs_5-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 5 1 0
...fork_Osaka-parent_blobs_5-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 6 1 0
...fork_Osaka-parent_blobs_5-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 7 1 0
...fork_Osaka-parent_blobs_5-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 5 8 1 0
...fork_Osaka-parent_blobs_6-header_excess_blobs_delta_1-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 1 1 0
...fork_Osaka-parent_blobs_6-header_excess_blobs_delta_2-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 2 1 0
...fork_Osaka-parent_blobs_6-header_excess_blobs_delta_3-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 3 1 0
...fork_Osaka-parent_blobs_6-header_excess_blobs_delta_4-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 4 1 0
...fork_Osaka-parent_blobs_6-header_excess_blobs_delta_5-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 5 1 0
...fork_Osaka-parent_blobs_6-header_excess_blobs_delta_6-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 6 1 0
...fork_Osaka-parent_blobs_6-header_excess_blobs_delta_7-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 7 1 0
...fork_Osaka-parent_blobs_6-header_excess_blobs_delta_8-blockchain_test-new_blobs_1-parent_excess_blobs_0 6 8 1 0