Replace `commitment_signed_dance` for skip_last_step=false
What changed, and why it matters
This commit is a test-only refactoring change. It replaces uses of a macro called `commitment_signed_dance!` with direct calls to a helper function `do_commitment_signed_dance` in many test files. There is no change to production code, no security fix, and no vulnerability introduced.
No security action needed. Treat as ordinary code cleanup / maintainability improvement.
Security signals we found
No production code changes
No changes to cryptographic, networking, or state-machine logic
Refactoring of test helper macro to function calls
No mention of security, CVE, vulnerability, or bug fix in commit message
Evidence from the diff
The commit refactors Lightning Dev Kit’s Rust test suite. It removes one arm of the commitment_signed_dance! macro (the skip_last_step=false case) and replaces all call sites with direct invocations of do_commitment_signed_dance. The function signature and behavior remain the same: the same arguments are passed, including fail_backwards and a literal false for the last parameter. The only non-test file touched is lightning/src/ln/functional_test_utils.rs, which is itself a test-support module. No production channel logic, message handling, or cryptographic code is modified.
Changed components
lightning/src/ln/functional_test_utils.rslightning/src/ln/*_tests.rslightning-dns-resolver/src/lib.rs (test module)lightning-tests/src/upgrade_downgrade_tests.rsInspect captured patch +216 / −187
diff --git a/lightning-dns-resolver/src/lib.rs b/lightning-dns-resolver/src/lib.rs
index f5b1d53..8d47098 100644
--- a/lightning-dns-resolver/src/lib.rs
+++ b/lightning-dns-resolver/src/lib.rs
@@ -180,7 +180,7 @@ mod test {
use lightning::types::payment::PaymentHash;
use lightning::util::logger::Logger;
- use lightning::{commitment_signed_dance, expect_payment_claimed, get_htlc_update_msgs};
+ use lightning::{expect_payment_claimed, get_htlc_update_msgs};
use lightning_types::string::UntrustedString;
use std::ops::Deref;
@@ -418,7 +418,7 @@ mod test {
check_added_monitors(&nodes[0], 1);
let updates = get_htlc_update_msgs!(nodes[0], payee_id);
nodes[1].node.handle_update_add_htlc(payer_id, &updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &updates.commitment_signed, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
let claimable_events = nodes[1].node.get_and_clear_pending_events();
@@ -452,7 +452,7 @@ mod test {
check_added_monitors(&nodes[1], 1);
let mut updates = get_htlc_update_msgs!(nodes[1], payer_id);
nodes[0].node.handle_update_fulfill_htlc(payee_id, updates.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
expect_payment_sent(&nodes[0], our_payment_preimage, None, true, true);
}
diff --git a/lightning-tests/src/upgrade_downgrade_tests.rs b/lightning-tests/src/upgrade_downgrade_tests.rs
index d1153b7..032d61d 100644
--- a/lightning-tests/src/upgrade_downgrade_tests.rs
+++ b/lightning-tests/src/upgrade_downgrade_tests.rs
@@ -477,14 +477,15 @@ fn do_test_0_1_htlc_forward_after_splice(fail_htlc: bool) {
let updates = get_htlc_update_msgs(&nodes[1], &node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
let conditions = PaymentFailedConditions::new();
expect_payment_failed_conditions(&nodes[0], pay_hash, false, conditions);
} else {
check_added_monitors(&nodes[1], 1);
let forward_event = SendEvent::from_node(&nodes[1]);
nodes[2].node.handle_update_add_htlc(node_b_id, &forward_event.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[1], forward_event.commitment_msg, false);
+ let commitment = &forward_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[2], &nodes[1], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[2], false);
expect_payment_claimable!(nodes[2], pay_hash, pay_secret, 1_000_000);
diff --git a/lightning/src/ln/blinded_payment_tests.rs b/lightning/src/ln/blinded_payment_tests.rs
index 8959e34..79db0bf 100644
--- a/lightning/src/ln/blinded_payment_tests.rs
+++ b/lightning/src/ln/blinded_payment_tests.rs
@@ -1452,7 +1452,7 @@ fn fails_receive_tlvs_authentication() {
assert!(update_fail.update_fail_htlcs.len() == 1);
let fail_msg = &update_fail.update_fail_htlcs[0];
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_fail.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_fail.commitment_signed, false, false);
expect_payment_failed_conditions(
&nodes[0], payment_hash, true,
PaymentFailedConditions::new().expected_htlc_error_data(LocalHTLCFailureReason::InvalidOnionPayload, &[]),
diff --git a/lightning/src/ln/bolt11_payment_tests.rs b/lightning/src/ln/bolt11_payment_tests.rs
index c24d5b2..63c5576 100644
--- a/lightning/src/ln/bolt11_payment_tests.rs
+++ b/lightning/src/ln/bolt11_payment_tests.rs
@@ -76,7 +76,7 @@ fn payment_metadata_end_to_end_for_invoice_with_amount() {
check_added_monitors(&nodes[0], 1);
let send_event = SendEvent::from_node(&nodes[0]);
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &send_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &send_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &send_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
@@ -144,7 +144,7 @@ fn payment_metadata_end_to_end_for_invoice_with_no_amount() {
check_added_monitors(&nodes[0], 1);
let send_event = SendEvent::from_node(&nodes[0]);
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &send_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &send_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &send_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
diff --git a/lightning/src/ln/chanmon_update_fail_tests.rs b/lightning/src/ln/chanmon_update_fail_tests.rs
index 1a9af4f..d6dd759 100644
--- a/lightning/src/ln/chanmon_update_fail_tests.rs
+++ b/lightning/src/ln/chanmon_update_fail_tests.rs
@@ -220,7 +220,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool) {
let payment_event = SendEvent::from_event(events_2.pop().unwrap());
assert_eq!(payment_event.node_id, node_b_id);
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
@@ -1021,7 +1021,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
let mut send_event =
SendEvent::from_event(nodes[0].node.get_and_clear_pending_msg_events().remove(0));
nodes[1].node.handle_update_add_htlc(node_a_id, &send_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], send_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &send_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
check_added_monitors!(nodes[1], 0);
@@ -1131,7 +1131,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
// Now deliver the new messages...
nodes[0].node.handle_update_fail_htlc(node_b_id, &messages_a.0);
- commitment_signed_dance!(nodes[0], nodes[1], messages_a.1, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &messages_a.1, false, false);
expect_payment_failed!(nodes[0], payment_hash_1, true);
nodes[2].node.handle_update_add_htlc(node_b_id, &send_event_b.msgs[0]);
@@ -1244,7 +1244,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
assert_eq!(send_event.node_id, node_a_id);
assert_eq!(send_event.msgs.len(), 1);
nodes[0].node.handle_update_add_htlc(node_b_id, &send_event.msgs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], send_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &send_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[0], false);
@@ -1305,7 +1305,7 @@ fn test_monitor_update_fail_reestablish() {
expect_payment_forwarded!(nodes[1], nodes[0], nodes[2], Some(1000), false, false);
check_added_monitors!(nodes[1], 1);
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
- commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &updates.commitment_signed, false, false);
chanmon_cfgs[1].persister.set_update_ret(ChannelMonitorUpdateStatus::InProgress);
let init_msg = msgs::Init {
@@ -1364,7 +1364,7 @@ fn test_monitor_update_fail_reestablish() {
assert!(updates.update_fee.is_none());
assert_eq!(updates.update_fulfill_htlcs.len(), 1);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, updates.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
expect_payment_sent!(nodes[0], payment_preimage);
}
@@ -1900,7 +1900,7 @@ fn test_monitor_update_fail_claim() {
let mut bs_fulfill = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, bs_fulfill.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], bs_fulfill.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &bs_fulfill.commitment_signed, false, false);
expect_payment_sent!(nodes[0], payment_preimage_1);
// Get the payment forwards, note that they were batched into one commitment update.
@@ -1909,7 +1909,8 @@ fn test_monitor_update_fail_claim() {
let bs_forward_update = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_add_htlc(node_b_id, &bs_forward_update.update_add_htlcs[0]);
nodes[0].node.handle_update_add_htlc(node_b_id, &bs_forward_update.update_add_htlcs[1]);
- commitment_signed_dance!(nodes[0], nodes[1], bs_forward_update.commitment_signed, false);
+ let commitment = &bs_forward_update.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[0], false);
let events = nodes[0].node.get_and_clear_pending_events();
@@ -2011,7 +2012,7 @@ fn test_monitor_update_on_pending_forwards() {
assert_eq!(events.len(), 1);
let payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[1].node.handle_update_add_htlc(node_c_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[2], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &payment_event.commitment_msg, false, false);
chanmon_cfgs[1].persister.set_update_ret(ChannelMonitorUpdateStatus::InProgress);
expect_and_process_pending_htlcs_and_htlc_handling_failed(
@@ -2105,7 +2106,7 @@ fn monitor_update_claim_fail_no_response() {
let mut bs_updates = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, bs_updates.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], bs_updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &bs_updates.commitment_signed, false, false);
expect_payment_sent!(nodes[0], payment_preimage_1);
claim_payment(&nodes[0], &[&nodes[1]], payment_preimage_2);
@@ -2633,7 +2634,8 @@ fn do_update_fee_resend_test(deliver_update: bool, parallel_updates: bool) {
nodes[1].node.handle_revoke_and_ack(node_a_id, &as_second_raa);
check_added_monitors!(nodes[1], 1);
} else {
- commitment_signed_dance!(nodes[1], nodes[0], update_msgs.commitment_signed, false);
+ let commitment = &update_msgs.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
}
send_payment(&nodes[0], &[&nodes[1]], 1000);
@@ -2947,12 +2949,8 @@ fn do_test_reconnect_dup_htlc_claims(htlc_status: HTLCStatusAtDupClaim, second_f
);
expect_payment_sent(&nodes[0], payment_preimage, None, false, false);
if htlc_status == HTLCStatusAtDupClaim::Cleared {
- commitment_signed_dance!(
- nodes[0],
- nodes[1],
- &bs_updates.as_ref().unwrap().commitment_signed,
- false
- );
+ let commitment = &bs_updates.as_ref().unwrap().commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
expect_payment_path_successful!(nodes[0]);
}
} else {
@@ -2990,12 +2988,8 @@ fn do_test_reconnect_dup_htlc_claims(htlc_status: HTLCStatusAtDupClaim, second_f
expect_payment_sent(&nodes[0], payment_preimage, None, false, false);
}
if htlc_status != HTLCStatusAtDupClaim::Cleared {
- commitment_signed_dance!(
- nodes[0],
- nodes[1],
- &bs_updates.as_ref().unwrap().commitment_signed,
- false
- );
+ let commitment = &bs_updates.as_ref().unwrap().commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
expect_payment_path_successful!(nodes[0]);
}
}
@@ -3212,7 +3206,7 @@ fn double_temp_error() {
nodes[0].node.handle_update_fulfill_htlc(node_b_id, update_fulfill_2);
check_added_monitors!(nodes[0], 0);
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed_b2, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &commitment_signed_b2, false, false);
expect_payment_sent!(nodes[0], payment_preimage_2);
}
@@ -4139,7 +4133,8 @@ fn do_test_glacial_peer_cant_hang(hold_chan_a: bool) {
let mut bs_updates = get_htlc_update_msgs(&nodes[1], &node_a_id);
let mut update_fulfill = bs_updates.update_fulfill_htlcs.remove(0);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, update_fulfill);
- commitment_signed_dance!(nodes[0], nodes[1], bs_updates.commitment_signed, false);
+ let commitment = &bs_updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
expect_payment_sent!(&nodes[0], payment_preimage);
}
@@ -4208,7 +4203,8 @@ fn do_test_glacial_peer_cant_hang(hold_chan_a: bool) {
let update_fulfill = a_update[0].update_fulfill_htlcs[0].clone();
nodes[0].node.handle_update_fulfill_htlc(node_b_id, update_fulfill);
- commitment_signed_dance!(nodes[0], nodes[1], a_update[0].commitment_signed, false);
+ let commitment = &a_update[0].commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
expect_payment_sent(&nodes[0], payment_preimage, None, true, true);
expect_payment_forwarded!(nodes[1], nodes[0], nodes[2], Some(1000), false, false);
@@ -4519,7 +4515,7 @@ fn test_claim_to_closed_channel_blocks_forwarded_preimage_removal() {
chanmon_cfgs[1].persister.set_update_ret(ChannelMonitorUpdateStatus::InProgress);
nodes[1].node.handle_update_fulfill_htlc(node_c_id, updates.update_fulfill_htlcs.remove(0));
check_added_monitors!(nodes[1], 1);
- commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &updates.commitment_signed, false, false);
// At this point nodes[1] has the preimage and is waiting for the `ChannelMonitorUpdate` for
// channel A to hit disk. Until it does so, it shouldn't ever let the preimage dissapear from
diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs
index 6449205..58ca37d 100644
--- a/lightning/src/ln/channelmanager.rs
+++ b/lightning/src/ln/channelmanager.rs
@@ -18553,7 +18553,7 @@ mod tests {
let payment_event = SendEvent::from_event(ev);
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &payment_event.msgs[0]);
check_added_monitors!(nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], true);
let events = nodes[1].node.get_and_clear_pending_events();
let fail = HTLCHandlingFailureType::Receive { payment_hash: our_payment_hash };
@@ -18671,7 +18671,7 @@ mod tests {
let payment_event = SendEvent::from_event(ev);
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &payment_event.msgs[0]);
check_added_monitors!(nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
// We have to forward pending HTLCs twice - once tries to forward the payment forward (and
// fails), the second will process the resulting failure and fail the HTLC backward
expect_and_process_pending_htlcs(&nodes[1], true);
@@ -18720,7 +18720,7 @@ mod tests {
let payment_event = SendEvent::from_event(ev);
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &payment_event.msgs[0]);
check_added_monitors!(nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], true);
let events = nodes[1].node.get_and_clear_pending_events();
let fail = HTLCHandlingFailureType::Receive { payment_hash };
@@ -18769,7 +18769,7 @@ mod tests {
let payment_event = SendEvent::from_event(ev);
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &payment_event.msgs[0]);
check_added_monitors!(nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], true);
let events = nodes[1].node.get_and_clear_pending_events();
let fail = HTLCHandlingFailureType::Receive { payment_hash };
@@ -18829,7 +18829,7 @@ mod tests {
assert!(updates.update_fail_malformed_htlcs.is_empty());
assert!(updates.update_fee.is_none());
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &updates.commitment_signed, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(nodes[1].node.get_and_clear_pending_events(), &[HTLCHandlingFailureType::Receive { payment_hash: mismatch_payment_hash }]);
check_added_monitors(&nodes[1], 1);
diff --git a/lightning/src/ln/functional_test_utils.rs b/lightning/src/ln/functional_test_utils.rs
index 271d458..4d45dc6 100644
--- a/lightning/src/ln/functional_test_utils.rs
+++ b/lightning/src/ln/functional_test_utils.rs
@@ -2686,15 +2686,6 @@ macro_rules! commitment_signed_dance {
)
.is_none());
};
- ($node_a: expr, $node_b: expr, $commitment_signed: expr, $fail_backwards: expr) => {
- $crate::ln::functional_test_utils::do_commitment_signed_dance(
- &$node_a,
- &$node_b,
- &$commitment_signed,
- $fail_backwards,
- false,
- );
- };
}
/// Runs the commitment_signed dance after the initial commitment_signed is delivered through to
@@ -3499,7 +3490,8 @@ fn fail_payment_along_path<'a, 'b, 'c>(expected_path: &[&Node<'a, 'b, 'c>]) {
let is_first_hop = origin_node_id == prev_node.node.get_our_node_id();
// We do not want to fail backwards on the first hop. All other hops should fail backwards.
- commitment_signed_dance!(prev_node, node, updates.commitment_signed, !is_first_hop);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(prev_node, node, commitment, !is_first_hop, false);
}
}
@@ -3609,7 +3601,8 @@ pub fn do_pass_along_path<'a, 'b, 'c>(args: PassAlongPathArgs) -> Option<Event>
node.node.process_pending_htlc_forwards();
check_added_monitors(node, 1);
} else {
- commitment_signed_dance!(node, prev_node, payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(node, prev_node, commitment, false, false);
node.node.process_pending_htlc_forwards();
}
@@ -4003,7 +3996,8 @@ pub fn pass_claimed_payment_along_route(args: ClaimAlongRouteArgs) -> u64 {
);
check_added_monitors!($node, 0);
assert!($node.node.get_and_clear_pending_msg_events().is_empty());
- commitment_signed_dance!($node, $prev_node, next_msgs.as_ref().unwrap().1, false);
+ let commitment = &next_msgs.as_ref().unwrap().1;
+ do_commitment_signed_dance($node, $prev_node, commitment, false, false);
}};
}
macro_rules! mid_update_fulfill_dance {
@@ -4076,7 +4070,8 @@ pub fn pass_claimed_payment_along_route(args: ClaimAlongRouteArgs) -> u64 {
assert!($node.node.get_and_clear_pending_msg_events().is_empty());
None
};
- commitment_signed_dance!($node, $prev_node, next_msgs.as_ref().unwrap().1, false);
+ let commitment = &next_msgs.as_ref().unwrap().1;
+ do_commitment_signed_dance($node, $prev_node, commitment, false, false);
next_msgs = new_next_msgs;
}};
}
@@ -4264,12 +4259,8 @@ pub fn pass_failed_payment_back<'a, 'b, 'c>(
prev_node.node.get_our_node_id(),
&next_msgs.as_ref().unwrap().0,
);
- commitment_signed_dance!(
- node,
- prev_node,
- next_msgs.as_ref().unwrap().1,
- update_next_node
- );
+ let commitment = &next_msgs.as_ref().unwrap().1;
+ do_commitment_signed_dance(node, prev_node, commitment, update_next_node, false);
if !update_next_node {
expect_and_process_pending_htlcs_and_htlc_handling_failed(
&node,
@@ -4326,7 +4317,8 @@ pub fn pass_failed_payment_back<'a, 'b, 'c>(
);
check_added_monitors!(origin_node, 0);
assert!(origin_node.node.get_and_clear_pending_msg_events().is_empty());
- commitment_signed_dance!(origin_node, prev_node, next_msgs.as_ref().unwrap().1, false);
+ let commitment = &next_msgs.as_ref().unwrap().1;
+ do_commitment_signed_dance(origin_node, prev_node, commitment, false, false);
let events = origin_node.node.get_and_clear_pending_events();
if i == expected_paths.len() - 1 {
assert_eq!(events.len(), 2);
@@ -5366,12 +5358,8 @@ pub fn reconnect_nodes<'a, 'b, 'c, 'd>(args: ReconnectArgs<'a, 'b, 'c, 'd>) {
}
if !pending_responding_commitment_signed.0 {
- commitment_signed_dance!(
- node_a,
- node_b,
- commitment_update.commitment_signed,
- false
- );
+ let commitment = &commitment_update.commitment_signed;
+ do_commitment_signed_dance(node_a, node_b, commitment, false, false);
} else {
node_a.node.handle_commitment_signed_batch_test(
node_b_id,
@@ -5484,12 +5472,8 @@ pub fn reconnect_nodes<'a, 'b, 'c, 'd>(args: ReconnectArgs<'a, 'b, 'c, 'd>) {
}
if !pending_responding_commitment_signed.1 {
- commitment_signed_dance!(
- node_b,
- node_a,
- commitment_update.commitment_signed,
- false
- );
+ let commitment = &commitment_update.commitment_signed;
+ do_commitment_signed_dance(node_b, node_a, commitment, false, false);
} else {
node_b.node.handle_commitment_signed_batch_test(
node_a_id,
diff --git a/lightning/src/ln/functional_tests.rs b/lightning/src/ln/functional_tests.rs
index c161a96..9fd5470 100644
--- a/lightning/src/ln/functional_tests.rs
+++ b/lightning/src/ln/functional_tests.rs
@@ -486,7 +486,7 @@ fn do_test_fail_back_before_backwards_timeout(post_fail_back_action: PostFailBac
let msgs::CommitmentUpdate { update_fail_htlcs, commitment_signed, .. } = htlc_updates;
nodes[0].node.handle_update_fail_htlc(node_b_id, &update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &commitment_signed, false, false);
let conditions = PaymentFailedConditions::new().blamed_chan_closed(true);
expect_payment_failed_conditions(&nodes[0], payment_hash, false, conditions);
@@ -1334,7 +1334,7 @@ pub fn do_test_multiple_package_conflicts(p2a_anchor: bool) {
};
assert_eq!(updates.update_fulfill_htlcs.len(), 1);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, updates.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
expect_payment_sent!(nodes[0], preimage_2);
let mut events = nodes[1].node.get_and_clear_pending_events();
@@ -2379,7 +2379,7 @@ pub fn test_force_close_fail_back() {
};
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
@@ -3319,7 +3319,8 @@ fn do_test_htlc_timeout(send_partial_mpp: bool) {
assert!(htlc_timeout_updates.update_fee.is_none());
nodes[0].node.handle_update_fail_htlc(node_b_id, &htlc_timeout_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], htlc_timeout_updates.commitment_signed, false);
+ let commitment = &htlc_timeout_updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
// 100_000 msat as u64, followed by the height at which we failed back above
let mut expected_failure_data = (100_000 as u64).to_be_bytes().to_vec();
expected_failure_data.extend_from_slice(&(block_count - 1).to_be_bytes());
@@ -3374,7 +3375,8 @@ fn do_test_holding_cell_htlc_add_timeouts(forwarded_htlc: bool) {
let payment_event =
SendEvent::from_event(nodes[0].node.get_and_clear_pending_msg_events().remove(0));
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
}
check_added_monitors(&nodes[1], 0);
@@ -4130,7 +4132,7 @@ pub fn test_duplicate_payment_hash_one_failure_one_success() {
let _cs_updates = get_htlc_update_msgs!(nodes[2], node_b_id);
expect_payment_forwarded!(nodes[2], nodes[1], nodes[4], Some(196), false, false);
check_added_monitors(&nodes[2], 1);
- commitment_signed_dance!(nodes[2], nodes[4], &updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[2], &nodes[4], &updates.commitment_signed, false, false);
// Mine the commitment transaction on node C and get the HTLC success transactions it will
// generate (note that the ChannelMonitor doesn't differentiate between HTLCs once it has the
@@ -4207,7 +4209,7 @@ pub fn test_duplicate_payment_hash_one_failure_one_success() {
check_added_monitors(&nodes[1], 1);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, updates.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], &updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
expect_payment_sent(&nodes[0], our_payment_preimage, None, true, true);
}
@@ -4407,7 +4409,7 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
nodes[3].node.handle_update_fail_htlc(node_e_id, &four_removes.update_fail_htlcs[1]);
nodes[3].node.handle_update_fail_htlc(node_e_id, &four_removes.update_fail_htlcs[2]);
nodes[3].node.handle_update_fail_htlc(node_e_id, &four_removes.update_fail_htlcs[3]);
- commitment_signed_dance!(nodes[3], nodes[4], four_removes.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[3], &nodes[4], &four_removes.commitment_signed, false, false);
// Fail 3rd below-dust and 7th above-dust HTLCs
nodes[5].node.fail_htlc_backwards(&hash_2);
@@ -4424,7 +4426,7 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
let two_removes = get_htlc_update_msgs!(nodes[5], node_d_id);
nodes[3].node.handle_update_fail_htlc(node_f_id, &two_removes.update_fail_htlcs[0]);
nodes[3].node.handle_update_fail_htlc(node_f_id, &two_removes.update_fail_htlcs[1]);
- commitment_signed_dance!(nodes[3], nodes[5], two_removes.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[3], &nodes[5], &two_removes.commitment_signed, false, false);
let ds_prev_commitment_tx = get_local_commitment_txn!(nodes[3], chan_2_3.2);
@@ -4447,7 +4449,8 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
nodes[2].node.handle_update_fail_htlc(node_d_id, &six_removes.update_fail_htlcs[4]);
nodes[2].node.handle_update_fail_htlc(node_d_id, &six_removes.update_fail_htlcs[5]);
if deliver_last_raa {
- commitment_signed_dance!(nodes[2], nodes[3], six_removes.commitment_signed, false);
+ let commitment = &six_removes.commitment_signed;
+ do_commitment_signed_dance(&nodes[2], &nodes[3], commitment, false, false);
} else {
let cs = six_removes.commitment_signed;
commitment_signed_dance!(nodes[2], nodes[3], cs, false, true, false, true);
@@ -5297,7 +5300,7 @@ pub fn test_free_and_fail_holding_cell_htlcs() {
nodes[1].node.handle_revoke_and_ack(node_a_id, &raa);
check_added_monitors(&nodes[1], 1);
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
nodes[1].node.process_pending_htlc_forwards();
let events = nodes[1].node.get_and_clear_pending_events();
assert_eq!(events.len(), 1);
@@ -5385,7 +5388,7 @@ pub fn test_fail_holding_cell_htlc_upon_free_multihop() {
};
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
check_added_monitors(&nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
chan_stat = get_channel_value_stat!(nodes[1], nodes[2], chan_1_2.2);
@@ -5491,7 +5494,7 @@ pub fn test_update_fulfill_htlc_bolt2_after_malformed_htlc_message_must_forward_
};
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
check_added_monitors(&nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
let mut events_2 = nodes[1].node.get_and_clear_pending_msg_events();
assert_eq!(events_2.len(), 1);
@@ -5602,7 +5605,7 @@ pub fn test_channel_failed_after_message_with_badonion_node_perm_bits_set() {
};
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
check_added_monitors(&nodes[1], 1);
payment_event = SendEvent::from_node(&nodes[1]);
@@ -5945,7 +5948,7 @@ pub fn test_check_htlc_underpaying() {
assert_eq!(events.len(), 1);
let mut payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
// Note that we first have to wait a random delay before processing the receipt of the HTLC,
// and then will wait a second random delay before failing the HTLC back:
@@ -6935,7 +6938,7 @@ pub fn test_onion_value_mpp_set_calculation() {
node.node.handle_update_add_htlc(prev_node.node.get_our_node_id(), &payment_event.msgs[0]);
check_added_monitors(&node, 0);
- commitment_signed_dance!(node, prev_node, payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&node, &prev_node, &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&node, false);
if idx == 0 {
@@ -7108,7 +7111,8 @@ pub fn test_preimage_storage() {
let mut events = nodes[0].node.get_and_clear_pending_msg_events();
let mut payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
}
// Note that after leaving the above scope we have no knowledge of any arguments or return
// values from previous calls.
@@ -7153,7 +7157,8 @@ pub fn test_bad_secret_hash() {
let mut events = nodes[0].node.get_and_clear_pending_msg_events();
let payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
// We have to forward pending HTLCs once to process the receipt of the HTLC and then
// again to process the pending backwards-failure of the HTLC
@@ -7172,7 +7177,13 @@ pub fn test_bad_secret_hash() {
updates: msgs::CommitmentUpdate { update_fail_htlcs, commitment_signed, .. },
} => {
nodes[0].node.handle_update_fail_htlc(node_b_id, &update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed, false);
+ do_commitment_signed_dance(
+ &nodes[0],
+ &nodes[1],
+ &commitment_signed,
+ false,
+ false,
+ );
},
_ => panic!("Unexpected event"),
}
@@ -8167,7 +8178,8 @@ fn do_test_dup_htlc_second_rejected(test_for_second_fail_panic: bool) {
assert_eq!(events.len(), 1);
let mut payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
}
expect_and_process_pending_htlcs(&nodes[1], false);
expect_payment_claimable!(nodes[1], our_payment_hash, our_payment_secret, 10_000);
@@ -8182,7 +8194,8 @@ fn do_test_dup_htlc_second_rejected(test_for_second_fail_panic: bool) {
assert_eq!(events.len(), 1);
let mut payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
// At this point, nodes[1] would notice it has too much value for the payment. It will
// assume the second is a privacy attack (no longer particularly relevant
// post-payment_secrets) and fail back the new HTLC. Previously, it'd also have failed back
@@ -8212,7 +8225,8 @@ fn do_test_dup_htlc_second_rejected(test_for_second_fail_panic: bool) {
nodes[0].node.handle_update_fail_htlc(node_b_id, &fail_updates_1.update_fail_htlcs[0]);
nodes[0].node.handle_update_fail_htlc(node_b_id, &fail_updates_1.update_fail_htlcs[1]);
- commitment_signed_dance!(nodes[0], nodes[1], fail_updates_1.commitment_signed, false);
+ let commitment = &fail_updates_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
let failure_events = nodes[0].node.get_and_clear_pending_events();
assert_eq!(failure_events.len(), 4);
@@ -8243,7 +8257,8 @@ fn do_test_dup_htlc_second_rejected(test_for_second_fail_panic: bool) {
check_added_monitors(&nodes[1], 1);
let fail_updates_1 = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &fail_updates_1.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], fail_updates_1.commitment_signed, false);
+ let commitment = &fail_updates_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
let conditions = PaymentFailedConditions::new();
expect_payment_failed_conditions(&nodes[0], our_payment_hash, true, conditions);
@@ -8347,7 +8362,8 @@ pub fn test_inconsistent_mpp_params() {
let payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[2].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[0], payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[2], &nodes[0], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[2], false);
check_added_monitors(&nodes[2], 1);
@@ -8374,7 +8390,8 @@ pub fn test_inconsistent_mpp_params() {
let fail_updates_1 = get_htlc_update_msgs!(nodes[3], node_c_id);
nodes[2].node.handle_update_fail_htlc(node_d_id, &fail_updates_1.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[2], nodes[3], fail_updates_1.commitment_signed, false);
+ let commitment = &fail_updates_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[2], &nodes[3], commitment, false, false);
expect_and_process_pending_htlcs_and_htlc_handling_failed(
&nodes[2],
@@ -8384,7 +8401,8 @@ pub fn test_inconsistent_mpp_params() {
let fail_updates_2 = get_htlc_update_msgs!(nodes[2], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_c_id, &fail_updates_2.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[2], fail_updates_2.commitment_signed, false);
+ let commitment = &fail_updates_2.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[2], commitment, false, false);
let conditions = PaymentFailedConditions::new().mpp_parts_remain();
expect_payment_failed_conditions(&nodes[0], hash, true, conditions);
@@ -8717,7 +8735,8 @@ fn do_test_max_dust_htlc_exposure(
assert_eq!(events.len(), 1);
let payment_event = SendEvent::from_event(events.remove(0));
nodes[0].node.handle_update_add_htlc(node_b_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[0], false);
expect_htlc_handling_failed_destinations!(
nodes[0].node.get_and_clear_pending_events(),
@@ -8984,7 +9003,7 @@ pub fn test_nondust_htlc_excess_fees_are_dust() {
assert_eq!(events.len(), 1);
let payment_event = SendEvent::from_event(events.remove(0));
nodes[0].node.handle_update_add_htlc(node_b_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[0], false);
expect_htlc_handling_failed_destinations!(
nodes[0].node.get_and_clear_pending_events(),
@@ -9003,7 +9022,7 @@ pub fn test_nondust_htlc_excess_fees_are_dust() {
assert!(updates.update_fail_malformed_htlcs.is_empty());
assert!(updates.update_fee.is_none());
nodes[1].node.handle_update_fail_htlc(node_a_id, &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &updates.commitment_signed, false, false);
expect_payment_failed!(nodes[1], payment_hash, false);
assert_eq!(nodes[0].node.list_channels().len(), 1);
@@ -9048,7 +9067,7 @@ pub fn test_nondust_htlc_excess_fees_are_dust() {
let fail = get_htlc_update_msgs(&nodes[0], &node_c_id);
nodes[2].node.handle_update_fail_htlc(node_a_id, &fail.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[2], nodes[0], fail.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[2], &nodes[0], &fail.commitment_signed, false, false);
let conditions = PaymentFailedConditions::new();
expect_payment_failed_conditions(&nodes[2], payment_hash, false, conditions);
}
@@ -9160,7 +9179,7 @@ fn do_test_nondust_htlc_fees_dust_exposure_delta(features: ChannelTypeFeatures)
assert_eq!(events.len(), 1);
let payment_event = SendEvent::from_event(events.remove(0));
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
nodes[1].node.get_and_clear_pending_events(),
@@ -9179,7 +9198,7 @@ fn do_test_nondust_htlc_fees_dust_exposure_delta(features: ChannelTypeFeatures)
assert!(updates.update_fail_malformed_htlcs.is_empty());
assert!(updates.update_fee.is_none());
nodes[0].node.handle_update_fail_htlc(node_b_id, &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
expect_payment_failed!(nodes[0], payment_hash, false);
assert_eq!(nodes[0].node.list_channels().len(), 1);
@@ -9324,7 +9343,7 @@ fn do_payment_with_custom_min_final_cltv_expiry(valid_delta: bool, use_user_hash
assert_eq!(events.len(), 1);
let mut payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
if valid_delta {
expect_and_process_pending_htlcs(&nodes[1], false);
@@ -9785,7 +9804,8 @@ fn do_test_multi_post_event_actions(do_reload: bool) {
nodes[0]
.node
.handle_update_fulfill_htlc(dest_node_id, htlc_fulfill.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[*dest], htlc_fulfill.commitment_signed, false);
+ let commitment = &htlc_fulfill.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[*dest], commitment, false, false);
check_added_monitors(&nodes[0], 0);
}
diff --git a/lightning/src/ln/htlc_reserve_unit_tests.rs b/lightning/src/ln/htlc_reserve_unit_tests.rs
index dc5d07c..4187a52 100644
--- a/lightning/src/ln/htlc_reserve_unit_tests.rs
+++ b/lightning/src/ln/htlc_reserve_unit_tests.rs
@@ -347,7 +347,8 @@ pub fn test_channel_reserve_holding_cell_htlcs() {
let ref payment_event_11 = expect_forward!(nodes[1]);
nodes[2].node.handle_update_add_htlc(node_b_id, &payment_event_11.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[1], payment_event_11.commitment_msg, false);
+ let commitment = &payment_event_11.commitment_msg;
+ do_commitment_signed_dance(&nodes[2], &nodes[1], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[2], false);
expect_payment_claimable!(nodes[2], our_payment_hash_1, our_payment_secret_1, recv_value_1);
@@ -356,7 +357,8 @@ pub fn test_channel_reserve_holding_cell_htlcs() {
assert_eq!(commitment_update_2.update_add_htlcs.len(), 2);
nodes[1].node.handle_update_add_htlc(node_a_id, &commitment_update_2.update_add_htlcs[0]);
nodes[1].node.handle_update_add_htlc(node_a_id, &commitment_update_2.update_add_htlcs[1]);
- commitment_signed_dance!(nodes[1], nodes[0], &commitment_update_2.commitment_signed, false);
+ let commitment = &commitment_update_2.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
let ref payment_event_3 = expect_forward!(nodes[1]);
@@ -364,7 +366,7 @@ pub fn test_channel_reserve_holding_cell_htlcs() {
nodes[2].node.handle_update_add_htlc(node_b_id, &payment_event_3.msgs[0]);
nodes[2].node.handle_update_add_htlc(node_b_id, &payment_event_3.msgs[1]);
- commitment_signed_dance!(nodes[2], nodes[1], &payment_event_3.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[2], &nodes[1], &payment_event_3.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[2], false);
let events = nodes[2].node.get_and_clear_pending_events();
@@ -672,7 +674,7 @@ pub fn holding_cell_htlc_counting() {
assert_eq!(payment_event.node_id, node_b_id);
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
// We have to forward pending HTLCs twice - once tries to forward the payment forward (and
// fails), the second will process the resulting failure and fail the HTLC backward.
expect_and_process_pending_htlcs(&nodes[1], true);
@@ -1470,7 +1472,8 @@ pub fn test_update_add_htlc_bolt2_sender_exceed_max_htlc_num_and_htlc_id_increme
};
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
check_added_monitors(&nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_payment_claimable!(nodes[1], our_payment_hash, our_payment_secret, 100000);
diff --git a/lightning/src/ln/monitor_tests.rs b/lightning/src/ln/monitor_tests.rs
index 5a28758..959a47d 100644
--- a/lightning/src/ln/monitor_tests.rs
+++ b/lightning/src/ln/monitor_tests.rs
@@ -16,7 +16,7 @@ use crate::chain::Watch;
use crate::chain::channelmonitor::{Balance, BalanceSource, ChannelMonitorUpdateStep, HolderCommitmentTransactionBalance, ANTI_REORG_DELAY, ARCHIVAL_DELAY_BLOCKS, COUNTERPARTY_CLAIMABLE_WITHIN_BLOCKS_PINNABLE, LATENCY_GRACE_PERIOD_BLOCKS};
use crate::chain::transaction::OutPoint;
use crate::chain::chaininterface::{ConfirmationTarget, LowerBoundedFeeEstimator, compute_feerate_sat_per_1000_weight};
-use crate::events::bump_transaction::{BumpTransactionEvent};
+use crate::events::bump_transaction::BumpTransactionEvent;
use crate::events::{Event, ClosureReason, HTLCHandlingFailureType};
use crate::ln::channel;
use crate::ln::types::ChannelId;
@@ -74,7 +74,7 @@ fn chanmon_fail_from_stale_commitment() {
let updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &updates.commitment_signed, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
get_htlc_update_msgs!(nodes[1], nodes[2].node.get_our_node_id());
@@ -889,7 +889,7 @@ fn do_test_balances_on_local_commitment_htlcs(keyed_anchors: bool, p2a_anchor: b
let updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &updates.commitment_signed, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_payment_claimable!(nodes[1], payment_hash, payment_secret, 10_000_000);
@@ -901,7 +901,7 @@ fn do_test_balances_on_local_commitment_htlcs(keyed_anchors: bool, p2a_anchor: b
let updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &updates.commitment_signed, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_payment_claimable!(nodes[1], payment_hash_2, payment_secret_2, 20_000_000);
diff --git a/lightning/src/ln/onion_route_tests.rs b/lightning/src/ln/onion_route_tests.rs
index f4cfb9e..d7ed1d1 100644
--- a/lightning/src/ln/onion_route_tests.rs
+++ b/lightning/src/ln/onion_route_tests.rs
@@ -219,7 +219,8 @@ fn run_onion_failure_test_with_fail_intercept<F1, F2, F3>(
// 2 => 1
nodes[1].node.handle_update_fail_htlc(nodes[2].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[1], nodes[2], update_2_1.commitment_signed, true);
+ let commitment = &update_2_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[2], commitment, true, false);
// backward fail on 1
let update_1_0 = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());
@@ -2288,7 +2289,7 @@ fn do_test_fail_htlc_backwards_with_reason(failure_code: FailureCode) {
let mut events = nodes[0].node.get_and_clear_pending_msg_events();
let mut payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_payment_claimable!(nodes[1], payment_hash, payment_secret, payment_amount);
@@ -2472,7 +2473,7 @@ fn test_phantom_onion_hmac_failure() {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1.commitment_signed, false, false);
// Ensure the payment fails with the expected error.
let mut fail_conditions = PaymentFailedConditions::new()
@@ -2573,7 +2574,7 @@ fn test_phantom_invalid_onion_payload() {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1.commitment_signed, false, false);
// Ensure the payment fails with the expected error.
let error_data = Vec::new();
@@ -2639,7 +2640,7 @@ fn test_phantom_final_incorrect_cltv_expiry() {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1.commitment_signed, false, false);
// Ensure the payment fails with the expected error.
let expected_cltv: u32 = 80;
@@ -2693,7 +2694,7 @@ fn test_phantom_failure_too_low_cltv() {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1.commitment_signed, false, false);
// Ensure the payment fails with the expected error.
let mut error_data = recv_value_msat.to_be_bytes().to_vec();
@@ -2747,7 +2748,7 @@ fn test_phantom_failure_modified_cltv() {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1.commitment_signed, false, false);
// Ensure the payment fails with the expected error.
let mut err_data = Vec::new();
@@ -2800,7 +2801,7 @@ fn test_phantom_failure_expires_too_soon() {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1.commitment_signed, false, false);
// Ensure the payment fails with the expected error.
let err_data = 0u16.to_be_bytes();
@@ -2853,7 +2854,7 @@ fn test_phantom_failure_too_low_recv_amt() {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1.commitment_signed, false, false);
// Ensure the payment fails with the expected error.
let mut error_data = bad_recv_amt_msat.to_be_bytes().to_vec();
@@ -2919,7 +2920,7 @@ fn do_test_phantom_dust_exposure_failure(multiplier_dust_limit: bool) {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1.commitment_signed, false, false);
// Ensure the payment fails with the expected error.
let err_data = 0u16.to_be_bytes();
@@ -2983,7 +2984,7 @@ fn test_phantom_failure_reject_payment() {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1.commitment_signed, false, false);
// Ensure the payment fails with the expected error.
let mut error_data = recv_amt_msat.to_be_bytes().to_vec();
diff --git a/lightning/src/ln/payment_tests.rs b/lightning/src/ln/payment_tests.rs
index 9eb8517..f833127 100644
--- a/lightning/src/ln/payment_tests.rs
+++ b/lightning/src/ln/payment_tests.rs
@@ -157,7 +157,7 @@ fn mpp_retry() {
let second_msgs = remove_first_msg_event_to_node(&node_c_id, &mut events);
let send_event = SendEvent::from_event(second_msgs);
nodes[2].node.handle_update_add_htlc(node_a_id, &send_event.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[0], &send_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[2], &nodes[0], &send_event.commitment_msg, false, false);
// Attempt to forward the payment and complete the 2nd path's failure.
expect_and_process_pending_htlcs(&nodes[2], true);
@@ -171,7 +171,7 @@ fn mpp_retry() {
assert!(htlc_updates.update_fail_malformed_htlcs.is_empty());
check_added_monitors!(nodes[2], 1);
nodes[0].node.handle_update_fail_htlc(node_c_id, &htlc_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[2], htlc_updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[2], &htlc_updates.commitment_signed, false, false);
let mut events = nodes[0].node.get_and_clear_pending_events();
let conditions = PaymentFailedConditions::new().mpp_parts_remain();
@@ -275,7 +275,7 @@ fn mpp_retry_overpay() {
let fail_path_msgs_1 = remove_first_msg_event_to_node(&node_c_id, &mut events);
let send_event = SendEvent::from_event(fail_path_msgs_1);
nodes[2].node.handle_update_add_htlc(node_a_id, &send_event.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[0], &send_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[2], &nodes[0], &send_event.commitment_msg, false, false);
// Attempt to forward the payment and complete the 2nd path's failure.
expect_and_process_pending_htlcs(&nodes[2], true);
@@ -290,7 +290,7 @@ fn mpp_retry_overpay() {
assert!(htlc_updates.update_fail_malformed_htlcs.is_empty());
check_added_monitors!(nodes[2], 1);
nodes[0].node.handle_update_fail_htlc(node_c_id, &htlc_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[2], htlc_updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[2], &htlc_updates.commitment_signed, false, false);
let mut events = nodes[0].node.get_and_clear_pending_events();
let fail_conditions = PaymentFailedConditions::new().mpp_parts_remain();
expect_payment_failed_conditions_event(events, hash, false, fail_conditions);
@@ -386,7 +386,8 @@ fn do_mpp_receive_timeout(send_partial_mpp: bool) {
nodes[1].node.handle_update_fail_htlc(node_d_id, &htlc_fail_updates.update_fail_htlcs[0]);
check_added_monitors!(nodes[3], 1);
- commitment_signed_dance!(nodes[1], nodes[3], htlc_fail_updates.commitment_signed, false);
+ let commitment = &htlc_fail_updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[3], commitment, false, false);
// Failed HTLC from node 1 -> 0
let fail_type =
@@ -397,7 +398,8 @@ fn do_mpp_receive_timeout(send_partial_mpp: bool) {
assert_eq!(htlc_fail_updates.update_fail_htlcs.len(), 1);
nodes[0].node.handle_update_fail_htlc(node_b_id, &htlc_fail_updates.update_fail_htlcs[0]);
check_added_monitors!(nodes[1], 1);
- commitment_signed_dance!(nodes[0], nodes[1], htlc_fail_updates.commitment_signed, false);
+ let commitment = &htlc_fail_updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
let mut conditions = PaymentFailedConditions::new()
.mpp_parts_remain()
@@ -713,7 +715,8 @@ fn test_reject_mpp_keysend_htlc_mismatching_secret() {
// Fail back along nodes[2]
let update_fail_0 = get_htlc_update_msgs!(&nodes[3], &node_c_id);
nodes[2].node.handle_update_fail_htlc(node_d_id, &update_fail_0.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[2], nodes[3], update_fail_0.commitment_signed, false);
+ let commitment = &update_fail_0.commitment_signed;
+ do_commitment_signed_dance(&nodes[2], &nodes[3], commitment, false, false);
let fail_type =
HTLCHandlingFailureType::Forward { node_id: Some(node_d_id), channel_id: chan_4_chan_id };
@@ -722,7 +725,8 @@ fn test_reject_mpp_keysend_htlc_mismatching_secret() {
let update_fail_1 = get_htlc_update_msgs!(nodes[2], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_c_id, &update_fail_1.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[2], update_fail_1.commitment_signed, false);
+ let commitment = &update_fail_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[2], commitment, false, false);
expect_payment_failed_conditions(&nodes[0], payment_hash, true, PaymentFailedConditions::new());
}
@@ -903,7 +907,7 @@ fn do_retry_with_no_persist(confirm_before_reload: bool) {
let fulfill_msg = htlc_fulfill.update_fulfill_htlcs.remove(0);
nodes[1].node.handle_update_fulfill_htlc(node_c_id, fulfill_msg);
check_added_monitors!(nodes[1], 1);
- commitment_signed_dance!(nodes[1], nodes[2], htlc_fulfill.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &htlc_fulfill.commitment_signed, false, false);
expect_payment_forwarded!(nodes[1], nodes[0], nodes[2], None, true, false);
if confirm_before_reload {
@@ -1114,7 +1118,8 @@ fn do_test_completed_payment_not_retryable_on_reload(use_dust: bool) {
let htlc_fulfill_updates = get_htlc_update_msgs!(nodes[2], node_b_id);
nodes[1].node.handle_update_fail_htlc(node_c_id, &htlc_fulfill_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[2], htlc_fulfill_updates.commitment_signed, false);
+ let commitment = &htlc_fulfill_updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[2], commitment, false, false);
expect_and_process_pending_htlcs_and_htlc_handling_failed(
&nodes[1],
&[HTLCHandlingFailureType::Forward { node_id: Some(node_c_id), channel_id: chan_id_2 }],
@@ -1464,7 +1469,8 @@ fn test_fulfill_restart_failure() {
let htlc_fail_updates = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &htlc_fail_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], htlc_fail_updates.commitment_signed, false);
+ let commitment = &htlc_fail_updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
// nodes[0] shouldn't generate any events here, while it just got a payment failure completion
// it had already considered the payment fulfilled, and now they just got free money.
assert!(nodes[0].node.get_and_clear_pending_events().is_empty());
@@ -1604,7 +1610,7 @@ fn failed_probe_yields_event() {
let probe_event = SendEvent::from_commitment_update(node_b_id, channel_id, updates);
nodes[1].node.handle_update_add_htlc(node_a_id, &probe_event.msgs[0]);
check_added_monitors!(nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], probe_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &probe_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], true);
// node[0] <- update_fail_htlcs -- node[1]
@@ -1613,7 +1619,7 @@ fn failed_probe_yields_event() {
let _events = nodes[1].node.get_and_clear_pending_events();
nodes[0].node.handle_update_fail_htlc(node_b_id, &updates.update_fail_htlcs[0]);
check_added_monitors!(nodes[0], 0);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
let mut events = nodes[0].node.get_and_clear_pending_events();
assert_eq!(events.len(), 1);
@@ -1655,7 +1661,7 @@ fn onchain_failed_probe_yields_event() {
let probe_event = SendEvent::from_commitment_update(node_b_id, chan_id, updates);
nodes[1].node.handle_update_add_htlc(node_a_id, &probe_event.msgs[0]);
check_added_monitors!(nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], probe_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &probe_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
check_added_monitors!(nodes[1], 1);
@@ -2306,7 +2312,8 @@ fn do_test_intercepted_payment(test: InterceptTest) {
assert!(update_fail.update_fail_htlcs.len() == 1);
let fail_msg = update_fail.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(node_b_id, &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_fail.commitment_signed, false);
+ let commitment = &update_fail.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
// Ensure the payment fails with the expected error.
let fail_conditions = PaymentFailedConditions::new()
@@ -2394,7 +2401,8 @@ fn do_test_intercepted_payment(test: InterceptTest) {
assert!(htlc_fail.update_fee.is_none());
nodes[0].node.handle_update_fail_htlc(node_b_id, &htlc_fail.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], htlc_fail.commitment_signed, false);
+ let commitment = &htlc_fail.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
let reason = LocalHTLCFailureReason::TemporaryNodeFailure;
expect_payment_failed!(nodes[0], hash, false, reason, []);
@@ -2657,7 +2665,8 @@ fn do_automatic_retries(test: AutoRetry) {
assert!(update_1.update_fail_htlcs.len() == 1);
let fail_msg = update_1.update_fail_htlcs[0].clone();
nodes[0].node.handle_update_fail_htlc(node_b_id, &fail_msg);
- commitment_signed_dance!(nodes[0], nodes[1], update_1.commitment_signed, false);
+ let commitment = &update_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
// Ensure the attempt fails
let mut events = nodes[0].node.get_and_clear_pending_events();
@@ -3197,7 +3206,7 @@ fn fails_paying_after_rejected_by_payee() {
let mut payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
check_added_monitors!(nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_payment_claimable!(&nodes[1], payment_hash, payment_secret, amt_msat);
@@ -3577,7 +3586,8 @@ fn no_extra_retries_on_back_to_back_fail() {
assert_eq!(bs_fail_update.update_fail_htlcs.len(), 2);
nodes[0].node.handle_update_fail_htlc(node_b_id, &bs_fail_update.update_fail_htlcs[0]);
nodes[0].node.handle_update_fail_htlc(node_b_id, &bs_fail_update.update_fail_htlcs[1]);
- commitment_signed_dance!(nodes[0], nodes[1], bs_fail_update.commitment_signed, false);
+ let commitment = &bs_fail_update.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
// At this point A has sent two HTLCs which both failed due to lack of fee. It now has two
// pending `PaymentPathFailed` events, one with `all_paths_failed` unset, and the second
@@ -3792,7 +3802,8 @@ fn test_simple_partial_retry() {
check_added_monitors!(nodes[1], 1);
nodes[1].node.handle_update_add_htlc(node_a_id, &second_htlc_updates.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], second_htlc_updates.commitment_msg, false);
+ let commitment = &second_htlc_updates.commitment_msg;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
let next_hop_failure =
@@ -3808,14 +3819,15 @@ fn test_simple_partial_retry() {
assert_eq!(msg_events.len(), 2);
let mut handle_update_htlcs = |event: MessageSendEvent| {
if let MessageSendEvent::UpdateHTLCs { node_id, channel_id: _, updates } = event {
+ let commitment = &updates.commitment_signed;
if node_id == node_a_id {
assert_eq!(updates.update_fail_htlcs.len(), 1);
nodes[0].node.handle_update_fail_htlc(node_b_id, &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], &updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
} else if node_id == node_c_id {
assert_eq!(updates.update_add_htlcs.len(), 1);
nodes[2].node.handle_update_add_htlc(node_b_id, &updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[2], nodes[1], &updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[2], &nodes[1], commitment, false, false);
} else {
panic!("Unexpected node_id for UpdateHTLCs send");
}
@@ -3853,7 +3865,8 @@ fn test_simple_partial_retry() {
let bs_second_forward = get_htlc_update_msgs!(nodes[1], node_c_id);
nodes[2].node.handle_update_add_htlc(node_b_id, &bs_second_forward.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[2], nodes[1], &bs_second_forward.commitment_signed, false);
+ let commitment = &bs_second_forward.commitment_signed;
+ do_commitment_signed_dance(&nodes[2], &nodes[1], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[2], false);
expect_payment_claimable!(nodes[2], payment_hash, payment_secret, amt_msat);
@@ -4116,7 +4129,7 @@ fn do_no_missing_sent_on_reload(persist_manager_with_payment: bool, at_midpoint:
} else {
let mut fulfill = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, fulfill.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], fulfill.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &fulfill.commitment_signed, false, false);
// Ignore the PaymentSent event which is now pending on nodes[0] - if we were to handle it we'd
// be expected to ignore the eventual conflicting PaymentFailed, but by not looking at it we
// expect to get the PaymentSent again later.
@@ -4446,7 +4459,7 @@ fn do_test_custom_tlvs(spontaneous: bool, even_tlvs: bool, known_tlvs: bool) {
nodes[1].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
check_added_monitors!(&nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
let events = nodes[1].node.get_and_clear_pending_events();
@@ -4522,7 +4535,7 @@ fn test_retry_custom_tlvs() {
let msgs::CommitmentUpdate { update_add_htlcs, commitment_signed, .. } = htlc_updates;
assert_eq!(update_add_htlcs.len(), 1);
nodes[1].node.handle_update_add_htlc(node_a_id, &update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &commitment_signed, false, false);
// Attempt to forward the payment and complete the path's failure.
expect_and_process_pending_htlcs(&nodes[1], true);
@@ -4535,7 +4548,7 @@ fn test_retry_custom_tlvs() {
let msgs::CommitmentUpdate { update_fail_htlcs, commitment_signed, .. } = htlc_updates;
assert_eq!(update_fail_htlcs.len(), 1);
nodes[0].node.handle_update_fail_htlc(node_b_id, &update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &commitment_signed, false, false);
let mut events = nodes[0].node.get_and_clear_pending_events();
let conditions = PaymentFailedConditions::new().mpp_parts_remain();
@@ -4682,7 +4695,8 @@ fn do_test_custom_tlvs_consistency(
let payment_event = SendEvent::from_event(events.pop().unwrap());
nodes[2].node.handle_update_add_htlc(node_a_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[0], payment_event.commitment_msg, false);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[2], &nodes[0], commitment, false, false);
expect_and_process_pending_htlcs(&nodes[2], false);
check_added_monitors!(nodes[2], 1);
@@ -4725,7 +4739,8 @@ fn do_test_custom_tlvs_consistency(
let fail_updates_1 = get_htlc_update_msgs!(nodes[3], node_c_id);
nodes[2].node.handle_update_fail_htlc(node_d_id, &fail_updates_1.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[2], nodes[3], fail_updates_1.commitment_signed, false);
+ let commitment = &fail_updates_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[2], &nodes[3], commitment, false, false);
let fail =
HTLCHandlingFailureType::Forward { node_id: Some(node_d_id), channel_id: chan_2_3.2 };
@@ -4734,7 +4749,8 @@ fn do_test_custom_tlvs_consistency(
let fail_updates_2 = get_htlc_update_msgs!(nodes[2], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_c_id, &fail_updates_2.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[2], fail_updates_2.commitment_signed, false);
+ let commitment = &fail_updates_2.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[2], commitment, false, false);
let conditions = PaymentFailedConditions::new().mpp_parts_remain();
expect_payment_failed_conditions(&nodes[0], hash, true, conditions);
@@ -4993,7 +5009,8 @@ fn test_htlc_forward_considers_anchor_outputs_value() {
if let MessageSendEvent::UpdateHTLCs { updates, .. } = events.pop().unwrap() {
nodes[1].node.handle_update_add_htlc(node_a_id, &updates.update_add_htlcs[0]);
check_added_monitors(&nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[0], &updates.commitment_signed, false);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
updates.update_add_htlcs[0].clone()
} else {
panic!("Unexpected event");
@@ -5011,7 +5028,7 @@ fn test_htlc_forward_considers_anchor_outputs_value() {
if let MessageSendEvent::UpdateHTLCs { updates, .. } = events.pop().unwrap() {
nodes[0].node.handle_update_fail_htlc(node_b_id, &updates.update_fail_htlcs[0]);
check_added_monitors(&nodes[0], 0);
- commitment_signed_dance!(nodes[0], nodes[1], &updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
} else {
panic!("Unexpected event");
}
@@ -5149,7 +5166,7 @@ fn test_non_strict_forwarding() {
assert_eq!(msg_events.len(), 1);
let mut send_event = SendEvent::from_event(msg_events.remove(0));
nodes[1].node.handle_update_add_htlc(node_a_id, &send_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &send_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &send_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
check_added_monitors!(nodes[1], 1);
@@ -5163,7 +5180,7 @@ fn test_non_strict_forwarding() {
let exp_id = if i < 2 { channel_id_1 } else { channel_id_2 };
assert_eq!(send_event.msgs[0].channel_id, exp_id);
nodes[2].node.handle_update_add_htlc(node_b_id, &send_event.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[1], &send_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[2], &nodes[1], &send_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[2], false);
let events = nodes[2].node.get_and_clear_pending_events();
@@ -5189,7 +5206,7 @@ fn test_non_strict_forwarding() {
assert_eq!(msg_events.len(), 1);
let mut send_event = SendEvent::from_event(msg_events.remove(0));
nodes[1].node.handle_update_add_htlc(node_a_id, &send_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &send_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &send_event.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[1], true);
check_added_monitors!(nodes[1], 1);
@@ -5207,7 +5224,7 @@ fn test_non_strict_forwarding() {
let updates = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
let events = nodes[0].node.get_and_clear_pending_events();
let conditions = PaymentFailedConditions::new().blamed_scid(routed_scid);
expect_payment_failed_conditions_event(events, payment_hash, false, conditions);
diff --git a/lightning/src/ln/priv_short_conf_tests.rs b/lightning/src/ln/priv_short_conf_tests.rs
index f19ca89..685b628 100644
--- a/lightning/src/ln/priv_short_conf_tests.rs
+++ b/lightning/src/ln/priv_short_conf_tests.rs
@@ -623,7 +623,7 @@ fn test_inbound_scid_privacy() {
let mut updates = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, false, false);
expect_payment_failed_conditions(
&nodes[0],
@@ -976,7 +976,7 @@ fn test_0conf_channel_with_async_monitor() {
let bs_send = SendEvent::from_node(&nodes[1]);
nodes[2].node.handle_update_add_htlc(node_b_id, &bs_send.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[1], bs_send.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[2], &nodes[1], &bs_send.commitment_msg, false, false);
expect_and_process_pending_htlcs(&nodes[2], false);
expect_payment_claimable!(nodes[2], payment_hash, payment_secret, 1_000_000);
claim_payment(&nodes[0], &[&nodes[1], &nodes[2]], payment_preimage);
diff --git a/lightning/src/ln/quiescence_tests.rs b/lightning/src/ln/quiescence_tests.rs
index 7a5d35b..08a007b 100644
--- a/lightning/src/ln/quiescence_tests.rs
+++ b/lightning/src/ln/quiescence_tests.rs
@@ -387,7 +387,7 @@ fn quiescence_updates_go_to_holding_cell(fail_htlc: bool) {
let update_add = get_htlc_update_msgs!(&nodes[0], node_id_1);
nodes[1].node.handle_update_add_htlc(node_id_0, &update_add.update_add_htlcs[0]);
- commitment_signed_dance!(&nodes[1], &nodes[0], update_add.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_add.commitment_signed, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_payment_claimable!(nodes[1], payment_hash2, payment_secret2, payment_amount);
@@ -422,7 +422,7 @@ fn quiescence_updates_go_to_holding_cell(fail_htlc: bool) {
expect_payment_claimed!(nodes[1], payment_hash2, payment_amount);
nodes[0].node.handle_update_fulfill_htlc(node_id_1, update.update_fulfill_htlcs.remove(0));
}
- commitment_signed_dance!(&nodes[0], &nodes[1], update.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update.commitment_signed, false, false);
// The payment from nodes[0] should now be seen as failed/successful.
let events = nodes[0].node.get_and_clear_pending_events();
@@ -455,7 +455,7 @@ fn quiescence_updates_go_to_holding_cell(fail_htlc: bool) {
expect_payment_claimed!(nodes[0], payment_hash1, payment_amount);
nodes[1].node.handle_update_fulfill_htlc(node_id_0, update.update_fulfill_htlcs.remove(0));
}
- commitment_signed_dance!(&nodes[1], &nodes[0], update.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update.commitment_signed, false, false);
// The payment from nodes[1] should now be seen as failed/successful.
if fail_htlc {
diff --git a/lightning/src/ln/reload_tests.rs b/lightning/src/ln/reload_tests.rs
index 8c9e552..9fe7731 100644
--- a/lightning/src/ln/reload_tests.rs
+++ b/lightning/src/ln/reload_tests.rs
@@ -955,7 +955,7 @@ fn do_forwarded_payment_no_manager_persistence(use_cs_commitment: bool, claim_ht
let payment_event = SendEvent::from_node(&nodes[0]);
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, false);
// Store the `ChannelManager` before handling the `HTLCIntercepted` events, expecting the event
// (and the HTLC itself) to be missing on reload even though its present when we serialized.
@@ -1072,7 +1072,7 @@ fn do_forwarded_payment_no_manager_persistence(use_cs_commitment: bool, claim_ht
} else {
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &update.update_fail_htlcs[0]);
}
- commitment_signed_dance!(nodes[0], nodes[1], update.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update.commitment_signed, false, false);
if claim_htlc {
expect_payment_sent!(nodes[0], payment_preimage);
@@ -1130,7 +1130,7 @@ fn removed_payment_no_manager_persistence() {
match &events[0] {
MessageSendEvent::UpdateHTLCs { updates: msgs::CommitmentUpdate { update_fail_htlcs, commitment_signed, .. }, .. } => {
nodes[1].node.handle_update_fail_htlc(nodes[2].node.get_our_node_id(), &update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[2], commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &commitment_signed, false, false);
},
_ => panic!("Unexpected event"),
}
@@ -1165,7 +1165,7 @@ fn removed_payment_no_manager_persistence() {
match &events[0] {
MessageSendEvent::UpdateHTLCs { updates: msgs::CommitmentUpdate { update_fail_htlcs, commitment_signed, .. }, .. } => {
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &commitment_signed, false, false);
},
_ => panic!("Unexpected event"),
}
@@ -1270,7 +1270,7 @@ fn test_htlc_localremoved_persistence() {
let updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &updates.commitment_signed, false, false);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(nodes[1].node.get_and_clear_pending_events(), &[HTLCHandlingFailureType::Receive { payment_hash: mismatch_payment_hash }]);
check_added_monitors(&nodes[1], 1);
diff --git a/lightning/src/ln/shutdown_tests.rs b/lightning/src/ln/shutdown_tests.rs
index 437298a..4e22d98 100644
--- a/lightning/src/ln/shutdown_tests.rs
+++ b/lightning/src/ln/shutdown_tests.rs
@@ -189,7 +189,7 @@ fn expect_channel_shutdown_state_with_htlc() {
expect_payment_forwarded!(nodes[1], nodes[0], nodes[2], Some(1000), false, false);
check_added_monitors!(nodes[1], 1);
let mut updates_2 = get_htlc_update_msgs!(nodes[1], node_a_id);
- commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &updates.commitment_signed, false, false);
// Still in "resolvingHTLCs" on chan1 after htlc removed on chan2
expect_channel_shutdown_state!(nodes[0], chan_1.2, ChannelShutdownState::ResolvingHTLCs);
@@ -465,7 +465,7 @@ fn updates_shutdown_wait() {
expect_payment_forwarded!(nodes[1], nodes[0], nodes[2], Some(1000), false, false);
check_added_monitors!(nodes[1], 1);
let mut updates_2 = get_htlc_update_msgs!(nodes[1], node_a_id);
- commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &updates.commitment_signed, false, false);
assert!(updates_2.update_add_htlcs.is_empty());
assert!(updates_2.update_fail_htlcs.is_empty());
@@ -731,7 +731,7 @@ fn do_test_shutdown_rebroadcast(recv_count: u8) {
expect_payment_forwarded!(nodes[1], nodes[0], nodes[2], Some(1000), false, false);
check_added_monitors!(nodes[1], 1);
let mut updates_2 = get_htlc_update_msgs!(nodes[1], node_a_id);
- commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &updates.commitment_signed, false, false);
assert!(updates_2.update_add_htlcs.is_empty());
assert!(updates_2.update_fail_htlcs.is_empty());
@@ -1883,7 +1883,7 @@ fn test_pending_htlcs_arent_lost_on_mon_delay() {
let as_send = get_htlc_update_msgs(&nodes[0], &node_b_id);
nodes[1].node.handle_update_add_htlc(node_a_id, &as_send.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], as_send.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &as_send.commitment_signed, false, false);
// Place the HTLC in the B <-> C channel holding cell for release upon RAA and finally deliver
// `cs_last_raa`. Because we're still waiting to handle the `PaymentSent` event, the
@@ -1933,6 +1933,6 @@ fn test_pending_htlcs_arent_lost_on_mon_delay() {
let failures = get_htlc_update_msgs(&nodes[1], &node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &failures.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], failures.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &failures.commitment_signed, false, false);
expect_payment_failed!(nodes[0], payment_hash_b, false);
}
diff --git a/lightning/src/ln/splicing_tests.rs b/lightning/src/ln/splicing_tests.rs
index e387ac3..29243ba 100644
--- a/lightning/src/ln/splicing_tests.rs
+++ b/lightning/src/ln/splicing_tests.rs
@@ -1954,7 +1954,8 @@ fn do_test_splice_with_inflight_htlc_forward_and_resolution(expire_scid_pre_forw
// Node 1 should now have a pending HTLC to forward to 2.
let update_add_0_1 = get_htlc_update_msgs(&nodes[0], &node_id_1);
nodes[1].node.handle_update_add_htlc(node_id_0, &update_add_0_1.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], update_add_0_1.commitment_signed, false);
+ let commitment = &update_add_0_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
assert!(nodes[1].node.needs_pending_htlc_processing());
// Splice both channels, lock them, and connect enough blocks to trigger the legacy SCID pruning
@@ -2008,7 +2009,8 @@ fn do_test_splice_with_inflight_htlc_forward_and_resolution(expire_scid_pre_forw
check_added_monitors(&nodes[1], 1);
let update_fail_1_0 = get_htlc_update_msgs(&nodes[1], &node_id_0);
nodes[0].node.handle_update_fail_htlc(node_id_1, &update_fail_1_0.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], update_fail_1_0.commitment_signed, false);
+ let commitment = &update_fail_1_0.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
let conditions = PaymentFailedConditions::new();
expect_payment_failed_conditions(&nodes[0], payment_hash, false, conditions);
@@ -2018,7 +2020,8 @@ fn do_test_splice_with_inflight_htlc_forward_and_resolution(expire_scid_pre_forw
check_added_monitors(&nodes[1], 1);
let update_add_1_2 = get_htlc_update_msgs(&nodes[1], &node_id_2);
nodes[2].node.handle_update_add_htlc(node_id_1, &update_add_1_2.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[2], nodes[1], update_add_1_2.commitment_signed, false);
+ let commitment = &update_add_1_2.commitment_signed;
+ do_commitment_signed_dance(&nodes[2], &nodes[1], commitment, false, false);
assert!(nodes[2].node.needs_pending_htlc_processing());
// Node 2 should see the claimable payment. Fail it back to make sure we also handle the SCID
@@ -2032,7 +2035,8 @@ fn do_test_splice_with_inflight_htlc_forward_and_resolution(expire_scid_pre_forw
let update_fail_1_2 = get_htlc_update_msgs(&nodes[2], &node_id_1);
nodes[1].node.handle_update_fail_htlc(node_id_2, &update_fail_1_2.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[2], update_fail_1_2.commitment_signed, false);
+ let commitment = &update_fail_1_2.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[2], commitment, false, false);
let fail_type = HTLCHandlingFailureType::Forward {
node_id: Some(node_id_2),
channel_id: channel_id_1_2,
@@ -2042,7 +2046,8 @@ fn do_test_splice_with_inflight_htlc_forward_and_resolution(expire_scid_pre_forw
let update_fail_0_1 = get_htlc_update_msgs(&nodes[1], &node_id_0);
nodes[0].node.handle_update_fail_htlc(node_id_1, &update_fail_0_1.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], update_fail_0_1.commitment_signed, false);
+ let commitment = &update_fail_0_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, false);
let conditions = PaymentFailedConditions::new();
expect_payment_failed_conditions(&nodes[0], payment_hash, true, conditions);
diff --git a/lightning/src/ln/update_fee_tests.rs b/lightning/src/ln/update_fee_tests.rs
index acb9132..2147af0 100644
--- a/lightning/src/ln/update_fee_tests.rs
+++ b/lightning/src/ln/update_fee_tests.rs
@@ -443,7 +443,7 @@ pub fn do_test_update_fee_that_funder_cannot_afford(channel_type_features: Chann
nodes[1].node.handle_update_fee(node_a_id, &update_msg.update_fee.unwrap());
- commitment_signed_dance!(nodes[1], nodes[0], update_msg.commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_msg.commitment_signed, false, false);
// Confirm that the new fee based on the last local commitment txn is what we expected based on the feerate set above.
{
@@ -947,7 +947,7 @@ pub fn accept_busted_but_better_fee() {
..
} => {
nodes[1].node.handle_update_fee(node_a_id, update_fee.as_ref().unwrap());
- commitment_signed_dance!(nodes[1], nodes[0], commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &commitment_signed, false, false);
},
_ => panic!("Unexpected event"),
};
@@ -969,7 +969,7 @@ pub fn accept_busted_but_better_fee() {
..
} => {
nodes[1].node.handle_update_fee(node_a_id, update_fee.as_ref().unwrap());
- commitment_signed_dance!(nodes[1], nodes[0], commitment_signed, false);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &commitment_signed, false, false);
},
_ => panic!("Unexpected event"),
};
@@ -1150,7 +1150,8 @@ pub fn do_cannot_afford_on_holding_cell_release(
assert_eq!(update_fee.feerate_per_kw, target_feerate);
nodes[1].node.handle_update_fee(node_a_id, &update_fee);
- commitment_signed_dance!(nodes[1], nodes[0], updates.commitment_signed, false);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
// Confirm the feerate on node 0's commitment transaction
{
@@ -1310,7 +1311,8 @@ pub fn do_can_afford_given_trimmed_htlcs(inequality_regions: core::cmp::Ordering
assert_eq!(update_fee.feerate_per_kw, target_feerate);
nodes[1].node.handle_update_fee(node_a_id, &update_fee);
- commitment_signed_dance!(nodes[1], nodes[0], updates.commitment_signed, false);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, false);
// Confirm the feerate on node 0's commitment transaction
{
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.