Use stable sync committee indices when processing block rewards

This commit is contained in:
Alex Stokes 2021-05-07 09:55:21 -07:00
parent 637cf0743c
commit 86104ea361
No known key found for this signature in database
GPG Key ID: 99B3D88FD6C55A69
1 changed files with 5 additions and 1 deletions

View File

@ -571,7 +571,11 @@ def process_sync_committee(state: BeaconState, aggregate: SyncAggregate) -> None
proposer_reward = Gwei(participant_reward * PROPOSER_WEIGHT // (WEIGHT_DENOMINATOR - PROPOSER_WEIGHT)) proposer_reward = Gwei(participant_reward * PROPOSER_WEIGHT // (WEIGHT_DENOMINATOR - PROPOSER_WEIGHT))
# Apply participant and proposer rewards # Apply participant and proposer rewards
committee_indices = get_sync_committee_indices(state, get_current_epoch(state)) committee_indices = []
pubkeys = [v.pubkey for v in state.validators]
for pubkey in state.current_sync_committee.pubkeys:
index = pubkeys.index(pubkey)
committee_indices.append(ValidatorIndex(index))
participant_indices = [index for index, bit in zip(committee_indices, aggregate.sync_committee_bits) if bit] participant_indices = [index for index, bit in zip(committee_indices, aggregate.sync_committee_bits) if bit]
for participant_index in participant_indices: for participant_index in participant_indices:
increase_balance(state, participant_index, participant_reward) increase_balance(state, participant_index, participant_reward)