Skip to content

Commit 860dc77

Browse files
committed
Add VM.create_genesis_header
The genesis header now needs to be VM-aware, to handle EIP-1559. Rather than pass in a parent of None, it looks a bit cleaner to use the new create_genesis_header. Update an old create_header_from_parent usage to create_genesis_header.
1 parent ace9d7d commit 860dc77

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

eth/abc.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3316,6 +3316,16 @@ def generate_block_from_parent_header_and_coinbase(cls,
33163316
"""
33173317
...
33183318

3319+
@classmethod
3320+
@abstractmethod
3321+
def create_genesis_header(cls, **genesis_params: Any) -> BlockHeaderAPI:
3322+
"""
3323+
Create a genesis header using this VM's rules.
3324+
3325+
This is currently equivalent to create_header_from_parent(None, **genesis_params)
3326+
"""
3327+
...
3328+
33193329
@classmethod
33203330
@abstractmethod
33213331
def get_block_class(cls) -> Type[BlockAPI]:

eth/chains/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ def from_genesis(cls,
250250
f"Expected {genesis_params['state_root']!r}"
251251
)
252252

253-
genesis_header = genesis_vm_class.create_header_from_parent(None, **genesis_params)
253+
genesis_header = genesis_vm_class.create_genesis_header(**genesis_params)
254254
return cls.from_genesis_header(base_db, genesis_header)
255255

256256
@classmethod

eth/vm/base.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,11 @@ def generate_block_from_parent_header_and_coinbase(cls,
443443
)
444444
return block
445445

446+
@classmethod
447+
def create_genesis_header(cls, **genesis_params) -> BlockHeaderAPI:
448+
# Create genesis header by setting the parent to None
449+
return cls.create_header_from_parent(None, **genesis_params)
450+
446451
@classmethod
447452
def get_block_class(cls) -> Type[BlockAPI]:
448453
if cls.block_class is None:

0 commit comments

Comments
 (0)