Skip to content

test_insufficient_balance_blob_tx_combinations()

Documentation for tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_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_insufficient_balance_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_insufficient_balance_blob_tx_combinations --until=Cancun

Reject all valid blob transaction combinations in a block, but block is invalid due to:

  • The amount of blobs is correct but the user cannot afford the transaction total cost
Source code in tests/cancun/eip4844_blobs/test_blob_txs.py
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
@pytest.mark.parametrize(
    "blobs_per_tx",
    all_valid_blob_combinations(),
)
@pytest.mark.parametrize("account_balance_modifier", [-1], ids=["exact_balance_minus_1"])
@pytest.mark.parametrize("tx_error", [TransactionException.INSUFFICIENT_ACCOUNT_FUNDS], ids=[""])
@pytest.mark.valid_from("Cancun")
def test_insufficient_balance_blob_tx_combinations(
    blockchain_test: BlockchainTestFiller,
    pre: Alloc,
    env: Environment,
    block: Block,
):
    """
    Reject all valid blob transaction combinations in a block, but block is invalid due to:

    - The amount of blobs is correct but the user cannot afford the
            transaction total cost
    """
    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 account_balance_modifier blobs_per_tx
exact_balance_minus_1-blobs_per_tx_(1, 1, 1, 1, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 1, 1, 1, 1)
exact_balance_minus_1-blobs_per_tx_(1, 1, 1, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 1, 1, 1)
exact_balance_minus_1-blobs_per_tx_(1, 1, 1, 1, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 1, 1, 2)
exact_balance_minus_1-blobs_per_tx_(1, 1, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 1, 1)
exact_balance_minus_1-blobs_per_tx_(1, 1, 1, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 1, 2)
exact_balance_minus_1-blobs_per_tx_(1, 1, 1, 3) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 1, 3)
exact_balance_minus_1-blobs_per_tx_(1, 1, 2, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 2, 2)
exact_balance_minus_1-blobs_per_tx_(1, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 1)
exact_balance_minus_1-blobs_per_tx_(1, 1, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 2)
exact_balance_minus_1-blobs_per_tx_(1, 1, 3) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 3)
exact_balance_minus_1-blobs_per_tx_(1, 1, 4) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1, 4)
exact_balance_minus_1-blobs_per_tx_(1, 2, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 2, 2)
exact_balance_minus_1-blobs_per_tx_(1, 2, 3) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 2, 3)
exact_balance_minus_1-blobs_per_tx_(2, 2, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 2, 2)
exact_balance_minus_1-blobs_per_tx_(1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 1)
exact_balance_minus_1-blobs_per_tx_(1, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 2)
exact_balance_minus_1-blobs_per_tx_(1, 3) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 3)
exact_balance_minus_1-blobs_per_tx_(1, 4) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 4)
exact_balance_minus_1-blobs_per_tx_(1, 5) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1, 5)
exact_balance_minus_1-blobs_per_tx_(2, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 2)
exact_balance_minus_1-blobs_per_tx_(2, 3) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 3)
exact_balance_minus_1-blobs_per_tx_(2, 4) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 4)
exact_balance_minus_1-blobs_per_tx_(3, 3) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (3, 3)
exact_balance_minus_1-blobs_per_tx_(1,) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (1,)
exact_balance_minus_1-blobs_per_tx_(2,) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2,)
exact_balance_minus_1-blobs_per_tx_(3,) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (3,)
exact_balance_minus_1-blobs_per_tx_(4,) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (4,)
exact_balance_minus_1-blobs_per_tx_(5,) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (5,)
exact_balance_minus_1-blobs_per_tx_(6,) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (6,)
exact_balance_minus_1-blobs_per_tx_(2, 1, 1, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 1, 1, 1, 1)
exact_balance_minus_1-blobs_per_tx_(2, 1, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 1, 1, 1)
exact_balance_minus_1-blobs_per_tx_(3, 1, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (3, 1, 1, 1)
exact_balance_minus_1-blobs_per_tx_(2, 2, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 2, 1, 1)
exact_balance_minus_1-blobs_per_tx_(2, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 1, 1)
exact_balance_minus_1-blobs_per_tx_(3, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (3, 1, 1)
exact_balance_minus_1-blobs_per_tx_(4, 1, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (4, 1, 1)
exact_balance_minus_1-blobs_per_tx_(2, 2, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 2, 1)
exact_balance_minus_1-blobs_per_tx_(3, 2, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (3, 2, 1)
exact_balance_minus_1-blobs_per_tx_(2, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (2, 1)
exact_balance_minus_1-blobs_per_tx_(3, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (3, 1)
exact_balance_minus_1-blobs_per_tx_(4, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (4, 1)
exact_balance_minus_1-blobs_per_tx_(5, 1) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (5, 1)
exact_balance_minus_1-blobs_per_tx_(3, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (3, 2)
exact_balance_minus_1-blobs_per_tx_(4, 2) TransactionException.INSUFFICIENT_ACCOUNT_FUNDS -1 (4, 2)