Replace `commitment_signed_dance` for skip_last_step=true
What changed, and why it matters
This commit is a test-only refactoring change. It replaces uses of a test helper macro (`commitment_signed_dance!`) with direct calls to an equivalent test helper function (`do_commitment_signed_dance`) in many test files. There is no change to production code, no change to behavior, and no security fix or vulnerability introduced.
No action required. This is a benign test-only refactoring commit with no security relevance.
Security signals we found
No production code modified
No change to cryptographic, consensus, or protocol logic
Refactoring of test helper usage only
No security-relevant keywords in commit title or message
Evidence from the diff
The commit refactors test code in rust-lightning’s lightning/src/ln/*.rs test modules. It removes one arm of the commitment_signed_dance! macro (the skip_last_step=true case) and replaces all call sites with direct invocations of do_commitment_signed_dance. The diff shows only changes to test files and the macro definition in functional_test_utils.rs. No production logic in ChannelManager, channel state machine, or networking code is modified. The change is purely mechanical: macro expansion is replaced by an explicit function call with the same arguments.
Changed components
lightning/src/ln/functional_test_utils.rs (test helper macro)Various lightning/src/ln/*_tests.rs test modulesInspect captured patch +117 / −110
diff --git a/lightning/src/ln/async_payments_tests.rs b/lightning/src/ln/async_payments_tests.rs
index d56670f..2de00d0 100644
--- a/lightning/src/ln/async_payments_tests.rs
+++ b/lightning/src/ln/async_payments_tests.rs
@@ -587,7 +587,8 @@ fn lock_in_htlc_for_static_invoice(
let payment_hash = update_add.payment_hash;
assert!(update_add.hold_htlc.is_some());
sender_lsp.node.handle_update_add_htlc(sender.node.get_our_node_id(), &update_add);
- commitment_signed_dance!(sender_lsp, sender, &commitment_update.commitment_signed, false, true);
+ let commitment = &commitment_update.commitment_signed;
+ do_commitment_signed_dance(sender_lsp, sender, commitment, false, true);
payment_hash
}
@@ -3240,7 +3241,7 @@ fn async_payment_mpp() {
let payment_hash = update_add.payment_hash;
assert!(update_add.hold_htlc.is_some());
lsp_a.node.handle_update_add_htlc(sender.node.get_our_node_id(), &update_add);
- commitment_signed_dance!(lsp_a, sender, &commitment_update.commitment_signed, false, true);
+ do_commitment_signed_dance(lsp_a, sender, &commitment_update.commitment_signed, false, true);
lsp_a.node.process_pending_htlc_forwards();
// HTLC 2
@@ -3252,7 +3253,7 @@ fn async_payment_mpp() {
let update_add = commitment_update.update_add_htlcs[0].clone();
assert!(update_add.hold_htlc.is_some());
lsp_b.node.handle_update_add_htlc(sender.node.get_our_node_id(), &update_add);
- commitment_signed_dance!(lsp_b, sender, &commitment_update.commitment_signed, false, true);
+ do_commitment_signed_dance(lsp_b, sender, &commitment_update.commitment_signed, false, true);
lsp_b.node.process_pending_htlc_forwards();
// held htlc <> release_htlc dance
diff --git a/lightning/src/ln/blinded_payment_tests.rs b/lightning/src/ln/blinded_payment_tests.rs
index 79db0bf..b92b958 100644
--- a/lightning/src/ln/blinded_payment_tests.rs
+++ b/lightning/src/ln/blinded_payment_tests.rs
@@ -721,7 +721,7 @@ fn do_blinded_intercept_payment(intercept_node_fails: bool) {
SendEvent::from_event(events.remove(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, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
let events = nodes[1].node.get_and_clear_pending_events();
@@ -761,7 +761,7 @@ fn do_blinded_intercept_payment(intercept_node_fails: bool) {
SendEvent::from_event(events.remove(0))
};
nodes[2].node.handle_update_add_htlc(nodes[1].node.get_our_node_id(), &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[1], &payment_event.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[2], &nodes[1], &payment_event.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[2], false);
expect_payment_claimable!(&nodes[2], payment_hash, payment_secret, amt_msat, None, nodes[2].node.get_our_node_id());
diff --git a/lightning/src/ln/chanmon_update_fail_tests.rs b/lightning/src/ln/chanmon_update_fail_tests.rs
index d6dd759..4f7a285 100644
--- a/lightning/src/ln/chanmon_update_fail_tests.rs
+++ b/lightning/src/ln/chanmon_update_fail_tests.rs
@@ -1047,7 +1047,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
chanmon_cfgs[1].persister.set_update_ret(ChannelMonitorUpdateStatus::Completed); // We succeed in updating the monitor for the first channel
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, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &send_event.commitment_msg, false, true);
check_added_monitors!(nodes[1], 0);
// Call forward_pending_htlcs and check that the new HTLC was simply added to the holding cell
@@ -1874,7 +1874,7 @@ fn test_monitor_update_fail_claim() {
nodes[1].node.handle_update_add_htlc(node_c_id, &payment_event.msgs[0]);
let events = nodes[1].node.get_and_clear_pending_msg_events();
assert_eq!(events.len(), 0);
- commitment_signed_dance!(nodes[1], nodes[2], payment_event.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &payment_event.commitment_msg, false, true);
expect_htlc_failure_conditions(nodes[1].node.get_and_clear_pending_events(), &[]);
let (_, payment_hash_3, payment_secret_3) = get_payment_preimage_hash!(nodes[0]);
@@ -1889,7 +1889,7 @@ fn test_monitor_update_fail_claim() {
nodes[1].node.handle_update_add_htlc(node_c_id, &payment_event.msgs[0]);
let events = nodes[1].node.get_and_clear_pending_msg_events();
assert_eq!(events.len(), 0);
- commitment_signed_dance!(nodes[1], nodes[2], payment_event.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &payment_event.commitment_msg, false, true);
// Now restore monitor updating on the 0<->1 channel and claim the funds on B.
let channel_id = chan_1.2;
@@ -1998,7 +1998,7 @@ fn test_monitor_update_on_pending_forwards() {
let cs_fail_update = get_htlc_update_msgs!(nodes[2], node_b_id);
nodes[1].node.handle_update_fail_htlc(node_c_id, &cs_fail_update.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[2], cs_fail_update.commitment_signed, true, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &cs_fail_update.commitment_signed, true, true);
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
let (route, payment_hash_2, payment_preimage_2, payment_secret_2) =
@@ -2029,7 +2029,7 @@ fn test_monitor_update_on_pending_forwards() {
let bs_updates = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &bs_updates.update_fail_htlcs[0]);
nodes[0].node.handle_update_add_htlc(node_b_id, &bs_updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], bs_updates.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &bs_updates.commitment_signed, false, true);
let events = nodes[0].node.get_and_clear_pending_events();
assert_eq!(events.len(), 2);
@@ -2525,7 +2525,7 @@ fn test_fail_htlc_on_broadcast_after_claim() {
nodes[0].node.handle_update_fulfill_htlc(node_b_id, bs_updates.update_fulfill_htlcs.remove(0));
expect_payment_sent(&nodes[0], payment_preimage, None, false, false);
- commitment_signed_dance!(nodes[0], nodes[1], bs_updates.commitment_signed, true, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &bs_updates.commitment_signed, true, true);
expect_payment_path_successful!(nodes[0]);
}
diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs
index 58ca37d..efeb5df 100644
--- a/lightning/src/ln/channelmanager.rs
+++ b/lightning/src/ln/channelmanager.rs
@@ -18566,7 +18566,7 @@ mod tests {
assert!(updates.update_fail_malformed_htlcs.is_empty());
assert!(updates.update_fee.is_none());
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, true, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, true, true);
expect_payment_failed!(nodes[0], our_payment_hash, true);
// Send the second half of the original MPP payment.
@@ -18686,7 +18686,7 @@ mod tests {
assert!(updates.update_fail_malformed_htlcs.is_empty());
assert!(updates.update_fee.is_none());
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, true, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, true, true);
expect_payment_failed!(nodes[0], payment_hash, true);
// Finally, claim the original payment.
@@ -18733,7 +18733,7 @@ mod tests {
assert!(updates.update_fail_malformed_htlcs.is_empty());
assert!(updates.update_fee.is_none());
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, true, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, true, true);
expect_payment_failed!(nodes[0], payment_hash, true);
// Finally, succeed the keysend payment.
@@ -18782,7 +18782,7 @@ mod tests {
assert!(updates.update_fail_malformed_htlcs.is_empty());
assert!(updates.update_fee.is_none());
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, true, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, true, true);
expect_payment_failed!(nodes[0], payment_hash, true);
// Finally, claim the original payment.
diff --git a/lightning/src/ln/functional_test_utils.rs b/lightning/src/ln/functional_test_utils.rs
index 4d45dc6..be62a00 100644
--- a/lightning/src/ln/functional_test_utils.rs
+++ b/lightning/src/ln/functional_test_utils.rs
@@ -2644,15 +2644,6 @@ pub fn expect_htlc_forwarding_fails(
/// Performs the "commitment signed dance" - the series of message exchanges which occur after a
/// commitment update.
macro_rules! commitment_signed_dance {
- ($node_a: expr, $node_b: expr, $commitment_signed: expr, $fail_backwards: expr, true /* skip last step */) => {
- $crate::ln::functional_test_utils::do_commitment_signed_dance(
- &$node_a,
- &$node_b,
- &$commitment_signed,
- $fail_backwards,
- true,
- );
- };
($node_a: expr, $node_b: expr, (), $fail_backwards: expr, true /* skip last step */, true /* return extra message */, true /* return last RAA */) => {
$crate::ln::functional_test_utils::do_main_commitment_signed_dance(
&$node_a,
@@ -3597,7 +3588,7 @@ pub fn do_pass_along_path<'a, 'b, 'c>(args: PassAlongPathArgs) -> Option<Event>
check_added_monitors!(node, 0);
if is_last_hop && is_probe {
- commitment_signed_dance!(node, prev_node, payment_event.commitment_msg, true, true);
+ do_commitment_signed_dance(node, prev_node, &payment_event.commitment_msg, true, true);
node.node.process_pending_htlc_forwards();
check_added_monitors(node, 1);
} else {
diff --git a/lightning/src/ln/functional_tests.rs b/lightning/src/ln/functional_tests.rs
index 9fd5470..cd47c0c 100644
--- a/lightning/src/ln/functional_tests.rs
+++ b/lightning/src/ln/functional_tests.rs
@@ -1857,7 +1857,7 @@ pub fn test_simple_commitment_revoked_fail_backward() {
assert_eq!(node_a_id, *node_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment_signed, false, true);
let scid = chan_2.0.contents.short_channel_id;
expect_payment_failed_with_update!(nodes[0], payment_hash, false, scid, true);
},
@@ -2105,7 +2105,7 @@ fn do_test_commitment_revoked_fail_backward_exhaustive(
nodes[0].node.handle_update_fail_htlc(node_b_id, &update_fail_htlcs[1]);
nodes[0].node.handle_update_fail_htlc(node_b_id, &update_fail_htlcs[2]);
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment_signed, false, true);
let events = nodes[0].node.get_and_clear_pending_events();
assert_eq!(events.len(), 6);
@@ -3399,7 +3399,7 @@ fn do_test_holding_cell_htlc_add_timeouts(forwarded_htlc: bool) {
..
} => {
nodes[0].node.handle_update_fail_htlc(node_b_id, &update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed, true, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment_signed, true, true);
},
_ => unreachable!(),
}
@@ -4192,7 +4192,7 @@ pub fn test_duplicate_payment_hash_one_failure_one_success() {
nodes[0].node.handle_update_fail_htlc(node_b_id, &htlc_updates.update_fail_htlcs[0]);
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
- commitment_signed_dance!(nodes[0], nodes[1], &htlc_updates.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &htlc_updates.commitment_signed, false, true);
let failing_scid = chan_2.0.contents.short_channel_id;
expect_payment_failed_with_update!(nodes[0], dup_payment_hash, false, failing_scid, true);
@@ -4582,7 +4582,8 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
.handle_update_fail_htlc(node_c_id, &updates.update_fail_htlcs[4]);
}
}
- commitment_signed_dance!(target, nodes[2], updates.commitment_signed, false, true);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(target, &nodes[2], commitment, false, true);
},
_ => panic!("Unexpected event"),
}
@@ -5314,7 +5315,7 @@ pub fn test_free_and_fail_holding_cell_htlcs() {
let mut update_msgs = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, update_msgs.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], update_msgs.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_msgs.commitment_signed, false, true);
expect_payment_sent!(nodes[0], payment_preimage_1);
}
@@ -5506,7 +5507,7 @@ pub fn test_update_fulfill_htlc_bolt2_after_malformed_htlc_message_must_forward_
payment_event.msgs[0].onion_routing_packet.version = 1; //Produce a malformed HTLC message
nodes[2].node.handle_update_add_htlc(node_b_id, &payment_event.msgs[0]);
check_added_monitors(&nodes[2], 0);
- commitment_signed_dance!(nodes[2], nodes[1], payment_event.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[2], &nodes[1], &payment_event.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[2], false);
expect_htlc_handling_failed_destinations!(
nodes[2].node.get_and_clear_pending_events(),
@@ -5544,7 +5545,7 @@ pub fn test_update_fulfill_htlc_bolt2_after_malformed_htlc_message_must_forward_
nodes[1].node.handle_update_fail_malformed_htlc(node_c_id, &update_msg.0);
check_added_monitors(&nodes[1], 0);
- commitment_signed_dance!(nodes[1], nodes[2], update_msg.1, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[2], &update_msg.1, false, true);
expect_and_process_pending_htlcs_and_htlc_handling_failed(
&nodes[1],
&[HTLCHandlingFailureType::Forward { node_id: Some(node_c_id), channel_id: chan_2.2 }],
@@ -5615,7 +5616,7 @@ pub fn test_channel_failed_after_message_with_badonion_node_perm_bits_set() {
payment_event.msgs[0].onion_routing_packet.version = 1; // Trigger an invalid_onion_version error
nodes[2].node.handle_update_add_htlc(node_b_id, &payment_event.msgs[0]);
check_added_monitors(&nodes[2], 0);
- commitment_signed_dance!(nodes[2], nodes[1], payment_event.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[2], &nodes[1], &payment_event.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[2], false);
expect_htlc_handling_failed_destinations!(
nodes[2].node.get_and_clear_pending_events(),
@@ -5632,7 +5633,8 @@ pub fn test_channel_failed_after_message_with_badonion_node_perm_bits_set() {
update_msg.failure_code |= 0x2000;
nodes[1].node.handle_update_fail_malformed_htlc(node_c_id, &update_msg);
- commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false, true);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[2], commitment, false, true);
},
_ => panic!("Unexpected event"),
}
@@ -5648,7 +5650,8 @@ pub fn test_channel_failed_after_message_with_badonion_node_perm_bits_set() {
match events_4[0] {
MessageSendEvent::UpdateHTLCs { ref updates, .. } => {
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, true);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, true);
},
_ => panic!("Unexpected event"),
}
@@ -5988,7 +5991,7 @@ pub fn test_check_htlc_underpaying() {
check_added_monitors(&nodes[1], 1);
nodes[0].node.handle_update_fail_htlc(node_b_id, &update_fail_htlc);
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment_signed, false, true);
// 10_000 msat as u64, followed by a height of CHAN_CONFIRM_DEPTH as u32
let mut expected_failure_data = (10_000 as u64).to_be_bytes().to_vec();
@@ -8120,7 +8123,7 @@ fn do_test_tx_confirmed_skipping_blocks_immediate_broadcast(test_height_before_t
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, true, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates.commitment_signed, true, true);
let failed_scid = chan_announce.contents.short_channel_id;
expect_payment_failed_with_update!(nodes[0], payment_hash, false, failed_scid, true);
@@ -8374,7 +8377,7 @@ pub fn test_inconsistent_mpp_params() {
nodes[3].node.handle_update_add_htlc(node_c_id, &payment_event.msgs[0]);
check_added_monitors(&nodes[3], 0);
- commitment_signed_dance!(nodes[3], nodes[2], payment_event.commitment_msg, true, true);
+ do_commitment_signed_dance(&nodes[3], &nodes[2], &payment_event.commitment_msg, true, true);
// At this point, nodes[3] should notice the two HTLCs don't contain the same total payment
// amount. It will assume the second is a privacy attack (no longer particularly relevant
@@ -9055,7 +9058,7 @@ pub fn test_nondust_htlc_excess_fees_are_dust() {
let send = SendEvent::from_node(&nodes[2]);
nodes[0].node.handle_update_add_htlc(node_c_id, &send.msgs[0]);
- commitment_signed_dance!(nodes[0], nodes[2], send.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[2], &send.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[0], true);
check_added_monitors(&nodes[0], 1);
@@ -9361,7 +9364,8 @@ fn do_payment_with_custom_min_final_cltv_expiry(valid_delta: bool, use_user_hash
let fail_updates = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &fail_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], fail_updates.commitment_signed, false, true);
+ let commitment = &fail_updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, true);
expect_payment_failed!(nodes[0], hash, true);
}
diff --git a/lightning/src/ln/htlc_reserve_unit_tests.rs b/lightning/src/ln/htlc_reserve_unit_tests.rs
index 4187a52..01c9e46 100644
--- a/lightning/src/ln/htlc_reserve_unit_tests.rs
+++ b/lightning/src/ln/htlc_reserve_unit_tests.rs
@@ -685,7 +685,8 @@ pub fn holding_cell_htlc_counting() {
let bs_fail_updates = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &bs_fail_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], bs_fail_updates.commitment_signed, false, true);
+ let commitment = &bs_fail_updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, true);
let failing_scid = chan_2.0.contents.short_channel_id;
expect_payment_failed_with_update!(nodes[0], payment_hash_2, false, failing_scid, false);
@@ -2072,7 +2073,7 @@ pub fn test_update_fulfill_htlc_bolt2_missing_badonion_bit_for_malformed_htlc_me
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, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &updates.commitment_signed, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
nodes[1].node.get_and_clear_pending_events(),
diff --git a/lightning/src/ln/invoice_utils.rs b/lightning/src/ln/invoice_utils.rs
index 7c0190a..9af676b 100644
--- a/lightning/src/ln/invoice_utils.rs
+++ b/lightning/src/ln/invoice_utils.rs
@@ -1324,7 +1324,8 @@ mod test {
nodes[fwd_idx]
.node
.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &send_event.msgs[0]);
- commitment_signed_dance!(nodes[fwd_idx], nodes[0], &send_event.commitment_msg, false, true);
+ let commitment = &send_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[fwd_idx], &nodes[0], commitment, false, true);
// Note that we have to "forward pending HTLCs" twice before we see the PaymentClaimable as
// this "emulates" the payment taking two hops, providing some privacy to make phantom node
diff --git a/lightning/src/ln/monitor_tests.rs b/lightning/src/ln/monitor_tests.rs
index 959a47d..346ef1a 100644
--- a/lightning/src/ln/monitor_tests.rs
+++ b/lightning/src/ln/monitor_tests.rs
@@ -94,7 +94,7 @@ fn chanmon_fail_from_stale_commitment() {
let fail_updates = get_htlc_update_msgs!(nodes[1], nodes[0].node.get_our_node_id());
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &fail_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], fail_updates.commitment_signed, true, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &fail_updates.commitment_signed, true, true);
expect_payment_failed_with_update!(nodes[0], payment_hash, false, update_a.contents.short_channel_id, true);
}
@@ -3811,7 +3811,7 @@ fn do_test_lost_timeout_monitor_events(confirm_tx: CommitmentType, dust_htlcs: b
check_added_monitors(&nodes[1], 1);
let bs_fail = get_htlc_update_msgs(&nodes[1], &node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &bs_fail.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], bs_fail.commitment_signed, true, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &bs_fail.commitment_signed, true, true);
expect_payment_failed!(nodes[0], hash_a, false);
}
diff --git a/lightning/src/ln/onion_route_tests.rs b/lightning/src/ln/onion_route_tests.rs
index d7ed1d1..0581e4d 100644
--- a/lightning/src/ln/onion_route_tests.rs
+++ b/lightning/src/ln/onion_route_tests.rs
@@ -143,7 +143,7 @@ fn run_onion_failure_test_with_fail_intercept<F1, F2, F3>(
}
// 0 => 1 update_add & CS
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add_0);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
let update_1_0 = match test_case {
0 | 100 => {
@@ -180,7 +180,8 @@ fn run_onion_failure_test_with_fail_intercept<F1, F2, F3>(
// 1 => 2
nodes[2].node.handle_update_add_htlc(nodes[1].node.get_our_node_id(), &update_add_1);
- commitment_signed_dance!(nodes[2], nodes[1], update_1.commitment_signed, false, true);
+ let commitment = &update_1.commitment_signed;
+ do_commitment_signed_dance(&nodes[2], &nodes[1], commitment, false, true);
match test_case {
2 | 200 | 201 => {
@@ -244,7 +245,7 @@ fn run_onion_failure_test_with_fail_intercept<F1, F2, F3>(
);
};
- commitment_signed_dance!(nodes[0], nodes[1], update_1_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &update_1_0.commitment_signed, false, true);
let events = nodes[0].node.get_and_clear_pending_events();
assert_eq!(events.len(), 2);
@@ -1551,7 +1552,7 @@ fn test_overshoot_final_cltv() {
let update_0 = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
let mut update_add_0 = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add_0);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
for (_, pending_forwards) in nodes[1].node.forward_htlcs.lock().unwrap().iter_mut() {
@@ -1570,7 +1571,7 @@ fn test_overshoot_final_cltv() {
let update_1 = get_htlc_update_msgs!(nodes[1], nodes[2].node.get_our_node_id());
let mut update_add_1 = update_1.update_add_htlcs[0].clone();
nodes[2].node.handle_update_add_htlc(nodes[1].node.get_our_node_id(), &update_add_1);
- commitment_signed_dance!(nodes[2], nodes[1], update_1.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[2], &nodes[1], &update_1.commitment_signed, false, true);
expect_and_process_pending_htlcs(&nodes[2], false);
expect_payment_claimable!(nodes[2], payment_hash, payment_secret, 40_000);
@@ -2328,7 +2329,7 @@ fn do_test_fail_htlc_backwards_with_reason(failure_code: FailureCode) {
};
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &update_fail_htlc);
- commitment_signed_dance!(nodes[0], nodes[1], commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment_signed, false, true);
let failure_data = match failure_code {
FailureCode::TemporaryNodeFailure => vec![],
@@ -2439,7 +2440,7 @@ fn test_phantom_onion_hmac_failure() {
let mut update_add = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_htlc_failure_conditions(nodes[1].node.get_and_clear_pending_events(), &[]);
nodes[1].node.process_pending_update_add_htlcs();
@@ -2512,7 +2513,7 @@ fn test_phantom_invalid_onion_payload() {
let mut update_add = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_htlc_failure_conditions(nodes[1].node.get_and_clear_pending_events(), &[]);
nodes[1].node.process_pending_update_add_htlcs();
@@ -2611,7 +2612,7 @@ fn test_phantom_final_incorrect_cltv_expiry() {
let mut update_add = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_htlc_failure_conditions(nodes[1].node.get_and_clear_pending_events(), &[]);
nodes[1].node.process_pending_update_add_htlcs();
@@ -2680,7 +2681,7 @@ fn test_phantom_failure_too_low_cltv() {
let mut update_add = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_htlc_failure_conditions(nodes[1].node.get_and_clear_pending_events(), &[]);
nodes[1].node.process_pending_htlc_forwards();
@@ -2736,7 +2737,7 @@ fn test_phantom_failure_modified_cltv() {
update_add.cltv_expiry -= 10;
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
nodes[1].node.get_and_clear_pending_events(),
@@ -2789,7 +2790,7 @@ fn test_phantom_failure_expires_too_soon() {
connect_blocks(&nodes[1], CLTV_FAR_FAR_AWAY);
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
nodes[1].node.get_and_clear_pending_events(),
@@ -2838,7 +2839,7 @@ fn test_phantom_failure_too_low_recv_amt() {
let mut update_add = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_htlc_failure_conditions(nodes[1].node.get_and_clear_pending_events(), &[]);
nodes[1].node.process_pending_htlc_forwards();
@@ -2908,7 +2909,7 @@ fn do_test_phantom_dust_exposure_failure(multiplier_dust_limit: bool) {
let mut update_add = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
nodes[1].node.get_and_clear_pending_events(),
@@ -2958,7 +2959,7 @@ fn test_phantom_failure_reject_payment() {
let mut update_add = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(nodes[0].node.get_our_node_id(), &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_htlc_failure_conditions(nodes[1].node.get_and_clear_pending_events(), &[]);
nodes[1].node.process_pending_htlc_forwards();
diff --git a/lightning/src/ln/payment_tests.rs b/lightning/src/ln/payment_tests.rs
index f833127..9c0f0bb 100644
--- a/lightning/src/ln/payment_tests.rs
+++ b/lightning/src/ln/payment_tests.rs
@@ -626,14 +626,14 @@ fn test_reject_mpp_keysend_htlc_mismatching_secret() {
let update_0 = get_htlc_update_msgs!(nodes[0], node_b_id);
let update_add_0 = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(node_a_id, &update_add_0);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &update_0.commitment_signed, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
check_added_monitors!(&nodes[1], 1);
let update_1 = get_htlc_update_msgs!(nodes[1], node_d_id);
let update_add_1 = update_1.update_add_htlcs[0].clone();
nodes[3].node.handle_update_add_htlc(node_b_id, &update_add_1);
- commitment_signed_dance!(nodes[3], nodes[1], update_1.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[3], &nodes[1], &update_1.commitment_signed, false, true);
expect_htlc_failure_conditions(nodes[3].node.get_and_clear_pending_events(), &[]);
nodes[3].node.process_pending_update_add_htlcs();
@@ -675,14 +675,14 @@ fn test_reject_mpp_keysend_htlc_mismatching_secret() {
let update_2 = get_htlc_update_msgs!(nodes[0], node_c_id);
let update_add_2 = update_2.update_add_htlcs[0].clone();
nodes[2].node.handle_update_add_htlc(node_a_id, &update_add_2);
- commitment_signed_dance!(nodes[2], nodes[0], &update_2.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[2], &nodes[0], &update_2.commitment_signed, false, true);
expect_and_process_pending_htlcs(&nodes[2], false);
check_added_monitors!(&nodes[2], 1);
let update_3 = get_htlc_update_msgs!(nodes[2], node_d_id);
let update_add_3 = update_3.update_add_htlcs[0].clone();
nodes[3].node.handle_update_add_htlc(node_c_id, &update_add_3);
- commitment_signed_dance!(nodes[3], nodes[2], update_3.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[3], &nodes[2], &update_3.commitment_signed, false, true);
expect_htlc_failure_conditions(nodes[3].node.get_and_clear_pending_events(), &[]);
nodes[3].node.process_pending_update_add_htlcs();
@@ -820,7 +820,7 @@ fn do_retry_with_no_persist(confirm_before_reload: bool) {
nodes[2].node.peer_disconnected(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, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
@@ -2267,7 +2267,7 @@ fn do_test_intercepted_payment(test: InterceptTest) {
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, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
// Check that we generate the PaymentIntercepted event when an intercept forward is detected.
@@ -2354,7 +2354,8 @@ fn do_test_intercepted_payment(test: InterceptTest) {
SendEvent::from_event(events.remove(0))
};
nodes[2].node.handle_update_add_htlc(node_b_id, &payment_event.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[1], &payment_event.commitment_msg, false, true);
+ let commitment = &payment_event.commitment_msg;
+ do_commitment_signed_dance(&nodes[2], &nodes[1], commitment, false, true);
expect_and_process_pending_htlcs(&nodes[2], false);
let preimage = Some(nodes[2].node.get_payment_preimage(hash, payment_secret).unwrap());
@@ -2649,7 +2650,8 @@ fn do_automatic_retries(test: AutoRetry) {
let update_0 = get_htlc_update_msgs!(nodes[0], node_b_id);
let mut update_add = update_0.update_add_htlcs[0].clone();
nodes[1].node.handle_update_add_htlc(node_a_id, &update_add);
- commitment_signed_dance!(nodes[1], nodes[0], &update_0.commitment_signed, false, true);
+ let commitment = &update_0.commitment_signed;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, true);
expect_htlc_failure_conditions(nodes[1].node.get_and_clear_pending_events(), &[]);
nodes[1].node.process_pending_htlc_forwards();
expect_htlc_failure_conditions(
@@ -3631,7 +3633,8 @@ fn no_extra_retries_on_back_to_back_fail() {
check_added_monitors!(nodes[0], 1);
nodes[1].node.handle_update_add_htlc(node_a_id, &retry_htlc_updates.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &retry_htlc_updates.commitment_msg, false, true);
+ let commitment = &retry_htlc_updates.commitment_msg;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
nodes[1].node.get_and_clear_pending_events(),
@@ -3641,7 +3644,8 @@ fn no_extra_retries_on_back_to_back_fail() {
let bs_fail_update = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &bs_fail_update.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], &bs_fail_update.commitment_signed, false, true);
+ let commitment = &bs_fail_update.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, true);
let mut events = nodes[0].node.get_and_clear_pending_events();
assert_eq!(events.len(), 2);
@@ -3858,7 +3862,8 @@ fn test_simple_partial_retry() {
check_added_monitors!(nodes[0], 1);
nodes[1].node.handle_update_add_htlc(node_a_id, &retry_htlc_updates.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &retry_htlc_updates.commitment_msg, false, true);
+ let commitment = &retry_htlc_updates.commitment_msg;
+ do_commitment_signed_dance(&nodes[1], &nodes[0], commitment, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
check_added_monitors!(nodes[1], 1);
@@ -4029,7 +4034,7 @@ fn test_threaded_payment_retries() {
assert_eq!(send_event.msgs.len(), 1);
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, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &send_event.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
nodes[1].node.process_pending_htlc_forwards();
expect_htlc_handling_failed_destinations!(
@@ -4364,7 +4369,8 @@ fn do_claim_from_closed_chan(fail_payment: bool) {
if let MessageSendEvent::UpdateHTLCs { mut updates, .. } = bs_claims.remove(0) {
let fulfill = updates.update_fulfill_htlcs.remove(0);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, fulfill);
- commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false, true);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, false, true);
} else {
panic!();
}
@@ -4373,25 +4379,26 @@ fn do_claim_from_closed_chan(fail_payment: bool) {
let mut ds_claim_msgs = nodes[3].node.get_and_clear_pending_msg_events();
assert_eq!(ds_claim_msgs.len(), 1);
- let mut cs_claim_msgs = if let MessageSendEvent::UpdateHTLCs { mut updates, .. } =
- ds_claim_msgs.remove(0)
- {
- let fulfill = updates.update_fulfill_htlcs.remove(0);
- nodes[2].node.handle_update_fulfill_htlc(node_d_id, fulfill);
- let cs_claim_msgs = nodes[2].node.get_and_clear_pending_msg_events();
- check_added_monitors(&nodes[2], 1);
- commitment_signed_dance!(nodes[2], nodes[3], updates.commitment_signed, false, true);
- expect_payment_forwarded!(nodes[2], nodes[0], nodes[3], Some(1000), false, false);
- cs_claim_msgs
- } else {
- panic!();
- };
+ let mut cs_claim_msgs =
+ if let MessageSendEvent::UpdateHTLCs { mut updates, .. } = ds_claim_msgs.remove(0) {
+ let fulfill = updates.update_fulfill_htlcs.remove(0);
+ nodes[2].node.handle_update_fulfill_htlc(node_d_id, fulfill);
+ let cs_claim_msgs = nodes[2].node.get_and_clear_pending_msg_events();
+ check_added_monitors(&nodes[2], 1);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[2], &nodes[3], commitment, false, true);
+ expect_payment_forwarded!(nodes[2], nodes[0], nodes[3], Some(1000), false, false);
+ cs_claim_msgs
+ } else {
+ panic!();
+ };
assert_eq!(cs_claim_msgs.len(), 1);
if let MessageSendEvent::UpdateHTLCs { mut updates, .. } = cs_claim_msgs.remove(0) {
let fulfill = updates.update_fulfill_htlcs.remove(0);
nodes[0].node.handle_update_fulfill_htlc(node_c_id, fulfill);
- commitment_signed_dance!(nodes[0], nodes[2], updates.commitment_signed, false, true);
+ let commitment = &updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[2], commitment, false, true);
} else {
panic!();
}
@@ -4707,7 +4714,7 @@ fn do_test_custom_tlvs_consistency(
nodes[3].node.handle_update_add_htlc(node_c_id, &payment_event.msgs[0]);
check_added_monitors!(nodes[3], 0);
- commitment_signed_dance!(nodes[3], nodes[2], payment_event.commitment_msg, true, true);
+ do_commitment_signed_dance(&nodes[3], &nodes[2], &payment_event.commitment_msg, true, true);
}
expect_htlc_failure_conditions(nodes[3].node.get_and_clear_pending_events(), &[]);
nodes[3].node.process_pending_htlc_forwards();
@@ -4820,13 +4827,13 @@ fn do_test_payment_metadata_consistency(do_reload: bool, do_modify: bool) {
(&second_send, &first_send)
};
nodes[1].node.handle_update_add_htlc(node_a_id, &b_recv_ev.msgs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], b_recv_ev.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &b_recv_ev.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
check_added_monitors(&nodes[1], 1);
let b_forward_ev = SendEvent::from_node(&nodes[1]);
nodes[3].node.handle_update_add_htlc(node_b_id, &b_forward_ev.msgs[0]);
- commitment_signed_dance!(nodes[3], nodes[1], b_forward_ev.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[3], &nodes[1], &b_forward_ev.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[3], false);
@@ -4836,7 +4843,7 @@ fn do_test_payment_metadata_consistency(do_reload: bool, do_modify: bool) {
nodes[3].node.peer_disconnected(node_c_id);
nodes[2].node.handle_update_add_htlc(node_a_id, &c_recv_ev.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[0], c_recv_ev.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[2], &nodes[0], &c_recv_ev.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[2], false);
expect_htlc_handling_failed_destinations!(
nodes[2].node.get_and_clear_pending_events(),
@@ -4846,7 +4853,7 @@ fn do_test_payment_metadata_consistency(do_reload: bool, do_modify: bool) {
let cs_fail = get_htlc_update_msgs(&nodes[2], &node_a_id);
nodes[0].node.handle_update_fail_htlc(node_c_id, &cs_fail.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[2], cs_fail.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[2], &cs_fail.commitment_signed, false, true);
let payment_fail_retryable_evs = nodes[0].node.get_and_clear_pending_events();
assert_eq!(payment_fail_retryable_evs.len(), 1);
@@ -4886,14 +4893,14 @@ fn do_test_payment_metadata_consistency(do_reload: bool, do_modify: bool) {
check_added_monitors(&nodes[0], 1);
let as_resend = SendEvent::from_node(&nodes[0]);
nodes[2].node.handle_update_add_htlc(node_a_id, &as_resend.msgs[0]);
- commitment_signed_dance!(nodes[2], nodes[0], as_resend.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[2], &nodes[0], &as_resend.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[2], false);
check_added_monitors(&nodes[2], 1);
let cs_forward = SendEvent::from_node(&nodes[2]);
let cd_chan_id = cs_forward.msgs[0].channel_id;
nodes[3].node.handle_update_add_htlc(node_c_id, &cs_forward.msgs[0]);
- commitment_signed_dance!(nodes[3], nodes[2], cs_forward.commitment_msg, false, true);
+ do_commitment_signed_dance(&nodes[3], &nodes[2], &cs_forward.commitment_msg, false, true);
// Finally, check that nodes[3] does the correct thing - either accepting the payment or, if
// the payment metadata was modified, failing only the one modified HTLC and retaining the
@@ -4911,7 +4918,7 @@ fn do_test_payment_metadata_consistency(do_reload: bool, do_modify: bool) {
let ds_fail = get_htlc_update_msgs(&nodes[3], &node_c_id);
nodes[2].node.handle_update_fail_htlc(node_d_id, &ds_fail.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[2], nodes[3], ds_fail.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[2], &nodes[3], &ds_fail.commitment_signed, false, true);
let events = nodes[2].node.get_and_clear_pending_events();
let fail_type =
HTLCHandlingFailureType::Forward { node_id: Some(node_d_id), channel_id: cd_chan_id };
diff --git a/lightning/src/ln/priv_short_conf_tests.rs b/lightning/src/ln/priv_short_conf_tests.rs
index 685b628..1f34e59 100644
--- a/lightning/src/ln/priv_short_conf_tests.rs
+++ b/lightning/src/ln/priv_short_conf_tests.rs
@@ -86,7 +86,7 @@ fn test_priv_forwarding_rejection() {
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, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
nodes[1].node.get_and_clear_pending_events(),
@@ -101,7 +101,8 @@ fn test_priv_forwarding_rejection() {
assert!(htlc_fail_updates.update_fee.is_none());
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, true, true);
+ let commitment = &htlc_fail_updates.commitment_signed;
+ do_commitment_signed_dance(&nodes[0], &nodes[1], commitment, true, true);
let chan_2_scid = nodes[2].node.list_channels()[0].short_channel_id.unwrap();
expect_payment_failed_with_update!(nodes[0], our_payment_hash, false, chan_2_scid, true);
@@ -604,7 +605,7 @@ fn test_inbound_scid_privacy() {
let payment_event = SendEvent::from_node(&nodes[0]);
assert_eq!(node_b_id, payment_event.node_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, true, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &payment_event.commitment_msg, true, true);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
nodes[1].node.get_and_clear_pending_events(),
@@ -699,7 +700,7 @@ fn test_scid_alias_returned() {
check_added_monitors!(nodes[0], 1);
let as_updates = get_htlc_update_msgs!(nodes[0], node_b_id);
nodes[1].node.handle_update_add_htlc(node_a_id, &as_updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &as_updates.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &as_updates.commitment_signed, false, true);
expect_and_process_pending_htlcs(&nodes[1], true);
let events = nodes[1].node.get_and_clear_pending_events();
@@ -712,7 +713,7 @@ fn test_scid_alias_returned() {
let bs_updates = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &bs_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], bs_updates.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &bs_updates.commitment_signed, false, true);
let err_data = 0u16.to_be_bytes();
expect_payment_failed_conditions(
@@ -736,7 +737,7 @@ fn test_scid_alias_returned() {
check_added_monitors!(nodes[0], 1);
let as_updates = get_htlc_update_msgs!(nodes[0], node_b_id);
nodes[1].node.handle_update_add_htlc(node_a_id, &as_updates.update_add_htlcs[0]);
- commitment_signed_dance!(nodes[1], nodes[0], &as_updates.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[1], &nodes[0], &as_updates.commitment_signed, false, true);
expect_and_process_pending_htlcs(&nodes[1], false);
expect_htlc_handling_failed_destinations!(
@@ -750,7 +751,7 @@ fn test_scid_alias_returned() {
let bs_updates = get_htlc_update_msgs!(nodes[1], node_a_id);
nodes[0].node.handle_update_fail_htlc(node_b_id, &bs_updates.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], bs_updates.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &bs_updates.commitment_signed, false, true);
let mut err_data = Vec::new();
err_data.extend_from_slice(&10_000u64.to_be_bytes());
diff --git a/lightning/src/ln/reload_tests.rs b/lightning/src/ln/reload_tests.rs
index 9fe7731..c1e46fd 100644
--- a/lightning/src/ln/reload_tests.rs
+++ b/lightning/src/ln/reload_tests.rs
@@ -892,7 +892,7 @@ fn do_test_partial_claim_before_restart(persist_both_monitors: bool, double_rest
check_added_monitors!(nodes[2], 1);
let cs_updates = get_htlc_update_msgs!(nodes[2], nodes[0].node.get_our_node_id());
expect_payment_forwarded!(nodes[2], nodes[0], nodes[3], Some(1000), false, false);
- commitment_signed_dance!(nodes[2], nodes[3], updates.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[2], &nodes[3], &updates.commitment_signed, false, true);
cs_updates
}
_ => panic!(),
@@ -900,7 +900,7 @@ fn do_test_partial_claim_before_restart(persist_both_monitors: bool, double_rest
let fulfill = cs_updates.update_fulfill_htlcs.remove(0);
nodes[0].node.handle_update_fulfill_htlc(nodes[2].node.get_our_node_id(), fulfill);
- commitment_signed_dance!(nodes[0], nodes[2], cs_updates.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[2], &cs_updates.commitment_signed, false, true);
expect_payment_sent!(nodes[0], payment_preimage);
// Ensure that the remaining channel is fully operation and not blocked (and that after a
diff --git a/lightning/src/ln/reorg_tests.rs b/lightning/src/ln/reorg_tests.rs
index ede6acf..ef0ced8 100644
--- a/lightning/src/ln/reorg_tests.rs
+++ b/lightning/src/ln/reorg_tests.rs
@@ -149,7 +149,7 @@ fn do_test_onchain_htlc_reorg(local_commitment: bool, claim: bool) {
assert_eq!(htlc_updates.update_fail_htlcs.len(), 1);
nodes[0].node.handle_update_fail_htlc(nodes[1].node.get_our_node_id(), &htlc_updates.update_fail_htlcs[0]);
}
- commitment_signed_dance!(nodes[0], nodes[1], htlc_updates.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &htlc_updates.commitment_signed, false, true);
if claim {
expect_payment_sent!(nodes[0], our_payment_preimage);
} else {
diff --git a/lightning/src/ln/shutdown_tests.rs b/lightning/src/ln/shutdown_tests.rs
index 4e22d98..3df6c37 100644
--- a/lightning/src/ln/shutdown_tests.rs
+++ b/lightning/src/ln/shutdown_tests.rs
@@ -201,7 +201,7 @@ fn expect_channel_shutdown_state_with_htlc() {
assert!(updates_2.update_fee.is_none());
assert_eq!(updates_2.update_fulfill_htlcs.len(), 1);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, updates_2.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], updates_2.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates_2.commitment_signed, false, true);
expect_payment_sent!(nodes[0], payment_preimage_0);
// all htlcs removed, chan1 advances to NegotiatingClosingFee
@@ -473,7 +473,7 @@ fn updates_shutdown_wait() {
assert!(updates_2.update_fee.is_none());
assert_eq!(updates_2.update_fulfill_htlcs.len(), 1);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, updates_2.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], updates_2.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates_2.commitment_signed, false, true);
expect_payment_sent!(nodes[0], payment_preimage_0);
let node_0_closing_signed =
@@ -582,7 +582,7 @@ fn do_htlc_fail_async_shutdown(blinded_recipient: bool) {
assert!(updates_2.update_fee.is_none());
nodes[0].node.handle_update_fail_htlc(node_b_id, &updates_2.update_fail_htlcs[0]);
- commitment_signed_dance!(nodes[0], nodes[1], updates_2.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates_2.commitment_signed, false, true);
if blinded_recipient {
expect_payment_failed_conditions(
@@ -739,7 +739,7 @@ fn do_test_shutdown_rebroadcast(recv_count: u8) {
assert!(updates_2.update_fee.is_none());
assert_eq!(updates_2.update_fulfill_htlcs.len(), 1);
nodes[0].node.handle_update_fulfill_htlc(node_b_id, updates_2.update_fulfill_htlcs.remove(0));
- commitment_signed_dance!(nodes[0], nodes[1], updates_2.commitment_signed, false, true);
+ do_commitment_signed_dance(&nodes[0], &nodes[1], &updates_2.commitment_signed, false, true);
expect_payment_sent!(nodes[0], payment_preimage);
let node_0_closing_signed =
Why this scored 13/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.