mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-02-25 12:45:37 +00:00
run capella block sanity tests in CI (#4292)
This commit is contained in:
parent
26fe3990b9
commit
0a43c89cd2
@ -2,6 +2,7 @@ AllTests-mainnet
|
|||||||
===
|
===
|
||||||
## Attestation pool processing [Preset: mainnet]
|
## Attestation pool processing [Preset: mainnet]
|
||||||
```diff
|
```diff
|
||||||
|
+ Attestation from different branch [Preset: mainnet] OK
|
||||||
+ Attestations may arrive in any order [Preset: mainnet] OK
|
+ Attestations may arrive in any order [Preset: mainnet] OK
|
||||||
+ Attestations may overlap, bigger first [Preset: mainnet] OK
|
+ Attestations may overlap, bigger first [Preset: mainnet] OK
|
||||||
+ Attestations may overlap, smaller first [Preset: mainnet] OK
|
+ Attestations may overlap, smaller first [Preset: mainnet] OK
|
||||||
@ -14,7 +15,7 @@ AllTests-mainnet
|
|||||||
+ Trying to add a duplicate block from an old pruned epoch is tagged as an error OK
|
+ Trying to add a duplicate block from an old pruned epoch is tagged as an error OK
|
||||||
+ Working with aggregates [Preset: mainnet] OK
|
+ Working with aggregates [Preset: mainnet] OK
|
||||||
```
|
```
|
||||||
OK: 11/11 Fail: 0/11 Skip: 0/11
|
OK: 12/12 Fail: 0/12 Skip: 0/12
|
||||||
## Backfill
|
## Backfill
|
||||||
```diff
|
```diff
|
||||||
+ Init without genesis / block OK
|
+ Init without genesis / block OK
|
||||||
@ -603,4 +604,4 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
|
|||||||
OK: 9/9 Fail: 0/9 Skip: 0/9
|
OK: 9/9 Fail: 0/9 Skip: 0/9
|
||||||
|
|
||||||
---TOTAL---
|
---TOTAL---
|
||||||
OK: 332/337 Fail: 0/337 Skip: 5/337
|
OK: 333/338 Fail: 0/338 Skip: 5/338
|
||||||
|
@ -307,6 +307,20 @@ ConsensusSpecPreset-mainnet
|
|||||||
+ [Invalid] EF - Bellatrix - Sanity - Blocks - same_slot_block_transition [Preset: mainnet] OK
|
+ [Invalid] EF - Bellatrix - Sanity - Blocks - same_slot_block_transition [Preset: mainnet] OK
|
||||||
+ [Invalid] EF - Bellatrix - Sanity - Blocks - slash_and_exit_same_index [Preset: mainnet] OK
|
+ [Invalid] EF - Bellatrix - Sanity - Blocks - slash_and_exit_same_index [Preset: mainnet] OK
|
||||||
+ [Invalid] EF - Bellatrix - Sanity - Blocks - zero_block_sig [Preset: mainnet] OK
|
+ [Invalid] EF - Bellatrix - Sanity - Blocks - zero_block_sig [Preset: mainnet] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - double_same_proposer_slashings_same_block [Pres OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - double_similar_proposer_slashings_same_block [P OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - double_validator_exit_same_block [Preset: mainn OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - duplicate_attester_slashing [Preset: mainnet] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - expected_deposit_in_block [Preset: mainnet] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - invalid_block_sig [Preset: mainnet] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - invalid_proposer_index_sig_from_expected_propos OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - invalid_proposer_index_sig_from_proposer_index OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - invalid_state_root [Preset: mainnet] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - parent_from_same_slot [Preset: mainnet] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - prev_slot_block_transition [Preset: mainnet] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - same_slot_block_transition [Preset: mainnet] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - slash_and_exit_same_index [Preset: mainnet] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - zero_block_sig [Preset: mainnet] OK
|
||||||
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_same_proposer_slashings_same_block [Pres OK
|
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_same_proposer_slashings_same_block [Pres OK
|
||||||
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_similar_proposer_slashings_same_block [P OK
|
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_similar_proposer_slashings_same_block [P OK
|
||||||
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_validator_exit_same_block [Preset: mainn OK
|
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_validator_exit_same_block [Preset: mainn OK
|
||||||
@ -429,6 +443,66 @@ ConsensusSpecPreset-mainnet
|
|||||||
+ [Valid] EF - Bellatrix - Sanity - Blocks - skipped_slots [Preset: mainnet] OK
|
+ [Valid] EF - Bellatrix - Sanity - Blocks - skipped_slots [Preset: mainnet] OK
|
||||||
+ [Valid] EF - Bellatrix - Sanity - Blocks - slash_and_exit_diff_index [Preset: mainnet] OK
|
+ [Valid] EF - Bellatrix - Sanity - Blocks - slash_and_exit_diff_index [Preset: mainnet] OK
|
||||||
+ [Valid] EF - Bellatrix - Sanity - Blocks - voluntary_exit [Preset: mainnet] OK
|
+ [Valid] EF - Bellatrix - Sanity - Blocks - voluntary_exit [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_no_updates_at_genesis [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_rule_1 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_rule_2 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_rule_3 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_rule_4 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_0 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_1 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_10 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_11 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_12 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_13 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_14 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_15 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_2 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_3 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_4 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_5 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_6 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_7 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_8 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_9 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - attestation [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - attester_slashing [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - balance_driven_status_transitions [Preset: main OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - deposit_in_block [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - deposit_top_up [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_block_transition [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_block_transition_no_tx [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_block_transition_randomized_payload [Pres OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_epoch_transition [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_sync_committee_committee [Preset: mainnet OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_sync_committee_committee_genesis [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - exit_and_bls_change [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_random_operations_0 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_random_operations_1 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_random_operations_2 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_random_operations_3 [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_sync_committee_committee [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_sync_committee_committee_genesis [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_withdrawal_in_epoch_transition [Preset: ma OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - half_sync_committee_committee [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - half_sync_committee_committee_genesis [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - high_proposer_index [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - historical_batch [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - inactivity_scores_full_participation_leaking [P OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - inactivity_scores_leaking [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - is_execution_enabled_false [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - many_partial_withdrawals_in_epoch_transition [P OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - multiple_attester_slashings_no_overlap [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - multiple_attester_slashings_partial_overlap [Pr OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - multiple_different_proposer_slashings_same_bloc OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - multiple_different_validator_exits_same_block [ OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - partial_withdrawal_in_epoch_transition [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - proposer_after_inactive_index [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - proposer_self_slashing [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - proposer_slashing [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - skipped_slots [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - slash_and_exit_diff_index [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - successful_bls_change [Preset: mainnet] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - voluntary_exit [Preset: mainnet] OK
|
||||||
+ [Valid] EF - Phase 0 - Finality - finality_no_updates_at_genesis [Preset: mainnet] OK
|
+ [Valid] EF - Phase 0 - Finality - finality_no_updates_at_genesis [Preset: mainnet] OK
|
||||||
+ [Valid] EF - Phase 0 - Finality - finality_rule_1 [Preset: mainnet] OK
|
+ [Valid] EF - Phase 0 - Finality - finality_rule_1 [Preset: mainnet] OK
|
||||||
+ [Valid] EF - Phase 0 - Finality - finality_rule_2 [Preset: mainnet] OK
|
+ [Valid] EF - Phase 0 - Finality - finality_rule_2 [Preset: mainnet] OK
|
||||||
@ -494,7 +568,7 @@ ConsensusSpecPreset-mainnet
|
|||||||
+ fork_random_low_balances OK
|
+ fork_random_low_balances OK
|
||||||
+ fork_random_misc_balances OK
|
+ fork_random_misc_balances OK
|
||||||
```
|
```
|
||||||
OK: 464/491 Fail: 0/491 Skip: 27/491
|
OK: 538/565 Fail: 0/565 Skip: 27/565
|
||||||
## Attestation
|
## Attestation
|
||||||
```diff
|
```diff
|
||||||
+ [Invalid] EF - Altair - Operations - Attestation - after_epoch_slots OK
|
+ [Invalid] EF - Altair - Operations - Attestation - after_epoch_slots OK
|
||||||
@ -1826,4 +1900,4 @@ OK: 48/48 Fail: 0/48 Skip: 0/48
|
|||||||
OK: 14/14 Fail: 0/14 Skip: 0/14
|
OK: 14/14 Fail: 0/14 Skip: 0/14
|
||||||
|
|
||||||
---TOTAL---
|
---TOTAL---
|
||||||
OK: 1553/1580 Fail: 0/1580 Skip: 27/1580
|
OK: 1627/1654 Fail: 0/1654 Skip: 27/1654
|
||||||
|
@ -356,6 +356,20 @@ ConsensusSpecPreset-minimal
|
|||||||
+ [Invalid] EF - Bellatrix - Sanity - Blocks - same_slot_block_transition [Preset: minimal] OK
|
+ [Invalid] EF - Bellatrix - Sanity - Blocks - same_slot_block_transition [Preset: minimal] OK
|
||||||
+ [Invalid] EF - Bellatrix - Sanity - Blocks - slash_and_exit_same_index [Preset: minimal] OK
|
+ [Invalid] EF - Bellatrix - Sanity - Blocks - slash_and_exit_same_index [Preset: minimal] OK
|
||||||
+ [Invalid] EF - Bellatrix - Sanity - Blocks - zero_block_sig [Preset: minimal] OK
|
+ [Invalid] EF - Bellatrix - Sanity - Blocks - zero_block_sig [Preset: minimal] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - double_same_proposer_slashings_same_block [Pres OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - double_similar_proposer_slashings_same_block [P OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - double_validator_exit_same_block [Preset: minim OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - duplicate_attester_slashing [Preset: minimal] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - expected_deposit_in_block [Preset: minimal] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - invalid_block_sig [Preset: minimal] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - invalid_proposer_index_sig_from_expected_propos OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - invalid_proposer_index_sig_from_proposer_index OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - invalid_state_root [Preset: minimal] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - parent_from_same_slot [Preset: minimal] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - prev_slot_block_transition [Preset: minimal] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - same_slot_block_transition [Preset: minimal] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - slash_and_exit_same_index [Preset: minimal] OK
|
||||||
|
+ [Invalid] EF - Capella - Sanity - Blocks - zero_block_sig [Preset: minimal] OK
|
||||||
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_same_proposer_slashings_same_block [Pres OK
|
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_same_proposer_slashings_same_block [Pres OK
|
||||||
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_similar_proposer_slashings_same_block [P OK
|
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_similar_proposer_slashings_same_block [P OK
|
||||||
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_validator_exit_same_block [Preset: minim OK
|
+ [Invalid] EF - Phase 0 - Sanity - Blocks - double_validator_exit_same_block [Preset: minim OK
|
||||||
@ -488,6 +502,71 @@ ConsensusSpecPreset-minimal
|
|||||||
+ [Valid] EF - Bellatrix - Sanity - Blocks - skipped_slots [Preset: minimal] OK
|
+ [Valid] EF - Bellatrix - Sanity - Blocks - skipped_slots [Preset: minimal] OK
|
||||||
+ [Valid] EF - Bellatrix - Sanity - Blocks - slash_and_exit_diff_index [Preset: minimal] OK
|
+ [Valid] EF - Bellatrix - Sanity - Blocks - slash_and_exit_diff_index [Preset: minimal] OK
|
||||||
+ [Valid] EF - Bellatrix - Sanity - Blocks - voluntary_exit [Preset: minimal] OK
|
+ [Valid] EF - Bellatrix - Sanity - Blocks - voluntary_exit [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_no_updates_at_genesis [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_rule_1 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_rule_2 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_rule_3 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Finality - finality_rule_4 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_0 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_1 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_10 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_11 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_12 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_13 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_14 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_15 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_2 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_3 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_4 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_5 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_6 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_7 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_8 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Random - randomized_9 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - attestation [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - attester_slashing [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - balance_driven_status_transitions [Preset: mini OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - deposit_in_block [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - deposit_top_up [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_block_transition [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_block_transition_large_validator_set [Pre OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_block_transition_no_tx [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_block_transition_randomized_payload [Pres OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_epoch_transition [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_epoch_transition_large_validator_set [Pre OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_epoch_transition_not_finalizing [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_sync_committee_committee [Preset: minimal OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - empty_sync_committee_committee_genesis [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - eth1_data_votes_consensus [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - eth1_data_votes_no_consensus [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - exit_and_bls_change [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_random_operations_0 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_random_operations_1 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_random_operations_2 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_random_operations_3 [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_sync_committee_committee [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_sync_committee_committee_genesis [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - full_withdrawal_in_epoch_transition [Preset: mi OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - half_sync_committee_committee [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - half_sync_committee_committee_genesis [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - high_proposer_index [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - historical_batch [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - inactivity_scores_full_participation_leaking [P OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - inactivity_scores_leaking [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - is_execution_enabled_false [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - many_partial_withdrawals_in_epoch_transition [P OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - multiple_attester_slashings_no_overlap [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - multiple_attester_slashings_partial_overlap [Pr OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - multiple_different_proposer_slashings_same_bloc OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - multiple_different_validator_exits_same_block [ OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - partial_withdrawal_in_epoch_transition [Preset: OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - proposer_after_inactive_index [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - proposer_self_slashing [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - proposer_slashing [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - skipped_slots [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - slash_and_exit_diff_index [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - successful_bls_change [Preset: minimal] OK
|
||||||
|
+ [Valid] EF - Capella - Sanity - Blocks - voluntary_exit [Preset: minimal] OK
|
||||||
+ [Valid] EF - Phase 0 - Finality - finality_no_updates_at_genesis [Preset: minimal] OK
|
+ [Valid] EF - Phase 0 - Finality - finality_no_updates_at_genesis [Preset: minimal] OK
|
||||||
+ [Valid] EF - Phase 0 - Finality - finality_rule_1 [Preset: minimal] OK
|
+ [Valid] EF - Phase 0 - Finality - finality_rule_1 [Preset: minimal] OK
|
||||||
+ [Valid] EF - Phase 0 - Finality - finality_rule_2 [Preset: minimal] OK
|
+ [Valid] EF - Phase 0 - Finality - finality_rule_2 [Preset: minimal] OK
|
||||||
@ -561,7 +640,7 @@ ConsensusSpecPreset-minimal
|
|||||||
+ fork_random_low_balances OK
|
+ fork_random_low_balances OK
|
||||||
+ fork_random_misc_balances OK
|
+ fork_random_misc_balances OK
|
||||||
```
|
```
|
||||||
OK: 523/558 Fail: 0/558 Skip: 35/558
|
OK: 602/637 Fail: 0/637 Skip: 35/637
|
||||||
## Attestation
|
## Attestation
|
||||||
```diff
|
```diff
|
||||||
+ [Invalid] EF - Altair - Operations - Attestation - after_epoch_slots OK
|
+ [Invalid] EF - Altair - Operations - Attestation - after_epoch_slots OK
|
||||||
@ -1953,4 +2032,4 @@ OK: 52/52 Fail: 0/52 Skip: 0/52
|
|||||||
OK: 14/14 Fail: 0/14 Skip: 0/14
|
OK: 14/14 Fail: 0/14 Skip: 0/14
|
||||||
|
|
||||||
---TOTAL---
|
---TOTAL---
|
||||||
OK: 1660/1695 Fail: 0/1695 Skip: 35/1695
|
OK: 1739/1774 Fail: 0/1774 Skip: 35/1774
|
||||||
|
@ -75,17 +75,20 @@ type
|
|||||||
ForkyBeaconBlockBody* =
|
ForkyBeaconBlockBody* =
|
||||||
phase0.BeaconBlockBody |
|
phase0.BeaconBlockBody |
|
||||||
altair.BeaconBlockBody |
|
altair.BeaconBlockBody |
|
||||||
bellatrix.BeaconBlockBody
|
bellatrix.BeaconBlockBody |
|
||||||
|
capella.BeaconBlockBody
|
||||||
|
|
||||||
ForkySigVerifiedBeaconBlockBody* =
|
ForkySigVerifiedBeaconBlockBody* =
|
||||||
phase0.SigVerifiedBeaconBlockBody |
|
phase0.SigVerifiedBeaconBlockBody |
|
||||||
altair.SigVerifiedBeaconBlockBody |
|
altair.SigVerifiedBeaconBlockBody |
|
||||||
bellatrix.SigVerifiedBeaconBlockBody
|
bellatrix.SigVerifiedBeaconBlockBody |
|
||||||
|
capella.SigVerifiedBeaconBlockBody
|
||||||
|
|
||||||
ForkyTrustedBeaconBlockBody* =
|
ForkyTrustedBeaconBlockBody* =
|
||||||
phase0.TrustedBeaconBlockBody |
|
phase0.TrustedBeaconBlockBody |
|
||||||
altair.TrustedBeaconBlockBody |
|
altair.TrustedBeaconBlockBody |
|
||||||
bellatrix.TrustedBeaconBlockBody
|
bellatrix.TrustedBeaconBlockBody |
|
||||||
|
capella.TrustedBeaconBlockBody
|
||||||
|
|
||||||
SomeForkyBeaconBlockBody* =
|
SomeForkyBeaconBlockBody* =
|
||||||
ForkyBeaconBlockBody |
|
ForkyBeaconBlockBody |
|
||||||
|
@ -334,20 +334,24 @@ func is_execution_block*(blck: SomeForkyBeaconBlock): bool =
|
|||||||
else:
|
else:
|
||||||
false
|
false
|
||||||
|
|
||||||
# https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/bellatrix/beacon-chain.md#is_merge_transition_block
|
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/bellatrix/beacon-chain.md#is_merge_transition_block
|
||||||
func is_merge_transition_block(
|
func is_merge_transition_block(
|
||||||
state: bellatrix.BeaconState,
|
state: bellatrix.BeaconState | capella.BeaconState,
|
||||||
body: bellatrix.BeaconBlockBody | bellatrix.TrustedBeaconBlockBody |
|
body: bellatrix.BeaconBlockBody | bellatrix.TrustedBeaconBlockBody |
|
||||||
bellatrix.SigVerifiedBeaconBlockBody): bool =
|
bellatrix.SigVerifiedBeaconBlockBody |
|
||||||
const defaultBellatrixExecutionPayload = default(bellatrix.ExecutionPayload)
|
capella.BeaconBlockBody | capella.TrustedBeaconBlockBody |
|
||||||
|
capella.SigVerifiedBeaconBlockBody): bool =
|
||||||
|
const defaultExecutionPayload = default(typeof(body.execution_payload))
|
||||||
not is_merge_transition_complete(state) and
|
not is_merge_transition_complete(state) and
|
||||||
body.execution_payload != defaultBellatrixExecutionPayload
|
body.execution_payload != defaultExecutionPayload
|
||||||
|
|
||||||
# https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/bellatrix/beacon-chain.md#is_execution_enabled
|
# https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/bellatrix/beacon-chain.md#is_execution_enabled
|
||||||
func is_execution_enabled*(
|
func is_execution_enabled*(
|
||||||
state: bellatrix.BeaconState,
|
state: bellatrix.BeaconState | capella.BeaconState,
|
||||||
body: bellatrix.BeaconBlockBody | bellatrix.TrustedBeaconBlockBody |
|
body: bellatrix.BeaconBlockBody | bellatrix.TrustedBeaconBlockBody |
|
||||||
bellatrix.SigVerifiedBeaconBlockBody): bool =
|
bellatrix.SigVerifiedBeaconBlockBody |
|
||||||
|
capella.BeaconBlockBody | capella.TrustedBeaconBlockBody |
|
||||||
|
capella.SigVerifiedBeaconBlockBody): bool =
|
||||||
is_merge_transition_block(state, body) or is_merge_transition_complete(state)
|
is_merge_transition_block(state, body) or is_merge_transition_complete(state)
|
||||||
|
|
||||||
# https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/bellatrix/beacon-chain.md#compute_timestamp_at_slot
|
# https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/bellatrix/beacon-chain.md#compute_timestamp_at_slot
|
||||||
|
@ -393,7 +393,43 @@ proc process_voluntary_exit*(
|
|||||||
? initiate_validator_exit(cfg, state, exited_validator, cache)
|
? initiate_validator_exit(cfg, state, exited_validator, cache)
|
||||||
ok()
|
ok()
|
||||||
|
|
||||||
# https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/beacon-chain.md#operations
|
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/capella/beacon-chain.md#new-process_bls_to_execution_change
|
||||||
|
proc process_bls_to_execution_change*(
|
||||||
|
state: var capella.BeaconState,
|
||||||
|
signed_address_change: SignedBLSToExecutionChange): Result[void, cstring] =
|
||||||
|
let address_change = signed_address_change.message
|
||||||
|
|
||||||
|
if not (address_change.validator_index < state.validators.lenu64):
|
||||||
|
return err("process_bls_to_execution_change: invalid validator index")
|
||||||
|
|
||||||
|
var withdrawal_credentials =
|
||||||
|
state.validators.item(address_change.validator_index).withdrawal_credentials
|
||||||
|
|
||||||
|
if not (withdrawal_credentials.data[0] == BLS_WITHDRAWAL_PREFIX):
|
||||||
|
return err("process_bls_to_execution_change: invalid withdrawal prefix")
|
||||||
|
|
||||||
|
# TODO what's usual convention here re 32 hardcoded constant?
|
||||||
|
if not (withdrawal_credentials.data.toOpenArray(1, 31) ==
|
||||||
|
eth2digest(address_change.from_bls_pubkey.blob).data.toOpenArray(1, 31)):
|
||||||
|
return err("process_bls_to_execution_change: invalid withdrawal credentials")
|
||||||
|
|
||||||
|
if not verify_bls_to_execution_change_signature(
|
||||||
|
state.fork, state.genesis_validators_root, state.get_current_epoch,
|
||||||
|
signed_address_change, address_change.from_bls_pubkey,
|
||||||
|
signed_address_change.signature):
|
||||||
|
return err("process_bls_to_execution_change: invalid signature")
|
||||||
|
|
||||||
|
withdrawal_credentials.data[0] = ETH1_ADDRESS_WITHDRAWAL_PREFIX
|
||||||
|
withdrawal_credentials.data.fill(1, 11, 0)
|
||||||
|
withdrawal_credentials.data[12..31] =
|
||||||
|
address_change.to_execution_address.data
|
||||||
|
state.validators.mitem(address_change.validator_index).withdrawal_credentials =
|
||||||
|
withdrawal_credentials
|
||||||
|
|
||||||
|
ok()
|
||||||
|
|
||||||
|
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/phase0/beacon-chain.md#operations
|
||||||
|
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/capella/beacon-chain.md#modified-process_operations
|
||||||
proc process_operations(cfg: RuntimeConfig,
|
proc process_operations(cfg: RuntimeConfig,
|
||||||
state: var ForkyBeaconState,
|
state: var ForkyBeaconState,
|
||||||
body: SomeForkyBeaconBlockBody,
|
body: SomeForkyBeaconBlockBody,
|
||||||
@ -420,6 +456,10 @@ proc process_operations(cfg: RuntimeConfig,
|
|||||||
? process_deposit(cfg, state, op, flags)
|
? process_deposit(cfg, state, op, flags)
|
||||||
for op in body.voluntary_exits:
|
for op in body.voluntary_exits:
|
||||||
? process_voluntary_exit(cfg, state, op, flags, cache)
|
? process_voluntary_exit(cfg, state, op, flags, cache)
|
||||||
|
for fieldName, _ in body.fieldPairs:
|
||||||
|
when fieldName == "bls_to_execution_changes":
|
||||||
|
for op in body.bls_to_execution_changes:
|
||||||
|
? process_bls_to_execution_change(state, op)
|
||||||
|
|
||||||
ok()
|
ok()
|
||||||
|
|
||||||
@ -579,41 +619,6 @@ proc process_execution_payload*(
|
|||||||
|
|
||||||
ok()
|
ok()
|
||||||
|
|
||||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/capella/beacon-chain.md#new-process_bls_to_execution_change
|
|
||||||
proc process_bls_to_execution_change*(
|
|
||||||
state: var capella.BeaconState,
|
|
||||||
signed_address_change: SignedBLSToExecutionChange): Result[void, cstring] =
|
|
||||||
let address_change = signed_address_change.message
|
|
||||||
|
|
||||||
if not (address_change.validator_index < state.validators.lenu64):
|
|
||||||
return err("process_bls_to_execution_change: invalid validator index")
|
|
||||||
|
|
||||||
var withdrawal_credentials =
|
|
||||||
state.validators.item(address_change.validator_index).withdrawal_credentials
|
|
||||||
|
|
||||||
if not (withdrawal_credentials.data[0] == BLS_WITHDRAWAL_PREFIX):
|
|
||||||
return err("process_bls_to_execution_change: invalid withdrawal prefix")
|
|
||||||
|
|
||||||
# TODO what's usual convention here re 32 hardcoded constant?
|
|
||||||
if not (withdrawal_credentials.data.toOpenArray(1, 31) ==
|
|
||||||
eth2digest(address_change.from_bls_pubkey.blob).data.toOpenArray(1, 31)):
|
|
||||||
return err("process_bls_to_execution_change: invalid withdrawal credentials")
|
|
||||||
|
|
||||||
if not verify_bls_to_execution_change_signature(
|
|
||||||
state.fork, state.genesis_validators_root, state.get_current_epoch,
|
|
||||||
signed_address_change, address_change.from_bls_pubkey,
|
|
||||||
signed_address_change.signature):
|
|
||||||
return err("process_bls_to_execution_change: invalid signature")
|
|
||||||
|
|
||||||
withdrawal_credentials.data[0] = ETH1_ADDRESS_WITHDRAWAL_PREFIX
|
|
||||||
withdrawal_credentials.data.fill(1, 11, 0)
|
|
||||||
withdrawal_credentials.data[12..31] =
|
|
||||||
address_change.to_execution_address.data
|
|
||||||
state.validators.mitem(address_change.validator_index).withdrawal_credentials =
|
|
||||||
withdrawal_credentials
|
|
||||||
|
|
||||||
ok()
|
|
||||||
|
|
||||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/capella/beacon-chain.md#new-process_withdrawals
|
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/capella/beacon-chain.md#new-process_withdrawals
|
||||||
func process_withdrawals*(
|
func process_withdrawals*(
|
||||||
state: var capella.BeaconState, payload: capella.ExecutionPayload):
|
state: var capella.BeaconState, payload: capella.ExecutionPayload):
|
||||||
@ -686,6 +691,7 @@ proc process_block*(
|
|||||||
|
|
||||||
ok()
|
ok()
|
||||||
|
|
||||||
|
# https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/bellatrix/beacon-chain.md#block-processing
|
||||||
# TODO workaround for https://github.com/nim-lang/Nim/issues/18095
|
# TODO workaround for https://github.com/nim-lang/Nim/issues/18095
|
||||||
type SomeBellatrixBlock =
|
type SomeBellatrixBlock =
|
||||||
bellatrix.BeaconBlock | bellatrix.SigVerifiedBeaconBlock | bellatrix.TrustedBeaconBlock
|
bellatrix.BeaconBlock | bellatrix.SigVerifiedBeaconBlock | bellatrix.TrustedBeaconBlock
|
||||||
@ -716,6 +722,7 @@ proc process_block*(
|
|||||||
|
|
||||||
ok()
|
ok()
|
||||||
|
|
||||||
|
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/capella/beacon-chain.md#block-processing
|
||||||
# TODO workaround for https://github.com/nim-lang/Nim/issues/18095
|
# TODO workaround for https://github.com/nim-lang/Nim/issues/18095
|
||||||
type SomeCapellaBlock =
|
type SomeCapellaBlock =
|
||||||
capella.BeaconBlock | capella.SigVerifiedBeaconBlock | capella.TrustedBeaconBlock
|
capella.BeaconBlock | capella.SigVerifiedBeaconBlock | capella.TrustedBeaconBlock
|
||||||
@ -723,4 +730,26 @@ proc process_block*(
|
|||||||
cfg: RuntimeConfig,
|
cfg: RuntimeConfig,
|
||||||
state: var capella.BeaconState, blck: SomeCapellaBlock,
|
state: var capella.BeaconState, blck: SomeCapellaBlock,
|
||||||
flags: UpdateFlags, cache: var StateCache): Result[void, cstring]=
|
flags: UpdateFlags, cache: var StateCache): Result[void, cstring]=
|
||||||
raiseAssert $capellaImplementationMissing
|
## When there's a new block, we need to verify that the block is sane and
|
||||||
|
## update the state accordingly - the state is left in an unknown state when
|
||||||
|
## block application fails (!)
|
||||||
|
|
||||||
|
? process_block_header(state, blck, flags, cache)
|
||||||
|
if is_execution_enabled(state, blck.body):
|
||||||
|
? process_withdrawals(state, blck.body.execution_payload) # [New in Capella]
|
||||||
|
? process_execution_payload(
|
||||||
|
state, blck.body.execution_payload,
|
||||||
|
func(_: capella.ExecutionPayload): bool = true)
|
||||||
|
? process_randao(state, blck.body, flags, cache)
|
||||||
|
? process_eth1_data(state, blck.body)
|
||||||
|
|
||||||
|
let
|
||||||
|
total_active_balance = get_total_active_balance(state, cache)
|
||||||
|
base_reward_per_increment =
|
||||||
|
get_base_reward_per_increment(total_active_balance)
|
||||||
|
? process_operations(
|
||||||
|
cfg, state, blck.body, base_reward_per_increment, flags, cache)
|
||||||
|
? process_sync_aggregate(
|
||||||
|
state, blck.body.sync_aggregate, total_active_balance, cache)
|
||||||
|
|
||||||
|
ok()
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
import
|
import
|
||||||
./test_fixture_fork,
|
./test_fixture_fork,
|
||||||
./test_fixture_operations,
|
./test_fixture_operations,
|
||||||
#./test_fixture_sanity_blocks, # TODO needs forked
|
./test_fixture_sanity_blocks,
|
||||||
#./test_fixture_sanity_slots, # TODO needs forked
|
#./test_fixture_sanity_slots, # TODO needs forked
|
||||||
./test_fixture_ssz_consensus_objects,
|
./test_fixture_ssz_consensus_objects,
|
||||||
./test_fixture_state_transition_epoch
|
./test_fixture_state_transition_epoch
|
||||||
|
88
tests/consensus_spec/capella/test_fixture_sanity_blocks.nim
Normal file
88
tests/consensus_spec/capella/test_fixture_sanity_blocks.nim
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
# beacon_chain
|
||||||
|
# Copyright (c) 2022 Status Research & Development GmbH
|
||||||
|
# Licensed and distributed under either of
|
||||||
|
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
||||||
|
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
||||||
|
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
||||||
|
|
||||||
|
{.used.}
|
||||||
|
|
||||||
|
import
|
||||||
|
# Standard library
|
||||||
|
std/[os, sequtils],
|
||||||
|
# Nimble
|
||||||
|
chronicles,
|
||||||
|
# Beacon chain internals
|
||||||
|
../../../beacon_chain/spec/[forks, state_transition],
|
||||||
|
../../../beacon_chain/spec/datatypes/capella,
|
||||||
|
# Test utilities
|
||||||
|
../../testutil,
|
||||||
|
../../helpers/debug_state,
|
||||||
|
../fixtures_utils
|
||||||
|
|
||||||
|
const
|
||||||
|
FinalityDir = SszTestsDir/const_preset/"capella"/"finality"/"finality"/"pyspec_tests"
|
||||||
|
RandomDir = SszTestsDir/const_preset/"capella"/"random"/"random"/"pyspec_tests"
|
||||||
|
SanityBlocksDir = SszTestsDir/const_preset/"capella"/"sanity"/"blocks"/"pyspec_tests"
|
||||||
|
|
||||||
|
proc runTest(testName, testDir, unitTestName: string) =
|
||||||
|
let testPath = testDir / unitTestName
|
||||||
|
|
||||||
|
proc `testImpl _ blck _ testName`() =
|
||||||
|
let
|
||||||
|
hasPostState = fileExists(testPath/"post.ssz_snappy")
|
||||||
|
prefix = if hasPostState: "[Valid] " else: "[Invalid] "
|
||||||
|
|
||||||
|
test prefix & testName & " - " & unitTestName & preset():
|
||||||
|
var
|
||||||
|
preState = newClone(parseTest(
|
||||||
|
testPath/"pre.ssz_snappy", SSZ, capella.BeaconState))
|
||||||
|
fhPreState = (ref ForkedHashedBeaconState)(
|
||||||
|
capellaData: capella.HashedBeaconState(
|
||||||
|
data: preState[], root: hash_tree_root(preState[])),
|
||||||
|
kind: BeaconStateFork.Capella)
|
||||||
|
cache = StateCache()
|
||||||
|
info = ForkedEpochInfo()
|
||||||
|
|
||||||
|
# In test cases with more than 10 blocks the first 10 aren't 0-prefixed,
|
||||||
|
# so purely lexicographic sorting wouldn't sort properly.
|
||||||
|
let numBlocks = toSeq(walkPattern(testPath/"blocks_*.ssz_snappy")).len
|
||||||
|
if numBlocks > 1:
|
||||||
|
return
|
||||||
|
for i in 0 ..< numBlocks:
|
||||||
|
let blck = parseTest(
|
||||||
|
testPath/"blocks_" & $i & ".ssz_snappy", SSZ,
|
||||||
|
capella.SignedBeaconBlock)
|
||||||
|
|
||||||
|
if hasPostState:
|
||||||
|
let res = state_transition(
|
||||||
|
defaultRuntimeConfig, fhPreState[], blck, cache, info, flags = {},
|
||||||
|
noRollback)
|
||||||
|
res.expect("no failure when applying block " & $i)
|
||||||
|
else:
|
||||||
|
let res = state_transition(
|
||||||
|
defaultRuntimeConfig, fhPreState[], blck, cache, info, flags = {},
|
||||||
|
noRollback)
|
||||||
|
doAssert (i + 1 < numBlocks) or not res.isOk,
|
||||||
|
"We didn't expect these invalid blocks to be processed"
|
||||||
|
|
||||||
|
if hasPostState:
|
||||||
|
let postState = newClone(parseTest(
|
||||||
|
testPath/"post.ssz_snappy", SSZ, capella.BeaconState))
|
||||||
|
when false:
|
||||||
|
reportDiff(fhPreState.capellaData.data, postState)
|
||||||
|
doAssert getStateRoot(fhPreState[]) == postState[].hash_tree_root()
|
||||||
|
|
||||||
|
`testImpl _ blck _ testName`()
|
||||||
|
|
||||||
|
suite "EF - Capella - Sanity - Blocks " & preset():
|
||||||
|
for kind, path in walkDir(SanityBlocksDir, relative = true, checkDir = true):
|
||||||
|
runTest("EF - Capella - Sanity - Blocks", SanityBlocksDir, path)
|
||||||
|
|
||||||
|
suite "EF - Capella - Random " & preset():
|
||||||
|
for kind, path in walkDir(RandomDir, relative = true, checkDir = true):
|
||||||
|
runTest("EF - Capella - Random", RandomDir, path)
|
||||||
|
|
||||||
|
suite "EF - Capella - Finality " & preset():
|
||||||
|
for kind, path in walkDir(FinalityDir, relative = true, checkDir = true):
|
||||||
|
runTest("EF - Capella - Finality", FinalityDir, path)
|
Loading…
x
Reference in New Issue
Block a user