@@ -746,9 +746,6 @@ pub struct PackageTemplate {
746
746
// Cache of next height at which fee-bumping and rebroadcast will be attempted. In
747
747
// the future, we might abstract it to an observed mempool fluctuation.
748
748
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 ,
752
749
}
753
750
754
751
impl PackageTemplate {
@@ -791,7 +788,6 @@ impl PackageTemplate {
791
788
let aggregable = self . aggregable ;
792
789
let feerate_previous = self . feerate_previous ;
793
790
let height_timer = self . height_timer ;
794
- let height_original = self . height_original ;
795
791
self . inputs . retain ( |outp| {
796
792
if * split_outp == outp. 0 {
797
793
split_package = Some ( PackageTemplate {
@@ -801,7 +797,6 @@ impl PackageTemplate {
801
797
aggregable,
802
798
feerate_previous,
803
799
height_timer,
804
- height_original,
805
800
} ) ;
806
801
return false ;
807
802
}
@@ -820,7 +815,6 @@ impl PackageTemplate {
820
815
}
821
816
}
822
817
pub ( crate ) fn merge_package ( & mut self , mut merge_from : PackageTemplate ) {
823
- assert_eq ! ( self . height_original, merge_from. height_original) ;
824
818
if self . malleability == PackageMalleability :: Untractable || merge_from. malleability == PackageMalleability :: Untractable {
825
819
panic ! ( "Merging template on untractable packages" ) ;
826
820
}
@@ -1035,7 +1029,7 @@ impl PackageTemplate {
1035
1029
} ) . is_some ( )
1036
1030
}
1037
1031
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 {
1039
1033
let ( malleability, aggregable) = PackageSolvingData :: map_output_type_flags ( & input_solving_data) ;
1040
1034
let inputs = vec ! [ ( BitcoinOutPoint { txid, vout } , input_solving_data) ] ;
1041
1035
PackageTemplate {
@@ -1044,8 +1038,7 @@ impl PackageTemplate {
1044
1038
soonest_conf_deadline,
1045
1039
aggregable,
1046
1040
feerate_previous : 0 ,
1047
- height_timer : height_original,
1048
- height_original,
1041
+ height_timer : first_bump,
1049
1042
}
1050
1043
}
1051
1044
}
@@ -1060,7 +1053,8 @@ impl Writeable for PackageTemplate {
1060
1053
write_tlv_fields ! ( writer, {
1061
1054
( 0 , self . soonest_conf_deadline, required) ,
1062
1055
( 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) ,
1064
1058
( 6 , self . height_timer, required)
1065
1059
} ) ;
1066
1060
Ok ( ( ) )
@@ -1082,24 +1076,20 @@ impl Readable for PackageTemplate {
1082
1076
let mut soonest_conf_deadline = 0 ;
1083
1077
let mut feerate_previous = 0 ;
1084
1078
let mut height_timer = None ;
1085
- let mut height_original = 0 ;
1079
+ let mut _height_original : Option < u32 > = None ;
1086
1080
read_tlv_fields ! ( reader, {
1087
1081
( 0 , soonest_conf_deadline, required) ,
1082
+ ( 4 , _height_original, option) , // Written with a dummy value since 0.1
1088
1083
( 2 , feerate_previous, required) ,
1089
- ( 4 , height_original, required) ,
1090
1084
( 6 , height_timer, option) ,
1091
1085
} ) ;
1092
- if height_timer. is_none ( ) {
1093
- height_timer = Some ( height_original) ;
1094
- }
1095
1086
Ok ( PackageTemplate {
1096
1087
inputs,
1097
1088
malleability,
1098
1089
soonest_conf_deadline,
1099
1090
aggregable,
1100
1091
feerate_previous,
1101
- height_timer : height_timer. unwrap ( ) ,
1102
- height_original,
1092
+ height_timer : height_timer. unwrap_or ( 0 ) ,
1103
1093
} )
1104
1094
}
1105
1095
}
@@ -1376,7 +1366,6 @@ mod tests {
1376
1366
assert_eq ! ( split_package. aggregable, package_one. aggregable) ;
1377
1367
assert_eq ! ( split_package. feerate_previous, package_one. feerate_previous) ;
1378
1368
assert_eq ! ( split_package. height_timer, package_one. height_timer) ;
1379
- assert_eq ! ( split_package. height_original, package_one. height_original) ;
1380
1369
} else { panic ! ( ) ; }
1381
1370
assert_eq ! ( package_one. outpoints( ) . len( ) , 2 ) ;
1382
1371
}
0 commit comments