func (s *State) shouldUpdateRegistry() bool {
	if s.FinalizedEpoch <= s.ValidatorRegistryLatestChangeEpoch {
		return false
	}

	for _, shardAndCommittees := range s.ShardAndCommitteeForSlots {
		for _, committee := range shardAndCommittees {
			if s.LatestCrosslinks[committee.Shard].Slot <= s.ValidatorRegistryLatestChangeEpoch {
				return false
			}
		}
	}

	return true
}
// shouldUpdateRegistry returns if the validator registry is ready to be shuffled.
// The registry should only be updated if every shard has created a crosslink since the
// last update and the beacon chain has been finalized since the last update.
shouldUpdateRegistry returns if the validator registry is ready to be shuffled.
The registry should only be updated if every shard has created a crosslink since the
last update and the beacon chain has been finalized since the last update.
// shouldUpdateRegistry returns if the validator registry is ready to be shuffled . // The registry should only be updated if every shard has created a crosslink since the // last update and the beacon chain has been finalized since the last update .
func (s *State) shouldUpdateRegistry() bool {
	if s.FinalizedEpoch <= s.ValidatorRegistryLatestChangeEpoch {
		return false
	}
	for _, shardAndCommittees := range s.ShardAndCommitteeForSlots {
		for _, committee := range shardAndCommittees {
			if s.LatestCrosslinks[committee.Shard].Slot <= s.ValidatorRegistryLatestChangeEpoch {
				return false
			}
		}
	}
	return true
}
func ( s * State ) shouldUpdateRegistry ( ) bool { if s . FinalizedEpoch <= s . ValidatorRegistryLatestChangeEpoch { return false } for _ , shardAndCommittees := range s . ShardAndCommitteeForSlots { for _ , committee := range shardAndCommittees { if s . LatestCrosslinks [ committee . Shard ] . Slot <= s . ValidatorRegistryLatestChangeEpoch { return false } } } return true }
shouldUpdateRegistry returns if the validator registry is ready to be shuffled.
shouldUpdateRegistry returns if the validator registry is ready to be shuffled .