Skip to content

Commit d4703af

Browse files
committed
refactor(specs): Genesis header creation
1 parent 63c0fd3 commit d4703af

File tree

5 files changed

+235
-70
lines changed

5 files changed

+235
-70
lines changed

src/ethereum_test_fixtures/blockchain.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -222,18 +222,18 @@ def genesis(cls, fork: Fork, env: Environment, state_root: Hash) -> "FixtureHead
222222
return FixtureHeader(
223223
parent_hash=0,
224224
ommers_hash=EmptyOmmersRoot,
225-
fee_recipient=0,
225+
fee_recipient=env.fee_recipient,
226226
state_root=state_root,
227227
transactions_trie=EmptyTrieRoot,
228228
receipts_root=EmptyTrieRoot,
229229
logs_bloom=0,
230-
difficulty=0x20000 if env.difficulty is None else env.difficulty,
231-
number=0,
230+
difficulty=env.difficulty,
231+
number=env.number,
232232
gas_limit=env.gas_limit,
233233
gas_used=0,
234-
timestamp=0,
235-
extra_data=b"\x00",
236-
prev_randao=0,
234+
timestamp=env.timestamp,
235+
extra_data=env.extra_data,
236+
prev_randao=env.prev_randao,
237237
nonce=0,
238238
base_fee_per_gas=env.base_fee_per_gas,
239239
blob_gas_used=env.blob_gas_used,

src/ethereum_test_specs/blockchain.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
HeaderNonce,
1818
HexNumber,
1919
Number,
20-
ZeroPaddedHexNumber,
2120
)
2221
from ethereum_test_exceptions import (
2322
BlockException,
@@ -386,6 +385,18 @@ def verify_block_exception(self, transition_tool_exceptions_reliable: bool):
386385
)
387386

388387

388+
GENESIS_DEFAULTS: Dict[str, Any] = {
389+
"fee_recipient": 0,
390+
"number": 0,
391+
"timestamp": 0,
392+
"extra_data": b"\x00",
393+
"prev_randao": 0,
394+
}
395+
"""
396+
Default values for the genesis environment that are used to create all genesis headers.
397+
"""
398+
399+
389400
class BlockchainTest(BaseTest):
390401
"""Filler type that tests multiple blocks (valid or invalid) in a chain."""
391402

@@ -435,9 +446,10 @@ def discard_fixture_format_by_marks(
435446

436447
def get_genesis_environment(self, fork: Fork) -> Environment:
437448
"""Get the genesis environment for pre-allocation groups."""
438-
env = self.genesis_environment.set_fork_requirements(fork)
439-
env.number = ZeroPaddedHexNumber(0)
440-
return env
449+
modified_values = self.genesis_environment.set_fork_requirements(fork).model_dump(
450+
exclude_unset=True
451+
)
452+
return Environment(**(GENESIS_DEFAULTS | modified_values))
441453

442454
def make_genesis(
443455
self, *, fork: Fork, apply_pre_allocation_blockchain: bool

src/ethereum_test_specs/state.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ def make_state_test_fixture(
242242

243243
def get_genesis_environment(self, fork: Fork) -> Environment:
244244
"""Get the genesis environment for pre-allocation groups."""
245-
return self._generate_blockchain_genesis_environment(fork=fork).set_fork_requirements(fork)
245+
return self.generate_blockchain_test(fork=fork).get_genesis_environment(fork=fork)
246246

247247
def generate(
248248
self,

src/ethereum_test_specs/tests/test_fixtures.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ def genesis_environment(self): # noqa: D102
470470
return Environment(
471471
gas_limit=100_000_000_000_000_000,
472472
base_fee_per_gas=1000,
473-
fee_recipient="0xba5e000000000000000000000000000000000000",
473+
fee_recipient="0x0000000000000000000000000000000000000000",
474474
)
475475

476476
@pytest.fixture
@@ -867,7 +867,7 @@ def test_fill_blockchain_invalid_txs(
867867
genesis_environment = Environment(
868868
gas_limit=100_000_000_000_000_000,
869869
base_fee_per_gas=1000,
870-
fee_recipient="0xba5e000000000000000000000000000000000000",
870+
fee_recipient="0x0000000000000000000000000000000000000000",
871871
)
872872

873873
fixture_format: FixtureFormat = (

0 commit comments

Comments
 (0)