@@ -2148,14 +2148,21 @@ macro_rules! expect_payment_path_successful {
2148
2148
2149
2149
pub fn expect_payment_forwarded < CM : AChannelManager , H : NodeHolder < CM =CM > > (
2150
2150
event : Event , node : & H , prev_node : & H , next_node : & H , expected_fee : Option < u64 > ,
2151
- upstream_force_closed : bool , downstream_force_closed : bool
2152
- ) {
2151
+ upstream_force_closed : bool , downstream_force_closed : bool , allow_1_msat_fee_overpay : bool ,
2152
+ ) -> Option < u64 > {
2153
2153
match event {
2154
2154
Event :: PaymentForwarded {
2155
2155
fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id,
2156
2156
outbound_amount_forwarded_msat : _
2157
2157
} => {
2158
- assert_eq ! ( fee_earned_msat, expected_fee) ;
2158
+ if allow_1_msat_fee_overpay {
2159
+ // Aggregating fees for blinded paths may result in a rounding error, causing slight
2160
+ // overpayment in fees.
2161
+ assert ! ( fee_earned_msat. unwrap( ) == expected_fee. unwrap( )
2162
+ || fee_earned_msat. unwrap( ) == expected_fee. unwrap( ) + 1 ) ;
2163
+ } else {
2164
+ assert_eq ! ( fee_earned_msat, expected_fee) ;
2165
+ }
2159
2166
if !upstream_force_closed {
2160
2167
// Is the event prev_channel_id in one of the channels between the two nodes?
2161
2168
assert ! ( node. node( ) . list_channels( ) . iter( ) . any( |x| x. counterparty. node_id == prev_node. node( ) . get_our_node_id( ) && x. channel_id == prev_channel_id. unwrap( ) ) ) ;
@@ -2166,6 +2173,7 @@ pub fn expect_payment_forwarded<CM: AChannelManager, H: NodeHolder<CM=CM>>(
2166
2173
assert ! ( node. node( ) . list_channels( ) . iter( ) . any( |x| x. counterparty. node_id == next_node. node( ) . get_our_node_id( ) && x. channel_id == next_channel_id. unwrap( ) ) ) ;
2167
2174
}
2168
2175
assert_eq ! ( claim_from_onchain_tx, downstream_force_closed) ;
2176
+ fee_earned_msat
2169
2177
} ,
2170
2178
_ => panic ! ( "Unexpected event" ) ,
2171
2179
}
@@ -2177,7 +2185,7 @@ macro_rules! expect_payment_forwarded {
2177
2185
assert_eq!( events. len( ) , 1 ) ;
2178
2186
$crate:: ln:: functional_test_utils:: expect_payment_forwarded(
2179
2187
events. pop( ) . unwrap( ) , & $node, & $prev_node, & $next_node, $expected_fee,
2180
- $upstream_force_closed, $downstream_force_closed) ;
2188
+ $upstream_force_closed, $downstream_force_closed, false ) ;
2181
2189
}
2182
2190
}
2183
2191
0 commit comments