Skip to content

test_invalid_block_blob_count()

Documentation for tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_block_blob_count@verkle@v0.0.6.

Generate fixtures for these test cases for Cancun with:

Cancun only:

fill -v tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_block_blob_count --fork=Cancun --evm-bin=/path/to/evm-tool-dev-version

For all forks up to and including Cancun:

fill -v tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_block_blob_count --until=Cancun

Test all invalid blob combinations in a single block, where the sum of all blobs in a block is at MAX_BLOBS_PER_BLOCK + 1.

This test is parametrized with all blob transaction combinations exceeding MAX_BLOBS_PER_BLOCK by one for a given block, and therefore if value of MAX_BLOBS_PER_BLOCK changes, this test is automatically updated.

Source code in tests/cancun/eip4844_blobs/test_blob_txs.py
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
@pytest.mark.parametrize(
    "blobs_per_tx",
    invalid_blob_combinations(),
)
@pytest.mark.parametrize(
    "tx_error", [TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED], ids=[""]
)
@pytest.mark.valid_from("Cancun")
def test_invalid_block_blob_count(
    blockchain_test: BlockchainTestFiller,
    pre: Alloc,
    env: Environment,
    block: Block,
):
    """
    Test all invalid blob combinations in a single block, where the sum of all blobs in a block is
    at `MAX_BLOBS_PER_BLOCK + 1`.

    This test is parametrized with all blob transaction combinations exceeding
    `MAX_BLOBS_PER_BLOCK` by one for a given block, and
    therefore if value of `MAX_BLOBS_PER_BLOCK` changes, this test is automatically updated.
    """
    blockchain_test(
        pre=pre,
        post={},
        blocks=[block],
        genesis_environment=env,
    )

Parametrized Test Cases

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

Skipped Parameters

For more concise readability, the table below does not list the following parameter values: fork, blockchain_test, state_test, state_test_only, eof_test, eof_state_test.

Test ID tx_error blobs_per_tx
blobs_per_tx_(1, 1, 1, 1, 1, 1, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 1, 1, 1, 1, 1, 1)
blobs_per_tx_(1, 1, 1, 1, 1, 2) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 1, 1, 1, 1, 2)
blobs_per_tx_(1, 1, 1, 1, 3) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 1, 1, 1, 3)
blobs_per_tx_(1, 1, 1, 2, 2) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 1, 1, 2, 2)
blobs_per_tx_(1, 1, 1, 4) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 1, 1, 4)
blobs_per_tx_(1, 1, 2, 3) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 1, 2, 3)
blobs_per_tx_(1, 2, 2, 2) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 2, 2, 2)
blobs_per_tx_(1, 1, 5) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 1, 5)
blobs_per_tx_(1, 2, 4) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 2, 4)
blobs_per_tx_(1, 3, 3) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 3, 3)
blobs_per_tx_(2, 2, 3) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (2, 2, 3)
blobs_per_tx_(1, 6) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (1, 6)
blobs_per_tx_(2, 5) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (2, 5)
blobs_per_tx_(3, 4) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (3, 4)
blobs_per_tx_(7,) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (7,)
blobs_per_tx_(2, 1, 1, 1, 1, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (2, 1, 1, 1, 1, 1)
blobs_per_tx_(3, 1, 1, 1, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (3, 1, 1, 1, 1)
blobs_per_tx_(2, 2, 1, 1, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (2, 2, 1, 1, 1)
blobs_per_tx_(4, 1, 1, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (4, 1, 1, 1)
blobs_per_tx_(3, 2, 1, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (3, 2, 1, 1)
blobs_per_tx_(2, 2, 2, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (2, 2, 2, 1)
blobs_per_tx_(5, 1, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (5, 1, 1)
blobs_per_tx_(4, 2, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (4, 2, 1)
blobs_per_tx_(3, 3, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (3, 3, 1)
blobs_per_tx_(3, 2, 2) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (3, 2, 2)
blobs_per_tx_(6, 1) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (6, 1)
blobs_per_tx_(5, 2) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (5, 2)
blobs_per_tx_(4, 3) TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED (4, 3)