@@ -926,7 +926,7 @@ mod tests {
 | 
				
			|||||||
            &hash_queue,
 | 
					            &hash_queue,
 | 
				
			||||||
            error_counters,
 | 
					            error_counters,
 | 
				
			||||||
            rent_collector,
 | 
					            rent_collector,
 | 
				
			||||||
            &FeatureSet::default(),
 | 
					            &FeatureSet::all_enabled(),
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1871,7 +1871,7 @@ mod tests {
 | 
				
			|||||||
            &hash_queue,
 | 
					            &hash_queue,
 | 
				
			||||||
            &mut error_counters,
 | 
					            &mut error_counters,
 | 
				
			||||||
            &rent_collector,
 | 
					            &rent_collector,
 | 
				
			||||||
            &FeatureSet::default(),
 | 
					            &FeatureSet::all_enabled(),
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,13 +72,6 @@ pub struct FeatureSet {
 | 
				
			|||||||
    pub active: HashSet<Pubkey>,
 | 
					    pub active: HashSet<Pubkey>,
 | 
				
			||||||
    pub inactive: HashSet<Pubkey>,
 | 
					    pub inactive: HashSet<Pubkey>,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
impl FeatureSet {
 | 
					 | 
				
			||||||
    pub fn is_active(&self, feature_id: &Pubkey) -> bool {
 | 
					 | 
				
			||||||
        self.active.contains(feature_id)
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
impl Default for FeatureSet {
 | 
					impl Default for FeatureSet {
 | 
				
			||||||
    fn default() -> Self {
 | 
					    fn default() -> Self {
 | 
				
			||||||
        // All features disabled
 | 
					        // All features disabled
 | 
				
			||||||
@@ -88,3 +81,15 @@ impl Default for FeatureSet {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					impl FeatureSet {
 | 
				
			||||||
 | 
					    pub fn is_active(&self, feature_id: &Pubkey) -> bool {
 | 
				
			||||||
 | 
					        self.active.contains(feature_id)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    /// All features enabled, useful for testing
 | 
				
			||||||
 | 
					    pub fn all_enabled() -> Self {
 | 
				
			||||||
 | 
					        Self {
 | 
				
			||||||
 | 
					            active: FEATURE_NAMES.keys().cloned().collect(),
 | 
				
			||||||
 | 
					            inactive: HashSet::new(),
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -788,7 +788,7 @@ mod tests {
 | 
				
			|||||||
            ComputeBudget::default(),
 | 
					            ComputeBudget::default(),
 | 
				
			||||||
            Rc::new(RefCell::new(Executors::default())),
 | 
					            Rc::new(RefCell::new(Executors::default())),
 | 
				
			||||||
            None,
 | 
					            None,
 | 
				
			||||||
            Arc::new(FeatureSet::default()),
 | 
					            Arc::new(FeatureSet::all_enabled()),
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Check call depth increases and has a limit
 | 
					        // Check call depth increases and has a limit
 | 
				
			||||||
@@ -1325,7 +1325,7 @@ mod tests {
 | 
				
			|||||||
            None,
 | 
					            None,
 | 
				
			||||||
            executors.clone(),
 | 
					            executors.clone(),
 | 
				
			||||||
            None,
 | 
					            None,
 | 
				
			||||||
            Arc::new(FeatureSet::default()),
 | 
					            Arc::new(FeatureSet::all_enabled()),
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        assert_eq!(result, Ok(()));
 | 
					        assert_eq!(result, Ok(()));
 | 
				
			||||||
        assert_eq!(accounts[0].borrow().lamports, 100);
 | 
					        assert_eq!(accounts[0].borrow().lamports, 100);
 | 
				
			||||||
@@ -1348,7 +1348,7 @@ mod tests {
 | 
				
			|||||||
            None,
 | 
					            None,
 | 
				
			||||||
            executors.clone(),
 | 
					            executors.clone(),
 | 
				
			||||||
            None,
 | 
					            None,
 | 
				
			||||||
            Arc::new(FeatureSet::default()),
 | 
					            Arc::new(FeatureSet::all_enabled()),
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        assert_eq!(
 | 
					        assert_eq!(
 | 
				
			||||||
            result,
 | 
					            result,
 | 
				
			||||||
@@ -1375,7 +1375,7 @@ mod tests {
 | 
				
			|||||||
            None,
 | 
					            None,
 | 
				
			||||||
            executors,
 | 
					            executors,
 | 
				
			||||||
            None,
 | 
					            None,
 | 
				
			||||||
            Arc::new(FeatureSet::default()),
 | 
					            Arc::new(FeatureSet::all_enabled()),
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        assert_eq!(
 | 
					        assert_eq!(
 | 
				
			||||||
            result,
 | 
					            result,
 | 
				
			||||||
@@ -1485,7 +1485,7 @@ mod tests {
 | 
				
			|||||||
            None,
 | 
					            None,
 | 
				
			||||||
            executors.clone(),
 | 
					            executors.clone(),
 | 
				
			||||||
            None,
 | 
					            None,
 | 
				
			||||||
            Arc::new(FeatureSet::default()),
 | 
					            Arc::new(FeatureSet::all_enabled()),
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        assert_eq!(
 | 
					        assert_eq!(
 | 
				
			||||||
            result,
 | 
					            result,
 | 
				
			||||||
@@ -1512,7 +1512,7 @@ mod tests {
 | 
				
			|||||||
            None,
 | 
					            None,
 | 
				
			||||||
            executors.clone(),
 | 
					            executors.clone(),
 | 
				
			||||||
            None,
 | 
					            None,
 | 
				
			||||||
            Arc::new(FeatureSet::default()),
 | 
					            Arc::new(FeatureSet::all_enabled()),
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        assert_eq!(result, Ok(()));
 | 
					        assert_eq!(result, Ok(()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1536,7 +1536,7 @@ mod tests {
 | 
				
			|||||||
            None,
 | 
					            None,
 | 
				
			||||||
            executors,
 | 
					            executors,
 | 
				
			||||||
            None,
 | 
					            None,
 | 
				
			||||||
            Arc::new(FeatureSet::default()),
 | 
					            Arc::new(FeatureSet::all_enabled()),
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        assert_eq!(result, Ok(()));
 | 
					        assert_eq!(result, Ok(()));
 | 
				
			||||||
        assert_eq!(accounts[0].borrow().lamports, 80);
 | 
					        assert_eq!(accounts[0].borrow().lamports, 80);
 | 
				
			||||||
@@ -1613,7 +1613,7 @@ mod tests {
 | 
				
			|||||||
            ComputeBudget::default(),
 | 
					            ComputeBudget::default(),
 | 
				
			||||||
            Rc::new(RefCell::new(Executors::default())),
 | 
					            Rc::new(RefCell::new(Executors::default())),
 | 
				
			||||||
            None,
 | 
					            None,
 | 
				
			||||||
            Arc::new(FeatureSet::default()),
 | 
					            Arc::new(FeatureSet::all_enabled()),
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        let metas = vec![
 | 
					        let metas = vec![
 | 
				
			||||||
            AccountMeta::new(owned_key, false),
 | 
					            AccountMeta::new(owned_key, false),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user