Test Blob Txs¶
Documentation for tests/cancun/eip4844_blobs/test_blob_txs.py@f6ab9733
.
Generate fixtures for these test cases for Cancun with:
Cancun only:
fill -v tests/cancun/eip4844_blobs/test_blob_txs.py --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 --until=Cancun
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 | Description |
---|---|---|---|
test_valid_blob_tx_combinations |
blockchain_test | 44 | 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 due to:(📖🐛?) |
test_invalid_tx_max_fee_per_blob_gas_state |
state_test_only | 2 | Reject an invalid blob transaction due to:(📖🐛?) |
test_invalid_normal_gas |
state_test | 2 | Reject an invalid blob transaction due to:(📖🐛?) |
test_invalid_block_blob_count |
blockchain_test | 28 | 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 | 288 | 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 | 144 | 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 | 44 | Reject all valid blob transaction combinations in a block, but block is invalid due to:(📖🐛?) |
test_invalid_tx_blob_count |
state_test | 4 | Reject blocks that include blob transactions with invalid blob counts:(📖🐛?) |
test_invalid_blob_hash_versioning_single_tx |
state_test | 8 | Reject blob transactions with invalid blob hash version, including:(📖🐛?) |
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 | 4 | Test opcodes that read transaction attributes work properly for blob type transactions:(📖🐛?) |
test_blob_tx_attribute_value_opcode |
state_test | 6 | Test the VALUE opcode with different blob type transaction value amounts. |
test_blob_tx_attribute_calldata_opcodes |
state_test | 18 | Test calldata related opcodes to verify their behavior is not affected by blobs:(📖🐛?) |
test_blob_tx_attribute_gasprice_opcode |
state_test | 8 | Test GASPRICE opcode to sanity check that the blob gas fee does not affect |