mirror of
https://github.com/status-im/eth2.0-specs.git
synced 2025-01-22 16:39:30 +00:00
2035a9fcad
Electra introduces two changes that affect light client data handling: 1. The `ExecutionPayloadHeader` is extended with new fields. This is handled similarly as before with the Deneb fork. 2. The `BeaconState` generalized indices change due to lack of EIP-6493. This is handled by making the generalized index be fork dependent via a helper function that computes it dynamically. Furthermore, the case where pre-Electra light client data is consumed by an Electra based `LightClientStore` requires normalizing the shorter proof of the pre-Electra data to fit into the Electra data structure by prepending a zero hash.
22 lines
593 B
Python
22 lines
593 B
Python
from typing import Dict
|
|
from .base import BaseSpecBuilder
|
|
from ..constants import ELECTRA
|
|
|
|
|
|
class ElectraSpecBuilder(BaseSpecBuilder):
|
|
fork: str = ELECTRA
|
|
|
|
@classmethod
|
|
def imports(cls, preset_name: str):
|
|
return f'''
|
|
from eth2spec.deneb import {preset_name} as deneb
|
|
'''
|
|
|
|
@classmethod
|
|
def hardcoded_ssz_dep_constants(cls) -> Dict[str, str]:
|
|
return {
|
|
'FINALIZED_ROOT_GINDEX': 'GeneralizedIndex(169)',
|
|
'CURRENT_SYNC_COMMITTEE_GINDEX': 'GeneralizedIndex(86)',
|
|
'NEXT_SYNC_COMMITTEE_GINDEX': 'GeneralizedIndex(87)',
|
|
}
|