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
|
```python
|
||||||
def get_beacon_proposer_index(state: BeaconState,
|
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``.
|
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)]
|
return first_committee[slot % len(first_committee)]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -371,8 +371,7 @@ def get_committee_assignment(
|
||||||
if len(selected_committees) > 0:
|
if len(selected_committees) > 0:
|
||||||
validators = selected_committees[0][0]
|
validators = selected_committees[0][0]
|
||||||
shard = selected_committees[0][1]
|
shard = selected_committees[0][1]
|
||||||
first_committee_at_slot = crosslink_committees[0][0] # List[ValidatorIndex]
|
is_proposer = validator_index == get_beacon_proposer_index(state, slot, registry_change)
|
||||||
is_proposer = first_committee_at_slot[slot % len(first_committee_at_slot)] == validator_index
|
|
||||||
|
|
||||||
assignment = (validators, shard, slot, is_proposer)
|
assignment = (validators, shard, slot, is_proposer)
|
||||||
return assignment
|
return assignment
|
||||||
|
|
Loading…
Reference in New Issue