55import pytest
66
77from ethereum_test_forks import Fork
8- from ethereum_test_tools import Alloc , Block , BlockException , Bytes , Header , Requests
8+ from ethereum_test_tools import (
9+ Alloc ,
10+ Block ,
11+ BlockException ,
12+ Bytes ,
13+ EngineAPIError ,
14+ Header ,
15+ Requests ,
16+ )
917
1018from ..eip6110_deposits .helpers import DepositInteractionBase , DepositRequest
1119from ..eip7002_el_triggerable_withdrawals .helpers import (
@@ -50,6 +58,26 @@ def exception() -> BlockException | None:
5058 return None
5159
5260
61+ @pytest .fixture
62+ def engine_api_error_code (
63+ block_body_override_requests : List [Bytes | SupportsBytes ] | None ,
64+ ) -> EngineAPIError | None :
65+ """Engine API error code if any."""
66+ if block_body_override_requests is None :
67+ return None
68+ block_body_override_requests_bytes = [bytes (r ) for r in block_body_override_requests ]
69+ if any (len (r ) <= 1 for r in block_body_override_requests_bytes ):
70+ return EngineAPIError .InvalidParams
71+
72+ last_type : int = - 1
73+ for r in block_body_override_requests_bytes :
74+ if r [0 ] <= last_type :
75+ return EngineAPIError .InvalidParams
76+ last_type = r [0 ]
77+
78+ return None
79+
80+
5381@pytest .fixture
5482def blocks (
5583 fork : Fork ,
@@ -59,10 +87,11 @@ def blocks(
5987 | WithdrawalRequestInteractionBase
6088 | ConsolidationRequestInteractionBase
6189 ],
62- block_body_override_requests : ( List [Bytes | SupportsBytes ] | None ) ,
90+ block_body_override_requests : List [Bytes | SupportsBytes ] | None ,
6391 block_body_extra_requests : List [SupportsBytes ],
6492 correct_requests_hash_in_header : bool ,
6593 exception : BlockException | None ,
94+ engine_api_error_code : EngineAPIError | None ,
6695) -> List [Block ]:
6796 """List of blocks that comprise the test."""
6897 valid_requests_list : List [DepositRequest | WithdrawalRequest | ConsolidationRequest ] = []
@@ -95,5 +124,6 @@ def blocks(
95124 requests = block_body_override_requests ,
96125 exception = exception ,
97126 rlp_modifier = rlp_modifier ,
127+ engine_api_error_code = engine_api_error_code ,
98128 )
99129 ]
0 commit comments