make get_beacon_proposer_index safe for next epoch
This commit is contained in:
parent
daa8275318
commit
b2c53045fc
|
@ -967,11 +967,19 @@ def generate_seed(state: BeaconState,
|
|||
|
||||
```python
|
||||
def get_beacon_proposer_index(state: BeaconState,
|
||||
slot: Slot) -> ValidatorIndex:
|
||||
slot: Slot,
|
||||
registry_change: bool=False)) -> ValidatorIndex:
|
||||
"""
|
||||
Return the beacon proposer index for the ``slot``.
|
||||
"""
|
||||
first_committee, _ = get_crosslink_committees_at_slot(state, slot)[0]
|
||||
epoch = slot_to_epoch(slot)
|
||||
current_epoch = get_current_epoch(state)
|
||||
previous_epoch = get_previous_epoch(state)
|
||||
next_epoch = current_epoch + 1
|
||||
|
||||
assert previous_epoch <= epoch <= next_epoch
|
||||
|
||||
first_committee, _ = get_crosslink_committees_at_slot(state, slot, registry_change)[0]
|
||||
return first_committee[slot % len(first_committee)]
|
||||
```
|
||||
|
||||
|
|
|
@ -371,8 +371,7 @@ def get_committee_assignment(
|
|||
if len(selected_committees) > 0:
|
||||
validators = selected_committees[0][0]
|
||||
shard = selected_committees[0][1]
|
||||
first_committee_at_slot = crosslink_committees[0][0] # List[ValidatorIndex]
|
||||
is_proposer = first_committee_at_slot[slot % len(first_committee_at_slot)] == validator_index
|
||||
is_proposer = validator_index == get_beacon_proposer_index(state, slot, registry_change)
|
||||
|
||||
assignment = (validators, shard, slot, is_proposer)
|
||||
return assignment
|
||||
|
|
Loading…
Reference in New Issue