@@ -538,7 +538,7 @@ pub struct PackageTemplate {
538538 feerate_previous : u64 ,
539539 // Cache of next height at which fee-bumping and rebroadcast will be attempted. In
540540 // the future, we might abstract it to an observed mempool fluctuation.
541- height_timer : Option < u32 > ,
541+ height_timer : u32 ,
542542 // Confirmation height of the claimed outputs set transaction. In case of reorg reaching
543543 // it, we wipe out and forget the package.
544544 height_original : u32 ,
@@ -557,13 +557,10 @@ impl PackageTemplate {
557557 pub ( crate ) fn set_feerate ( & mut self , new_feerate : u64 ) {
558558 self . feerate_previous = new_feerate;
559559 }
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
565562 }
566- pub ( crate ) fn set_timer ( & mut self , new_timer : Option < u32 > ) {
563+ pub ( crate ) fn set_timer ( & mut self , new_timer : u32 ) {
567564 self . height_timer = new_timer;
568565 }
569566 pub ( crate ) fn outpoints ( & self ) -> Vec < & BitcoinOutPoint > {
@@ -837,7 +834,7 @@ impl PackageTemplate {
837834 soonest_conf_deadline,
838835 aggregable,
839836 feerate_previous : 0 ,
840- height_timer : None ,
837+ height_timer : height_original ,
841838 height_original,
842839 }
843840 }
@@ -854,7 +851,7 @@ impl Writeable for PackageTemplate {
854851 ( 0 , self . soonest_conf_deadline, required) ,
855852 ( 2 , self . feerate_previous, required) ,
856853 ( 4 , self . height_original, required) ,
857- ( 6 , self . height_timer, option )
854+ ( 6 , self . height_timer, required )
858855 } ) ;
859856 Ok ( ( ) )
860857 }
@@ -893,13 +890,16 @@ impl Readable for PackageTemplate {
893890 ( 4 , height_original, required) ,
894891 ( 6 , height_timer, option) ,
895892 } ) ;
893+ if height_timer. is_none ( ) {
894+ height_timer = Some ( height_original) ;
895+ }
896896 Ok ( PackageTemplate {
897897 inputs,
898898 malleability,
899899 soonest_conf_deadline,
900900 aggregable,
901901 feerate_previous,
902- height_timer,
902+ height_timer : height_timer . unwrap ( ) ,
903903 height_original,
904904 } )
905905 }
@@ -1177,12 +1177,9 @@ mod tests {
11771177 let revk_outp = dumb_revk_output ! ( secp_ctx) ;
11781178
11791179 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 ) ;
11861183 }
11871184
11881185 #[ test]
0 commit comments