use v1.4.0-beta.0 consensus spec test vectors (#5120)

This commit is contained in:
tersec 2023-06-24 14:27:15 +02:00 committed by GitHub
parent b62664915e
commit 9dbf63d8ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 168 additions and 75 deletions

View File

@ -739,6 +739,7 @@ ConsensusSpecPreset-mainnet
+ [Valid] EF - Deneb - Sanity - Blocks - historical_batch [Preset: mainnet] OK
+ [Valid] EF - Deneb - Sanity - Blocks - inactivity_scores_full_participation_leaking [Pre OK
+ [Valid] EF - Deneb - Sanity - Blocks - inactivity_scores_leaking [Preset: mainnet] OK
+ [Valid] EF - Deneb - Sanity - Blocks - include_attestation_from_previous_fork_with_new_r OK
+ [Valid] EF - Deneb - Sanity - Blocks - many_partial_withdrawals_in_epoch_transition [Pre OK
+ [Valid] EF - Deneb - Sanity - Blocks - max_blobs_per_block [Preset: mainnet] OK
+ [Valid] EF - Deneb - Sanity - Blocks - multiple_attester_slashings_no_overlap [Preset: m OK
@ -809,10 +810,10 @@ ConsensusSpecPreset-mainnet
+ [Valid] EF - Phase 0 - Sanity - Blocks - slash_and_exit_diff_index [Preset: mainnet] OK
+ [Valid] EF - Phase 0 - Sanity - Blocks - voluntary_exit [Preset: mainnet] OK
```
OK: 798/806 Fail: 0/806 Skip: 8/806
OK: 799/807 Fail: 0/807 Skip: 8/807
## Attestation
```diff
+ [Invalid] EF - Altair - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_before_inclusion_delay OK
@ -822,7 +823,7 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Invalid] EF - Altair - Operations - Attestation - invalid_empty_participants_zeroes_sig OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_future_target_epoch OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_incorrect_head_and_target_inclu OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_incorrect_head_included_after_e OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_incorrect_head_included_after_m OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_incorrect_target_included_after OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_index OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_mismatched_target_and_slot OK
@ -836,7 +837,7 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Invalid] EF - Altair - Operations - Attestation - invalid_wrong_index_for_committee_signa OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_before_inclusion_delay OK
@ -860,7 +861,7 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_wrong_index_for_committee_si OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_before_inclusion_delay OK
@ -884,7 +885,7 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Invalid] EF - Capella - Operations - Attestation - invalid_wrong_index_for_committee_sign OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_before_inclusion_delay OK
@ -894,7 +895,7 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_empty_participants_zeroes_sig OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_future_target_epoch OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_incorrect_head_and_target_includ OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_incorrect_head_included_after_ep OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_incorrect_head_included_after_ma OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_incorrect_target_included_after_ OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_index OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_mismatched_target_and_slot OK
@ -908,7 +909,7 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_wrong_index_for_committee_signat OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_before_inclusion_delay OK
@ -932,13 +933,15 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_wrong_index_for_committee_sign OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Valid] EF - Altair - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Altair - Operations - Attestation - correct_attestation_included_at_max_inc OK
+ [Valid] EF - Altair - Operations - Attestation - correct_attestation_included_at_min_inc OK
+ [Valid] EF - Altair - Operations - Attestation - correct_attestation_included_at_one_epo OK
+ [Valid] EF - Altair - Operations - Attestation - correct_attestation_included_at_sqrt_ep OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_and_target_included_at_e OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_and_target_included_at_s OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_and_target_min_inclusion OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_included_at_epoch_delay OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_included_at_max_inclusio OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_included_at_min_inclusio OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_included_at_sqrt_epoch_d OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_target_included_at_epoch_dela OK
@ -947,13 +950,15 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Valid] EF - Altair - Operations - Attestation - multi_proposer_index_iterations OK
+ [Valid] EF - Altair - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Altair - Operations - Attestation - previous_epoch OK
+ [Valid] EF - Bellatrix - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Bellatrix - Operations - Attestation - correct_attestation_included_at_max_ OK
+ [Valid] EF - Bellatrix - Operations - Attestation - correct_attestation_included_at_min_ OK
+ [Valid] EF - Bellatrix - Operations - Attestation - correct_attestation_included_at_one_ OK
+ [Valid] EF - Bellatrix - Operations - Attestation - correct_attestation_included_at_sqrt OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_and_target_included_a OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_and_target_included_a OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_and_target_min_inclus OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_included_at_epoch_del OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_included_at_max_inclu OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_included_at_min_inclu OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_included_at_sqrt_epoc OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_target_included_at_epoch_d OK
@ -962,13 +967,15 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Valid] EF - Bellatrix - Operations - Attestation - multi_proposer_index_iterations OK
+ [Valid] EF - Bellatrix - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Bellatrix - Operations - Attestation - previous_epoch OK
+ [Valid] EF - Capella - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Capella - Operations - Attestation - correct_attestation_included_at_max_in OK
+ [Valid] EF - Capella - Operations - Attestation - correct_attestation_included_at_min_in OK
+ [Valid] EF - Capella - Operations - Attestation - correct_attestation_included_at_one_ep OK
+ [Valid] EF - Capella - Operations - Attestation - correct_attestation_included_at_sqrt_e OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_and_target_included_at_ OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_and_target_included_at_ OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_and_target_min_inclusio OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_included_at_epoch_delay OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_included_at_max_inclusi OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_included_at_min_inclusi OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_included_at_sqrt_epoch_ OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_target_included_at_epoch_del OK
@ -977,13 +984,15 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Valid] EF - Capella - Operations - Attestation - multi_proposer_index_iterations OK
+ [Valid] EF - Capella - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Capella - Operations - Attestation - previous_epoch OK
+ [Valid] EF - Deneb - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Deneb - Operations - Attestation - correct_attestation_included_at_max_incl OK
+ [Valid] EF - Deneb - Operations - Attestation - correct_attestation_included_at_min_incl OK
+ [Valid] EF - Deneb - Operations - Attestation - correct_attestation_included_at_one_epoc OK
+ [Valid] EF - Deneb - Operations - Attestation - correct_attestation_included_at_sqrt_epo OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_and_target_included_at_ep OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_and_target_included_at_sq OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_and_target_min_inclusion_ OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_included_at_epoch_delay OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_included_at_max_inclusion OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_included_at_min_inclusion OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_included_at_sqrt_epoch_de OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_target_included_at_epoch_delay OK
@ -992,13 +1001,15 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Valid] EF - Deneb - Operations - Attestation - multi_proposer_index_iterations OK
+ [Valid] EF - Deneb - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Deneb - Operations - Attestation - previous_epoch OK
+ [Valid] EF - Phase 0 - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Phase 0 - Operations - Attestation - correct_attestation_included_at_max_in OK
+ [Valid] EF - Phase 0 - Operations - Attestation - correct_attestation_included_at_min_in OK
+ [Valid] EF - Phase 0 - Operations - Attestation - correct_attestation_included_at_one_ep OK
+ [Valid] EF - Phase 0 - Operations - Attestation - correct_attestation_included_at_sqrt_e OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_and_target_included_at_ OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_and_target_included_at_ OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_and_target_min_inclusio OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_included_at_epoch_delay OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_included_at_max_inclusi OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_included_at_min_inclusi OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_included_at_sqrt_epoch_ OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_target_included_at_epoch_del OK
@ -1008,7 +1019,7 @@ OK: 798/806 Fail: 0/806 Skip: 8/806
+ [Valid] EF - Phase 0 - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Phase 0 - Operations - Attestation - previous_epoch OK
```
OK: 195/195 Fail: 0/195 Skip: 0/195
OK: 205/205 Fail: 0/205 Skip: 0/205
## Attester Slashing
```diff
+ [Invalid] EF - Altair - Operations - Attester Slashing - invalid_all_empty_indices OK
@ -2472,9 +2483,9 @@ OK: 104/104 Fail: 0/104 Skip: 0/104
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_validator_not_active OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_validator_not_active_long_eno OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_current_f OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_current_f OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_genesis_f OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_genesis_f OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_previous_ OK
+ [Invalid] EF - Phase 0 - Operations - Voluntary Exit - invalid_incorrect_signature OK
+ [Invalid] EF - Phase 0 - Operations - Voluntary Exit - invalid_validator_already_exited OK
+ [Invalid] EF - Phase 0 - Operations - Voluntary Exit - invalid_validator_exit_in_future OK
@ -2497,7 +2508,7 @@ OK: 104/104 Fail: 0/104 Skip: 0/104
+ [Valid] EF - Deneb - Operations - Voluntary Exit - basic OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - default_exit_epoch_subsequent_exit OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - success_exit_queue__min_churn OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - voluntary_exit_with_current_fork_vers OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - voluntary_exit_with_previous_fork_ver OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - voluntary_exit_with_previous_fork_ver OK
+ [Valid] EF - Phase 0 - Operations - Voluntary Exit - basic OK
+ [Valid] EF - Phase 0 - Operations - Voluntary Exit - default_exit_epoch_subsequent_exit OK
@ -2610,4 +2621,4 @@ OK: 63/63 Fail: 0/63 Skip: 0/63
OK: 100/100 Fail: 0/100 Skip: 0/100
---TOTAL---
OK: 2308/2316 Fail: 0/2316 Skip: 8/2316
OK: 2319/2327 Fail: 0/2327 Skip: 8/2327

