@@ -538,7 +538,7 @@ pub struct PackageTemplate {
538
538
feerate_previous : u64 ,
539
539
// Cache of next height at which fee-bumping and rebroadcast will be attempted. In
540
540
// the future, we might abstract it to an observed mempool fluctuation.
541
- height_timer : Option < u32 > ,
541
+ height_timer : u32 ,
542
542
// Confirmation height of the claimed outputs set transaction. In case of reorg reaching
543
543
// it, we wipe out and forget the package.
544
544
height_original : u32 ,
@@ -557,13 +557,10 @@ impl PackageTemplate {
557
557
pub ( crate ) fn set_feerate ( & mut self , new_feerate : u64 ) {
558
558
self . feerate_previous = new_feerate;
559
559
}
560
- pub ( crate ) fn timer ( & self ) -> Option < u32 > {
561
- if let Some ( ref timer) = self . height_timer {
562
- return Some ( * timer) ;
563
- }
564
- None
560
+ pub ( crate ) fn timer ( & self ) -> u32 {
561
+ self . height_timer
565
562
}
566
- pub ( crate ) fn set_timer ( & mut self , new_timer : Option < u32 > ) {
563
+ pub ( crate ) fn set_timer ( & mut self , new_timer : u32 ) {
567
564
self . height_timer = new_timer;
568
565
}
569
566
pub ( crate ) fn outpoints ( & self ) -> Vec < & BitcoinOutPoint > {
@@ -837,7 +834,7 @@ impl PackageTemplate {
837
834
soonest_conf_deadline,
838
835
aggregable,
839
836
feerate_previous : 0 ,
840
- height_timer : None ,
837
+ height_timer : height_original ,
841
838
height_original,
842
839
}
843
840
}
@@ -854,7 +851,7 @@ impl Writeable for PackageTemplate {
854
851
( 0 , self . soonest_conf_deadline, required) ,
855
852
( 2 , self . feerate_previous, required) ,
856
853
( 4 , self . height_original, required) ,
857
- ( 6 , self . height_timer, option )
854
+ ( 6 , self . height_timer, required )
858
855
} ) ;
859
856
Ok ( ( ) )
860
857
}
@@ -893,13 +890,16 @@ impl Readable for PackageTemplate {
893
890
( 4 , height_original, required) ,
894
891
( 6 , height_timer, option) ,
895
892
} ) ;
893
+ if height_timer. is_none ( ) {
894
+ height_timer = Some ( height_original) ;
895
+ }
896
896
Ok ( PackageTemplate {
897
897
inputs,
898
898
malleability,
899
899
soonest_conf_deadline,
900
900
aggregable,
901
901
feerate_previous,
902
- height_timer,
902
+ height_timer : height_timer . unwrap ( ) ,
903
903
height_original,
904
904
} )
905
905
}
@@ -1177,12 +1177,9 @@ mod tests {
1177
1177
let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1178
1178
1179
1179
let mut package = PackageTemplate :: build_package ( txid, 0 , revk_outp, 1000 , true , 100 ) ;
1180
- let timer_none = package. timer ( ) ;
1181
- assert ! ( timer_none. is_none( ) ) ;
1182
- package. set_timer ( Some ( 100 ) ) ;
1183
- if let Some ( timer_some) = package. timer ( ) {
1184
- assert_eq ! ( timer_some, 100 ) ;
1185
- } else { panic ! ( ) }
1180
+ assert_eq ! ( package. timer( ) , 100 ) ;
1181
+ package. set_timer ( 101 ) ;
1182
+ assert_eq ! ( package. timer( ) , 101 ) ;
1186
1183
}
1187
1184
1188
1185
#[ test]
0 commit comments