@@ -746,9 +746,6 @@ pub struct PackageTemplate {
746746 // Cache of next height at which fee-bumping and rebroadcast will be attempted. In
747747 // the future, we might abstract it to an observed mempool fluctuation.
748748 height_timer : u32 ,
749- // Confirmation height of the claimed outputs set transaction. In case of reorg reaching
750- // it, we wipe out and forget the package.
751- height_original : u32 ,
752749}
753750
754751impl PackageTemplate {
@@ -791,7 +788,6 @@ impl PackageTemplate {
791788 let aggregable = self . aggregable ;
792789 let feerate_previous = self . feerate_previous ;
793790 let height_timer = self . height_timer ;
794- let height_original = self . height_original ;
795791 self . inputs . retain ( |outp| {
796792 if * split_outp == outp. 0 {
797793 split_package = Some ( PackageTemplate {
@@ -801,7 +797,6 @@ impl PackageTemplate {
801797 aggregable,
802798 feerate_previous,
803799 height_timer,
804- height_original,
805800 } ) ;
806801 return false ;
807802 }
@@ -820,7 +815,6 @@ impl PackageTemplate {
820815 }
821816 }
822817 pub ( crate ) fn merge_package ( & mut self , mut merge_from : PackageTemplate ) {
823- assert_eq ! ( self . height_original, merge_from. height_original) ;
824818 if self . malleability == PackageMalleability :: Untractable || merge_from. malleability == PackageMalleability :: Untractable {
825819 panic ! ( "Merging template on untractable packages" ) ;
826820 }
@@ -1035,7 +1029,7 @@ impl PackageTemplate {
10351029 } ) . is_some ( )
10361030 }
10371031
1038- pub ( crate ) fn build_package ( txid : Txid , vout : u32 , input_solving_data : PackageSolvingData , soonest_conf_deadline : u32 , height_original : u32 ) -> Self {
1032+ pub ( crate ) fn build_package ( txid : Txid , vout : u32 , input_solving_data : PackageSolvingData , soonest_conf_deadline : u32 , first_bump : u32 ) -> Self {
10391033 let ( malleability, aggregable) = PackageSolvingData :: map_output_type_flags ( & input_solving_data) ;
10401034 let inputs = vec ! [ ( BitcoinOutPoint { txid, vout } , input_solving_data) ] ;
10411035 PackageTemplate {
@@ -1044,8 +1038,7 @@ impl PackageTemplate {
10441038 soonest_conf_deadline,
10451039 aggregable,
10461040 feerate_previous : 0 ,
1047- height_timer : height_original,
1048- height_original,
1041+ height_timer : first_bump,
10491042 }
10501043 }
10511044}
@@ -1060,7 +1053,8 @@ impl Writeable for PackageTemplate {
10601053 write_tlv_fields ! ( writer, {
10611054 ( 0 , self . soonest_conf_deadline, required) ,
10621055 ( 2 , self . feerate_previous, required) ,
1063- ( 4 , self . height_original, required) ,
1056+ // Prior to 0.1, the height at which the package's inputs were mined, but was always unused
1057+ ( 4 , 0u32 , required) ,
10641058 ( 6 , self . height_timer, required)
10651059 } ) ;
10661060 Ok ( ( ) )
@@ -1082,24 +1076,20 @@ impl Readable for PackageTemplate {
10821076 let mut soonest_conf_deadline = 0 ;
10831077 let mut feerate_previous = 0 ;
10841078 let mut height_timer = None ;
1085- let mut height_original = 0 ;
1079+ let mut _height_original : Option < u32 > = None ;
10861080 read_tlv_fields ! ( reader, {
10871081 ( 0 , soonest_conf_deadline, required) ,
10881082 ( 2 , feerate_previous, required) ,
1089- ( 4 , height_original , required ) ,
1083+ ( 4 , _height_original , option ) , // Written with a dummy value since 0.1
10901084 ( 6 , height_timer, option) ,
10911085 } ) ;
1092- if height_timer. is_none ( ) {
1093- height_timer = Some ( height_original) ;
1094- }
10951086 Ok ( PackageTemplate {
10961087 inputs,
10971088 malleability,
10981089 soonest_conf_deadline,
10991090 aggregable,
11001091 feerate_previous,
1101- height_timer : height_timer. unwrap ( ) ,
1102- height_original,
1092+ height_timer : height_timer. unwrap_or ( 0 ) ,
11031093 } )
11041094 }
11051095}
@@ -1376,7 +1366,6 @@ mod tests {
13761366 assert_eq ! ( split_package. aggregable, package_one. aggregable) ;
13771367 assert_eq ! ( split_package. feerate_previous, package_one. feerate_previous) ;
13781368 assert_eq ! ( split_package. height_timer, package_one. height_timer) ;
1379- assert_eq ! ( split_package. height_original, package_one. height_original) ;
13801369 } else { panic ! ( ) ; }
13811370 assert_eq ! ( package_one. outpoints( ) . len( ) , 2 ) ;
13821371 }
0 commit comments