@@ -219,6 +219,26 @@ def test_incorrect_commitments_order(spec, state):
219
219
yield from run_execution_payload_processing (spec , state , execution_payload , blob_kzg_commitments )
220
220
221
221
222
+ @with_deneb_and_later
223
+ @spec_state_test
224
+ def test_incorrect_transaction_no_blobs_but_with_commitments (spec , state ):
225
+ """
226
+ The versioned hashes are wrong, but the testing ExecutionEngine returns VALID by default.
227
+ """
228
+ execution_payload = build_empty_execution_payload (spec , state )
229
+
230
+ # the blob transaction is invalid, because the EL verifies that the tx contains at least one blob
231
+ # therefore the EL should reject it, but the CL should not reject the block regardless
232
+ opaque_tx , _ , _ , _ = get_sample_blob_tx (spec , blob_count = 0 , rng = Random (1111 ))
233
+ _ , _ , blob_kzg_commitments , _ = get_sample_blob_tx (spec , blob_count = 2 , rng = Random (1112 ))
234
+
235
+ execution_payload .transactions = [opaque_tx ]
236
+ execution_payload .block_hash = compute_el_block_hash (spec , execution_payload , state )
237
+
238
+ # the transaction doesn't contain any blob, but commitments are provided
239
+ yield from run_execution_payload_processing (spec , state , execution_payload , blob_kzg_commitments )
240
+
241
+
222
242
@with_deneb_and_later
223
243
@spec_state_test
224
244
def test_incorrect_block_hash (spec , state ):
0 commit comments