Skip to content

Test Blob Txs

Documentation for tests/cancun/eip4844_blobs/test_blob_txs.py@5e6a38e0.

Generate fixtures for these test cases for Prague with:

fill -v tests/cancun/eip4844_blobs/test_blob_txs.py --fork Prague
Tests blob type transactions for EIP-4844: Shard Blob Transactions

Test blob type transactions for EIP-4844: Shard Blob Transactions.

Adding a new test

Add a function that is named test_<test_name> and takes at least the following arguments:

  • blockchain_test or state_test
  • pre
  • env
  • block or txs

All other pytest.fixture fixtures can be parametrized to generate new combinations and test cases.

Test Functions Overview

Name Type Cases (Prague) Description
test_valid_blob_tx_combinations blockchain_test 169 Test all valid blob combinations in a single block, assuming a given value of
test_invalid_tx_max_fee_per_blob_gas blockchain_test 2 Reject blocks with invalid blob txs.
test_invalid_tx_max_fee_per_blob_gas_state state_test_only 0 Reject an invalid blob transaction.
test_invalid_normal_gas state_test 1 Reject an invalid blob transaction.
test_invalid_block_blob_count blockchain_test 80 Test all invalid blob combinations in a single block, where the sum of all blobs in a block is
test_insufficient_balance_blob_tx state_test 144 Reject blocks where user cannot afford the blob gas specified (but
test_sufficient_balance_blob_tx state_test 288 Check that transaction is accepted when user can exactly afford the blob gas specified (and
test_sufficient_balance_blob_tx_pre_fund_tx blockchain_test 288 Check that transaction is accepted when user can exactly afford the blob gas specified (and
test_blob_gas_subtraction_tx state_test 128 Check that the blob gas fee for a transaction is subtracted from the sender balance before the
test_insufficient_balance_blob_tx_combinations blockchain_test 169 Reject all valid blob transaction combinations in a block, but block is invalid.
test_invalid_tx_blob_count state_test 2 Reject blocks that include blob transactions with invalid blob counts.
test_invalid_blob_hash_versioning_single_tx state_test 4 Reject blob transactions with invalid blob hash version.
test_invalid_blob_hash_versioning_multiple_txs blockchain_test 4 Reject blocks that include blob transactions with invalid blob hash
test_invalid_blob_tx_contract_creation blockchain_test 1 Reject blocks that include blob transactions that have nil to value (contract creating).
test_blob_tx_attribute_opcodes state_test 2 Test opcodes that read transaction attributes work properly for blob type transactions.
test_blob_tx_attribute_value_opcode state_test 3 Test the VALUE opcode with different blob type transaction value amounts.
test_blob_tx_attribute_calldata_opcodes state_test 9 Test calldata related opcodes to verify their behavior is not affected by blobs.
test_blob_tx_attribute_gasprice_opcode state_test 4 Test GASPRICE opcode to sanity check that the blob gas fee does not affect its calculation.
test_blob_type_tx_pre_fork state_test 0 Reject blocks with blob type transactions before Cancun fork.