use EF consensus spec test vectors v1.5.0-alpha.9 (#6724)
This commit is contained in:
parent
ddad30f725
commit
710f16f510
|
@ -2410,16 +2410,19 @@ OK: 4/4 Fail: 0/4 Skip: 0/4
|
|||
+ Testing BlobIdentifier OK
|
||||
+ Testing BlobSidecar OK
|
||||
+ Testing Checkpoint OK
|
||||
+ Testing ConsolidationRequest OK
|
||||
+ Testing ContributionAndProof OK
|
||||
+ Testing DataColumnIdentifier OK
|
||||
+ Testing DataColumnSidecar OK
|
||||
+ Testing Deposit OK
|
||||
+ Testing DepositData OK
|
||||
+ Testing DepositMessage OK
|
||||
+ Testing DepositRequest OK
|
||||
+ Testing Eth1Block OK
|
||||
+ Testing Eth1Data OK
|
||||
+ Testing ExecutionPayload OK
|
||||
+ Testing ExecutionPayloadHeader OK
|
||||
+ Testing ExecutionRequests OK
|
||||
+ Testing Fork OK
|
||||
+ Testing ForkData OK
|
||||
+ Testing HistoricalBatch OK
|
||||
|
@ -2432,6 +2435,9 @@ OK: 4/4 Fail: 0/4 Skip: 0/4
|
|||
+ Testing LightClientUpdate OK
|
||||
+ Testing MatrixEntry OK
|
||||
+ Testing PendingAttestation OK
|
||||
+ Testing PendingConsolidation OK
|
||||
+ Testing PendingDeposit OK
|
||||
+ Testing PendingPartialWithdrawal OK
|
||||
+ Testing PowBlock OK
|
||||
+ Testing ProposerSlashing OK
|
||||
+ Testing SignedAggregateAndProof OK
|
||||
|
@ -2441,6 +2447,7 @@ OK: 4/4 Fail: 0/4 Skip: 0/4
|
|||
+ Testing SignedContributionAndProof OK
|
||||
+ Testing SignedVoluntaryExit OK
|
||||
+ Testing SigningData OK
|
||||
+ Testing SingleAttestation OK
|
||||
+ Testing SyncAggregate OK
|
||||
+ Testing SyncAggregatorSelectionData OK
|
||||
+ Testing SyncCommittee OK
|
||||
|
@ -2449,8 +2456,9 @@ OK: 4/4 Fail: 0/4 Skip: 0/4
|
|||
+ Testing Validator OK
|
||||
+ Testing VoluntaryExit OK
|
||||
+ Testing Withdrawal OK
|
||||
+ Testing WithdrawalRequest OK
|
||||
```
|
||||
OK: 51/51 Fail: 0/51 Skip: 0/51
|
||||
OK: 59/59 Fail: 0/59 Skip: 0/59
|
||||
## EF - Electra - Epoch Processing - Effective balance updates [Preset: mainnet]
|
||||
```diff
|
||||
+ Effective balance updates - effective_balance_hysteresis [Preset: mainnet] OK
|
||||
|
@ -2528,10 +2536,14 @@ OK: 10/10 Fail: 0/10 Skip: 0/10
|
|||
+ Pending consolidations - consolidation_not_yet_withdrawable_validator [Preset: mainnet] OK
|
||||
+ Pending consolidations - pending_consolidation_compounding_creds [Preset: mainnet] OK
|
||||
+ Pending consolidations - pending_consolidation_future_epoch [Preset: mainnet] OK
|
||||
+ Pending consolidations - pending_consolidation_source_balance_greater_than_max_effective [ OK
|
||||
+ Pending consolidations - pending_consolidation_source_balance_greater_than_max_effective_c OK
|
||||
+ Pending consolidations - pending_consolidation_source_balance_less_than_max_effective [Pre OK
|
||||
+ Pending consolidations - pending_consolidation_source_balance_less_than_max_effective_comp OK
|
||||
+ Pending consolidations - pending_consolidation_with_pending_deposit [Preset: mainnet] OK
|
||||
+ Pending consolidations - skip_consolidation_when_source_slashed [Preset: mainnet] OK
|
||||
```
|
||||
OK: 7/7 Fail: 0/7 Skip: 0/7
|
||||
OK: 11/11 Fail: 0/11 Skip: 0/11
|
||||
## EF - Electra - Epoch Processing - Pending deposits [Preset: mainnet]
|
||||
```diff
|
||||
+ Pending deposits - apply_pending_deposit_compounding_withdrawal_credentials_max [Preset: m OK
|
||||
|
@ -2588,6 +2600,11 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
|
|||
+ Registry updates - activation_queue_activation_and_ejection__churn_limit [Preset: mainnet] OK
|
||||
+ Registry updates - activation_queue_activation_and_ejection__exceed_churn_limit [Preset: m OK
|
||||
+ Registry updates - activation_queue_efficiency_min [Preset: mainnet] OK
|
||||
+ Registry updates - activation_queue_eligibility__greater_than_min_activation_balance [Pres OK
|
||||
+ Registry updates - activation_queue_eligibility__less_than_min_activation_balance [Preset: OK
|
||||
+ Registry updates - activation_queue_eligibility__min_activation_balance [Preset: mainnet] OK
|
||||
+ Registry updates - activation_queue_eligibility__min_activation_balance_compounding_creds OK
|
||||
+ Registry updates - activation_queue_eligibility__min_activation_balance_eth1_creds [Preset OK
|
||||
+ Registry updates - activation_queue_no_activation_no_finality [Preset: mainnet] OK
|
||||
+ Registry updates - activation_queue_sorting [Preset: mainnet] OK
|
||||
+ Registry updates - activation_queue_to_activated_if_finalized [Preset: mainnet] OK
|
||||
|
@ -2596,7 +2613,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
|
|||
+ Registry updates - ejection_past_churn_limit_min [Preset: mainnet] OK
|
||||
+ Registry updates - invalid_large_withdrawable_epoch [Preset: mainnet] OK
|
||||
```
|
||||
OK: 11/11 Fail: 0/11 Skip: 0/11
|
||||
OK: 16/16 Fail: 0/16 Skip: 0/16
|
||||
## EF - Electra - Epoch Processing - Rewards and penalties [Preset: mainnet]
|
||||
```diff
|
||||
+ Rewards and penalties - almost_empty_attestations [Preset: mainnet] OK
|
||||
|
@ -2648,15 +2665,19 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
|
|||
+ EF - Electra - Fork - electra_fork_random_low_balances [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - electra_fork_random_misc_balances [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_base_state [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_earliest_exit_epoch_is_max_validator_exit_epoch [Preset: mainne OK
|
||||
+ EF - Electra - Fork - fork_earliest_exit_epoch_less_than_current_epoch [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_earliest_exit_epoch_no_validator_exits [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_has_compounding_withdrawal_credential [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_many_next_epoch [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_next_epoch [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_next_epoch_with_block [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_pending_deposits_are_sorted [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_pre_activation [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_random_low_balances [Preset: mainnet] OK
|
||||
+ EF - Electra - Fork - fork_random_misc_balances [Preset: mainnet] OK
|
||||
```
|
||||
OK: 14/14 Fail: 0/14 Skip: 0/14
|
||||
OK: 18/18 Fail: 0/18 Skip: 0/18
|
||||
## EF - Electra - Operations - Attestation [Preset: mainnet]
|
||||
```diff
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_after_max_inclusion_slot OK
|
||||
|
@ -2664,7 +2685,7 @@ OK: 14/14 Fail: 0/14 Skip: 0/14
|
|||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_attestation_signature OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_bad_source_root OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_before_inclusion_delay OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_committe_index OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_committee_index OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_correct_attestation_included_a OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_current_source_root OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_empty_participants_seemingly_v OK
|
||||
|
@ -2676,14 +2697,14 @@ OK: 14/14 Fail: 0/14 Skip: 0/14
|
|||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_index OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_mismatched_target_and_slot OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_new_source_epoch OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_nonset_committe_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_nonset_committee_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_old_source_epoch OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_old_target_epoch OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_previous_source_root OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_source_root_is_target_root OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_too_few_aggregation_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_too_many_aggregation_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_too_many_committe_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_too_many_committee_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_wrong_index_for_committee_sign OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
|
||||
|
@ -2958,8 +2979,9 @@ OK: 24/24 Fail: 0/24 Skip: 0/24
|
|||
+ [Valid] EF - Electra - Operations - Withdrawal Request - partial_withdrawal_incorrect_wi OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawal Request - partial_withdrawal_on_exit_init OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawal Request - pending_withdrawals_consume_all OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawal Request - unknown_pubkey OK
|
||||
```
|
||||
OK: 18/18 Fail: 0/18 Skip: 0/18
|
||||
OK: 19/19 Fail: 0/19 Skip: 0/19
|
||||
## EF - Electra - Operations - Withdrawals [Preset: mainnet]
|
||||
```diff
|
||||
+ [Invalid] EF - Electra - Operations - Withdrawals - invalid_a_lot_fully_withdrawable_too_f OK
|
||||
|
@ -2983,7 +3005,18 @@ OK: 18/18 Fail: 0/18 Skip: 0/18
|
|||
+ [Invalid] EF - Electra - Operations - Withdrawals - invalid_two_expected_partial_withdrawa OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - all_withdrawal OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - no_withdrawals_but_some_next_epoch OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_at_max OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_at_max_mixed_with_ OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_exiting_validator OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_low_effective_bala OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_mixed_with_sweep_a OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_next_epoch OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_no_excess_balance OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_one_skipped_one_ef OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_with_effective_swe OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_with_ineffective_s OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_with_ineffective_s OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_with_sweep_differe OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - random_0 OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - random_full_withdrawals_0 OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - random_full_withdrawals_1 OK
|
||||
|
@ -3018,7 +3051,7 @@ OK: 18/18 Fail: 0/18 Skip: 0/18
|
|||
+ [Valid] EF - Electra - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
|
||||
```
|
||||
OK: 55/55 Fail: 0/55 Skip: 0/55
|
||||
OK: 66/66 Fail: 0/66 Skip: 0/66
|
||||
## EF - Electra - Random [Preset: mainnet]
|
||||
```diff
|
||||
+ [Valid] EF - Electra - Random - randomized_0 [Preset: mainnet] OK
|
||||
|
@ -3125,6 +3158,7 @@ OK: 34/34 Fail: 0/34 Skip: 0/34
|
|||
+ Testing SignedContributionAndProof OK
|
||||
+ Testing SignedVoluntaryExit OK
|
||||
+ Testing SigningData OK
|
||||
+ Testing SingleAttestation OK
|
||||
+ Testing SyncAggregate OK
|
||||
+ Testing SyncAggregatorSelectionData OK
|
||||
+ Testing SyncCommittee OK
|
||||
|
@ -3135,7 +3169,7 @@ OK: 34/34 Fail: 0/34 Skip: 0/34
|
|||
+ Testing Withdrawal OK
|
||||
+ Testing WithdrawalRequest OK
|
||||
```
|
||||
OK: 55/55 Fail: 0/55 Skip: 0/55
|
||||
OK: 56/56 Fail: 0/56 Skip: 0/56
|
||||
## EF - Electra - Sanity - Blocks [Preset: mainnet]
|
||||
```diff
|
||||
+ [Invalid] EF - Electra - Sanity - Blocks - deposit_transition__invalid_eth1_deposits_overl OK
|
||||
|
@ -3245,6 +3279,8 @@ OK: 6/6 Fail: 0/6 Skip: 0/6
|
|||
+ EF - Electra - Transition - transition_with_attester_slashing_right_before_fork [Preset: m OK
|
||||
+ EF - Electra - Transition - transition_with_btec_right_after_fork [Preset: mainnet] OK
|
||||
+ EF - Electra - Transition - transition_with_btec_right_before_fork [Preset: mainnet] OK
|
||||
+ EF - Electra - Transition - transition_with_consolidation_request_right_after_fork [Preset OK
|
||||
+ EF - Electra - Transition - transition_with_deposit_request_right_after_fork [Preset: main OK
|
||||
+ EF - Electra - Transition - transition_with_deposit_right_after_fork [Preset: mainnet] OK
|
||||
+ EF - Electra - Transition - transition_with_deposit_right_before_fork [Preset: mainnet] OK
|
||||
+ EF - Electra - Transition - transition_with_finality [Preset: mainnet] OK
|
||||
|
@ -3258,7 +3294,7 @@ OK: 6/6 Fail: 0/6 Skip: 0/6
|
|||
+ EF - Electra - Transition - transition_with_random_half_participation [Preset: mainnet] OK
|
||||
+ EF - Electra - Transition - transition_with_random_three_quarters_participation [Preset: m OK
|
||||
```
|
||||
OK: 25/25 Fail: 0/25 Skip: 0/25
|
||||
OK: 27/27 Fail: 0/27 Skip: 0/27
|
||||
## EF - Electra - Unittests - Light client - Sync protocol [Preset: mainnet]
|
||||
```diff
|
||||
+ process_light_client_update_finality_updated OK
|
||||
|
@ -3804,4 +3840,4 @@ OK: 69/88 Fail: 0/88 Skip: 19/88
|
|||
OK: 3/3 Fail: 0/3 Skip: 0/3
|
||||
|
||||
---TOTAL---
|
||||
OK: 3078/3098 Fail: 0/3098 Skip: 20/3098
|
||||
OK: 3114/3134 Fail: 0/3134 Skip: 20/3134
|
||||
|
|
|
@ -2519,16 +2519,19 @@ OK: 4/4 Fail: 0/4 Skip: 0/4
|
|||
+ Testing BlobIdentifier OK
|
||||
+ Testing BlobSidecar OK
|
||||
+ Testing Checkpoint OK
|
||||
+ Testing ConsolidationRequest OK
|
||||
+ Testing ContributionAndProof OK
|
||||
+ Testing DataColumnIdentifier OK
|
||||
+ Testing DataColumnSidecar OK
|
||||
+ Testing Deposit OK
|
||||
+ Testing DepositData OK
|
||||
+ Testing DepositMessage OK
|
||||
+ Testing DepositRequest OK
|
||||
+ Testing Eth1Block OK
|
||||
+ Testing Eth1Data OK
|
||||
+ Testing ExecutionPayload OK
|
||||
+ Testing ExecutionPayloadHeader OK
|
||||
+ Testing ExecutionRequests OK
|
||||
+ Testing Fork OK
|
||||
+ Testing ForkData OK
|
||||
+ Testing HistoricalBatch OK
|
||||
|
@ -2541,6 +2544,9 @@ OK: 4/4 Fail: 0/4 Skip: 0/4
|
|||
+ Testing LightClientUpdate OK
|
||||
+ Testing MatrixEntry OK
|
||||
+ Testing PendingAttestation OK
|
||||
+ Testing PendingConsolidation OK
|
||||
+ Testing PendingDeposit OK
|
||||
+ Testing PendingPartialWithdrawal OK
|
||||
+ Testing PowBlock OK
|
||||
+ Testing ProposerSlashing OK
|
||||
+ Testing SignedAggregateAndProof OK
|
||||
|
@ -2550,6 +2556,7 @@ OK: 4/4 Fail: 0/4 Skip: 0/4
|
|||
+ Testing SignedContributionAndProof OK
|
||||
+ Testing SignedVoluntaryExit OK
|
||||
+ Testing SigningData OK
|
||||
+ Testing SingleAttestation OK
|
||||
+ Testing SyncAggregate OK
|
||||
+ Testing SyncAggregatorSelectionData OK
|
||||
+ Testing SyncCommittee OK
|
||||
|
@ -2558,8 +2565,9 @@ OK: 4/4 Fail: 0/4 Skip: 0/4
|
|||
+ Testing Validator OK
|
||||
+ Testing VoluntaryExit OK
|
||||
+ Testing Withdrawal OK
|
||||
+ Testing WithdrawalRequest OK
|
||||
```
|
||||
OK: 51/51 Fail: 0/51 Skip: 0/51
|
||||
OK: 59/59 Fail: 0/59 Skip: 0/59
|
||||
## EF - Electra - Epoch Processing - Effective balance updates [Preset: minimal]
|
||||
```diff
|
||||
+ Effective balance updates - effective_balance_hysteresis [Preset: minimal] OK
|
||||
|
@ -2639,10 +2647,14 @@ OK: 12/12 Fail: 0/12 Skip: 0/12
|
|||
+ Pending consolidations - consolidation_not_yet_withdrawable_validator [Preset: minimal] OK
|
||||
+ Pending consolidations - pending_consolidation_compounding_creds [Preset: minimal] OK
|
||||
+ Pending consolidations - pending_consolidation_future_epoch [Preset: minimal] OK
|
||||
+ Pending consolidations - pending_consolidation_source_balance_greater_than_max_effective [ OK
|
||||
+ Pending consolidations - pending_consolidation_source_balance_greater_than_max_effective_c OK
|
||||
+ Pending consolidations - pending_consolidation_source_balance_less_than_max_effective [Pre OK
|
||||
+ Pending consolidations - pending_consolidation_source_balance_less_than_max_effective_comp OK
|
||||
+ Pending consolidations - pending_consolidation_with_pending_deposit [Preset: minimal] OK
|
||||
+ Pending consolidations - skip_consolidation_when_source_slashed [Preset: minimal] OK
|
||||
```
|
||||
OK: 7/7 Fail: 0/7 Skip: 0/7
|
||||
OK: 11/11 Fail: 0/11 Skip: 0/11
|
||||
## EF - Electra - Epoch Processing - Pending deposits [Preset: minimal]
|
||||
```diff
|
||||
+ Pending deposits - apply_pending_deposit_compounding_withdrawal_credentials_max [Preset: m OK
|
||||
|
@ -2683,11 +2695,12 @@ OK: 7/7 Fail: 0/7 Skip: 0/7
|
|||
+ Pending deposits - process_pending_deposits_multiple_skipped_deposits_exiting_validators [ OK
|
||||
+ Pending deposits - process_pending_deposits_not_finalized [Preset: minimal] OK
|
||||
+ Pending deposits - process_pending_deposits_preexisting_churn [Preset: minimal] OK
|
||||
+ Pending deposits - process_pending_deposits_scaled_churn [Preset: minimal] OK
|
||||
+ Pending deposits - process_pending_deposits_skipped_deposit_exiting_validator [Preset: min OK
|
||||
+ Pending deposits - process_pending_deposits_withdrawable_validator [Preset: minimal] OK
|
||||
+ Pending deposits - process_pending_deposits_withdrawable_validator_not_churned [Preset: mi OK
|
||||
```
|
||||
OK: 41/41 Fail: 0/41 Skip: 0/41
|
||||
OK: 42/42 Fail: 0/42 Skip: 0/42
|
||||
## EF - Electra - Epoch Processing - RANDAO mixes reset [Preset: minimal]
|
||||
```diff
|
||||
+ RANDAO mixes reset - updated_randao_mixes [Preset: minimal] OK
|
||||
|
@ -2705,6 +2718,11 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
|
|||
+ Registry updates - activation_queue_activation_and_ejection__scaled_churn_limit [Preset: m OK
|
||||
+ Registry updates - activation_queue_efficiency_min [Preset: minimal] OK
|
||||
+ Registry updates - activation_queue_efficiency_scaled [Preset: minimal] OK
|
||||
+ Registry updates - activation_queue_eligibility__greater_than_min_activation_balance [Pres OK
|
||||
+ Registry updates - activation_queue_eligibility__less_than_min_activation_balance [Preset: OK
|
||||
+ Registry updates - activation_queue_eligibility__min_activation_balance [Preset: minimal] OK
|
||||
+ Registry updates - activation_queue_eligibility__min_activation_balance_compounding_creds OK
|
||||
+ Registry updates - activation_queue_eligibility__min_activation_balance_eth1_creds [Preset OK
|
||||
+ Registry updates - activation_queue_no_activation_no_finality [Preset: minimal] OK
|
||||
+ Registry updates - activation_queue_sorting [Preset: minimal] OK
|
||||
+ Registry updates - activation_queue_to_activated_if_finalized [Preset: minimal] OK
|
||||
|
@ -2714,7 +2732,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
|
|||
+ Registry updates - ejection_past_churn_limit_scaled [Preset: minimal] OK
|
||||
+ Registry updates - invalid_large_withdrawable_epoch [Preset: minimal] OK
|
||||
```
|
||||
OK: 18/18 Fail: 0/18 Skip: 0/18
|
||||
OK: 23/23 Fail: 0/23 Skip: 0/23
|
||||
## EF - Electra - Epoch Processing - Rewards and penalties [Preset: minimal]
|
||||
```diff
|
||||
+ Rewards and penalties - almost_empty_attestations [Preset: minimal] OK
|
||||
|
@ -2776,16 +2794,20 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
|
|||
+ EF - Electra - Fork - electra_fork_random_low_balances [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - electra_fork_random_misc_balances [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_base_state [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_earliest_exit_epoch_is_max_validator_exit_epoch [Preset: minima OK
|
||||
+ EF - Electra - Fork - fork_earliest_exit_epoch_less_than_current_epoch [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_earliest_exit_epoch_no_validator_exits [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_has_compounding_withdrawal_credential [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_many_next_epoch [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_next_epoch [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_next_epoch_with_block [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_pending_deposits_are_sorted [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_pre_activation [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_random_large_validator_set [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_random_low_balances [Preset: minimal] OK
|
||||
+ EF - Electra - Fork - fork_random_misc_balances [Preset: minimal] OK
|
||||
```
|
||||
OK: 16/16 Fail: 0/16 Skip: 0/16
|
||||
OK: 20/20 Fail: 0/20 Skip: 0/20
|
||||
## EF - Electra - Operations - Attestation [Preset: minimal]
|
||||
```diff
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_after_max_inclusion_slot OK
|
||||
|
@ -2793,7 +2815,7 @@ OK: 16/16 Fail: 0/16 Skip: 0/16
|
|||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_attestation_signature OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_bad_source_root OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_before_inclusion_delay OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_committe_index OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_committee_index OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_correct_attestation_included_a OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_current_source_root OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_empty_participants_seemingly_v OK
|
||||
|
@ -2805,14 +2827,16 @@ OK: 16/16 Fail: 0/16 Skip: 0/16
|
|||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_index OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_mismatched_target_and_slot OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_new_source_epoch OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_nonset_committe_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_nonset_bits_for_one_committee OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_nonset_committee_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_nonset_multiple_committee_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_old_source_epoch OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_old_target_epoch OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_previous_source_root OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_source_root_is_target_root OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_too_few_aggregation_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_too_many_aggregation_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_too_many_committe_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_too_many_committee_bits OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_wrong_index_for_committee_sign OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_wrong_index_for_slot_0 OK
|
||||
+ [Invalid] EF - Electra - Operations - Attestation - invalid_wrong_index_for_slot_1 OK
|
||||
|
@ -2831,10 +2855,12 @@ OK: 16/16 Fail: 0/16 Skip: 0/16
|
|||
+ [Valid] EF - Electra - Operations - Attestation - incorrect_target_included_at_min_inclu OK
|
||||
+ [Valid] EF - Electra - Operations - Attestation - incorrect_target_included_at_sqrt_epoc OK
|
||||
+ [Valid] EF - Electra - Operations - Attestation - multi_proposer_index_iterations OK
|
||||
+ [Valid] EF - Electra - Operations - Attestation - multiple_committees OK
|
||||
+ [Valid] EF - Electra - Operations - Attestation - one_basic_attestation OK
|
||||
+ [Valid] EF - Electra - Operations - Attestation - one_committee_with_gap OK
|
||||
+ [Valid] EF - Electra - Operations - Attestation - previous_epoch OK
|
||||
```
|
||||
OK: 45/45 Fail: 0/45 Skip: 0/45
|
||||
OK: 49/49 Fail: 0/49 Skip: 0/49
|
||||
## EF - Electra - Operations - Attester Slashing [Preset: minimal]
|
||||
```diff
|
||||
+ [Invalid] EF - Electra - Operations - Attester Slashing - invalid_all_empty_indices OK
|
||||
|
@ -2919,6 +2945,8 @@ OK: 6/6 Fail: 0/6 Skip: 0/6
|
|||
+ [Valid] EF - Electra - Operations - Consolidation Request - incorrect_no_source_executio OK
|
||||
+ [Valid] EF - Electra - Operations - Consolidation Request - incorrect_no_target_executio OK
|
||||
+ [Valid] EF - Electra - Operations - Consolidation Request - incorrect_not_enough_consoli OK
|
||||
+ [Valid] EF - Electra - Operations - Consolidation Request - incorrect_source_has_pending OK
|
||||
+ [Valid] EF - Electra - Operations - Consolidation Request - incorrect_source_not_active_ OK
|
||||
+ [Valid] EF - Electra - Operations - Consolidation Request - incorrect_unknown_source_pub OK
|
||||
+ [Valid] EF - Electra - Operations - Consolidation Request - incorrect_unknown_target_pub OK
|
||||
+ [Valid] EF - Electra - Operations - Consolidation Request - switch_to_compounding_exited OK
|
||||
|
@ -2930,7 +2958,7 @@ OK: 6/6 Fail: 0/6 Skip: 0/6
|
|||
+ [Valid] EF - Electra - Operations - Consolidation Request - switch_to_compounding_with_e OK
|
||||
+ [Valid] EF - Electra - Operations - Consolidation Request - switch_to_compounding_with_p OK
|
||||
```
|
||||
OK: 30/30 Fail: 0/30 Skip: 0/30
|
||||
OK: 32/32 Fail: 0/32 Skip: 0/32
|
||||
## EF - Electra - Operations - Deposit [Preset: minimal]
|
||||
```diff
|
||||
+ [Invalid] EF - Electra - Operations - Deposit - invalid_bad_merkle_proof OK
|
||||
|
@ -3111,8 +3139,9 @@ OK: 20/20 Fail: 0/20 Skip: 0/20
|
|||
+ [Valid] EF - Electra - Operations - Withdrawal Request - partial_withdrawal_request_with OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawal Request - partial_withdrawal_request_with OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawal Request - pending_withdrawals_consume_all OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawal Request - unknown_pubkey OK
|
||||
```
|
||||
OK: 28/28 Fail: 0/28 Skip: 0/28
|
||||
OK: 29/29 Fail: 0/29 Skip: 0/29
|
||||
## EF - Electra - Operations - Withdrawals [Preset: minimal]
|
||||
```diff
|
||||
+ [Invalid] EF - Electra - Operations - Withdrawals - invalid_a_lot_fully_withdrawable_too_f OK
|
||||
|
@ -3136,7 +3165,18 @@ OK: 28/28 Fail: 0/28 Skip: 0/28
|
|||
+ [Invalid] EF - Electra - Operations - Withdrawals - invalid_two_expected_partial_withdrawa OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - all_withdrawal OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - no_withdrawals_but_some_next_epoch OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_at_max OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_at_max_mixed_with_ OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_exiting_validator OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_low_effective_bala OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_mixed_with_sweep_a OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_next_epoch OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_no_excess_balance OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_one_skipped_one_ef OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_with_effective_swe OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_with_ineffective_s OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_with_ineffective_s OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - pending_withdrawals_with_sweep_differe OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - random_0 OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - random_full_withdrawals_0 OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - random_full_withdrawals_1 OK
|
||||
|
@ -3172,7 +3212,7 @@ OK: 28/28 Fail: 0/28 Skip: 0/28
|
|||
+ [Valid] EF - Electra - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
|
||||
+ [Valid] EF - Electra - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
|
||||
```
|
||||
OK: 56/56 Fail: 0/56 Skip: 0/56
|
||||
OK: 67/67 Fail: 0/67 Skip: 0/67
|
||||
## EF - Electra - Random [Preset: minimal]
|
||||
```diff
|
||||
+ [Valid] EF - Electra - Random - randomized_0 [Preset: minimal] OK
|
||||
|
@ -3279,6 +3319,7 @@ OK: 34/34 Fail: 0/34 Skip: 0/34
|
|||
+ Testing SignedContributionAndProof OK
|
||||
+ Testing SignedVoluntaryExit OK
|
||||
+ Testing SigningData OK
|
||||
+ Testing SingleAttestation OK
|
||||
+ Testing SyncAggregate OK
|
||||
+ Testing SyncAggregatorSelectionData OK
|
||||
+ Testing SyncCommittee OK
|
||||
|
@ -3289,7 +3330,7 @@ OK: 34/34 Fail: 0/34 Skip: 0/34
|
|||
+ Testing Withdrawal OK
|
||||
+ Testing WithdrawalRequest OK
|
||||
```
|
||||
OK: 55/55 Fail: 0/55 Skip: 0/55
|
||||
OK: 56/56 Fail: 0/56 Skip: 0/56
|
||||
## EF - Electra - Sanity - Blocks [Preset: minimal]
|
||||
```diff
|
||||
+ [Invalid] EF - Electra - Sanity - Blocks - deposit_transition__invalid_eth1_deposits_overl OK
|
||||
|
@ -3407,9 +3448,12 @@ OK: 6/6 Fail: 0/6 Skip: 0/6
|
|||
+ EF - Electra - Transition - transition_with_attester_slashing_right_before_fork [Preset: m OK
|
||||
+ EF - Electra - Transition - transition_with_btec_right_after_fork [Preset: minimal] OK
|
||||
+ EF - Electra - Transition - transition_with_btec_right_before_fork [Preset: minimal] OK
|
||||
+ EF - Electra - Transition - transition_with_consolidation_request_right_after_fork [Preset OK
|
||||
+ EF - Electra - Transition - transition_with_deposit_request_right_after_fork [Preset: mini OK
|
||||
+ EF - Electra - Transition - transition_with_deposit_right_after_fork [Preset: minimal] OK
|
||||
+ EF - Electra - Transition - transition_with_deposit_right_before_fork [Preset: minimal] OK
|
||||
+ EF - Electra - Transition - transition_with_finality [Preset: minimal] OK
|
||||
+ EF - Electra - Transition - transition_with_full_withdrawal_request_right_after_fork [Pres OK
|
||||
+ EF - Electra - Transition - transition_with_leaking_at_fork [Preset: minimal] OK
|
||||
+ EF - Electra - Transition - transition_with_leaking_pre_fork [Preset: minimal] OK
|
||||
+ EF - Electra - Transition - transition_with_no_attestations_until_after_fork [Preset: mini OK
|
||||
|
@ -3424,7 +3468,7 @@ OK: 6/6 Fail: 0/6 Skip: 0/6
|
|||
+ EF - Electra - Transition - transition_with_voluntary_exit_right_after_fork [Preset: minim OK
|
||||
+ EF - Electra - Transition - transition_with_voluntary_exit_right_before_fork [Preset: mini OK
|
||||
```
|
||||
OK: 30/30 Fail: 0/30 Skip: 0/30
|
||||
OK: 33/33 Fail: 0/33 Skip: 0/33
|
||||
## EF - Electra - Unittests - Light client - Sync protocol [Preset: minimal]
|
||||
```diff
|
||||
+ process_light_client_update_finality_updated OK
|
||||
|
@ -4142,4 +4186,4 @@ OK: 185/207 Fail: 0/207 Skip: 22/207
|
|||
OK: 3/3 Fail: 0/3 Skip: 0/3
|
||||
|
||||
---TOTAL---
|
||||
OK: 3385/3408 Fail: 0/3408 Skip: 23/3408
|
||||
OK: 3429/3452 Fail: 0/3452 Skip: 23/3452
|
||||
|
|
|
@ -86,7 +86,7 @@ func get_validator_from_deposit*(
|
|||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.7/specs/electra/beacon-chain.md#deposits
|
||||
func get_validator_from_deposit*(
|
||||
_: electra.BeaconState | fulu.BeaconState,
|
||||
_: electra.BeaconState | fulu.BeaconState,
|
||||
pubkey: ValidatorPubKey,
|
||||
withdrawal_credentials: Eth2Digest, amount: Gwei): Validator =
|
||||
var validator = Validator(
|
||||
|
@ -185,7 +185,7 @@ func get_state_exit_queue_info*(
|
|||
ExitQueueInfo(
|
||||
exit_queue_epoch: exit_queue_epoch, exit_queue_churn: exit_queue_churn)
|
||||
|
||||
func get_state_exit_queue_info*(state: electra.BeaconState |
|
||||
func get_state_exit_queue_info*(state: electra.BeaconState |
|
||||
fulu.BeaconState):
|
||||
ExitQueueInfo =
|
||||
# Electra initiate_validator_exit doesn't have same quadratic aspect given
|
||||
|
@ -381,7 +381,7 @@ func get_whistleblower_reward*(
|
|||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#modified-slash_validator
|
||||
func get_whistleblower_reward*(
|
||||
state: electra.BeaconState | fulu.BeaconState,
|
||||
state: electra.BeaconState | fulu.BeaconState,
|
||||
validator_effective_balance: Gwei): Gwei =
|
||||
validator_effective_balance div WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA
|
||||
|
||||
|
@ -982,6 +982,7 @@ proc check_attestation*(
|
|||
|
||||
ok()
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.9/specs/electra/beacon-chain.md#modified-process_attestation
|
||||
proc check_attestation*(
|
||||
state: electra.BeaconState | fulu.BeaconState,
|
||||
attestation: electra.Attestation | electra.TrustedAttestation,
|
||||
|
@ -1002,15 +1003,32 @@ proc check_attestation*(
|
|||
return err("Electra attestation data index not 0")
|
||||
|
||||
when on_chain:
|
||||
var participants_count = 0'u64
|
||||
for index in attestation.committee_bits.oneIndices:
|
||||
if not (index.uint64 < get_committee_count_per_slot(
|
||||
var committee_offset = 0
|
||||
for committee_index in attestation.committee_bits.oneIndices:
|
||||
if not (committee_index.uint64 < get_committee_count_per_slot(
|
||||
state, data.target.epoch, cache)):
|
||||
return err("attestation wrong committee index len")
|
||||
participants_count +=
|
||||
get_beacon_committee_len(state, data.slot, index.CommitteeIndex, cache)
|
||||
let committee = get_beacon_committee(
|
||||
state, data.slot, committee_index.CommitteeIndex, cache)
|
||||
|
||||
if not (lenu64(attestation.aggregation_bits) == participants_count):
|
||||
if attestation.aggregation_bits.len < committee_offset + len(committee):
|
||||
# This would overflow; see invalid_too_many_committee_bits test case
|
||||
return err("Electra attestation has too many committee bits")
|
||||
|
||||
# This construction modified slightly from spec version to early-exit and
|
||||
# not create the actual set, but the result is it uses a flag variable to
|
||||
# look similar.
|
||||
var committee_attesters_nonzero = false
|
||||
for i, attester_index in committee:
|
||||
if attestation.aggregation_bits[committee_offset + i]:
|
||||
committee_attesters_nonzero = true
|
||||
break
|
||||
if not committee_attesters_nonzero:
|
||||
return err("Electra attestation committee not present in aggregated bits")
|
||||
|
||||
committee_offset += len(committee)
|
||||
|
||||
if not (len(attestation.aggregation_bits) == committee_offset):
|
||||
return err("attestation wrong aggregation bit length")
|
||||
else:
|
||||
let
|
||||
|
@ -1314,7 +1332,7 @@ func switch_to_compounding_validator*(
|
|||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.8/specs/electra/beacon-chain.md#new-get_pending_balance_to_withdraw
|
||||
func get_pending_balance_to_withdraw*(
|
||||
state: electra.BeaconState | fulu.BeaconState,
|
||||
state: electra.BeaconState | fulu.BeaconState,
|
||||
validator_index: ValidatorIndex): Gwei =
|
||||
var pending_balance: Gwei
|
||||
for withdrawal in state.pending_partial_withdrawals:
|
||||
|
@ -1409,7 +1427,7 @@ func get_expected_withdrawals*(
|
|||
# to cleanly treat the results of get_expected_withdrawals as a seq[Withdrawal]
|
||||
# are valuable enough to make that the default version of this spec function.
|
||||
template get_expected_withdrawals_with_partial_count_aux*(
|
||||
state: electra.BeaconState | fulu.BeaconState,
|
||||
state: electra.BeaconState | fulu.BeaconState,
|
||||
epoch: Epoch, fetch_balance: untyped):
|
||||
(seq[Withdrawal], uint64) =
|
||||
doAssert epoch - get_current_epoch(state) in [0'u64, 1'u64]
|
||||
|
@ -1417,7 +1435,7 @@ template get_expected_withdrawals_with_partial_count_aux*(
|
|||
var
|
||||
withdrawal_index = state.next_withdrawal_index
|
||||
withdrawals: seq[Withdrawal] = @[]
|
||||
partial_withdrawals_count: uint64 = 0
|
||||
processed_partial_withdrawals_count: uint64 = 0
|
||||
|
||||
# [New in Electra:EIP7251] Consume pending partial withdrawals
|
||||
for withdrawal in state.pending_partial_withdrawals:
|
||||
|
@ -1459,7 +1477,7 @@ template get_expected_withdrawals_with_partial_count_aux*(
|
|||
withdrawals.add w
|
||||
withdrawal_index += 1
|
||||
|
||||
partial_withdrawals_count += 1
|
||||
processed_partial_withdrawals_count += 1
|
||||
|
||||
let
|
||||
bound = min(len(state.validators), MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP)
|
||||
|
@ -1470,7 +1488,14 @@ template get_expected_withdrawals_with_partial_count_aux*(
|
|||
for _ in 0 ..< bound:
|
||||
let
|
||||
validator = state.validators.item(validator_index)
|
||||
balance = fetch_balance
|
||||
# [Modified in Electra:EIP7251]
|
||||
partially_withdrawn_balance = block:
|
||||
var subtot: Gwei
|
||||
for withdrawal in withdrawals:
|
||||
if withdrawal.validator_index == validator_index:
|
||||
subtot += withdrawal.amount
|
||||
subtot
|
||||
balance = fetch_balance - partially_withdrawn_balance
|
||||
if is_fully_withdrawable_validator(
|
||||
typeof(state).kind, validator, balance, epoch):
|
||||
var w = Withdrawal(
|
||||
|
@ -1494,7 +1519,7 @@ template get_expected_withdrawals_with_partial_count_aux*(
|
|||
break
|
||||
validator_index = (validator_index + 1) mod num_validators
|
||||
|
||||
(withdrawals, partial_withdrawals_count)
|
||||
(withdrawals, processed_partial_withdrawals_count)
|
||||
|
||||
template get_expected_withdrawals_with_partial_count*(
|
||||
state: electra.BeaconState | fulu.BeaconState): (seq[Withdrawal], uint64) =
|
||||
|
@ -1502,7 +1527,7 @@ template get_expected_withdrawals_with_partial_count*(
|
|||
state, get_current_epoch(state)) do:
|
||||
state.balances.item(validator_index)
|
||||
|
||||
func get_expected_withdrawals*(state: electra.BeaconState | fulu.BeaconState):
|
||||
func get_expected_withdrawals*(state: electra.BeaconState | fulu.BeaconState):
|
||||
seq[Withdrawal] =
|
||||
get_expected_withdrawals_with_partial_count(state)[0]
|
||||
|
||||
|
@ -2083,17 +2108,13 @@ func upgrade_to_electra*(
|
|||
blob_gas_used: pre.latest_execution_payload_header.blob_gas_used,
|
||||
excess_blob_gas: pre.latest_execution_payload_header.excess_blob_gas)
|
||||
|
||||
var max_exit_epoch = FAR_FUTURE_EPOCH
|
||||
var earliest_exit_epoch =
|
||||
compute_activation_exit_epoch(get_current_epoch(pre))
|
||||
for v in pre.validators:
|
||||
if v.exit_epoch != FAR_FUTURE_EPOCH:
|
||||
max_exit_epoch =
|
||||
if max_exit_epoch == FAR_FUTURE_EPOCH:
|
||||
v.exit_epoch
|
||||
else:
|
||||
max(max_exit_epoch, v.exit_epoch)
|
||||
if max_exit_epoch == FAR_FUTURE_EPOCH:
|
||||
max_exit_epoch = get_current_epoch(pre)
|
||||
let earliest_exit_epoch = max_exit_epoch + 1
|
||||
if v.exit_epoch > earliest_exit_epoch:
|
||||
earliest_exit_epoch = v.exit_epoch
|
||||
earliest_exit_epoch += 1
|
||||
|
||||
let post = (ref electra.BeaconState)(
|
||||
# Versioning
|
||||
|
|
|
@ -74,7 +74,7 @@ export
|
|||
tables, results, endians2, json_serialization, sszTypes, beacon_time, crypto,
|
||||
digest, presets
|
||||
|
||||
const SPEC_VERSION* = "1.5.0-alpha.8"
|
||||
const SPEC_VERSION* = "1.5.0-alpha.9"
|
||||
## Spec version we're aiming to be compatible with, right now
|
||||
|
||||
const
|
||||
|
@ -960,7 +960,7 @@ func checkForkConsistency*(cfg: RuntimeConfig) =
|
|||
let forkVersions =
|
||||
[cfg.GENESIS_FORK_VERSION, cfg.ALTAIR_FORK_VERSION,
|
||||
cfg.BELLATRIX_FORK_VERSION, cfg.CAPELLA_FORK_VERSION,
|
||||
cfg.DENEB_FORK_VERSION, cfg.ELECTRA_FORK_VERSION,
|
||||
cfg.DENEB_FORK_VERSION, cfg.ELECTRA_FORK_VERSION,
|
||||
cfg.FULU_FORK_VERSION]
|
||||
|
||||
for i in 0 ..< forkVersions.len:
|
||||
|
|
|
@ -179,6 +179,13 @@ type
|
|||
source_pubkey*: ValidatorPubKey
|
||||
target_pubkey*: ValidatorPubKey
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.9/specs/electra/beacon-chain.md#singleattestation
|
||||
SingleAttestation* = object
|
||||
committee_index*: uint64
|
||||
attester_index*: uint64
|
||||
data*: AttestationData
|
||||
signature*: ValidatorSig
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.8/specs/phase0/validator.md#aggregateandproof
|
||||
AggregateAndProof* = object
|
||||
aggregator_index*: uint64 # `ValidatorIndex` after validation
|
||||
|
|
|
@ -34,8 +34,8 @@ type
|
|||
func hash_tree_root*(
|
||||
x: phase0.HashedBeaconState | altair.HashedBeaconState |
|
||||
bellatrix.HashedBeaconState | capella.HashedBeaconState |
|
||||
deneb.HashedBeaconState | electra.SignedBeaconBlock |
|
||||
fulu.SignedBeaconBlock) {.
|
||||
deneb.HashedBeaconState | electra.HashedBeaconState |
|
||||
fulu.HashedBeaconState) {.
|
||||
error: "HashedBeaconState should not be hashed".}
|
||||
|
||||
func hash_tree_root*(
|
||||
|
|
|
@ -563,7 +563,7 @@ func process_withdrawal_request*(
|
|||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.7/specs/electra/beacon-chain.md#new-is_valid_switch_to_compounding_request
|
||||
func is_valid_switch_to_compounding_request(
|
||||
state: electra.BeaconState | fulu.BeaconState,
|
||||
state: electra.BeaconState | fulu.BeaconState,
|
||||
consolidation_request: ConsolidationRequest,
|
||||
source_validator: Validator): bool =
|
||||
# Switch to compounding requires source and target be equal
|
||||
|
@ -665,6 +665,15 @@ func process_consolidation_request*(
|
|||
if target_validator.exit_epoch != FAR_FUTURE_EPOCH:
|
||||
return
|
||||
|
||||
# Verify the source has been active long enough
|
||||
if current_epoch <
|
||||
source_validator.activation_epoch + cfg.SHARD_COMMITTEE_PERIOD:
|
||||
return
|
||||
|
||||
# Verify the source has no pending withdrawals in the queue
|
||||
if get_pending_balance_to_withdraw(state, source_index) > 0.Gwei:
|
||||
return
|
||||
|
||||
# Initiate source validator exit and append pending consolidation
|
||||
source_validator[].exit_epoch = compute_consolidation_epoch_and_update_churn(
|
||||
cfg, state, source_validator[].effective_balance, cache)
|
||||
|
|
|
@ -17,8 +17,8 @@ import
|
|||
yaml,
|
||||
# Beacon chain internals
|
||||
../../../beacon_chain/spec/datatypes/[
|
||||
altair,
|
||||
deneb,
|
||||
altair,
|
||||
electra,
|
||||
fulu],
|
||||
# Status libraries
|
||||
snappy,
|
||||
|
@ -29,7 +29,8 @@ from ../../../beacon_chain/spec/datatypes/bellatrix import PowBlock
|
|||
from ../../../beacon_chain/spec/datatypes/capella import
|
||||
BLSToExecutionChange, SignedBLSToExecutionChange, HistoricalSummary,
|
||||
Withdrawal
|
||||
|
||||
from ../../../beacon_chain/spec/datatypes/deneb import
|
||||
BlobIdentifier, BlobSidecar
|
||||
|
||||
# SSZ tests of consensus objects (minimal/mainnet preset specific)
|
||||
|
||||
|
@ -51,7 +52,7 @@ type
|
|||
# Checking the values against the yaml file is TODO (require more flexible Yaml parser)
|
||||
|
||||
proc checkSSZ(
|
||||
T: type deneb.SignedBeaconBlock,
|
||||
T: type electra.SignedBeaconBlock,
|
||||
dir: string,
|
||||
expectedHash: SSZHashTreeRoot
|
||||
) {.raises: [IOError, SerializationError, UnconsumedInput].} =
|
||||
|
@ -117,55 +118,63 @@ suite "EF - EIP7594 - SSZ consensus objects " & preset():
|
|||
let hash = loadExpectedHashTreeRoot(path)
|
||||
|
||||
case sszType:
|
||||
of "AggregateAndProof": checkSSZ(phase0.AggregateAndProof, path, hash)
|
||||
of "Attestation": checkSSZ(phase0.Attestation, path, hash)
|
||||
of "AggregateAndProof": checkSSZ(electra.AggregateAndProof, path, hash)
|
||||
of "Attestation": checkSSZ(electra.Attestation, path, hash)
|
||||
of "AttestationData": checkSSZ(AttestationData, path, hash)
|
||||
of "AttesterSlashing": checkSSZ(phase0.AttesterSlashing, path, hash)
|
||||
of "BeaconBlock": checkSSZ(deneb.BeaconBlock, path, hash)
|
||||
of "BeaconBlockBody": checkSSZ(deneb.BeaconBlockBody, path, hash)
|
||||
of "AttesterSlashing": checkSSZ(electra.AttesterSlashing, path, hash)
|
||||
of "BeaconBlock": checkSSZ(electra.BeaconBlock, path, hash)
|
||||
of "BeaconBlockBody": checkSSZ(electra.BeaconBlockBody, path, hash)
|
||||
of "BeaconBlockHeader": checkSSZ(BeaconBlockHeader, path, hash)
|
||||
of "BeaconState": checkSSZ(deneb.BeaconState, path, hash)
|
||||
of "BeaconState": checkSSZ(electra.BeaconState, path, hash)
|
||||
of "BlobIdentifier": checkSSZ(BlobIdentifier, path, hash)
|
||||
of "BlobSidecar": checkSSZ(BlobSidecar, path, hash)
|
||||
of "BLSToExecutionChange": checkSSZ(BLSToExecutionChange, path, hash)
|
||||
of "Checkpoint": checkSSZ(Checkpoint, path, hash)
|
||||
of "ConsolidationRequest": checkSSZ(ConsolidationRequest, path, hash)
|
||||
of "ContributionAndProof": checkSSZ(ContributionAndProof, path, hash)
|
||||
of "DataColumnSidecar": checkSSZ(DataColumnSidecar, path, hash)
|
||||
of "DataColumnIdentifier": checkSSZ(DataColumnIdentifier, path, hash)
|
||||
of "Deposit": checkSSZ(Deposit, path, hash)
|
||||
of "DepositData": checkSSZ(DepositData, path, hash)
|
||||
of "DepositMessage": checkSSZ(DepositMessage, path, hash)
|
||||
of "DepositRequest": checkSSZ(DepositRequest, path, hash)
|
||||
of "Eth1Block": checkSSZ(Eth1Block, path, hash)
|
||||
of "Eth1Data": checkSSZ(Eth1Data, path, hash)
|
||||
of "ExecutionPayload":
|
||||
checkSSZ(deneb.ExecutionPayload, path, hash)
|
||||
checkSSZ(electra.ExecutionPayload, path, hash)
|
||||
of "ExecutionPayloadHeader":
|
||||
checkSSZ(deneb.ExecutionPayloadHeader, path, hash)
|
||||
checkSSZ(electra.ExecutionPayloadHeader, path, hash)
|
||||
of "ExecutionRequests":
|
||||
checkSSZ(electra.ExecutionRequests, path, hash)
|
||||
of "Fork": checkSSZ(Fork, path, hash)
|
||||
of "ForkData": checkSSZ(ForkData, path, hash)
|
||||
of "HistoricalBatch": checkSSZ(HistoricalBatch, path, hash)
|
||||
of "HistoricalSummary": checkSSZ(HistoricalSummary, path, hash)
|
||||
of "IndexedAttestation":
|
||||
checkSSZ(phase0.IndexedAttestation, path, hash)
|
||||
checkSSZ(electra.IndexedAttestation, path, hash)
|
||||
of "LightClientBootstrap":
|
||||
checkSSZ(deneb.LightClientBootstrap, path, hash)
|
||||
checkSSZ(electra.LightClientBootstrap, path, hash)
|
||||
of "LightClientHeader":
|
||||
checkSSZ(deneb.LightClientHeader, path, hash)
|
||||
checkSSZ(electra.LightClientHeader, path, hash)
|
||||
of "LightClientUpdate":
|
||||
checkSSZ(deneb.LightClientUpdate, path, hash)
|
||||
checkSSZ(electra.LightClientUpdate, path, hash)
|
||||
of "LightClientFinalityUpdate":
|
||||
checkSSZ(deneb.LightClientFinalityUpdate, path, hash)
|
||||
checkSSZ(electra.LightClientFinalityUpdate, path, hash)
|
||||
of "LightClientOptimisticUpdate":
|
||||
checkSSZ(deneb.LightClientOptimisticUpdate, path, hash)
|
||||
checkSSZ(electra.LightClientOptimisticUpdate, path, hash)
|
||||
of "MatrixEntry":
|
||||
checkSSZ(MatrixEntry, path, hash)
|
||||
of "PendingAttestation": checkSSZ(PendingAttestation, path, hash)
|
||||
of "PendingConsolidation": checkSSZ(PendingConsolidation, path, hash)
|
||||
of "PendingDeposit": checkSSZ(PendingDeposit, path, hash)
|
||||
of "PendingPartialWithdrawal":
|
||||
checkSSZ(PendingPartialWithdrawal, path, hash)
|
||||
of "PowBlock": checkSSZ(PowBlock, path, hash)
|
||||
of "ProposerSlashing": checkSSZ(ProposerSlashing, path, hash)
|
||||
of "SignedAggregateAndProof":
|
||||
checkSSZ(phase0.SignedAggregateAndProof, path, hash)
|
||||
checkSSZ(electra.SignedAggregateAndProof, path, hash)
|
||||
of "SignedBeaconBlock":
|
||||
checkSSZ(deneb.SignedBeaconBlock, path, hash)
|
||||
checkSSZ(electra.SignedBeaconBlock, path, hash)
|
||||
of "SignedBeaconBlockHeader":
|
||||
checkSSZ(SignedBeaconBlockHeader, path, hash)
|
||||
of "SignedBLSToExecutionChange":
|
||||
|
@ -174,6 +183,7 @@ suite "EF - EIP7594 - SSZ consensus objects " & preset():
|
|||
checkSSZ(SignedContributionAndProof, path, hash)
|
||||
of "SignedVoluntaryExit": checkSSZ(SignedVoluntaryExit, path, hash)
|
||||
of "SigningData": checkSSZ(SigningData, path, hash)
|
||||
of "SingleAttestation": checkSSZ(SingleAttestation, path, hash)
|
||||
of "SyncAggregate": checkSSZ(SyncAggregate, path, hash)
|
||||
of "SyncAggregatorSelectionData":
|
||||
checkSSZ(SyncAggregatorSelectionData, path, hash)
|
||||
|
@ -182,6 +192,7 @@ suite "EF - EIP7594 - SSZ consensus objects " & preset():
|
|||
checkSSZ(SyncCommitteeContribution, path, hash)
|
||||
of "SyncCommitteeMessage": checkSSZ(SyncCommitteeMessage, path, hash)
|
||||
of "Withdrawal": checkSSZ(Withdrawal, path, hash)
|
||||
of "WithdrawalRequest": checkSSZ(WithdrawalRequest, path, hash)
|
||||
of "Validator": checkSSZ(Validator, path, hash)
|
||||
of "VoluntaryExit": checkSSZ(VoluntaryExit, path, hash)
|
||||
else:
|
||||
|
|
|
@ -175,6 +175,7 @@ suite "EF - Electra - SSZ consensus objects " & preset():
|
|||
checkSSZ(SignedContributionAndProof, path, hash)
|
||||
of "SignedVoluntaryExit": checkSSZ(SignedVoluntaryExit, path, hash)
|
||||
of "SigningData": checkSSZ(SigningData, path, hash)
|
||||
of "SingleAttestation": checkSSZ(SingleAttestation, path, hash)
|
||||
of "SyncAggregate": checkSSZ(SyncAggregate, path, hash)
|
||||
of "SyncAggregatorSelectionData":
|
||||
checkSSZ(SyncAggregatorSelectionData, path, hash)
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 93996ec0865765d94b1f72825bd98a5aef215a12
|
||||
Subproject commit 32b3e569a3bc28909ed8463a896541976c698ef6
|
Loading…
Reference in New Issue