From 7dfd46f0ab0ee71b9715dd8dd347aad72eb442eb Mon Sep 17 00:00:00 2001 From: Guruprasad Kamath Date: Sat, 4 May 2024 16:18:14 +0200 Subject: [PATCH] post-review updates --- src/ethereum/prague/blocks.py | 18 ++++++++++++------ src/ethereum/prague/fork.py | 3 +-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/ethereum/prague/blocks.py b/src/ethereum/prague/blocks.py index 8c7e2647e7..5a2ceb0d3f 100644 --- a/src/ethereum/prague/blocks.py +++ b/src/ethereum/prague/blocks.py @@ -118,16 +118,22 @@ class Receipt: logs: Tuple[Log, ...] -def validate_requests(requests: Tuple[Bytes, ...]) -> bool: +def validate_requests(requests: Tuple[Bytes, ...]) -> None: """ Validate a list of requests. """ current_request_type = b"\x00" for request in requests: - if request[:1] < current_request_type: - return False - current_request_type = request[:1] - return True + request_type = request[:1] + + # Ensure that no undefined requests are present. + if request_type != DEPOSIT_REQUEST_TYPE: + raise InvalidBlock("BlockException.INVALID_REQUESTS") + + # Ensure that requests are in order. + if request_type < current_request_type: + raise InvalidBlock("BlockException.INVALID_REQUESTS") + current_request_type = request_type @slotted_freezable @@ -144,7 +150,7 @@ class DepositRequest: index: U64 -Request = DepositRequest +Request = Union[DepositRequest] def encode_request(req: Request) -> Bytes: diff --git a/src/ethereum/prague/fork.py b/src/ethereum/prague/fork.py index 8de5d29529..87710be752 100644 --- a/src/ethereum/prague/fork.py +++ b/src/ethereum/prague/fork.py @@ -712,8 +712,7 @@ def apply_body( destroy_account(state, wd.address) # Requests are to be in ascending order of request type - if not validate_requests(requests): - raise InvalidBlock + validate_requests(requests) validate_deposit_requests(receipts, requests) for i, request in enumerate(requests):