File tree 3 files changed +22
-5
lines changed
3 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -168,8 +168,10 @@ where
168
168
CreateTxError :: FeeRateTooLow { required } => {
169
169
write ! (
170
170
f,
171
- "Fee rate too low: required {} sat/kwu" ,
172
- required. to_sat_per_kwu( )
171
+ // Note: alternate fmt as sat/vb (ceil) available in bitcoin-0.31
172
+ //"Fee rate too low: required {:#}",
173
+ "Fee rate too low: required {} sat/vb" ,
174
+ crate :: floating_rate!( required)
173
175
)
174
176
}
175
177
CreateTxError :: NoUtxosSelected => {
Original file line number Diff line number Diff line change @@ -2385,6 +2385,17 @@ fn create_signers<E: IntoWalletDescriptor>(
2385
2385
Ok ( ( signers, change_signers) )
2386
2386
}
2387
2387
2388
+ /// Returns a [`FeeRate`] as `f64` in units of sat/vb
2389
+ #[ macro_export]
2390
+ #[ doc( hidden) ]
2391
+ macro_rules! floating_rate {
2392
+ ( $rate: expr) => { {
2393
+ use $crate:: bitcoin:: blockdata:: constants:: WITNESS_SCALE_FACTOR ;
2394
+ // sat_kwu / 250.0 -> sat_vb
2395
+ $rate. to_sat_per_kwu( ) as f64 / ( ( 1000 / WITNESS_SCALE_FACTOR ) as f64 )
2396
+ } } ;
2397
+ }
2398
+
2388
2399
#[ macro_export]
2389
2400
#[ doc( hidden) ]
2390
2401
/// Macro for getting a wallet for use in a doctest
Original file line number Diff line number Diff line change @@ -1461,7 +1461,6 @@ fn test_bump_fee_confirmed_tx() {
1461
1461
}
1462
1462
1463
1463
#[ test]
1464
- #[ should_panic( expected = "FeeRateTooLow" ) ]
1465
1464
fn test_bump_fee_low_fee_rate ( ) {
1466
1465
let ( mut wallet, _) = get_funded_wallet ( get_test_wpkh ( ) ) ;
1467
1466
let addr = wallet. get_address ( New ) ;
@@ -1479,8 +1478,13 @@ fn test_bump_fee_low_fee_rate() {
1479
1478
. unwrap ( ) ;
1480
1479
1481
1480
let mut builder = wallet. build_fee_bump ( txid) . unwrap ( ) ;
1482
- builder. fee_rate ( FeeRate :: from_sat_per_vb_unchecked ( 1 ) ) ;
1483
- builder. finish ( ) . unwrap ( ) ;
1481
+ builder. fee_rate ( FeeRate :: BROADCAST_MIN ) ;
1482
+ let res = builder. finish ( ) ;
1483
+ assert ! ( res. is_err( ) ) ;
1484
+ assert_eq ! (
1485
+ res. unwrap_err( ) . to_string( ) ,
1486
+ "Fee rate too low: required 2.244 sat/vb"
1487
+ ) ;
1484
1488
}
1485
1489
1486
1490
#[ test]
You can’t perform that action at this time.
0 commit comments