Skip to content

Commit cf3c211

Browse files
committed
add outbound_amount_forwarded_msat field to PaymentForwarded event
1 parent 723c1a6 commit cf3c211

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

lightning/src/events/mod.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,9 @@ pub enum Event {
603603
/// If this is `true`, the forwarded HTLC was claimed by our counterparty via an on-chain
604604
/// transaction.
605605
claim_from_onchain_tx: bool,
606+
/// The final amount forwarded, in milli-satoshis, after the fee is deducted.
607+
/// The caveat described above the `fee_earned_msat` field applies here as well.
608+
outbound_amount_forwarded_msat: Option<u64>,
606609
},
607610
/// Used to indicate that a channel with the given `channel_id` is ready to
608611
/// be used. This event is emitted either when the funding transaction has been confirmed
@@ -820,13 +823,14 @@ impl Writeable for Event {
820823
(8, expected_outbound_amount_msat, required),
821824
});
822825
}
823-
&Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id } => {
826+
&Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id, outbound_amount_forwarded_msat } => {
824827
7u8.write(writer)?;
825828
write_tlv_fields!(writer, {
826829
(0, fee_earned_msat, option),
827830
(1, prev_channel_id, option),
828831
(2, claim_from_onchain_tx, required),
829832
(3, next_channel_id, option),
833+
(5, outbound_amount_forwarded_msat, option),
830834
});
831835
},
832836
&Event::ChannelClosed { ref channel_id, ref user_channel_id, ref reason } => {
@@ -1078,13 +1082,15 @@ impl MaybeReadable for Event {
10781082
let mut prev_channel_id = None;
10791083
let mut claim_from_onchain_tx = false;
10801084
let mut next_channel_id = None;
1085+
let mut outbound_amount_forwarded_msat = None;
10811086
read_tlv_fields!(reader, {
10821087
(0, fee_earned_msat, option),
10831088
(1, prev_channel_id, option),
10841089
(2, claim_from_onchain_tx, required),
10851090
(3, next_channel_id, option),
1091+
(5, outbound_amount_forwarded_msat, option),
10861092
});
1087-
Ok(Some(Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id }))
1093+
Ok(Some(Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id, outbound_amount_forwarded_msat }))
10881094
};
10891095
f()
10901096
},

lightning/src/ln/channelmanager.rs

+1
Original file line numberDiff line numberDiff line change
@@ -4184,6 +4184,7 @@ where
41844184
claim_from_onchain_tx: from_onchain,
41854185
prev_channel_id,
41864186
next_channel_id,
4187+
outbound_amount_forwarded_msat: forwarded_htlc_value_msat,
41874188
}})
41884189
} else { None }
41894190
});

lightning/src/ln/functional_test_utils.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1780,7 +1780,7 @@ macro_rules! expect_payment_forwarded {
17801780
let events = $node.node.get_and_clear_pending_events();
17811781
assert_eq!(events.len(), 1);
17821782
match events[0] {
1783-
Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id } => {
1783+
Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id, .. } => {
17841784
assert_eq!(fee_earned_msat, $expected_fee);
17851785
if fee_earned_msat.is_some() {
17861786
// Is the event prev_channel_id in one of the channels between the two nodes?

lightning/src/ln/functional_tests.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -2731,20 +2731,22 @@ fn test_htlc_on_chain_success() {
27312731
}
27322732
let chan_id = Some(chan_1.2);
27332733
match forwarded_events[1] {
2734-
Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id } => {
2734+
Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id, outbound_amount_forwarded_msat } => {
27352735
assert_eq!(fee_earned_msat, Some(1000));
27362736
assert_eq!(prev_channel_id, chan_id);
27372737
assert_eq!(claim_from_onchain_tx, true);
27382738
assert_eq!(next_channel_id, Some(chan_2.2));
2739+
assert_eq!(outbound_amount_forwarded_msat, Some(3000000));
27392740
},
27402741
_ => panic!()
27412742
}
27422743
match forwarded_events[2] {
2743-
Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id } => {
2744+
Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id, outbound_amount_forwarded_msat } => {
27442745
assert_eq!(fee_earned_msat, Some(1000));
27452746
assert_eq!(prev_channel_id, chan_id);
27462747
assert_eq!(claim_from_onchain_tx, true);
27472748
assert_eq!(next_channel_id, Some(chan_2.2));
2749+
assert_eq!(outbound_amount_forwarded_msat, Some(3000000));
27482750
},
27492751
_ => panic!()
27502752
}
@@ -4653,11 +4655,12 @@ fn test_onchain_to_onchain_claim() {
46534655
_ => panic!("Unexpected event"),
46544656
}
46554657
match events[1] {
4656-
Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id } => {
4658+
Event::PaymentForwarded { fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id, outbound_amount_forwarded_msat } => {
46574659
assert_eq!(fee_earned_msat, Some(1000));
46584660
assert_eq!(prev_channel_id, Some(chan_1.2));
46594661
assert_eq!(claim_from_onchain_tx, true);
46604662
assert_eq!(next_channel_id, Some(chan_2.2));
4663+
assert_eq!(outbound_amount_forwarded_msat, Some(3000000));
46614664
},
46624665
_ => panic!("Unexpected event"),
46634666
}

0 commit comments

Comments
 (0)