Skip to content

Commit b63306f

Browse files
felix314159marioevz
authored andcommitted
execution-api 7843 pr 731 implemented (#2101)
1 parent d7eca57 commit b63306f

4 files changed

Lines changed: 44 additions & 0 deletions

File tree

packages/testing/src/execution_testing/cli/pytest_commands/plugins/execute/rpc/chain_builder_eth_rpc.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,13 @@ def generate_block(self: "ChainBuilderEthRPC") -> None:
300300
)
301301
else None
302302
),
303+
slot_number=(
304+
0
305+
if self.fork.engine_payload_attribute_slot_number(
306+
block_number=0, timestamp=0
307+
)
308+
else None
309+
),
303310
)
304311
forkchoice_updated_version = (
305312
self.fork.engine_forkchoice_updated_version()

packages/testing/src/execution_testing/forks/base_fork.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,16 @@ def engine_payload_attribute_max_blobs_per_block(
799799
"""
800800
pass
801801

802+
@classmethod
803+
@abstractmethod
804+
def engine_payload_attribute_slot_number(
805+
cls, *, block_number: int = 0, timestamp: int = 0
806+
) -> bool:
807+
"""
808+
Return true if the payload attributes include the slot number.
809+
"""
810+
pass
811+
802812
@classmethod
803813
@abstractmethod
804814
def engine_forkchoice_updated_version(

packages/testing/src/execution_testing/forks/forks/forks.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,6 +1048,16 @@ def engine_payload_attribute_max_blobs_per_block(
10481048
del block_number, timestamp
10491049
return False
10501050

1051+
@classmethod
1052+
def engine_payload_attribute_slot_number(
1053+
cls, *, block_number: int = 0, timestamp: int = 0
1054+
) -> bool:
1055+
"""
1056+
At genesis, payload attributes do not include the slot number.
1057+
"""
1058+
del block_number, timestamp
1059+
return False
1060+
10511061
@classmethod
10521062
def engine_forkchoice_updated_version(
10531063
cls, *, block_number: int = 0, timestamp: int = 0
@@ -3406,3 +3416,19 @@ def header_slot_number_required(
34063416
"""Slot number in header required from Amsterdam (EIP-7843)."""
34073417
del block_number, timestamp
34083418
return True
3419+
3420+
@classmethod
3421+
def engine_forkchoice_updated_version(
3422+
cls, *, block_number: int = 0, timestamp: int = 0
3423+
) -> Optional[int]:
3424+
"""From Amsterdam, forkchoice updated calls must use version 4."""
3425+
del block_number, timestamp
3426+
return 4
3427+
3428+
@classmethod
3429+
def engine_payload_attribute_slot_number(
3430+
cls, *, block_number: int = 0, timestamp: int = 0
3431+
) -> bool:
3432+
"""From Amsterdam, payload attributes include the slot number."""
3433+
del block_number, timestamp
3434+
return True

packages/testing/src/execution_testing/rpc/rpc_types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ class PayloadAttributes(CamelModel):
157157
parent_beacon_block_root: Hash | None = None
158158
target_blobs_per_block: HexNumber | None = None
159159
max_blobs_per_block: HexNumber | None = None
160+
slot_number: HexNumber | None = None
160161

161162

162163
class BlobsBundle(CamelModel):

0 commit comments

Comments
 (0)