Add ALTAIR_INVAIANT_CHECKS, checks the weight configurations

This commit is contained in:
Hsiao-Wei Wang 2021-04-06 00:08:30 +08:00
parent 8d60614728
commit 0bbef67efe
No known key found for this signature in database
GPG Key ID: 1111A8A81778319E
1 changed files with 7 additions and 0 deletions

View File

@ -277,6 +277,12 @@ ALTAIR_HARDCODED_SSZ_DEP_CONSTANTS = {
}
ALTAIR_INVAIANT_CHECKS = '''
assert (
TIMELY_HEAD_WEIGHT + TIMELY_SOURCE_WEIGHT + TIMELY_TARGET_WEIGHT + SYNC_REWARD_WEIGHT + PROPOSER_WEIGHT
) == WEIGHT_DENOMINATOR'''
def is_phase0(fork):
return fork == PHASE0
@ -331,6 +337,7 @@ def objects_to_spec(spec_object: SpecObject, imports: str, fork: str, ordered_cl
if is_altair(fork):
altair_ssz_dep_constants_verification = '\n'.join(map(lambda x: 'assert %s == %s' % (x, spec_object.ssz_dep_constants[x]), ALTAIR_HARDCODED_SSZ_DEP_CONSTANTS))
spec += '\n\n\n' + altair_ssz_dep_constants_verification
spec += '\n' + ALTAIR_INVAIANT_CHECKS
spec += '\n'
return spec