Use min(feerate,ancestor_feerate) for ancestor score
This commit is contained in:
		
							parent
							
								
									552818607a
								
							
						
					
					
						commit
						ccbed8ec58
					
				| @ -15,6 +15,7 @@ pub struct AuditTransaction { | ||||
|     pub weight: u32, | ||||
|     pub sigop_adjusted_vsize: u32, | ||||
|     pub sigops: u32, | ||||
|     adjusted_fee_per_vsize: f64, | ||||
|     pub effective_fee_per_vsize: f64, | ||||
|     pub dependency_rate: f64, | ||||
|     pub inputs: Vec<u32>, | ||||
| @ -73,6 +74,18 @@ impl Ord for AuditTransaction { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #[inline] | ||||
| fn calc_fee_rate( | ||||
|     fee: f64, | ||||
|     vsize: u32, | ||||
| ) -> f64 { | ||||
|     fee / (if vsize == 0 { | ||||
|         1.0 | ||||
|     } else { | ||||
|         f64::from(vsize) | ||||
|     }) | ||||
| } | ||||
| 
 | ||||
| impl AuditTransaction { | ||||
|     pub fn from_thread_transaction(tx: &ThreadTransaction) -> Self { | ||||
|         // rounded up to the nearest integer
 | ||||
| @ -83,6 +96,7 @@ impl AuditTransaction { | ||||
|             weight: tx.weight, | ||||
|             sigop_adjusted_vsize, | ||||
|             sigops: tx.sigops, | ||||
|             adjusted_fee_per_vsize: calc_fee_rate(tx.fee, sigop_adjusted_vsize), | ||||
|             effective_fee_per_vsize: tx.effective_fee_per_vsize, | ||||
|             dependency_rate: f64::INFINITY, | ||||
|             inputs: tx.inputs.clone(), | ||||
| @ -135,12 +149,7 @@ impl AuditTransaction { | ||||
|     /// Safety: This function must NEVER set score to NaN.
 | ||||
|     #[inline] | ||||
|     fn calc_new_score(&mut self) { | ||||
|         self.score = (self.ancestor_fee as f64) | ||||
|             / (if self.ancestor_sigop_adjusted_vsize == 0 { | ||||
|                 1.0 | ||||
|             } else { | ||||
|                 f64::from(self.ancestor_sigop_adjusted_vsize) | ||||
|             }); | ||||
|         self.score = self.adjusted_fee_per_vsize.min(calc_fee_rate(self.ancestor_fee as f64, self.ancestor_sigop_adjusted_vsize)); | ||||
|     } | ||||
| 
 | ||||
|     #[inline] | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user