eth2.0-specs/pysetup/spec_builders/eip7732.py

46 lines
1.3 KiB
Python
Raw Normal View History

from typing import Dict, Set
from .base import BaseSpecBuilder
2024-07-03 11:27:20 +00:00
from ..constants import EIP7732
2024-07-03 11:27:20 +00:00
class EIP7732SpecBuilder(BaseSpecBuilder):
fork: str = EIP7732
@classmethod
def imports(cls, preset_name: str):
return f'''
2024-07-03 10:53:04 +00:00
from eth2spec.electra import {preset_name} as electra
'''
2024-07-08 16:32:33 +00:00
@classmethod
def sundry_functions(cls) -> str:
return '''
def concat_generalized_indices(*indices: GeneralizedIndex) -> GeneralizedIndex:
o = GeneralizedIndex(1)
for i in indices:
o = GeneralizedIndex(o * bit_floor(i) + (i - bit_floor(i)))
return o'''
@classmethod
def hardcoded_custom_type_dep_constants(cls, spec_object) -> Dict[str, str]:
return {
'PTC_SIZE': spec_object.preset_vars['PTC_SIZE'].value,
'MAX_PAYLOAD_ATTESTATIONS': spec_object.preset_vars['MAX_PAYLOAD_ATTESTATIONS'].value,
2024-07-08 13:48:51 +00:00
'KZG_COMMITMENT_INCLUSION_PROOF_DEPTH_EIP7732':
spec_object.preset_vars['KZG_COMMITMENT_INCLUSION_PROOF_DEPTH_EIP7732'].value,
2024-07-03 11:27:20 +00:00
}
@classmethod
def deprecate_constants(cls) -> Set[str]:
return set([
'EXECUTION_PAYLOAD_GINDEX',
])
@classmethod
def deprecate_presets(cls) -> Set[str]:
return set([
'KZG_COMMITMENT_INCLUSION_PROOF_DEPTH',
])