mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-24 23:08:36 +01:00
Split expect_payment_forwarded
into a function called by macro
Also allowing us to pass the event manually.
This commit is contained in:
parent
0d8b0961a5
commit
6c3029ddd8
1 changed files with 30 additions and 21 deletions
|
@ -2005,29 +2005,38 @@ macro_rules! expect_payment_path_successful {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn expect_payment_forwarded<CM: AChannelManager, H: NodeHolder<CM=CM>>(
|
||||
event: Event, node: &H, prev_node: &H, next_node: &H, expected_fee: Option<u64>,
|
||||
upstream_force_closed: bool, downstream_force_closed: bool
|
||||
) {
|
||||
match event {
|
||||
Event::PaymentForwarded {
|
||||
fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id,
|
||||
outbound_amount_forwarded_msat: _
|
||||
} => {
|
||||
assert_eq!(fee_earned_msat, expected_fee);
|
||||
if !upstream_force_closed {
|
||||
// Is the event prev_channel_id in one of the channels between the two nodes?
|
||||
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()));
|
||||
}
|
||||
// We check for force closures since a force closed channel is removed from the
|
||||
// node's channel list
|
||||
if !downstream_force_closed {
|
||||
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()));
|
||||
}
|
||||
assert_eq!(claim_from_onchain_tx, downstream_force_closed);
|
||||
},
|
||||
_ => panic!("Unexpected event"),
|
||||
}
|
||||
}
|
||||
|
||||
macro_rules! expect_payment_forwarded {
|
||||
($node: expr, $prev_node: expr, $next_node: expr, $expected_fee: expr, $upstream_force_closed: expr, $downstream_force_closed: expr) => {
|
||||
let events = $node.node.get_and_clear_pending_events();
|
||||
let mut events = $node.node.get_and_clear_pending_events();
|
||||
assert_eq!(events.len(), 1);
|
||||
match events[0] {
|
||||
Event::PaymentForwarded {
|
||||
fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id,
|
||||
outbound_amount_forwarded_msat: _
|
||||
} => {
|
||||
assert_eq!(fee_earned_msat, $expected_fee);
|
||||
if !$upstream_force_closed {
|
||||
// Is the event prev_channel_id in one of the channels between the two nodes?
|
||||
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()));
|
||||
}
|
||||
// We check for force closures since a force closed channel is removed from the
|
||||
// node's channel list
|
||||
if !$downstream_force_closed {
|
||||
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()));
|
||||
}
|
||||
assert_eq!(claim_from_onchain_tx, $downstream_force_closed);
|
||||
},
|
||||
_ => panic!("Unexpected event"),
|
||||
}
|
||||
$crate::ln::functional_test_utils::expect_payment_forwarded(
|
||||
events.pop().unwrap(), &$node, &$prev_node, &$next_node, $expected_fee,
|
||||
$upstream_force_closed, $downstream_force_closed);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2404,7 +2413,7 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c>(origin_node: &Node<'a, 'b, '
|
|||
}
|
||||
};
|
||||
if $idx == 1 { fee += expected_extra_fees[i]; }
|
||||
expect_payment_forwarded!($node, $next_node, $prev_node, Some(fee as u64), false, false);
|
||||
expect_payment_forwarded!(*$node, $next_node, $prev_node, Some(fee as u64), false, false);
|
||||
expected_total_fee_msat += fee as u64;
|
||||
check_added_monitors!($node, 1);
|
||||
let new_next_msgs = if $new_msgs {
|
||||
|
|
Loading…
Add table
Reference in a new issue