View File

@ -927,6 +927,7 @@ ConsensusSpecPreset-minimal
+ [Valid] EF - Deneb - Sanity - Blocks - historical_batch [Preset: minimal] OK
+ [Valid] EF - Deneb - Sanity - Blocks - inactivity_scores_full_participation_leaking [Pre OK
+ [Valid] EF - Deneb - Sanity - Blocks - inactivity_scores_leaking [Preset: minimal] OK
+ [Valid] EF - Deneb - Sanity - Blocks - include_attestation_from_previous_fork_with_new_r OK
+ [Valid] EF - Deneb - Sanity - Blocks - many_partial_withdrawals_in_epoch_transition [Pre OK
+ [Valid] EF - Deneb - Sanity - Blocks - max_blobs_per_block [Preset: minimal] OK
+ [Valid] EF - Deneb - Sanity - Blocks - multiple_attester_slashings_no_overlap [Preset: m OK
@ -1002,10 +1003,10 @@ ConsensusSpecPreset-minimal
+ [Valid] EF - Phase 0 - Sanity - Blocks - slash_and_exit_diff_index [Preset: minimal] OK
+ [Valid] EF - Phase 0 - Sanity - Blocks - voluntary_exit [Preset: minimal] OK
```
OK: 991/999 Fail: 0/999 Skip: 8/999
OK: 992/1000 Fail: 0/1000 Skip: 8/1000
## Attestation
```diff
+ [Invalid] EF - Altair - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_before_inclusion_delay OK
@ -1015,7 +1016,7 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Invalid] EF - Altair - Operations - Attestation - invalid_empty_participants_zeroes_sig OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_future_target_epoch OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_incorrect_head_and_target_inclu OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_incorrect_head_included_after_e OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_incorrect_head_included_after_m OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_incorrect_target_included_after OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_index OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_mismatched_target_and_slot OK
@ -1029,7 +1030,7 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Invalid] EF - Altair - Operations - Attestation - invalid_wrong_index_for_committee_signa OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Altair - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_before_inclusion_delay OK
@ -1053,7 +1054,7 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_wrong_index_for_committee_si OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Bellatrix - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_before_inclusion_delay OK
@ -1077,7 +1078,7 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Invalid] EF - Capella - Operations - Attestation - invalid_wrong_index_for_committee_sign OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Capella - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_before_inclusion_delay OK
@ -1087,7 +1088,7 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_empty_participants_zeroes_sig OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_future_target_epoch OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_incorrect_head_and_target_includ OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_incorrect_head_included_after_ep OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_incorrect_head_included_after_ma OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_incorrect_target_included_after_ OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_index OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_mismatched_target_and_slot OK
@ -1101,7 +1102,7 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_wrong_index_for_committee_signat OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Deneb - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_after_epoch_slots OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_after_max_inclusion_slot OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_attestation_signature OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_bad_source_root OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_before_inclusion_delay OK
@ -1125,13 +1126,15 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_wrong_index_for_committee_sign OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
+ [Invalid] EF - Phase 0 - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
+ [Valid] EF - Altair - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Altair - Operations - Attestation - correct_attestation_included_at_max_inc OK
+ [Valid] EF - Altair - Operations - Attestation - correct_attestation_included_at_min_inc OK
+ [Valid] EF - Altair - Operations - Attestation - correct_attestation_included_at_one_epo OK
+ [Valid] EF - Altair - Operations - Attestation - correct_attestation_included_at_sqrt_ep OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_and_target_included_at_e OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_and_target_included_at_s OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_and_target_min_inclusion OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_included_at_epoch_delay OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_included_at_max_inclusio OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_included_at_min_inclusio OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_head_included_at_sqrt_epoch_d OK
+ [Valid] EF - Altair - Operations - Attestation - incorrect_target_included_at_epoch_dela OK
@ -1140,13 +1143,15 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Valid] EF - Altair - Operations - Attestation - multi_proposer_index_iterations OK
+ [Valid] EF - Altair - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Altair - Operations - Attestation - previous_epoch OK
+ [Valid] EF - Bellatrix - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Bellatrix - Operations - Attestation - correct_attestation_included_at_max_ OK
+ [Valid] EF - Bellatrix - Operations - Attestation - correct_attestation_included_at_min_ OK
+ [Valid] EF - Bellatrix - Operations - Attestation - correct_attestation_included_at_one_ OK
+ [Valid] EF - Bellatrix - Operations - Attestation - correct_attestation_included_at_sqrt OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_and_target_included_a OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_and_target_included_a OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_and_target_min_inclus OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_included_at_epoch_del OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_included_at_max_inclu OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_included_at_min_inclu OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_head_included_at_sqrt_epoc OK
+ [Valid] EF - Bellatrix - Operations - Attestation - incorrect_target_included_at_epoch_d OK
@ -1155,13 +1160,15 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Valid] EF - Bellatrix - Operations - Attestation - multi_proposer_index_iterations OK
+ [Valid] EF - Bellatrix - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Bellatrix - Operations - Attestation - previous_epoch OK
+ [Valid] EF - Capella - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Capella - Operations - Attestation - correct_attestation_included_at_max_in OK
+ [Valid] EF - Capella - Operations - Attestation - correct_attestation_included_at_min_in OK
+ [Valid] EF - Capella - Operations - Attestation - correct_attestation_included_at_one_ep OK
+ [Valid] EF - Capella - Operations - Attestation - correct_attestation_included_at_sqrt_e OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_and_target_included_at_ OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_and_target_included_at_ OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_and_target_min_inclusio OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_included_at_epoch_delay OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_included_at_max_inclusi OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_included_at_min_inclusi OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_head_included_at_sqrt_epoch_ OK
+ [Valid] EF - Capella - Operations - Attestation - incorrect_target_included_at_epoch_del OK
@ -1170,13 +1177,15 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Valid] EF - Capella - Operations - Attestation - multi_proposer_index_iterations OK
+ [Valid] EF - Capella - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Capella - Operations - Attestation - previous_epoch OK
+ [Valid] EF - Deneb - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Deneb - Operations - Attestation - correct_attestation_included_at_max_incl OK
+ [Valid] EF - Deneb - Operations - Attestation - correct_attestation_included_at_min_incl OK
+ [Valid] EF - Deneb - Operations - Attestation - correct_attestation_included_at_one_epoc OK
+ [Valid] EF - Deneb - Operations - Attestation - correct_attestation_included_at_sqrt_epo OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_and_target_included_at_ep OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_and_target_included_at_sq OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_and_target_min_inclusion_ OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_included_at_epoch_delay OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_included_at_max_inclusion OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_included_at_min_inclusion OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_head_included_at_sqrt_epoch_de OK
+ [Valid] EF - Deneb - Operations - Attestation - incorrect_target_included_at_epoch_delay OK
@ -1185,13 +1194,15 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Valid] EF - Deneb - Operations - Attestation - multi_proposer_index_iterations OK
+ [Valid] EF - Deneb - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Deneb - Operations - Attestation - previous_epoch OK
+ [Valid] EF - Phase 0 - Operations - Attestation - at_max_inclusion_slot OK
+ [Valid] EF - Phase 0 - Operations - Attestation - correct_attestation_included_at_max_in OK
+ [Valid] EF - Phase 0 - Operations - Attestation - correct_attestation_included_at_min_in OK
+ [Valid] EF - Phase 0 - Operations - Attestation - correct_attestation_included_at_one_ep OK
+ [Valid] EF - Phase 0 - Operations - Attestation - correct_attestation_included_at_sqrt_e OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_and_target_included_at_ OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_and_target_included_at_ OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_and_target_min_inclusio OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_included_at_epoch_delay OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_included_at_max_inclusi OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_included_at_min_inclusi OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_head_included_at_sqrt_epoch_ OK
+ [Valid] EF - Phase 0 - Operations - Attestation - incorrect_target_included_at_epoch_del OK
@ -1201,7 +1212,7 @@ OK: 991/999 Fail: 0/999 Skip: 8/999
+ [Valid] EF - Phase 0 - Operations - Attestation - one_basic_attestation OK
+ [Valid] EF - Phase 0 - Operations - Attestation - previous_epoch OK
```
OK: 195/195 Fail: 0/195 Skip: 0/195
OK: 205/205 Fail: 0/205 Skip: 0/205
## Attester Slashing
```diff
+ [Invalid] EF - Altair - Operations - Attester Slashing - invalid_all_empty_indices OK
@ -2720,9 +2731,9 @@ OK: 96/96 Fail: 0/96 Skip: 0/96
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_validator_not_active OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_validator_not_active_long_eno OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_current_f OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_current_f OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_genesis_f OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_genesis_f OK
+ [Invalid] EF - Deneb - Operations - Voluntary Exit - invalid_voluntary_exit_with_previous_ OK
+ [Invalid] EF - Phase 0 - Operations - Voluntary Exit - invalid_incorrect_signature OK
+ [Invalid] EF - Phase 0 - Operations - Voluntary Exit - invalid_validator_already_exited OK
+ [Invalid] EF - Phase 0 - Operations - Voluntary Exit - invalid_validator_exit_in_future OK
@ -2749,7 +2760,7 @@ OK: 96/96 Fail: 0/96 Skip: 0/96
+ [Valid] EF - Deneb - Operations - Voluntary Exit - default_exit_epoch_subsequent_exit OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - success_exit_queue__min_churn OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - success_exit_queue__scaled_churn OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - voluntary_exit_with_current_fork_vers OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - voluntary_exit_with_previous_fork_ver OK
+ [Valid] EF - Deneb - Operations - Voluntary Exit - voluntary_exit_with_previous_fork_ver OK
+ [Valid] EF - Phase 0 - Operations - Voluntary Exit - basic OK
+ [Valid] EF - Phase 0 - Operations - Voluntary Exit - default_exit_epoch_subsequent_exit OK
@ -2865,4 +2876,4 @@ OK: 68/68 Fail: 0/68 Skip: 0/68
OK: 102/102 Fail: 0/102 Skip: 0/102
---TOTAL---
OK: 2547/2555 Fail: 0/2555 Skip: 8/2555
OK: 2558/2566 Fail: 0/2566 Skip: 8/2566

