diff --git a/bitcoin/src/blockdata/transaction.rs b/bitcoin/src/blockdata/transaction.rs index 678ac8d21..2a3da7b46 100644 --- a/bitcoin/src/blockdata/transaction.rs +++ b/bitcoin/src/blockdata/transaction.rs @@ -1700,7 +1700,8 @@ mod tests { fn effective_value_fee_rate_does_not_overflow() { let eff_value = effective_value(FeeRate::MAX, InputWeightPrediction::P2WPKH_MAX, Amount::ZERO); - assert_eq!(eff_value, SignedAmount::MIN) + let want = SignedAmount::from_sat(-1254378597012250).unwrap(); // U64::MAX / 4_000 because of FeeRate::MAX + assert_eq!(eff_value, want) } #[test] diff --git a/units/src/fee_rate/mod.rs b/units/src/fee_rate/mod.rs index 31fae382d..84e8d9f86 100644 --- a/units/src/fee_rate/mod.rs +++ b/units/src/fee_rate/mod.rs @@ -30,7 +30,7 @@ impl FeeRate { pub const MIN: FeeRate = FeeRate::ZERO; /// Maximum possible value. - pub const MAX: FeeRate = FeeRate::from_sat_per_kwu(u64::MAX); + pub const MAX: FeeRate = FeeRate::from_sat_per_kwu(u64::MAX / 4_000); /// Minimum fee rate required to broadcast a transaction. /// @@ -271,7 +271,7 @@ mod tests { fn fee_rate_const() { assert_eq!(FeeRate::ZERO.to_sat_per_kwu_floor(), 0); assert_eq!(FeeRate::MIN.to_sat_per_kwu_floor(), u64::MIN); - assert_eq!(FeeRate::MAX.to_sat_per_kwu_floor(), u64::MAX); + assert_eq!(FeeRate::MAX.to_sat_per_kwu_floor(), u64::MAX / 4_000); assert_eq!(FeeRate::BROADCAST_MIN.to_sat_per_kwu_floor(), 250); assert_eq!(FeeRate::DUST.to_sat_per_kwu_floor(), 750); }