@@ -1988,8 +1988,9 @@ pub(crate) mod test {
19881988 }
19891989
19901990 macro_rules! assert_fee_rate {
1991- ( $tx: expr, $fees: expr, $fee_rate: expr $( , @dust_change $( $dust_change: expr ) * ) * $( , @add_signature $( $add_signature: expr ) * ) * ) => ( {
1992- let mut tx = $tx. clone( ) ;
1991+ ( $psbt: expr, $fees: expr, $fee_rate: expr $( , @dust_change $( $dust_change: expr ) * ) * $( , @add_signature $( $add_signature: expr ) * ) * ) => ( {
1992+ let psbt = $psbt. clone( ) ;
1993+ let mut tx = $psbt. clone( ) . extract_tx( ) ;
19931994 $(
19941995 $( $add_signature ) *
19951996 for txin in & mut tx. input {
@@ -2005,6 +2006,18 @@ pub(crate) mod test {
20052006 dust_change = true ;
20062007 ) *
20072008
2009+ let fee_amount = psbt
2010+ . inputs
2011+ . iter( )
2012+ . fold( 0 , |acc, i| acc + i. witness_utxo. as_ref( ) . unwrap( ) . value)
2013+ - psbt
2014+ . unsigned_tx
2015+ . output
2016+ . iter( )
2017+ . fold( 0 , |acc, o| acc + o. value) ;
2018+
2019+ assert_eq!( fee_amount, $fees) ;
2020+
20082021 let tx_fee_rate = FeeRate :: from_wu( $fees, tx. weight( ) ) ;
20092022 let fee_rate = $fee_rate;
20102023
@@ -2384,7 +2397,7 @@ pub(crate) mod test {
23842397 builder. add_recipient ( addr. script_pubkey ( ) , 25_000 ) ;
23852398 let ( psbt, details) = builder. finish ( ) . unwrap ( ) ;
23862399
2387- assert_fee_rate ! ( psbt. extract_tx ( ) , details. fee. unwrap_or( 0 ) , FeeRate :: default ( ) , @add_signature) ;
2400+ assert_fee_rate ! ( psbt, details. fee. unwrap_or( 0 ) , FeeRate :: default ( ) , @add_signature) ;
23882401 }
23892402
23902403 #[ test]
@@ -2397,7 +2410,7 @@ pub(crate) mod test {
23972410 . fee_rate ( FeeRate :: from_sat_per_vb ( 5.0 ) ) ;
23982411 let ( psbt, details) = builder. finish ( ) . unwrap ( ) ;
23992412
2400- assert_fee_rate ! ( psbt. extract_tx ( ) , details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 5.0 ) , @add_signature) ;
2413+ assert_fee_rate ! ( psbt, details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 5.0 ) , @add_signature) ;
24012414 }
24022415
24032416 #[ test]
@@ -3254,7 +3267,7 @@ pub(crate) mod test {
32543267 details. received
32553268 ) ;
32563269
3257- assert_fee_rate ! ( psbt. extract_tx ( ) , details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 2.5 ) , @add_signature) ;
3270+ assert_fee_rate ! ( psbt, details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 2.5 ) , @add_signature) ;
32583271 }
32593272
32603273 #[ test]
@@ -3364,7 +3377,7 @@ pub(crate) mod test {
33643377 assert_eq ! ( tx. output. len( ) , 1 ) ;
33653378 assert_eq ! ( tx. output[ 0 ] . value + details. fee. unwrap_or( 0 ) , details. sent) ;
33663379
3367- assert_fee_rate ! ( psbt. extract_tx ( ) , details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 2.5 ) , @add_signature) ;
3380+ assert_fee_rate ! ( psbt, details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 2.5 ) , @add_signature) ;
33683381 }
33693382
33703383 #[ test]
@@ -3575,7 +3588,7 @@ pub(crate) mod test {
35753588 details. received
35763589 ) ;
35773590
3578- assert_fee_rate ! ( psbt. extract_tx ( ) , details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 50.0 ) , @add_signature) ;
3591+ assert_fee_rate ! ( psbt, details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 50.0 ) , @add_signature) ;
35793592 }
35803593
35813594 #[ test]
@@ -3715,7 +3728,7 @@ pub(crate) mod test {
37153728 75_000 - original_send_all_amount - details. fee. unwrap_or( 0 )
37163729 ) ;
37173730
3718- assert_fee_rate ! ( psbt. extract_tx ( ) , details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 50.0 ) , @add_signature) ;
3731+ assert_fee_rate ! ( psbt, details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 50.0 ) , @add_signature) ;
37193732 }
37203733
37213734 #[ test]
@@ -3778,7 +3791,7 @@ pub(crate) mod test {
37783791 45_000
37793792 ) ;
37803793
3781- assert_fee_rate ! ( psbt. extract_tx ( ) , details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 140.0 ) , @dust_change, @add_signature) ;
3794+ assert_fee_rate ! ( psbt, details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 140.0 ) , @dust_change, @add_signature) ;
37823795 }
37833796
37843797 #[ test]
@@ -3849,7 +3862,7 @@ pub(crate) mod test {
38493862 details. received
38503863 ) ;
38513864
3852- assert_fee_rate ! ( psbt. extract_tx ( ) , details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 5.0 ) , @add_signature) ;
3865+ assert_fee_rate ! ( psbt, details. fee. unwrap_or( 0 ) , FeeRate :: from_sat_per_vb( 5.0 ) , @add_signature) ;
38533866 }
38543867
38553868 #[ test]
0 commit comments