View File

@ -138,7 +138,7 @@ proc getValidator*(decryptor: var MultipleKeystoresDecryptor,
ok(ValidatorStorage(kind: ValidatorStorageKind.Identifier,
ident: ident.get()))
proc getIdent*(storage: ValidatorStorage): ValidatorIdent =
func getIdent*(storage: ValidatorStorage): ValidatorIdent =
case storage.kind
of ValidatorStorageKind.Keystore:
ValidatorIdent(kind: ValidatorQueryKind.Key,
@ -190,16 +190,18 @@ proc restValidatorExit(config: BeaconNodeConf) {.async.} =
reason = exc.msg
quit 1
let exitAtEpoch = if config.exitAtEpoch.isSome:
Epoch config.exitAtEpoch.get
else:
let currentEpoch = block:
let
genesisTime = genesis.genesis_time
genesisTime = genesis.genesis_time
beaconClock = BeaconClock.init(genesisTime)
time = getTime()
slot = beaconClock.toSlot(time).slot
epoch = slot.uint64 div 32
Epoch epoch
Epoch(slot.uint64 div 32)
let exitAtEpoch = if config.exitAtEpoch.isSome:
Epoch config.exitAtEpoch.get
else:
currentEpoch
let fork = try:
let response = await client.getStateForkPlain(stateIdHead)
@ -217,6 +219,26 @@ proc restValidatorExit(config: BeaconNodeConf) {.async.} =
reason = exc.msg
quit 1
let signingFork = try:
let response = await client.getSpec()
if response.status == 200:
let spec = response.data
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.0/specs/phase0/beacon-chain.md#voluntary-exits
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.0/specs/deneb/beacon-chain.md#modified-process_voluntary_exit
if currentEpoch >= Epoch(spec.data.DENEB_FORK_EPOCH):
Fork(
current_version: spec.data.CAPELLA_FORK_VERSION,
previous_version: spec.data.CAPELLA_FORK_VERSION,
epoch: GENESIS_EPOCH) # irrelevant when current/previous identical
else:
fork
else:
raise newException(RestError, "Error response (" & $response.status & ")")
except CatchableError as exc:
fatal "Failed to obtain the config spec of the beacon node",
reason = exc.msg
quit 1
if not config.printData:
case askForExitConfirmation()
of ClientExitAction.abort:

View File

@ -462,8 +462,12 @@ func check_attestation_target_epoch(
ok(data.target.epoch)
func check_attestation_inclusion(attestation_slot: Slot,
current_slot: Slot): Result[void, cstring] =
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.0/specs/phase0/beacon-chain.md#attestations
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.0/specs/altair/beacon-chain.md#modified-process_attestation
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.0/specs/deneb/beacon-chain.md#modified-process_attestation
func check_attestation_inclusion(
consensusFork: static ConsensusFork, attestation_slot: Slot,
current_slot: Slot): Result[void, cstring] =
# Check for overflow
static:
doAssert SLOTS_PER_EPOCH >= MIN_ATTESTATION_INCLUSION_DELAY
@ -473,8 +477,9 @@ func check_attestation_inclusion(attestation_slot: Slot,
if not (attestation_slot + MIN_ATTESTATION_INCLUSION_DELAY <= current_slot):
return err("Attestation too new")
if not (current_slot <= attestation_slot + SLOTS_PER_EPOCH):
return err("Attestation too old")
when consensusFork < ConsensusFork.Deneb:
if not (current_slot <= attestation_slot + SLOTS_PER_EPOCH):
return err("Attestation too old")
ok()
@ -488,10 +493,9 @@ func check_attestation_index*(
Result[CommitteeIndex, cstring] =
check_attestation_index(data.index, committees_per_slot)
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#get_attestation_participation_flag_indices
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.0/specs/altair/beacon-chain.md#get_attestation_participation_flag_indices
func get_attestation_participation_flag_indices(
state: altair.BeaconState | bellatrix.BeaconState | capella.BeaconState |
deneb.BeaconState,
state: altair.BeaconState | bellatrix.BeaconState | capella.BeaconState,
data: AttestationData, inclusion_delay: uint64): seq[int] =
## Return the flag indices that are satisfied by an attestation.
let justified_checkpoint =
@ -503,10 +507,14 @@ func get_attestation_participation_flag_indices(
# Matching roots
let
is_matching_source = data.source == justified_checkpoint
is_matching_target = is_matching_source and data.target.root == get_block_root(state, data.target.epoch)
is_matching_head = is_matching_target and data.beacon_block_root == get_block_root_at_slot(state, data.slot)
is_matching_target =
is_matching_source and
data.target.root == get_block_root(state, data.target.epoch)
is_matching_head =
is_matching_target and
data.beacon_block_root == get_block_root_at_slot(state, data.slot)
# TODO probably this needs to be robustly failable
# Checked by check_attestation()
doAssert is_matching_source
var participation_flag_indices: seq[int]
@ -519,6 +527,40 @@ func get_attestation_participation_flag_indices(
participation_flag_indices
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.0/specs/deneb/beacon-chain.md#modified-get_attestation_participation_flag_indices
func get_attestation_participation_flag_indices(
state: deneb.BeaconState,
data: AttestationData, inclusion_delay: uint64): seq[int] =
## Return the flag indices that are satisfied by an attestation.
let justified_checkpoint =
if data.target.epoch == get_current_epoch(state):
state.current_justified_checkpoint
else:
state.previous_justified_checkpoint
# Matching roots
let
is_matching_source = data.source == justified_checkpoint
is_matching_target =
is_matching_source and
data.target.root == get_block_root(state, data.target.epoch)
is_matching_head =
is_matching_target and
data.beacon_block_root == get_block_root_at_slot(state, data.slot)
# Checked by check_attestation
doAssert is_matching_source
var participation_flag_indices: seq[int]
if is_matching_source and inclusion_delay <= integer_squareroot(SLOTS_PER_EPOCH):
participation_flag_indices.add(TIMELY_SOURCE_FLAG_INDEX)
if is_matching_target: # [Modified in Deneb:EIP7045]
participation_flag_indices.add(TIMELY_TARGET_FLAG_INDEX)
if is_matching_head and inclusion_delay == MIN_ATTESTATION_INCLUSION_DELAY:
participation_flag_indices.add(TIMELY_HEAD_FLAG_INDEX)
participation_flag_indices
# TODO these aren't great here
# TODO these duplicate some stuff in state_transition_epoch which uses TotalBalances
# better to centralize around that if feasible
@ -559,7 +601,7 @@ func get_base_reward(
state.validators[index].effective_balance div EFFECTIVE_BALANCE_INCREMENT
increments * base_reward_per_increment
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-alpha.3/specs/phase0/beacon-chain.md#attestations
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.0/specs/phase0/beacon-chain.md#attestations
proc check_attestation*(
state: ForkyBeaconState, attestation: SomeAttestation, flags: UpdateFlags,
cache: var StateCache): Result[void, cstring] =
@ -575,7 +617,7 @@ proc check_attestation*(
data,
get_committee_count_per_slot(state, epoch, cache))
? check_attestation_inclusion(slot, state.slot)
? check_attestation_inclusion((typeof state).toFork, slot, state.slot)
let committee_len = get_beacon_committee_len(
state, slot, committee_index, cache)
@ -665,26 +707,19 @@ proc process_attestation*(
? check_attestation(state, attestation, flags, cache)
# For phase0
template addPendingAttestation(attestations: typed) =
# The genericSeqAssign generated by the compiler to copy the attestation
# data sadly is a processing hotspot - the business with the addDefault
# pointer is here simply to work around the poor codegen
let pa = attestations.addDefault()
if pa.isNil:
return err("process_attestation: too many pending attestations")
assign(pa[].aggregation_bits, attestation.aggregation_bits)
pa[].data = attestation.data
pa[].inclusion_delay = state.slot - attestation.data.slot
pa[].proposer_index = proposer_index.uint64
# Altair, Bellatrix, and Capella
template updateParticipationFlags(epoch_participation: untyped) =
let proposer_reward = get_proposer_reward(
state, attestation, base_reward_per_increment, cache, epoch_participation)
increase_balance(state, proposer_index, proposer_reward)
when state is phase0.BeaconState:
template addPendingAttestation(attestations: typed) =
# The genericSeqAssign generated by the compiler to copy the attestation
# data sadly is a processing hotspot - the business with the addDefault
# pointer is here simply to work around the poor codegen
let pa = attestations.addDefault()
if pa.isNil:
return err("process_attestation: too many pending attestations")
assign(pa[].aggregation_bits, attestation.aggregation_bits)
pa[].data = attestation.data
pa[].inclusion_delay = state.slot - attestation.data.slot
pa[].proposer_index = proposer_index.uint64
doAssert base_reward_per_increment == 0.Gwei
if attestation.data.target.epoch == get_current_epoch(state):
addPendingAttestation(state.current_epoch_attestations)
@ -692,6 +727,11 @@ proc process_attestation*(
addPendingAttestation(state.previous_epoch_attestations)
elif state is altair.BeaconState or state is bellatrix.BeaconState or
state is capella.BeaconState or state is deneb.BeaconState:
template updateParticipationFlags(epoch_participation: untyped) =
let proposer_reward = get_proposer_reward(
state, attestation, base_reward_per_increment, cache, epoch_participation)
increase_balance(state, proposer_index, proposer_reward)
doAssert base_reward_per_increment > 0.Gwei
if attestation.data.target.epoch == get_current_epoch(state):
updateParticipationFlags(state.current_epoch_participation)

View File

@ -74,7 +74,7 @@ export
tables, results, json_serialization, timer, sszTypes, beacon_time, crypto,
digest, presets
const SPEC_VERSION* = "1.4.0-alpha.3"
const SPEC_VERSION* = "1.4.0-beta.0"
## Spec version we're aiming to be compatible with, right now
const

View File

@ -331,6 +331,7 @@ proc process_deposit*(cfg: RuntimeConfig,
ok()
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-alpha.3/specs/phase0/beacon-chain.md#voluntary-exits
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.0/specs/deneb/beacon-chain.md#modified-process_voluntary_exit
proc check_voluntary_exit*(
cfg: RuntimeConfig,
state: ForkyBeaconState,
@ -364,8 +365,16 @@ proc check_voluntary_exit*(
# Verify signature
if skipBlsValidation notin flags:
let exitSignatureFork =
when typeof(state).toFork >= ConsensusFork.Deneb:
Fork(
previous_version: cfg.CAPELLA_FORK_VERSION,
current_version: cfg.CAPELLA_FORK_VERSION,
epoch: cfg.CAPELLA_FORK_EPOCH)
else:
state.fork
if not verify_voluntary_exit_signature(
state.fork, state.genesis_validators_root, voluntary_exit,
exitSignatureFork, state.genesis_validators_root, voluntary_exit,
validator[].pubkey, signed_voluntary_exit.signature):
return err("Exit: invalid signature")

@ -1 +1 @@
Subproject commit 7bf230a0ab23bbd261055d98b767b273720baa98
Subproject commit 139aec8b7a60bff9acd05878e5b6517e15108f22