Skip to content

test_valid_blob_tx_combinations()

Documentation for tests/cancun/eip4844_blobs/test_blob_txs.py::test_valid_blob_tx_combinations@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_valid_blob_tx_combinations --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_valid_blob_tx_combinations --until=Cancun

Test all valid blob combinations in a single block, assuming a given value of MAX_BLOBS_PER_BLOCK.

This assumes a block can include from 1 and up to MAX_BLOBS_PER_BLOCK transactions where all transactions contain at least 1 blob, and the sum of all blobs in a block is at most MAX_BLOBS_PER_BLOCK.

This test is parametrized with all valid blob transaction combinations 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
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
@pytest.mark.parametrize(
    "blobs_per_tx",
    all_valid_blob_combinations(),
)
@pytest.mark.valid_from("Cancun")
def test_valid_blob_tx_combinations(
    blockchain_test: BlockchainTestFiller,
    pre: Alloc,
    env: Environment,
    block: Block,
):
    """
    Test all valid blob combinations in a single block, assuming a given value of
    `MAX_BLOBS_PER_BLOCK`.

    This assumes a block can include from 1 and up to `MAX_BLOBS_PER_BLOCK` transactions where all
    transactions contain at least 1 blob, and the sum of all blobs in a block is at
    most `MAX_BLOBS_PER_BLOCK`.

    This test is parametrized with all valid blob transaction combinations 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 blobs_per_tx
blobs_per_tx_(1, 1, 1, 1, 1, 1) (1, 1, 1, 1, 1, 1)
blobs_per_tx_(1, 1, 1, 1, 1) (1, 1, 1, 1, 1)
blobs_per_tx_(1, 1, 1, 1, 2) (1, 1, 1, 1, 2)
blobs_per_tx_(1, 1, 1, 1) (1, 1, 1, 1)
blobs_per_tx_(1, 1, 1, 2) (1, 1, 1, 2)
blobs_per_tx_(1, 1, 1, 3) (1, 1, 1, 3)
blobs_per_tx_(1, 1, 2, 2) (1, 1, 2, 2)
blobs_per_tx_(1, 1, 1) (1, 1, 1)
blobs_per_tx_(1, 1, 2) (1, 1, 2)
blobs_per_tx_(1, 1, 3) (1, 1, 3)
blobs_per_tx_(1, 1, 4) (1, 1, 4)
blobs_per_tx_(1, 2, 2) (1, 2, 2)
blobs_per_tx_(1, 2, 3) (1, 2, 3)
blobs_per_tx_(2, 2, 2) (2, 2, 2)
blobs_per_tx_(1, 1) (1, 1)
blobs_per_tx_(1, 2) (1, 2)
blobs_per_tx_(1, 3) (1, 3)
blobs_per_tx_(1, 4) (1, 4)
blobs_per_tx_(1, 5) (1, 5)
blobs_per_tx_(2, 2) (2, 2)
blobs_per_tx_(2, 3) (2, 3)
blobs_per_tx_(2, 4) (2, 4)
blobs_per_tx_(3, 3) (3, 3)
blobs_per_tx_(1,) (1,)
blobs_per_tx_(2,) (2,)
blobs_per_tx_(3,) (3,)
blobs_per_tx_(4,) (4,)
blobs_per_tx_(5,) (5,)
blobs_per_tx_(6,) (6,)
blobs_per_tx_(2, 1, 1, 1, 1) (2, 1, 1, 1, 1)
blobs_per_tx_(2, 1, 1, 1) (2, 1, 1, 1)
blobs_per_tx_(3, 1, 1, 1) (3, 1, 1, 1)
blobs_per_tx_(2, 2, 1, 1) (2, 2, 1, 1)
blobs_per_tx_(2, 1, 1) (2, 1, 1)
blobs_per_tx_(3, 1, 1) (3, 1, 1)
blobs_per_tx_(4, 1, 1) (4, 1, 1)
blobs_per_tx_(2, 2, 1) (2, 2, 1)
blobs_per_tx_(3, 2, 1) (3, 2, 1)
blobs_per_tx_(2, 1) (2, 1)
blobs_per_tx_(3, 1) (3, 1)
blobs_per_tx_(4, 1) (4, 1)
blobs_per_tx_(5, 1) (5, 1)
blobs_per_tx_(3, 2) (3, 2)
blobs_per_tx_(4, 2) (4, 2)