[wallet] Add assume_height_reached in PSBTSatisfier
				
					
				
			This commit is contained in:
		
							parent
							
								
									3895b30083
								
							
						
					
					
						commit
						04d04fd0b2
					
				| @ -21,6 +21,7 @@ pub mod utils; | ||||
| 
 | ||||
| pub struct PSBTSatisfier<'a> { | ||||
|     input: &'a psbt::Input, | ||||
|     assume_height_reached: bool, | ||||
|     create_height: Option<u32>, | ||||
|     current_height: Option<u32>, | ||||
| } | ||||
| @ -28,11 +29,13 @@ pub struct PSBTSatisfier<'a> { | ||||
| impl<'a> PSBTSatisfier<'a> { | ||||
|     pub fn new( | ||||
|         input: &'a psbt::Input, | ||||
|         assume_height_reached: bool, | ||||
|         create_height: Option<u32>, | ||||
|         current_height: Option<u32>, | ||||
|     ) -> Self { | ||||
|         PSBTSatisfier { | ||||
|             input, | ||||
|             assume_height_reached, | ||||
|             create_height, | ||||
|             current_height, | ||||
|         } | ||||
| @ -95,15 +98,23 @@ impl<'a> Satisfier<bitcoin::PublicKey> for PSBTSatisfier<'a> { | ||||
|         // TODO: also check if `nSequence` right
 | ||||
|         debug!("check_older: {}", height); | ||||
| 
 | ||||
|         if let Some(current_height) = self.current_height { | ||||
|             // TODO: test >= / >
 | ||||
|         self.current_height.unwrap_or(0) >= self.create_height.unwrap_or(0) + height | ||||
|             current_height >= self.create_height.unwrap_or(0) + height | ||||
|         } else { | ||||
|             self.assume_height_reached | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fn check_after(&self, height: u32) -> bool { | ||||
|         // TODO: also check if `nLockTime` is right
 | ||||
|         debug!("check_after: {}", height); | ||||
| 
 | ||||
|         self.current_height.unwrap_or(0) > height | ||||
|         if let Some(current_height) = self.current_height { | ||||
|             current_height > height | ||||
|         } else { | ||||
|             self.assume_height_reached | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -656,7 +656,7 @@ where | ||||
|             }; | ||||
| 
 | ||||
|             // TODO: use height once we sync headers
 | ||||
|             let satisfier = PSBTSatisfier::new(&psbt.inputs[n], None, None); | ||||
|             let satisfier = PSBTSatisfier::new(&psbt.inputs[n], true, None, None); | ||||
| 
 | ||||
|             match desc.satisfy(input, satisfier) { | ||||
|                 Ok(_) => continue, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user