Skip to content

test_invalid_excess_blob_gas_above_target_change()

Documentation for tests/cancun/eip4844_blobs/test_excess_blob_gas.py::test_invalid_excess_blob_gas_above_target_change@21fb11c8.

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_above_target_change --fork Prague

Test rejection of blocks where the excessBlobGas.

  • decreases more than TARGET_BLOB_GAS_PER_BLOCK in a single block with zero blobs
  • increases more than TARGET_BLOB_GAS_PER_BLOCK in a single block with max blobs
Source code in tests/cancun/eip4844_blobs/test_excess_blob_gas.py
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
@pytest.mark.parametrize_by_fork(
    "header_excess_blobs_delta,parent_blobs",
    generate_invalid_excess_blob_gas_above_target_change_tests,
)
@pytest.mark.parametrize("new_blobs", [1])
def test_invalid_excess_blob_gas_above_target_change(
    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`.

    - decreases more than `TARGET_BLOB_GAS_PER_BLOCK` in a single block with zero blobs
    - increases more than `TARGET_BLOB_GAS_PER_BLOCK` in a single block with max 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) header_excess_blobs_delta parent_blobs new_blobs
...fork_Cancun-zero_blobs_decrease_more_than_expected-blockchain_test-new_blobs_1 -1 0 1
...fork_Cancun-max_blobs_increase_more_than_expected-blockchain_test-new_blobs_1 1 6 1
...fork_Prague-zero_blobs_decrease_more_than_expected-blockchain_test-new_blobs_1 -1 0 1
...fork_Prague-max_blobs_increase_more_than_expected-blockchain_test-new_blobs_1 1 9 1
...fork_Osaka-zero_blobs_decrease_more_than_expected-blockchain_test-new_blobs_1 -1 0 1
...fork_Osaka-max_blobs_increase_more_than_expected-blockchain_test-new_blobs_1 1 9 1