Skip to content

Commit 970bbfb

Browse files
committed
Remove source_node_id from PaymentForwarded event
Since 1. Every time we have to do a channel lookup to get the node 2. When the channel is closed, there is no way to find the node
1 parent 641f242 commit 970bbfb

8 files changed

+25
-44
lines changed

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1102,7 +1102,7 @@ fn test_monitor_update_fail_reestablish() {
11021102
assert!(updates.update_fee.is_none());
11031103
assert_eq!(updates.update_fulfill_htlcs.len(), 1);
11041104
nodes[1].node.handle_update_fulfill_htlc(&nodes[2].node.get_our_node_id(), &updates.update_fulfill_htlcs[0]);
1105-
expect_payment_forwarded!(nodes[1], nodes[0], chan_1.2, Some(1000), false);
1105+
expect_payment_forwarded!(nodes[1], chan_1.2, Some(1000), false);
11061106
check_added_monitors!(nodes[1], 1);
11071107
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
11081108
commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false);
@@ -2087,7 +2087,7 @@ fn test_fail_htlc_on_broadcast_after_claim() {
20872087
nodes[1].node.handle_update_fulfill_htlc(&nodes[2].node.get_our_node_id(), &cs_updates.update_fulfill_htlcs[0]);
20882088
let bs_updates = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());
20892089
check_added_monitors!(nodes[1], 1);
2090-
expect_payment_forwarded!(nodes[1], nodes[0], chan_id_1, Some(1000), false);
2090+
expect_payment_forwarded!(nodes[1], chan_id_1, Some(1000), false);
20912091

20922092
mine_transaction(&nodes[1], &bs_txn[0]);
20932093
check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed);
@@ -2468,7 +2468,7 @@ fn do_test_reconnect_dup_htlc_claims(htlc_status: HTLCStatusAtDupClaim, second_f
24682468
assert_eq!(fulfill_msg, cs_updates.update_fulfill_htlcs[0]);
24692469
}
24702470
nodes[1].node.handle_update_fulfill_htlc(&nodes[2].node.get_our_node_id(), &fulfill_msg);
2471-
expect_payment_forwarded!(nodes[1], nodes[0], chan_id_1, Some(1000), false);
2471+
expect_payment_forwarded!(nodes[1], chan_id_1, Some(1000), false);
24722472
check_added_monitors!(nodes[1], 1);
24732473

24742474
let mut bs_updates = None;

lightning/src/ln/channelmanager.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4292,16 +4292,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
42924292
let mut pending_events = self.pending_events.lock().unwrap();
42934293

