@@ -790,7 +790,7 @@ impl PackageTemplate {
790790 } ) . is_some ( )
791791 }
792792
793- pub ( crate ) fn build_package ( txid : Txid , vout : u32 , input_solving_data : PackageSolvingData , soonest_conf_deadline : u32 , aggregable : bool , height_original : u32 ) -> Self {
793+ pub ( crate ) fn build_package ( txid : Txid , vout : u32 , input_solving_data : PackageSolvingData , soonest_conf_deadline : u32 , height_original : u32 ) -> Self {
794794 let ( malleability, aggregable) = Self :: map_output_type_flags ( & input_solving_data) ;
795795 let mut inputs = Vec :: with_capacity ( 1 ) ;
796796 inputs. push ( ( BitcoinOutPoint { txid, vout } , input_solving_data) ) ;
@@ -967,11 +967,11 @@ mod tests {
967967 use bitcoin:: secp256k1:: Secp256k1 ;
968968
969969 macro_rules! dumb_revk_output {
970- ( $secp_ctx: expr) => {
970+ ( $secp_ctx: expr, $opt_anchors : expr , $is_counterparty_balance : expr ) => {
971971 {
972972 let dumb_scalar = SecretKey :: from_slice( & hex:: decode( "0101010101010101010101010101010101010101010101010101010101010101" ) . unwrap( ) [ ..] ) . unwrap( ) ;
973973 let dumb_point = PublicKey :: from_secret_key( & $secp_ctx, & dumb_scalar) ;
974- PackageSolvingData :: RevokedOutput ( RevokedOutput :: build( dumb_point, dumb_point, dumb_point, dumb_scalar, 0 , 0 , false , false ) )
974+ PackageSolvingData :: RevokedOutput ( RevokedOutput :: build( dumb_point, dumb_point, dumb_point, dumb_scalar, 0 , 0 , $opt_anchors , $is_counterparty_balance ) )
975975 }
976976 }
977977 }
@@ -1015,10 +1015,10 @@ mod tests {
10151015 fn test_package_differing_heights ( ) {
10161016 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
10171017 let secp_ctx = Secp256k1 :: new ( ) ;
1018- let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1018+ let revk_outp = dumb_revk_output ! ( secp_ctx, false , false ) ;
10191019
1020- let mut package_one_hundred = PackageTemplate :: build_package ( txid, 0 , revk_outp. clone ( ) , 1000 , true , 100 ) ;
1021- let package_two_hundred = PackageTemplate :: build_package ( txid, 1 , revk_outp. clone ( ) , 1000 , true , 200 ) ;
1020+ let mut package_one_hundred = PackageTemplate :: build_package ( txid, 0 , revk_outp. clone ( ) , 1000 , 100 ) ;
1021+ let package_two_hundred = PackageTemplate :: build_package ( txid, 1 , revk_outp. clone ( ) , 1000 , 200 ) ;
10221022 package_one_hundred. merge_package ( package_two_hundred) ;
10231023 }
10241024
@@ -1027,11 +1027,11 @@ mod tests {
10271027 fn test_package_untractable_merge_to ( ) {
10281028 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
10291029 let secp_ctx = Secp256k1 :: new ( ) ;
1030- let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1030+ let revk_outp = dumb_revk_output ! ( secp_ctx, false , false ) ;
10311031 let htlc_outp = dumb_htlc_output ! ( ) ;
10321032
1033- let mut untractable_package = PackageTemplate :: build_package ( txid, 0 , revk_outp. clone ( ) , 1000 , true , 100 ) ;
1034- let malleable_package = PackageTemplate :: build_package ( txid, 1 , htlc_outp. clone ( ) , 1000 , true , 100 ) ;
1033+ let mut untractable_package = PackageTemplate :: build_package ( txid, 0 , revk_outp. clone ( ) , 1000 , 100 ) ;
1034+ let malleable_package = PackageTemplate :: build_package ( txid, 1 , htlc_outp. clone ( ) , 1000 , 100 ) ;
10351035 untractable_package. merge_package ( malleable_package) ;
10361036 }
10371037
@@ -1041,10 +1041,10 @@ mod tests {
10411041 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
10421042 let secp_ctx = Secp256k1 :: new ( ) ;
10431043 let htlc_outp = dumb_htlc_output ! ( ) ;
1044- let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1044+ let revk_outp = dumb_revk_output ! ( secp_ctx, false , false ) ;
10451045
1046- let mut malleable_package = PackageTemplate :: build_package ( txid, 0 , htlc_outp. clone ( ) , 1000 , true , 100 ) ;
1047- let untractable_package = PackageTemplate :: build_package ( txid, 1 , revk_outp. clone ( ) , 1000 , true , 100 ) ;
1046+ let mut malleable_package = PackageTemplate :: build_package ( txid, 0 , htlc_outp. clone ( ) , 1000 , 100 ) ;
1047+ let untractable_package = PackageTemplate :: build_package ( txid, 1 , revk_outp. clone ( ) , 1000 , 100 ) ;
10481048 malleable_package. merge_package ( untractable_package) ;
10491049 }
10501050
@@ -1053,10 +1053,11 @@ mod tests {
10531053 fn test_package_noaggregation_to ( ) {
10541054 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
10551055 let secp_ctx = Secp256k1 :: new ( ) ;
1056- let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1056+ let revk_outp = dumb_revk_output ! ( secp_ctx, false , false ) ;
1057+ let revk_outp_counterparty_balance = dumb_revk_output ! ( secp_ctx, true , true ) ;
10571058
1058- let mut noaggregation_package = PackageTemplate :: build_package ( txid, 0 , revk_outp . clone ( ) , 1000 , false , 100 ) ;
1059- let aggregation_package = PackageTemplate :: build_package ( txid, 1 , revk_outp. clone ( ) , 1000 , true , 100 ) ;
1059+ let mut noaggregation_package = PackageTemplate :: build_package ( txid, 0 , revk_outp_counterparty_balance . clone ( ) , 1000 , 100 ) ;
1060+ let aggregation_package = PackageTemplate :: build_package ( txid, 1 , revk_outp. clone ( ) , 1000 , 100 ) ;
10601061 noaggregation_package. merge_package ( aggregation_package) ;
10611062 }
10621063
@@ -1065,10 +1066,11 @@ mod tests {
10651066 fn test_package_noaggregation_from ( ) {
10661067 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
10671068 let secp_ctx = Secp256k1 :: new ( ) ;
1068- let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1069+ let revk_outp = dumb_revk_output ! ( secp_ctx, false , false ) ;
1070+ let revk_outp_counterparty_balance = dumb_revk_output ! ( secp_ctx, true , true ) ;
10691071
1070- let mut aggregation_package = PackageTemplate :: build_package ( txid, 0 , revk_outp. clone ( ) , 1000 , true , 100 ) ;
1071- let noaggregation_package = PackageTemplate :: build_package ( txid, 1 , revk_outp . clone ( ) , 1000 , false , 100 ) ;
1072+ let mut aggregation_package = PackageTemplate :: build_package ( txid, 0 , revk_outp. clone ( ) , 1000 , 100 ) ;
1073+ let noaggregation_package = PackageTemplate :: build_package ( txid, 1 , revk_outp_counterparty_balance . clone ( ) , 1000 , 100 ) ;
10721074 aggregation_package. merge_package ( noaggregation_package) ;
10731075 }
10741076
@@ -1077,11 +1079,11 @@ mod tests {
10771079 fn test_package_empty ( ) {
10781080 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
10791081 let secp_ctx = Secp256k1 :: new ( ) ;
1080- let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1082+ let revk_outp = dumb_revk_output ! ( secp_ctx, false , false ) ;
10811083
1082- let mut empty_package = PackageTemplate :: build_package ( txid, 0 , revk_outp. clone ( ) , 1000 , true , 100 ) ;
1084+ let mut empty_package = PackageTemplate :: build_package ( txid, 0 , revk_outp. clone ( ) , 1000 , 100 ) ;
10831085 empty_package. inputs = vec ! [ ] ;
1084- let package = PackageTemplate :: build_package ( txid, 1 , revk_outp. clone ( ) , 1000 , true , 100 ) ;
1086+ let package = PackageTemplate :: build_package ( txid, 1 , revk_outp. clone ( ) , 1000 , 100 ) ;
10851087 empty_package. merge_package ( package) ;
10861088 }
10871089
@@ -1090,25 +1092,25 @@ mod tests {
10901092 fn test_package_differing_categories ( ) {
10911093 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
10921094 let secp_ctx = Secp256k1 :: new ( ) ;
1093- let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1095+ let revk_outp = dumb_revk_output ! ( secp_ctx, false , false ) ;
10941096 let counterparty_outp = dumb_counterparty_output ! ( secp_ctx, 0 , false ) ;
10951097
1096- let mut revoked_package = PackageTemplate :: build_package ( txid, 0 , revk_outp, 1000 , true , 100 ) ;
1097- let counterparty_package = PackageTemplate :: build_package ( txid, 1 , counterparty_outp, 1000 , true , 100 ) ;
1098+ let mut revoked_package = PackageTemplate :: build_package ( txid, 0 , revk_outp, 1000 , 100 ) ;
1099+ let counterparty_package = PackageTemplate :: build_package ( txid, 1 , counterparty_outp, 1000 , 100 ) ;
10981100 revoked_package. merge_package ( counterparty_package) ;
10991101 }
11001102
11011103 #[ test]
11021104 fn test_package_split_malleable ( ) {
11031105 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
11041106 let secp_ctx = Secp256k1 :: new ( ) ;
1105- let revk_outp_one = dumb_revk_output ! ( secp_ctx) ;
1106- let revk_outp_two = dumb_revk_output ! ( secp_ctx) ;
1107- let revk_outp_three = dumb_revk_output ! ( secp_ctx) ;
1107+ let revk_outp_one = dumb_revk_output ! ( secp_ctx, false , false ) ;
1108+ let revk_outp_two = dumb_revk_output ! ( secp_ctx, false , false ) ;
1109+ let revk_outp_three = dumb_revk_output ! ( secp_ctx, false , false ) ;
11081110
1109- let mut package_one = PackageTemplate :: build_package ( txid, 0 , revk_outp_one, 1000 , true , 100 ) ;
1110- let package_two = PackageTemplate :: build_package ( txid, 1 , revk_outp_two, 1000 , true , 100 ) ;
1111- let package_three = PackageTemplate :: build_package ( txid, 2 , revk_outp_three, 1000 , true , 100 ) ;
1111+ let mut package_one = PackageTemplate :: build_package ( txid, 0 , revk_outp_one, 1000 , 100 ) ;
1112+ let package_two = PackageTemplate :: build_package ( txid, 1 , revk_outp_two, 1000 , 100 ) ;
1113+ let package_three = PackageTemplate :: build_package ( txid, 2 , revk_outp_three, 1000 , 100 ) ;
11121114
11131115 package_one. merge_package ( package_two) ;
11141116 package_one. merge_package ( package_three) ;
@@ -1131,7 +1133,7 @@ mod tests {
11311133 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
11321134 let htlc_outp_one = dumb_htlc_output ! ( ) ;
11331135
1134- let mut package_one = PackageTemplate :: build_package ( txid, 0 , htlc_outp_one, 1000 , true , 100 ) ;
1136+ let mut package_one = PackageTemplate :: build_package ( txid, 0 , htlc_outp_one, 1000 , 100 ) ;
11351137 let ret_split = package_one. split_package ( & BitcoinOutPoint { txid, vout : 0 } ) ;
11361138 assert ! ( ret_split. is_none( ) ) ;
11371139 }
@@ -1140,9 +1142,9 @@ mod tests {
11401142 fn test_package_timer ( ) {
11411143 let txid = Txid :: from_hex ( "c2d4449afa8d26140898dd54d3390b057ba2a5afcf03ba29d7dc0d8b9ffe966e" ) . unwrap ( ) ;
11421144 let secp_ctx = Secp256k1 :: new ( ) ;
1143- let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1145+ let revk_outp = dumb_revk_output ! ( secp_ctx, false , false ) ;
11441146
1145- let mut package = PackageTemplate :: build_package ( txid, 0 , revk_outp, 1000 , true , 100 ) ;
1147+ let mut package = PackageTemplate :: build_package ( txid, 0 , revk_outp, 1000 , 100 ) ;
11461148 let timer_none = package. timer ( ) ;
11471149 assert ! ( timer_none. is_none( ) ) ;
11481150 package. set_timer ( Some ( 100 ) ) ;
@@ -1157,7 +1159,7 @@ mod tests {
11571159 let secp_ctx = Secp256k1 :: new ( ) ;
11581160 let counterparty_outp = dumb_counterparty_output ! ( secp_ctx, 1_000_000 , false ) ;
11591161
1160- let package = PackageTemplate :: build_package ( txid, 0 , counterparty_outp, 1000 , true , 100 ) ;
1162+ let package = PackageTemplate :: build_package ( txid, 0 , counterparty_outp, 1000 , 100 ) ;
11611163 assert_eq ! ( package. package_amount( ) , 1000 ) ;
11621164 }
11631165
@@ -1170,23 +1172,23 @@ mod tests {
11701172 let weight_sans_output = ( 4 + 4 + 1 + 36 + 4 + 1 + 1 + 8 + 1 ) * WITNESS_SCALE_FACTOR + 2 ;
11711173
11721174 {
1173- let revk_outp = dumb_revk_output ! ( secp_ctx) ;
1174- let package = PackageTemplate :: build_package ( txid, 0 , revk_outp, 0 , true , 100 ) ;
1175+ let revk_outp = dumb_revk_output ! ( secp_ctx, false , false ) ;
1176+ let package = PackageTemplate :: build_package ( txid, 0 , revk_outp, 0 , 100 ) ;
11751177 assert_eq ! ( package. package_weight( & Script :: new( ) ) , weight_sans_output + WEIGHT_REVOKED_OUTPUT as usize ) ;
11761178 }
11771179
11781180 {
11791181 for & opt_anchors in [ false , true ] . iter ( ) {
11801182 let counterparty_outp = dumb_counterparty_output ! ( secp_ctx, 1_000_000 , opt_anchors) ;
1181- let package = PackageTemplate :: build_package ( txid, 0 , counterparty_outp, 1000 , true , 100 ) ;
1183+ let package = PackageTemplate :: build_package ( txid, 0 , counterparty_outp, 1000 , 100 ) ;
11821184 assert_eq ! ( package. package_weight( & Script :: new( ) ) , weight_sans_output + weight_received_htlc( opt_anchors) as usize ) ;
11831185 }
11841186 }
11851187
11861188 {
11871189 for & opt_anchors in [ false , true ] . iter ( ) {
11881190 let counterparty_outp = dumb_counterparty_offered_output ! ( secp_ctx, 1_000_000 , opt_anchors) ;
1189- let package = PackageTemplate :: build_package ( txid, 0 , counterparty_outp, 1000 , true , 100 ) ;
1191+ let package = PackageTemplate :: build_package ( txid, 0 , counterparty_outp, 1000 , 100 ) ;
11901192 assert_eq ! ( package. package_weight( & Script :: new( ) ) , weight_sans_output + weight_offered_htlc( opt_anchors) as usize ) ;
11911193 }
11921194 }
0 commit comments