|
13 | 13 | from eth.beacon.enums import (
|
14 | 14 | ValidatorStatusCode,
|
15 | 15 | )
|
| 16 | +from eth.beacon.types.attestation_data import ( |
| 17 | + AttestationData, |
| 18 | +) |
16 | 19 | from eth.beacon.types.blocks import BaseBeaconBlock
|
17 | 20 | from eth.beacon.types.fork_data import ForkData
|
18 | 21 | from eth.beacon.types.shard_committees import ShardCommittee
|
|
32 | 35 | get_new_validator_registry_delta_chain_tip,
|
33 | 36 | _get_shard_committees_at_slot,
|
34 | 37 | get_block_committees_info,
|
| 38 | + is_double_vote, |
35 | 39 | )
|
36 | 40 |
|
37 | 41 |
|
@@ -729,3 +733,27 @@ def test_get_domain(pre_fork_version,
|
729 | 733 | slot=current_slot,
|
730 | 734 | domain_type=domain_type,
|
731 | 735 | )
|
| 736 | + |
| 737 | + |
| 738 | +def test_is_double_vote(sample_attestation_data_params): |
| 739 | + attestation_data_1_params = { |
| 740 | + **sample_attestation_data_params, |
| 741 | + 'slot': 12345, |
| 742 | + } |
| 743 | + attestation_data_1 = AttestationData(**attestation_data_1_params) |
| 744 | + |
| 745 | + attestation_data_2_params = { |
| 746 | + **sample_attestation_data_params, |
| 747 | + 'slot': 12345, |
| 748 | + } |
| 749 | + attestation_data_2 = AttestationData(**attestation_data_2_params) |
| 750 | + |
| 751 | + assert is_double_vote(attestation_data_1, attestation_data_2) |
| 752 | + |
| 753 | + attestation_data_3_params = { |
| 754 | + **sample_attestation_data_params, |
| 755 | + 'slot': 54321, |
| 756 | + } |
| 757 | + attestation_data_3 = AttestationData(**attestation_data_3_params) |
| 758 | + |
| 759 | + assert not is_double_vote(attestation_data_1, attestation_data_3) |
0 commit comments