Remove state.get_crosslink_committee fn
Replaced by state.get_crosslink_committee_for_shard
This commit is contained in:
		
							parent
							
								
									ea96d24420
								
							
						
					
					
						commit
						9264ec1aa9
					
				| @ -163,7 +163,8 @@ pub fn process_crosslinks<T: EthSpec>( | ||||
|         let epoch = relative_epoch.into_epoch(state.current_epoch()); | ||||
|         for offset in 0..state.get_epoch_committee_count(relative_epoch)? { | ||||
|             let shard = (state.get_epoch_start_shard(relative_epoch)? + offset) % spec.shard_count; | ||||
|             let crosslink_committee = state.get_crosslink_committee(epoch, shard, spec)?; | ||||
|             let crosslink_committee = | ||||
|                 state.get_crosslink_committee_for_shard(shard, relative_epoch)?; | ||||
| 
 | ||||
|             let winning_root = winning_root(state, shard, epoch, spec)?; | ||||
| 
 | ||||
|  | ||||
| @ -8,13 +8,12 @@ pub fn get_attesting_indices_unsorted<T: EthSpec>( | ||||
|     state: &BeaconState<T>, | ||||
|     attestation_data: &AttestationData, | ||||
|     bitfield: &Bitfield, | ||||
|     spec: &ChainSpec, | ||||
| ) -> Result<Vec<usize>, BeaconStateError> { | ||||
|     let committee = state.get_crosslink_committee( | ||||
|         attestation_data.target_epoch, | ||||
|         attestation_data.shard, | ||||
|         spec, | ||||
|     )?; | ||||
|     let target_relative_epoch = | ||||
|         RelativeEpoch::from_epoch(state.current_epoch(), attestation_data.target_epoch)?; | ||||
| 
 | ||||
|     let committee = | ||||
|         state.get_crosslink_committee_for_shard(attestation_data.shard, target_relative_epoch)?; | ||||
| 
 | ||||
|     if !verify_bitfield_length(&bitfield, committee.committee.len()) { | ||||
|         return Err(BeaconStateError::InvalidBitfield); | ||||
|  | ||||
| @ -214,7 +214,7 @@ impl ValidatorStatuses { | ||||
|             .chain(state.current_epoch_attestations.iter()) | ||||
|         { | ||||
|             let attesting_indices = | ||||
|                 get_attesting_indices_unsorted(state, &a.data, &a.aggregation_bitfield, spec)?; | ||||
|                 get_attesting_indices_unsorted(state, &a.data, &a.aggregation_bitfield)?; | ||||
| 
 | ||||
|             let mut status = ValidatorStatus::default(); | ||||
| 
 | ||||
|  | ||||
| @ -77,7 +77,7 @@ pub fn winning_root<T: EthSpec>( | ||||
|     let mut winning_root = None; | ||||
|     for (crosslink, attestations) in candidate_crosslink_map { | ||||
|         let attesting_validator_indices = | ||||
|             get_unslashed_attesting_indices_unsorted(state, &attestations, spec)?; | ||||
|             get_unslashed_attesting_indices_unsorted(state, &attestations)?; | ||||
|         let total_attesting_balance = | ||||
|             state.get_total_balance(&attesting_validator_indices, spec)?; | ||||
| 
 | ||||
| @ -102,7 +102,6 @@ pub fn winning_root<T: EthSpec>( | ||||
| pub fn get_unslashed_attesting_indices_unsorted<T: EthSpec>( | ||||
|     state: &BeaconState<T>, | ||||
|     attestations: &[&PendingAttestation], | ||||
|     spec: &ChainSpec, | ||||
| ) -> Result<Vec<usize>, BeaconStateError> { | ||||
|     let mut output = HashSet::new(); | ||||
|     for a in attestations { | ||||
| @ -110,7 +109,6 @@ pub fn get_unslashed_attesting_indices_unsorted<T: EthSpec>( | ||||
|             state, | ||||
|             &a.data, | ||||
|             &a.aggregation_bitfield, | ||||
|             spec, | ||||
|         )?); | ||||
|     } | ||||
|     Ok(output | ||||
|  | ||||
| @ -307,12 +307,12 @@ impl<T: EthSpec> BeaconState<T> { | ||||
|     ///
 | ||||
|     /// Spec v0.6.1
 | ||||
|     pub fn get_attestation_slot(&self, attestation_data: &AttestationData) -> Result<Slot, Error> { | ||||
|         let target_epoch = | ||||
|         let target_relative_epoch = | ||||
|             RelativeEpoch::from_epoch(self.current_epoch(), attestation_data.target_epoch)?; | ||||
| 
 | ||||
|         let cc = self | ||||
|             .get_crosslink_committee_for_shard(attestation_data.shard, target_epoch)? | ||||
|             .ok_or_else(|| Error::NoCommitteeForShard)?; | ||||
|         let cc = | ||||
|             self.get_crosslink_committee_for_shard(attestation_data.shard, target_relative_epoch)?; | ||||
| 
 | ||||
|         Ok(cc.slot) | ||||
|     } | ||||
| 
 | ||||
| @ -361,25 +361,14 @@ impl<T: EthSpec> BeaconState<T> { | ||||
|         &self, | ||||
|         shard: u64, | ||||
|         relative_epoch: RelativeEpoch, | ||||
|     ) -> Result<Option<CrosslinkCommittee>, Error> { | ||||
|     ) -> Result<CrosslinkCommittee, Error> { | ||||
|         let cache = self.cache(relative_epoch)?; | ||||
| 
 | ||||
|         Ok(cache.get_crosslink_committee_for_shard(shard)) | ||||
|     } | ||||
|         let committee = cache | ||||
|             .get_crosslink_committee_for_shard(shard) | ||||
|             .ok_or_else(|| Error::NoCommitteeForShard)?; | ||||
| 
 | ||||
|     /// Return the crosslink committeee for `shard` in `epoch`.
 | ||||
|     ///
 | ||||
|     /// Note: Utilizes the cache and will fail if the appropriate cache is not initialized.
 | ||||
|     ///
 | ||||
|     /// Spec v0.6.1
 | ||||
|     pub fn get_crosslink_committee( | ||||
|         &self, | ||||
|         epoch: Epoch, | ||||
|         shard: u64, | ||||
|         spec: &ChainSpec, | ||||
|     ) -> Result<&CrosslinkCommittee, Error> { | ||||
|         drop((epoch, shard, spec)); | ||||
|         unimplemented!() | ||||
|         Ok(committee) | ||||
|     } | ||||
| 
 | ||||
|     /// Returns the beacon proposer index for the `slot` in the given `relative_epoch`.
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user