42944294
let channel_id = prev_outpoint.to_channel_id();
4295-
let channel = match channel_state_lock.by_id.entry(channel_id) {
4296-
hash_map::Entry::Occupied(chan) => chan,
4297-
hash_map::Entry::Vacant(_) => {
4298-
panic!("Channel doesn't exist")
4299-
}
4300-
};
4301-
let source_node_id = channel.get().get_counterparty_node_id();
4302-
43034295
pending_events.push(events::Event::PaymentForwarded {
4304-
source_node_id,
43054296
channel_id,
43064297
fee_earned_msat,
43074298
claim_from_onchain_tx: from_onchain,

lightning/src/ln/functional_test_utils.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1328,12 +1328,11 @@ macro_rules! expect_payment_path_successful {
13281328
}
13291329

13301330
macro_rules! expect_payment_forwarded {
1331-
($node: expr, $source_node: expr, $channel_id: expr, $expected_fee: expr, $upstream_force_closed: expr) => {
1331+
($node: expr, $channel_id: expr, $expected_fee: expr, $upstream_force_closed: expr) => {
13321332
let events = $node.node.get_and_clear_pending_events();
13331333
assert_eq!(events.len(), 1);
13341334
match events[0] {
1335-
Event::PaymentForwarded { source_node_id, channel_id, fee_earned_msat, claim_from_onchain_tx } => {
1336-
assert_eq!(source_node_id, $source_node.node.get_our_node_id());
1335+
Event::PaymentForwarded { channel_id, fee_earned_msat, claim_from_onchain_tx } => {
13371336
assert_eq!(channel_id, $channel_id);
13381337
assert_eq!(fee_earned_msat, $expected_fee);
13391338
assert_eq!(claim_from_onchain_tx, $upstream_force_closed);
@@ -1575,11 +1574,11 @@ pub fn do_claim_payment_along_route<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>,
15751574
}
15761575
}
15771576
macro_rules! mid_update_fulfill_dance {
1578-
($node: expr, $prev_node: expr, $next_node: expr, $next_channel_id: expr, $new_msgs: expr) => {
1577+
($node: expr, $prev_node: expr, $next_channel_id: expr, $new_msgs: expr) => {
15791578
{
15801579
$node.node.handle_update_fulfill_htlc(&$prev_node.node.get_our_node_id(), &next_msgs.as_ref().unwrap().0);
15811580
let fee = $node.node.channel_state.lock().unwrap().by_id.get(&next_msgs.as_ref().unwrap().0.channel_id).unwrap().config.forwarding_fee_base_msat;
1582-
expect_payment_forwarded!($node, $next_node, $next_channel_id, Some(fee as u64), false);
1581+
expect_payment_forwarded!($node, $next_channel_id, Some(fee as u64), false);
15831582
expected_total_fee_msat += fee as u64;
15841583
check_added_monitors!($node, 1);
15851584
let new_next_msgs = if $new_msgs {
@@ -1610,11 +1609,11 @@ pub fn do_claim_payment_along_route<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>,
16101609
} else {
16111610
next_node = expected_route[idx - 1];
16121611
}
1613-
let next_channel_id = match node.node.list_usable_channels().iter().find(|&x| x.counterparty.node_id == next_node.node.get_our_node_id()) {
1612+
let next_channel_id = match node.node.list_channels().iter().find(|&x| x.counterparty.node_id == next_node.node.get_our_node_id()) {
16141613
Some(channel) => channel.channel_id,
16151614
None => panic!("Uh oh! Coudn't find the channel")
16161615
};
1617-
mid_update_fulfill_dance!(node, prev_node, next_node, next_channel_id, update_next_msgs);
1616+
mid_update_fulfill_dance!(node, prev_node, next_channel_id, update_next_msgs);
16181617
} else {
16191618
assert!(!update_next_msgs);
16201619
assert!(node.node.get_and_clear_pending_msg_events().is_empty());

lightning/src/ln/functional_tests.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2684,20 +2684,17 @@ fn test_htlc_on_chain_success() {
26842684
Event::ChannelClosed { reason: ClosureReason::CommitmentTxConfirmed, .. } => {}
26852685
_ => panic!("Unexpected event"),
26862686
}
2687-
let node_id = nodes[0].node.get_our_node_id();
26882687
let chan_id = chan_1.2;
26892688
match forwarded_events[1] {
2690-
Event::PaymentForwarded { source_node_id, channel_id, fee_earned_msat, claim_from_onchain_tx } => {
2691-
assert_eq!(source_node_id, node_id);
2689+
Event::PaymentForwarded { channel_id, fee_earned_msat, claim_from_onchain_tx } => {
26922690
assert_eq!(channel_id, chan_id);
26932691
assert_eq!(fee_earned_msat, Some(1000));
26942692
assert_eq!(claim_from_onchain_tx, true);
26952693
},
26962694
_ => panic!()
26972695
}
26982696
match forwarded_events[2] {
2699-
Event::PaymentForwarded { source_node_id, channel_id, fee_earned_msat, claim_from_onchain_tx } => {
2700-
assert_eq!(source_node_id, node_id);
2697+
Event::PaymentForwarded { channel_id, fee_earned_msat, claim_from_onchain_tx } => {
27012698
assert_eq!(channel_id, chan_id);
27022699
assert_eq!(fee_earned_msat, Some(1000));
27032700
assert_eq!(claim_from_onchain_tx, true);
@@ -5124,8 +5121,7 @@ fn test_onchain_to_onchain_claim() {
51245121
_ => panic!("Unexpected event"),
51255122
}
51265123
match events[1] {
5127-
Event::PaymentForwarded { source_node_id, channel_id, fee_earned_msat, claim_from_onchain_tx } => {
5128-
assert_eq!(source_node_id, nodes[0].node.get_our_node_id());
5124+
Event::PaymentForwarded { channel_id, fee_earned_msat, claim_from_onchain_tx } => {
51295125
assert_eq!(channel_id, chan_1.2);
51305126
assert_eq!(fee_earned_msat, Some(1000));
51315127
assert_eq!(claim_from_onchain_tx, true);
@@ -5293,7 +5289,7 @@ fn test_duplicate_payment_hash_one_failure_one_success() {
52935289
// Note that the fee paid is effectively double as the HTLC value (including the nodes[1] fee
52945290
// and nodes[2] fee) is rounded down and then claimed in full.
52955291
mine_transaction(&nodes[1], &htlc_success_txn[0]);
5296-
expect_payment_forwarded!(nodes[1], nodes[0], chan_1.2 ,Some(196*2), true);
5292+
expect_payment_forwarded!(nodes[1], chan_1.2 ,Some(196*2), true);
52975293
let updates = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());
52985294
assert!(updates.update_add_htlcs.is_empty());
52995295
assert!(updates.update_fail_htlcs.is_empty());
@@ -8871,7 +8867,7 @@ fn do_test_onchain_htlc_settlement_after_close(broadcast_alice: bool, go_onchain
88718867
assert_eq!(carol_updates.update_fulfill_htlcs.len(), 1);
88728868

88738869
nodes[1].node.handle_update_fulfill_htlc(&nodes[2].node.get_our_node_id(), &carol_updates.update_fulfill_htlcs[0]);
8874-
expect_payment_forwarded!(nodes[1], nodes[0], chan_ab.2, if go_onchain_before_fulfill || force_closing_node == 1 { None } else { Some(1000) }, false);
8870+
expect_payment_forwarded!(nodes[1], chan_ab.2, if go_onchain_before_fulfill || force_closing_node == 1 { None } else { Some(1000) }, false);
88758871
// If Alice broadcasted but Bob doesn't know yet, here he prepares to tell her about the preimage.
88768872
if !go_onchain_before_fulfill && broadcast_alice {
88778873
let events = nodes[1].node.get_and_clear_pending_msg_events();

lightning/src/ln/payment_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ fn do_retry_with_no_persist(confirm_before_reload: bool) {
495495
let bs_htlc_claim_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
496496
assert_eq!(bs_htlc_claim_txn.len(), 1);
497497
check_spends!(bs_htlc_claim_txn[0], as_commitment_tx);
498-
expect_payment_forwarded!(nodes[1], nodes[0], chan_id, None, false);
498+
expect_payment_forwarded!(nodes[1], chan_id, None, false);
499499

500500
if !confirm_before_reload {
501501
mine_transaction(&nodes[0], &as_commitment_tx);

lightning/src/ln/reorg_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ fn do_test_onchain_htlc_reorg(local_commitment: bool, claim: bool) {
138138
// ChannelManager only polls chain::Watch::release_pending_monitor_events when we
139139
// probe it for events, so we probe non-message events here (which should just be the
140140
// PaymentForwarded event).
141-
expect_payment_forwarded!(nodes[1], nodes[0], chan_1.2, Some(1000), true);
141+
expect_payment_forwarded!(nodes[1], chan_1.2, Some(1000), true);
142142
} else {
143143
// Confirm the timeout tx and check that we fail the HTLC backwards
144144
let block = Block {

lightning/src/ln/shutdown_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ fn updates_shutdown_wait() {
110110
assert!(updates.update_fee.is_none());
111111
assert_eq!(updates.update_fulfill_htlcs.len(), 1);
112112
nodes[1].node.handle_update_fulfill_htlc(&nodes[2].node.get_our_node_id(), &updates.update_fulfill_htlcs[0]);
113-
expect_payment_forwarded!(nodes[1], nodes[0], chan_1.2, Some(1000), false);
113+
expect_payment_forwarded!(nodes[1], chan_1.2, Some(1000), false);
114114
check_added_monitors!(nodes[1], 1);
115115
let updates_2 = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());
116116
commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false);
@@ -279,7 +279,7 @@ fn do_test_shutdown_rebroadcast(recv_count: u8) {
279279
assert!(updates.update_fee.is_none());
280280
assert_eq!(updates.update_fulfill_htlcs.len(), 1);
281281
nodes[1].node.handle_update_fulfill_htlc(&nodes[2].node.get_our_node_id(), &updates.update_fulfill_htlcs[0]);
282-
expect_payment_forwarded!(nodes[1], nodes[0], chan_1.2, Some(1000), false);
282+
expect_payment_forwarded!(nodes[1], chan_1.2, Some(1000), false);
283283
check_added_monitors!(nodes[1], 1);
284284
let updates_2 = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());
285285
commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false);

lightning/src/util/events.rs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -343,9 +343,7 @@ pub enum Event {
343343
/// This event is generated when a payment has been successfully forwarded through us and a
344344
/// forwarding fee earned.
345345
PaymentForwarded {
346-
/// The public key of the source node which emits this event.
347-
source_node_id: PublicKey,
348-
/// The channel on which this event is being sent on.
346+
/// The channel between the source node and the node emitting this event.
349347
channel_id: [u8; 32],
350348
/// The fee, in milli-satoshis, which was earned as a result of the payment.
351349
///
@@ -524,11 +522,10 @@ impl Writeable for Event {
524522
(0, VecWriteWrapper(outputs), required),
525523
});
526524
},
527-
&Event::PaymentForwarded { source_node_id, channel_id, fee_earned_msat, claim_from_onchain_tx } => {
525+
&Event::PaymentForwarded { channel_id, fee_earned_msat, claim_from_onchain_tx } => {
528526
7u8.write(writer)?;
529527
write_tlv_fields!(writer, {
530-
(0, source_node_id, required),
531-
(2, channel_id, required),
528+
(0, channel_id, required),
532529
(4, fee_earned_msat, option),
533530
(6, claim_from_onchain_tx, required),
534531
});
@@ -689,17 +686,15 @@ impl MaybeReadable for Event {
689686
},
690687
7u8 => {
691688
let f = || {
692-
let mut source_node_id = PublicKey::from_slice(&[0]).unwrap();
693689
let mut channel_id = [0; 32];
694690
let mut fee_earned_msat = None;
695691
let mut claim_from_onchain_tx = false;
696692
read_tlv_fields!(reader, {
697-
(0, source_node_id, required),
698-
(2, channel_id, required),
699-
(4, fee_earned_msat, option),
700-
(6, claim_from_onchain_tx, required),
693+
(0, channel_id, required),
694+
(2, fee_earned_msat, option),
695+
(4, claim_from_onchain_tx, required),
701696
});
702-
Ok(Some(Event::PaymentForwarded { source_node_id, channel_id, fee_earned_msat, claim_from_onchain_tx }))
697+
Ok(Some(Event::PaymentForwarded { channel_id, fee_earned_msat, claim_from_onchain_tx }))
703698
};
704699
f()
705700
},

0 commit comments

Comments
 (0)