Remove `check_closed_event` macro
What changed, and why it matters
This commit is a pure code cleanup: it removes a Rust macro used in tests and replaces every call to that macro with an equivalent function call. The behavior of the tests remains the same; no production code or security logic was changed.
No action required; this is a non-functional refactor. Continue normal review/CI verification.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit deletes the check_closed_event! macro from lightning/src/ln/functional_test_utils.rs and introduces a public check_closed_event function plus a lower-level check_closed_event_internal helper. All call sites across the test suite are updated from macro syntax to function-call syntax, including minor adjustments such as passing slices by reference (&[...]) and dropping the false is_check_discard_funding argument from the common path. No runtime logic in the Lightning node implementation is modified.
Changed components
lightning/src/ln/functional_test_utils.rstest files only across lightning, lightning-persister, lightning-liquidity, and lightning-tests cratesInspect captured patch +334 / −337
diff --git a/lightning-liquidity/tests/lsps5_integration_tests.rs b/lightning-liquidity/tests/lsps5_integration_tests.rs
index 80707a6..16f20fd 100644
--- a/lightning-liquidity/tests/lsps5_integration_tests.rs
+++ b/lightning-liquidity/tests/lsps5_integration_tests.rs
@@ -8,12 +8,11 @@ use common::{
};
use lightning::chain::{BestBlock, Filter};
-use lightning::check_closed_event;
use lightning::events::ClosureReason;
use lightning::ln::channelmanager::{ChainParameters, InterceptId};
use lightning::ln::functional_test_utils::{
- close_channel, create_chan_between_nodes, create_chanmon_cfgs, create_network,
- create_node_cfgs, create_node_chanmgrs, Node,
+ check_closed_event, close_channel, create_chan_between_nodes, create_chanmon_cfgs,
+ create_network, create_node_cfgs, create_node_chanmgrs, Node,
};
use lightning::ln::msgs::Init;
use lightning::ln::peer_handler::CustomMessageHandler;
@@ -1480,9 +1479,9 @@ fn dos_protection() {
close_channel(&service_node.inner, &client_node.inner, &channel_id, funding_tx, true);
let node_a_reason = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(service_node.inner, 1, node_a_reason, [client_node_id], 100000);
+ check_closed_event(&service_node.inner, 1, node_a_reason, &[client_node_id], 100000);
let node_b_reason = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(client_node.inner, 1, node_b_reason, [service_node_id], 100000);
+ check_closed_event(&client_node.inner, 1, node_b_reason, &[service_node_id], 100000);
// channel is now closed again -> should reject
assert_lsps5_reject(&service_node, &client_node);
diff --git a/lightning-persister/src/fs_store.rs b/lightning-persister/src/fs_store.rs
index 9b15398..dacc852 100644
--- a/lightning-persister/src/fs_store.rs
+++ b/lightning-persister/src/fs_store.rs
@@ -720,7 +720,6 @@ mod tests {
use lightning::chain::chainmonitor::Persist;
use lightning::chain::ChannelMonitorUpdateStatus;
- use lightning::check_closed_event;
use lightning::events::ClosureReason;
use lightning::ln::functional_test_utils::*;
use lightning::ln::msgs::BaseMessageHandler;
@@ -884,7 +883,7 @@ mod tests {
.unwrap();
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
let mut added_monitors = nodes[1].chain_monitor.added_monitors.lock().unwrap();
// Set the store's directory to read-only, which should result in
@@ -928,7 +927,7 @@ mod tests {
.unwrap();
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
let mut added_monitors = nodes[1].chain_monitor.added_monitors.lock().unwrap();
let update_map = nodes[1].chain_monitor.latest_monitor_update_id.lock().unwrap();
let update_id = update_map.get(&added_monitors[0].1.channel_id()).unwrap();
diff --git a/lightning-persister/src/test_utils.rs b/lightning-persister/src/test_utils.rs
index 636967a..1de51f4 100644
--- a/lightning-persister/src/test_utils.rs
+++ b/lightning-persister/src/test_utils.rs
@@ -1,14 +1,14 @@
use lightning::events::ClosureReason;
use lightning::ln::functional_test_utils::{
- connect_block, create_announced_chan_between_nodes, create_chanmon_cfgs, create_dummy_block,
- create_network, create_node_cfgs, create_node_chanmgrs, send_payment,
+ check_closed_event, connect_block, create_announced_chan_between_nodes, create_chanmon_cfgs,
+ create_dummy_block, create_network, create_node_cfgs, create_node_chanmgrs, send_payment,
};
use lightning::util::persist::{
migrate_kv_store_data, read_channel_monitors, KVStoreSync, MigratableKVStore,
KVSTORE_NAMESPACE_KEY_ALPHABET, KVSTORE_NAMESPACE_KEY_MAX_LEN,
};
use lightning::util::test_utils;
-use lightning::{check_added_monitors, check_closed_broadcast, check_closed_event};
+use lightning::{check_added_monitors, check_closed_broadcast};
use std::panic::RefUnwindSafe;
@@ -188,7 +188,7 @@ pub(crate) fn do_test_store<K: KVStoreSync + Sync>(store_0: &K, store_1: &K) {
.force_close_broadcasting_latest_txn(&chan_id, &node_b_id, message.clone())
.unwrap();
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
check_closed_broadcast!(nodes[0], true);
check_added_monitors!(nodes[0], 1);
@@ -204,13 +204,8 @@ pub(crate) fn do_test_store<K: KVStoreSync + Sync>(store_0: &K, store_1: &K) {
),
);
check_closed_broadcast!(nodes[1], true);
- check_closed_event!(
- nodes[1],
- 1,
- ClosureReason::CommitmentTxConfirmed,
- [nodes[0].node.get_our_node_id()],
- 100000
- );
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[nodes[0].node.get_our_node_id()], 100000);
check_added_monitors!(nodes[1], 1);
// Make sure everything is persisted as expected after close.
diff --git a/lightning-tests/src/upgrade_downgrade_tests.rs b/lightning-tests/src/upgrade_downgrade_tests.rs
index 032d61d..cef180f 100644
--- a/lightning-tests/src/upgrade_downgrade_tests.rs
+++ b/lightning-tests/src/upgrade_downgrade_tests.rs
@@ -291,7 +291,7 @@ fn test_0_1_legacy_remote_key_derivation() {
mine_transaction(&nodes[0], &commitment_tx[0]);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event(&nodes[0], 1, reason, false, &[node_b_id], 100_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100_000);
check_added_monitors(&nodes[0], 1);
check_closed_broadcast(&nodes[0], 1, false);
diff --git a/lightning/src/chain/chainmonitor.rs b/lightning/src/chain/chainmonitor.rs
index 846e717..3b740f5 100644
--- a/lightning/src/chain/chainmonitor.rs
+++ b/lightning/src/chain/chainmonitor.rs
@@ -1596,10 +1596,10 @@ where
mod tests {
use crate::chain::channelmonitor::ANTI_REORG_DELAY;
use crate::chain::{ChannelMonitorUpdateStatus, Watch};
+ use crate::check_added_monitors;
use crate::events::{ClosureReason, Event};
use crate::ln::functional_test_utils::*;
use crate::ln::msgs::{BaseMessageHandler, ChannelMessageHandler, MessageSendEvent};
- use crate::{check_added_monitors, check_closed_event};
use crate::{expect_payment_path_successful, get_event_msg};
const CHAINSYNC_MONITOR_PARTITION_FACTOR: u32 = 5;
@@ -1780,7 +1780,7 @@ mod tests {
.unwrap();
let closure_reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(&nodes[0], 1, closure_reason, false, [node_c_id], 1000000);
+ check_closed_event(&nodes[0], 1, closure_reason, &[node_c_id], 1000000);
check_closed_broadcast(&nodes[0], 1, true);
let close_tx = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
assert_eq!(close_tx.len(), 1);
@@ -1789,7 +1789,7 @@ mod tests {
check_closed_broadcast(&nodes[2], 1, true);
check_added_monitors(&nodes[2], 1);
let closure_reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event!(&nodes[2], 1, closure_reason, false, [node_a_id], 1000000);
+ check_closed_event(&nodes[2], 1, closure_reason, &[node_a_id], 1000000);
chanmon_cfgs[0].persister.chain_sync_monitor_persistences.lock().unwrap().clear();
chanmon_cfgs[2].persister.chain_sync_monitor_persistences.lock().unwrap().clear();
diff --git a/lightning/src/chain/channelmonitor.rs b/lightning/src/chain/channelmonitor.rs
index 1d035b6..e461bd4 100644
--- a/lightning/src/chain/channelmonitor.rs
+++ b/lightning/src/chain/channelmonitor.rs
@@ -7012,7 +7012,7 @@ mod tests {
check_spends!(htlc_txn[1], broadcast_tx);
check_closed_broadcast(&nodes[1], 1, true);
- check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, false, &[nodes[0].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 100000);
check_added_monitors(&nodes[1], 1);
}
diff --git a/lightning/src/ln/async_signer_tests.rs b/lightning/src/ln/async_signer_tests.rs
index 7fb67cc..598af9b 100644
--- a/lightning/src/ln/async_signer_tests.rs
+++ b/lightning/src/ln/async_signer_tests.rs
@@ -1025,7 +1025,7 @@ fn do_test_async_holder_signatures(keyed_anchors: bool, p2a_anchor: bool, remote
check_closed_broadcast(&nodes[1], 1, true);
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[1], 1, reason, false, &[node_a_id], 100_000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100_000);
} else {
nodes[0].disable_channel_signer_op(&node_b_id, &chan_id, SignerOp::SignHolderCommitment);
nodes[0].disable_channel_signer_op(
@@ -1100,7 +1100,7 @@ fn do_test_async_holder_signatures(keyed_anchors: bool, p2a_anchor: bool, remote
} else {
ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash) }
};
- check_closed_event(&nodes[0], 1, closure_reason, false, &[node_b_id], 100_000);
+ check_closed_event(&nodes[0], 1, closure_reason, &[node_b_id], 100_000);
// If the counterparty broadcast its latest commitment, we need to mine enough blocks for the
// HTLC timeout.
@@ -1319,9 +1319,9 @@ fn do_test_closing_signed(extra_closing_signed: bool, reconnect: bool) {
assert!(nodes[0].node.list_channels().is_empty());
assert!(nodes[1].node.list_channels().is_empty());
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
}
#[test]
diff --git a/lightning/src/ln/chanmon_update_fail_tests.rs b/lightning/src/ln/chanmon_update_fail_tests.rs
index dd9e960..f460826 100644
--- a/lightning/src/ln/chanmon_update_fail_tests.rs
+++ b/lightning/src/ln/chanmon_update_fail_tests.rs
@@ -288,7 +288,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool) {
// PaymentPathFailed event
assert_eq!(nodes[0].node.list_channels().len(), 0);
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[test]
@@ -2274,9 +2274,9 @@ fn do_during_funding_monitor_fail(
send_payment(&nodes[0], &[&nodes[1]], 8000000);
close_channel(&nodes[0], &nodes[1], &channel_id, funding_tx, true);
let reason_a = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
}
#[test]
@@ -2514,7 +2514,8 @@ fn test_fail_htlc_on_broadcast_after_claim() {
expect_payment_forwarded!(nodes[1], nodes[0], nodes[2], Some(1000), false, false);
mine_transaction(&nodes[1], &bs_txn[0]);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_c_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], 100000);
check_closed_broadcast!(nodes[1], true);
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 1);
check_added_monitors!(nodes[1], 1);
@@ -3070,9 +3071,9 @@ fn test_temporary_error_during_shutdown() {
assert_eq!(txn_a.len(), 1);
check_spends!(txn_a[0], funding_tx);
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
}
#[test]
@@ -3309,7 +3310,7 @@ fn do_test_outbound_reload_without_init_mon(use_0conf: bool) {
let node_a_ser = nodes[0].node.encode();
reload_node!(nodes[0], &node_a_ser, &[], persister, new_chain_monitor, node_a_reload);
- check_closed_event!(nodes[0], 1, ClosureReason::DisconnectedPeer, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, ClosureReason::DisconnectedPeer, &[node_b_id], 100000);
assert!(nodes[0].node.list_channels().is_empty());
}
@@ -3417,7 +3418,7 @@ fn do_test_inbound_reload_without_init_mon(use_0conf: bool, lock_commitment: boo
let node_b_ser = nodes[1].node.encode();
reload_node!(nodes[1], &node_b_ser, &[], persister, new_chain_monitor, node_b_reload);
- check_closed_event!(nodes[1], 1, ClosureReason::DisconnectedPeer, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, ClosureReason::DisconnectedPeer, &[node_a_id], 100000);
assert!(nodes[1].node.list_channels().is_empty());
}
@@ -3715,7 +3716,7 @@ fn do_test_inverted_mon_completion_order(
persister.set_update_ret(ChannelMonitorUpdateStatus::InProgress);
persister.set_update_ret(ChannelMonitorUpdateStatus::InProgress);
let reason = ClosureReason::OutdatedChannelManager;
- check_closed_event(&nodes[1], 1, reason, false, &[node_c_id], 100_000);
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], 100_000);
check_added_monitors(&nodes[1], 2);
nodes[1].node.timer_tick_occurred();
@@ -3838,7 +3839,7 @@ fn do_test_durable_preimages_on_closed_channel(
check_closed_broadcast(&nodes[1], 1, true);
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[1], 1, reason, false, &[node_c_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], 100000);
}
chanmon_cfgs[1].persister.set_update_ret(ChannelMonitorUpdateStatus::InProgress);
@@ -3850,7 +3851,7 @@ fn do_test_durable_preimages_on_closed_channel(
check_closed_broadcast(&nodes[1], 1, true);
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[1], 1, reason, false, &[node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
// Now reload node B
@@ -3876,7 +3877,7 @@ fn do_test_durable_preimages_on_closed_channel(
message: err_msg.clone(),
};
nodes[0].node.force_close_broadcasting_latest_txn(&chan_id_ab, &node_b_id, err_msg).unwrap();
- check_closed_event(&nodes[0], 1, reason, false, &[node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
check_added_monitors(&nodes[0], 1);
let as_closing_tx = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
assert_eq!(as_closing_tx.len(), 1);
@@ -3906,7 +3907,7 @@ fn do_test_durable_preimages_on_closed_channel(
if !close_chans_before_reload {
check_closed_broadcast(&nodes[1], 1, false);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event(&nodes[1], 1, reason, false, &[node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
nodes[1].node.timer_tick_occurred();
check_added_monitors(&nodes[1], mons_added);
@@ -4046,7 +4047,7 @@ fn do_test_reload_mon_update_completion_actions(close_during_reload: bool) {
nodes[0].node.force_close_broadcasting_latest_txn(&chan_id_ab, &node_b_id, msg).unwrap();
check_added_monitors!(nodes[0], 1);
check_closed_broadcast!(nodes[0], true);
- check_closed_event(&nodes[0], 1, reason, false, &[node_b_id], 100_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100_000);
let as_closing_tx = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
mine_transaction_without_consistency_checks(&nodes[1], &as_closing_tx[0]);
}
@@ -4493,7 +4494,7 @@ fn test_claim_to_closed_channel_blocks_forwarded_preimage_removal() {
.unwrap();
check_added_monitors!(nodes[0], 1);
let a_reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, a_reason, [node_b_id], 1000000);
+ check_closed_event(&nodes[0], 1, a_reason, &[node_b_id], 1000000);
check_closed_broadcast!(nodes[0], true);
let as_commit_tx = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
@@ -4502,7 +4503,8 @@ fn test_claim_to_closed_channel_blocks_forwarded_preimage_removal() {
mine_transaction(&nodes[1], &as_commit_tx[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 1000000);
+ let b_reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, b_reason, &[node_a_id], 1000000);
// Now that B has a pending forwarded payment across it with the inbound edge on-chain, claim
// the payment on C and give B the preimage for it.
@@ -4569,7 +4571,7 @@ fn test_claim_to_closed_channel_blocks_claimed_event() {
.unwrap();
check_added_monitors!(nodes[0], 1);
let a_reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, a_reason, [node_b_id], 1000000);
+ check_closed_event(&nodes[0], 1, a_reason, &[node_b_id], 1000000);
check_closed_broadcast!(nodes[0], true);
let as_commit_tx = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
@@ -4578,7 +4580,8 @@ fn test_claim_to_closed_channel_blocks_claimed_event() {
mine_transaction(&nodes[1], &as_commit_tx[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 1000000);
+ let b_reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, b_reason, &[node_a_id], 1000000);
// Now that B has a pending payment with the inbound HTLC on a closed channel, claim the
// payment on disk, but don't let the `ChannelMonitorUpdate` complete. This should prevent the
diff --git a/lightning/src/ln/channel_open_tests.rs b/lightning/src/ln/channel_open_tests.rs
index 3fd546a..04ed9ed 100644
--- a/lightning/src/ln/channel_open_tests.rs
+++ b/lightning/src/ln/channel_open_tests.rs
@@ -1045,7 +1045,7 @@ pub fn test_user_configurable_csv_delay() {
panic!();
}
let reason = ClosureReason::ProcessingError { err: reason_msg };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 1000000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 1000000);
// We test msg.to_self_delay <= config.their_to_self_delay is enforced in InboundV1Channel::new()
nodes[1].node.create_channel(node_a_id, 1000000, 1000000, 42, None, None).unwrap();
@@ -1705,7 +1705,7 @@ pub fn test_invalid_funding_tx() {
confirm_transaction_at(&nodes[1], &tx, 1);
let reason = ClosureReason::ProcessingError { err: expected_err.to_string() };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
check_added_monitors(&nodes[1], 1);
let events_2 = nodes[1].node.get_and_clear_pending_msg_events();
@@ -1963,7 +1963,7 @@ pub fn test_channel_close_when_not_timely_accepted() {
// Since we disconnected from peer and did not connect back within time,
// we should have forced-closed the channel by now.
let reason = ClosureReason::FundingTimedOut;
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
assert_eq!(nodes[0].node.list_channels().len(), 0);
{
@@ -2346,12 +2346,12 @@ pub fn test_funding_and_commitment_tx_confirm_same_block() {
check_msg_events(&nodes[0]);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event(&nodes[0], 1, reason, false, &[node_b_id], 1_000_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 1_000_000);
check_msg_events(&nodes[1]);
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event(&nodes[1], 1, reason, false, &[node_a_id], 1_000_000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 1_000_000);
assert!(nodes[0].node.list_channels().is_empty());
assert!(nodes[1].node.list_channels().is_empty());
@@ -2542,5 +2542,5 @@ fn test_fund_pending_channel() {
let reason = ClosureReason::ProcessingError {
err: "Error in transaction funding: Misuse error: Channel f7fee84016d554015f5166c0a0df6479942ef55fd70713883b0493493a38e13a with counterparty 0355f8d2238a322d16b602bd0ceaad5b01019fb055971eaadcc9b29226a4da6c23 is not an unfunded, outbound channel ready to fund".to_owned(),
};
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100_000);
}
diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs
index bfddce7..1ac75ba 100644
--- a/lightning/src/ln/channelmanager.rs
+++ b/lightning/src/ln/channelmanager.rs
@@ -18890,7 +18890,7 @@ mod tests {
nodes[0].node.force_close_broadcasting_latest_txn(&chan.2, &nodes[1].node.get_our_node_id(), message.clone()).unwrap();
check_added_monitors!(nodes[0], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [nodes[1].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 100000);
// Confirm that the channel_update was not sent immediately to node[1] but was cached.
let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
@@ -18954,7 +18954,7 @@ mod tests {
.unwrap();
check_added_monitors!(nodes[0], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [nodes[1].node.get_our_node_id()], 1_000_000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 1_000_000);
{
// Assert that nodes[1] is awaiting removal for nodes[0] once nodes[1] has been
@@ -18991,8 +18991,8 @@ mod tests {
nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
- check_closed_event!(nodes[0], 1, ClosureReason::DisconnectedPeer, [nodes[1].node.get_our_node_id()], 1_000_000);
- check_closed_event!(nodes[1], 1, ClosureReason::DisconnectedPeer, [nodes[0].node.get_our_node_id()], 1_000_000);
+ check_closed_event(&nodes[0], 1, ClosureReason::DisconnectedPeer, &[nodes[1].node.get_our_node_id()], 1_000_000);
+ check_closed_event(&nodes[1], 1, ClosureReason::DisconnectedPeer, &[nodes[0].node.get_our_node_id()], 1_000_000);
// At this point the state for the peers should have been removed.
assert_eq!(nodes[0].node.per_peer_state.read().unwrap().len(), 0);
@@ -19438,7 +19438,7 @@ mod tests {
check_closed_broadcast(&nodes[0], 1, false);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [nodes[1].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 100000);
{
let txn = nodes[0].tx_broadcaster.txn_broadcast();
assert_eq!(txn.len(), 1);
@@ -19476,7 +19476,7 @@ mod tests {
let expected_close_reason = ClosureReason::ProcessingError {
err: "Peer sent an invalid channel_reestablish to force close in a non-standard way".to_string()
};
- check_closed_event!(nodes[1], 1, expected_close_reason, [nodes[0].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[1], 1, expected_close_reason, &[nodes[0].node.get_our_node_id()], 100000);
{
let txn = nodes[1].tx_broadcaster.txn_broadcast();
assert_eq!(txn.len(), 1);
diff --git a/lightning/src/ln/functional_test_utils.rs b/lightning/src/ln/functional_test_utils.rs
index 987ef27..9445753 100644
--- a/lightning/src/ln/functional_test_utils.rs
+++ b/lightning/src/ln/functional_test_utils.rs
@@ -2348,6 +2348,20 @@ pub fn check_closed_events(node: &Node, expected_close_events: &[ExpectedCloseEv
/// Check that a channel's closing channel events has been issued
pub fn check_closed_event(
+ node: &Node, events_count: usize, expected_reason: ClosureReason,
+ expected_counterparty_node_ids: &[PublicKey], expected_channel_capacity: u64,
+) {
+ check_closed_event_internal(
+ node,
+ events_count,
+ expected_reason,
+ false,
+ expected_counterparty_node_ids,
+ expected_channel_capacity,
+ );
+}
+
+pub fn check_closed_event_internal(
node: &Node, events_count: usize, expected_reason: ClosureReason,
is_check_discard_funding: bool, expected_counterparty_node_ids: &[PublicKey],
expected_channel_capacity: u64,
@@ -2374,33 +2388,6 @@ pub fn check_closed_event(
check_closed_events(node, expected_close_events.as_slice());
}
-/// Check that a channel's closing channel events has been issued
-///
-/// Don't use this, use the identically-named function instead.
-#[macro_export]
-macro_rules! check_closed_event {
- ($node: expr, $events: expr, $reason: expr, $counterparty_node_ids: expr, $channel_capacity: expr) => {
- check_closed_event!(
- $node,
- $events,
- $reason,
- false,
- $counterparty_node_ids,
- $channel_capacity
- );
- };
- ($node: expr, $events: expr, $reason: expr, $is_check_discard_funding: expr, $counterparty_node_ids: expr, $channel_capacity: expr) => {
- $crate::ln::functional_test_utils::check_closed_event(
- &$node,
- $events,
- $reason,
- $is_check_discard_funding,
- &$counterparty_node_ids,
- $channel_capacity,
- );
- };
-}
-
pub fn handle_bump_events(node: &Node, expected_close: bool, expected_htlc_count: usize) {
let events = node.chain_monitor.chain_monitor.get_and_clear_pending_events();
let mut close = false;
diff --git a/lightning/src/ln/functional_tests.rs b/lightning/src/ln/functional_tests.rs
index 4f3b7ba..70dfc9e 100644
--- a/lightning/src/ln/functional_tests.rs
+++ b/lightning/src/ln/functional_tests.rs
@@ -211,27 +211,27 @@ pub fn fake_network_test() {
// Close down the channels...
close_channel(&nodes[0], &nodes[1], &chan_1.2, chan_1.3, true);
let node_a_reason = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, node_a_reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, node_a_reason, &[node_b_id], 100000);
let node_b_reason = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, node_b_reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, node_b_reason, &[node_a_id], 100000);
close_channel(&nodes[1], &nodes[2], &chan_2.2, chan_2.3, false);
let node_b_reason = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, node_b_reason, [node_c_id], 100000);
+ check_closed_event(&nodes[1], 1, node_b_reason, &[node_c_id], 100000);
let node_c_reason = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[2], 1, node_c_reason, [node_b_id], 100000);
+ check_closed_event(&nodes[2], 1, node_c_reason, &[node_b_id], 100000);
close_channel(&nodes[2], &nodes[3], &chan_3.2, chan_3.3, true);
let node_c_reason = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[2], 1, node_c_reason, [node_d_id], 100000);
+ check_closed_event(&nodes[2], 1, node_c_reason, &[node_d_id], 100000);
let node_d_reason = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[3], 1, node_d_reason, [node_c_id], 100000);
+ check_closed_event(&nodes[3], 1, node_d_reason, &[node_c_id], 100000);
close_channel(&nodes[1], &nodes[3], &chan_4.2, chan_4.3, false);
let node_b_reason = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, node_b_reason, [node_d_id], 100000);
+ check_closed_event(&nodes[1], 1, node_b_reason, &[node_d_id], 100000);
let node_d_reason = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[3], 1, node_d_reason, [node_b_id], 100000);
+ check_closed_event(&nodes[3], 1, node_d_reason, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -353,7 +353,8 @@ pub fn test_duplicate_htlc_different_direction_onchain() {
}
}
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
connect_blocks(&nodes[0], TEST_FINAL_CLTV); // Confirm blocks until the HTLC expires
let claim_txn = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
@@ -462,7 +463,7 @@ fn do_test_fail_back_before_backwards_timeout(post_fail_back_action: PostFailBac
connect_blocks(&nodes[1], timeout_blocks);
let node_1_txn = test_txn_broadcast(&nodes[1], &chan_2, None, HTLCType::TIMEOUT);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash) };
- check_closed_event(&nodes[1], 1, reason, false, &[node_c_id], 100_000);
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], 100_000);
check_closed_broadcast(&nodes[1], 1, true);
check_added_monitors(&nodes[1], 1);
@@ -517,7 +518,7 @@ fn do_test_fail_back_before_backwards_timeout(post_fail_back_action: PostFailBac
let node_2_txn = test_txn_broadcast(&nodes[2], &chan_2, None, HTLCType::SUCCESS);
check_closed_broadcast!(nodes[2], true);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash) };
- check_closed_event(&nodes[2], 1, reason, false, &[node_b_id], 100_000);
+ check_closed_event(&nodes[2], 1, reason, &[node_b_id], 100_000);
check_added_monitors(&nodes[2], 1);
mine_transaction(&nodes[1], &node_2_txn[0]); // Commitment
@@ -598,7 +599,7 @@ pub fn channel_monitor_network_test() {
check_added_monitors(&nodes[1], 1);
check_closed_broadcast!(nodes[1], true);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
{
let mut node_txn = test_txn_broadcast(&nodes[1], &chan_1, None, HTLCType::NONE);
assert_eq!(node_txn.len(), 1);
@@ -614,7 +615,8 @@ pub fn channel_monitor_network_test() {
}
assert_eq!(nodes[0].node.list_channels().len(), 0);
assert_eq!(nodes[1].node.list_channels().len(), 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
// One pending HTLC is discarded by the force-close:
let (payment_preimage_1, payment_hash_1, ..) =
@@ -645,8 +647,9 @@ pub fn channel_monitor_network_test() {
assert_eq!(nodes[2].node.list_channels().len(), 1);
let node_b_reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, node_b_reason, [node_c_id], 100000);
- check_closed_event!(nodes[2], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ check_closed_event(&nodes[1], 1, node_b_reason, &[node_c_id], 100000);
+ let node_c_reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[2], 1, node_c_reason, &[node_b_id], 100000);
macro_rules! claim_funds {
($node: expr, $prev_node: expr, $preimage: expr, $payment_hash: expr) => {{
@@ -699,8 +702,9 @@ pub fn channel_monitor_network_test() {
assert_eq!(nodes[3].node.list_channels().len(), 1);
let node_c_reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[2], 1, node_c_reason, [node_d_id], 100000);
- check_closed_event!(nodes[3], 1, ClosureReason::CommitmentTxConfirmed, [node_c_id], 100000);
+ check_closed_event(&nodes[2], 1, node_c_reason, &[node_d_id], 100000);
+ let node_d_reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[3], 1, node_d_reason, &[node_c_id], 100000);
// Drop the ChannelMonitor for the previous channel to avoid it broadcasting transactions and
// confusing us in the following tests.
@@ -767,7 +771,7 @@ pub fn channel_monitor_network_test() {
check_added_monitors(&nodes[4], 1);
test_txn_broadcast(&nodes[4], &chan_4, None, HTLCType::SUCCESS);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash_2) };
- check_closed_event!(nodes[4], 1, reason, [node_d_id], 100000);
+ check_closed_event(&nodes[4], 1, reason, &[node_d_id], 100000);
mine_transaction(&nodes[4], &node_txn[0]);
check_preimage_claim(&nodes[4], &node_txn);
@@ -785,7 +789,7 @@ pub fn channel_monitor_network_test() {
Ok(ChannelMonitorUpdateStatus::Completed)
);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash_2) };
- check_closed_event!(nodes[3], 1, reason, [node_id_4], 100000);
+ check_closed_event(&nodes[3], 1, reason, &[node_id_4], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -846,7 +850,8 @@ pub fn test_justice_tx_htlc_timeout() {
assert_ne!(node_txn[0].input[0].previous_output, node_txn[0].input[1].previous_output);
node_txn.clear();
}
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason.clone(), &[node_a_id], 100000);
check_added_monitors(&nodes[1], 1);
test_txn_broadcast(&nodes[1], &chan_5, Some(revoked_local_txn[0].clone()), HTLCType::NONE);
@@ -860,7 +865,7 @@ pub fn test_justice_tx_htlc_timeout() {
Some(revoked_local_txn[0].clone()),
HTLCType::TIMEOUT,
);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
check_added_monitors(&nodes[0], 1);
// Broadcast revoked HTLC-timeout on node 1
mine_transaction(&nodes[1], &node_txn[1]);
@@ -928,7 +933,8 @@ pub fn test_justice_tx_htlc_success() {
mine_transaction(&nodes[1], &revoked_local_txn[0]);
check_closed_broadcast(&nodes[1], 1, true);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason.clone(), &[node_a_id], 100000);
let node_txn = test_txn_broadcast(
&nodes[1],
&chan_6,
@@ -937,7 +943,7 @@ pub fn test_justice_tx_htlc_success() {
);
check_added_monitors(&nodes[1], 1);
mine_transaction(&nodes[0], &node_txn[1]);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
test_revoked_htlc_claim_txn_broadcast(
&nodes[0],
node_txn[1].clone(),
@@ -971,7 +977,8 @@ pub fn revoked_output_claim() {
// Inform nodes[1] that nodes[0] broadcast a stale tx
mine_transaction(&nodes[1], &revoked_local_txn[0]);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason.clone(), &[node_a_id], 100000);
check_added_monitors(&nodes[1], 1);
let node_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
assert_eq!(node_txn.len(), 1); // ChannelMonitor: justice tx against revoked to_local output
@@ -982,7 +989,7 @@ pub fn revoked_output_claim() {
mine_transaction(&nodes[0], &revoked_local_txn[0]);
get_announce_close_broadcast_events(&nodes, 0, 1);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1036,11 +1043,11 @@ fn do_test_forming_justice_tx_from_monitor_updates(broadcast_initial_commitment:
get_announce_close_broadcast_events(&nodes, 1, 0);
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event(&nodes[1], 1, reason, false, &[node_a_id], 100_000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100_000);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event(&nodes[0], 1, reason, false, &[node_b_id], 100_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100_000);
// Check that the justice tx has sent the revoked output value to nodes[1]
let monitor = get_monitor!(nodes[1], channel_id);
@@ -1106,11 +1113,12 @@ pub fn claim_htlc_outputs() {
mine_transaction(&nodes[0], &revoked_local_txn[0]);
check_closed_broadcast(&nodes[0], 1, true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason.clone(), &[node_b_id], 100000);
mine_transaction(&nodes[1], &revoked_local_txn[0]);
check_closed_broadcast(&nodes[1], 1, true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 1);
assert!(nodes[1].node.get_and_clear_pending_events().is_empty());
@@ -1211,14 +1219,8 @@ pub fn do_test_multiple_package_conflicts(p2a_anchor: bool) {
let node2_commit_tx = &node2_commit_tx[0];
check_spends!(node2_commit_tx, funding_tx_1_2);
mine_transaction(&nodes[1], node2_commit_tx);
- check_closed_event(
- &nodes[1],
- 1,
- ClosureReason::CommitmentTxConfirmed,
- false,
- &[node_c_id],
- CHAN_CAPACITY,
- );
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], CHAN_CAPACITY);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
@@ -1258,14 +1260,8 @@ pub fn do_test_multiple_package_conflicts(p2a_anchor: bool) {
);
}
mine_transaction(&nodes[2], node2_commit_tx);
- check_closed_event(
- &nodes[2],
- 1,
- ClosureReason::CommitmentTxConfirmed,
- false,
- &[node_b_id],
- CHAN_CAPACITY,
- );
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[2], 1, reason, &[node_b_id], CHAN_CAPACITY);
check_closed_broadcast!(nodes[2], true);
check_added_monitors(&nodes[2], 1);
@@ -1438,7 +1434,8 @@ pub fn test_htlc_on_chain_success() {
mine_transaction(&nodes[2], &commitment_tx[0]);
check_closed_broadcast!(nodes[2], true);
check_added_monitors(&nodes[2], 1);
- check_closed_event!(nodes[2], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[2], 1, reason, &[node_b_id], 100000);
let node_txn = nodes[2].tx_broadcaster.txn_broadcasted.lock().unwrap().clone(); // ChannelMonitor: 2 (2 * HTLC-Success tx)
assert_eq!(node_txn.len(), 2);
check_spends!(node_txn[0], commitment_tx[0]);
@@ -1559,7 +1556,8 @@ pub fn test_htlc_on_chain_success() {
mine_transaction(&nodes[1], &node_a_commitment_tx[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
let node_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
assert!(node_txn.len() == 1 || node_txn.len() == 2); // HTLC-Success, RBF bump of above aggregated HTLC txn
let commitment_spend = if node_txn.len() == 1 {
@@ -1696,7 +1694,8 @@ fn do_test_htlc_on_chain_timeout(connect_style: ConnectStyle) {
mine_transaction(&nodes[2], &commitment_tx[0]);
check_closed_broadcast!(nodes[2], true);
check_added_monitors(&nodes[2], 1);
- check_closed_event!(nodes[2], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[2], 1, reason, &[node_b_id], 100000);
let node_txn = nodes[2].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
assert_eq!(node_txn.len(), 0);
@@ -1704,7 +1703,7 @@ fn do_test_htlc_on_chain_timeout(connect_style: ConnectStyle) {
// Verify that B's ChannelManager is able to detect that HTLC is timeout by its own tx and react backward in consequence
mine_transaction(&nodes[1], &commitment_tx[0]);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event(&nodes[1], 1, reason, false, &[node_c_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], 100000);
let htlc_expiry = get_monitor!(nodes[1], chan_2.2)
.get_claimable_balances()
.iter()
@@ -1779,7 +1778,8 @@ fn do_test_htlc_on_chain_timeout(connect_style: ConnectStyle) {
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
let node_txn = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().clone(); // 1 timeout tx
assert_eq!(node_txn.len(), 1);
check_spends!(node_txn[0], commitment_tx[0]);
@@ -1824,7 +1824,8 @@ pub fn test_simple_commitment_revoked_fail_backward() {
let (_, payment_hash, ..) = route_payment(&nodes[0], &[&nodes[1], &nodes[2]], 3000000);
mine_transaction(&nodes[1], &revoked_local_txn[0]);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_c_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], 100000);
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 1);
check_added_monitors(&nodes[1], 1);
check_closed_broadcast!(nodes[1], true);
@@ -2331,7 +2332,7 @@ pub fn test_htlc_ignore_latest_remote_commitment() {
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
let node_txn = nodes[0].tx_broadcaster.unique_txn_broadcast();
assert_eq!(node_txn.len(), 2);
@@ -2342,7 +2343,8 @@ pub fn test_htlc_ignore_latest_remote_commitment() {
connect_block(&nodes[1], &block);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
// Duplicate the connect_block call since this may happen due to other listeners
// registering new transactions
@@ -2406,7 +2408,7 @@ pub fn test_force_close_fail_back() {
check_closed_broadcast!(nodes[2], true);
check_added_monitors(&nodes[2], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[2], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[2], 1, reason, &[node_b_id], 100000);
let commitment_tx = {
let mut node_txn = nodes[2].tx_broadcaster.txn_broadcasted.lock().unwrap();
@@ -2422,7 +2424,8 @@ pub fn test_force_close_fail_back() {
// Note no UpdateHTLCs event here from nodes[1] to nodes[0]!
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_c_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], 100000);
// Now check that if we add the preimage to ChannelMonitor it broadcasts our HTLC-Success..
{
@@ -2537,8 +2540,9 @@ pub fn test_peer_disconnected_before_funding_broadcasted() {
// Ensure that the channel is closed with `ClosureReason::DisconnectedPeer` and a
// `DiscardFunding` event when the peers are disconnected and do not reconnect before the
// funding transaction is broadcasted.
- check_closed_event!(&nodes[0], 2, ClosureReason::DisconnectedPeer, true, [node_b_id], 1000000);
- check_closed_event!(&nodes[1], 1, ClosureReason::DisconnectedPeer, false, [node_a_id], 1000000);
+ let reason = ClosureReason::DisconnectedPeer;
+ check_closed_event_internal(&nodes[0], 2, reason, true, &[node_b_id], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::DisconnectedPeer, &[node_a_id], 1000000);
}
#[xtest(feature = "_externalize_tests")]
@@ -3478,7 +3482,7 @@ pub fn test_claim_sizeable_push_msat() {
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
let node_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
assert_eq!(node_txn.len(), 1);
@@ -3517,7 +3521,7 @@ pub fn test_claim_on_remote_sizeable_push_msat() {
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
let node_txn = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
assert_eq!(node_txn.len(), 1);
@@ -3527,7 +3531,8 @@ pub fn test_claim_on_remote_sizeable_push_msat() {
mine_transaction(&nodes[1], &node_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 1);
let spend_txn = check_spendable_outputs!(nodes[1], node_cfgs[1].keys_manager);
@@ -3557,7 +3562,8 @@ pub fn test_claim_on_remote_revoked_sizeable_push_msat() {
mine_transaction(&nodes[1], &revoked_local_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
let node_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
mine_transaction(&nodes[1], &node_txn[0]);
@@ -3611,7 +3617,8 @@ pub fn test_static_spendable_outputs_preimage_tx() {
assert_eq!(node_txn[0].input[0].witness.last().unwrap().len(), OFFERED_HTLC_SCRIPT_WEIGHT);
mine_transaction(&nodes[1], &node_txn[0]);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 1);
let spend_txn = check_spendable_outputs!(nodes[1], node_cfgs[1].keys_manager);
@@ -3657,7 +3664,8 @@ pub fn test_static_spendable_outputs_timeout_tx() {
assert_eq!(node_txn[0].input[0].witness.last().unwrap().len(), ACCEPTED_HTLC_SCRIPT_WEIGHT);
mine_transaction(&nodes[1], &node_txn[0]);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 1);
let conditions = PaymentFailedConditions::new().from_mon_update();
expect_payment_failed_conditions(&nodes[1], our_payment_hash, false, conditions);
@@ -3697,7 +3705,8 @@ fn do_test_static_spendable_outputs_justice_tx_revoked_commitment_tx(split_tx: b
mine_transaction(&nodes[1], &revoked_local_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
// If the HTLC expires in more than COUNTERPARTY_CLAIMABLE_WITHIN_BLOCKS_PINNABLE blocks, we'll
// claim both the revoked and HTLC outputs in one transaction, otherwise we'll split them as we
@@ -3752,7 +3761,8 @@ pub fn test_static_spendable_outputs_justice_tx_revoked_htlc_timeout_tx() {
mine_transaction(&nodes[0], &revoked_local_txn[0]);
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
connect_blocks(&nodes[0], TEST_FINAL_CLTV); // Confirm blocks until the HTLC expires
let revoked_htlc_txn = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
@@ -3774,7 +3784,8 @@ pub fn test_static_spendable_outputs_justice_tx_revoked_htlc_timeout_tx() {
connect_block(&nodes[1], &create_dummy_block(nodes[1].best_block_hash(), 42, txn));
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
// There will be 2 justice transactions:
// - One on the unpinnable, revoked to_self output on the commitment transaction and on
@@ -3832,7 +3843,8 @@ pub fn test_static_spendable_outputs_justice_tx_revoked_htlc_success_tx() {
mine_transaction(&nodes[1], &revoked_local_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
let revoked_htlc_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
assert_eq!(revoked_htlc_txn.len(), 1);
@@ -3852,7 +3864,8 @@ pub fn test_static_spendable_outputs_justice_tx_revoked_htlc_success_tx() {
connect_block(&nodes[0], &create_dummy_block(nodes[0].best_block_hash(), 42, txn));
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
// There will be 2 justice transactions, one on the revoked HTLC output on the commitment
// transaction, and one on the revoked to_self output on the HTLC-success transaction.
@@ -3932,7 +3945,8 @@ pub fn test_onchain_to_onchain_claim() {
mine_transaction(&nodes[2], &commitment_tx[0]);
check_closed_broadcast!(nodes[2], true);
check_added_monitors(&nodes[2], 1);
- check_closed_event!(nodes[2], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[2], 1, reason, &[node_b_id], 100000);
let c_txn = nodes[2].tx_broadcaster.txn_broadcasted.lock().unwrap().clone(); // ChannelMonitor: 1 (HTLC-Success tx)
assert_eq!(c_txn.len(), 1);
@@ -4015,7 +4029,8 @@ pub fn test_onchain_to_onchain_claim() {
// Broadcast A's commitment tx on B's chain to see if we are able to claim inbound HTLC with our HTLC-Success tx
let commitment_tx = get_local_commitment_txn!(nodes[0], chan_1.2);
mine_transaction(&nodes[1], &commitment_tx[0]);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
let b_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
// ChannelMonitor: HTLC-Success tx
assert_eq!(b_txn.len(), 1);
@@ -4092,7 +4107,8 @@ pub fn test_duplicate_payment_hash_one_failure_one_success() {
mine_transaction(&nodes[1], &commitment_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_c_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], 100000);
// Confirm blocks until both HTLCs expire and get a transaction which times out one HTLC.
connect_blocks(&nodes[1], TEST_FINAL_CLTV + config.channel_config.cltv_expiry_delta as u32);
@@ -4140,7 +4156,8 @@ pub fn test_duplicate_payment_hash_one_failure_one_success() {
mine_transaction(&nodes[2], &commitment_txn[0]);
check_closed_broadcast(&nodes[2], 1, true);
check_added_monitors(&nodes[2], 1);
- check_closed_event!(nodes[2], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[2], 1, reason, &[node_b_id], 100000);
let htlc_success_txn: Vec<_> = nodes[2].tx_broadcaster.txn_broadcasted.lock().unwrap().clone();
assert_eq!(htlc_success_txn.len(), 2); // ChannelMonitor: HTLC-Success txn (*2 due to 2-HTLC outputs)
@@ -4247,7 +4264,8 @@ pub fn test_dynamic_spendable_outputs_local_htlc_success_tx() {
_ => panic!("Unexepected event"),
}
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
let node_tx = {
let node_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap();
assert_eq!(node_txn.len(), 1);
@@ -4720,7 +4738,8 @@ pub fn test_dynamic_spendable_outputs_local_htlc_timeout_tx() {
mine_transaction(&nodes[0], &local_txn[0]);
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
connect_blocks(&nodes[0], TEST_FINAL_CLTV); // Confirm blocks until the HTLC expires
let htlc_timeout = {
@@ -4842,7 +4861,8 @@ pub fn test_key_derivation_params() {
connect_blocks(&nodes[0], TEST_FINAL_CLTV); // Confirm blocks until the HTLC expires
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
let htlc_timeout = {
let node_txn = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap();
@@ -4891,7 +4911,7 @@ pub fn test_static_output_closing_tx() {
mine_transaction(&nodes[0], &closing_tx);
let reason = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
connect_blocks(&nodes[0], ANTI_REORG_DELAY - 1);
let spend_txn = check_spendable_outputs!(nodes[0], node_cfgs[0].keys_manager);
@@ -4900,7 +4920,7 @@ pub fn test_static_output_closing_tx() {
mine_transaction(&nodes[1], &closing_tx);
let reason = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 1);
let spend_txn = check_spendable_outputs!(nodes[1], node_cfgs[1].keys_manager);
@@ -4949,7 +4969,7 @@ fn do_htlc_claim_local_commitment_only(use_dust: bool) {
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash) };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
fn do_htlc_claim_current_remote_commitment_only(use_dust: bool) {
@@ -4988,7 +5008,7 @@ fn do_htlc_claim_current_remote_commitment_only(use_dust: bool) {
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash) };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
fn do_htlc_claim_previous_remote_commitment_only(use_dust: bool, check_revoke_no_close: bool) {
@@ -5044,7 +5064,7 @@ fn do_htlc_claim_previous_remote_commitment_only(use_dust: bool, check_revoke_no
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(our_payment_hash) };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
} else {
expect_payment_failed!(nodes[0], our_payment_hash, true);
}
@@ -5760,7 +5780,8 @@ fn do_test_failure_delay_dust_htlc_local_commitment(announce_latest: bool) {
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
assert_eq!(nodes[0].node.get_and_clear_pending_events().len(), 0);
connect_blocks(&nodes[0], ANTI_REORG_DELAY - 1);
@@ -5834,7 +5855,8 @@ fn do_test_sweep_outbound_htlc_failure_update(revoked: bool, local: bool) {
if local {
// We fail dust-HTLC 1 by broadcast of local commitment tx
mine_transaction(&nodes[0], &as_commitment_tx[0]);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
connect_blocks(&nodes[0], ANTI_REORG_DELAY - 1);
@@ -5860,7 +5882,8 @@ fn do_test_sweep_outbound_htlc_failure_update(revoked: bool, local: bool) {
mine_transaction(&nodes[0], &bs_commitment_tx[0]);
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
assert_eq!(nodes[0].node.get_and_clear_pending_events().len(), 0);
connect_blocks(&nodes[0], TEST_FINAL_CLTV); // Confirm blocks until the HTLC expires
@@ -6270,7 +6293,8 @@ pub fn test_bump_penalty_txn_on_revoked_htlcs() {
);
check_closed_broadcast(&nodes[1], 1, true);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 1000000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 1000000);
connect_blocks(&nodes[1], 50); // Confirm blocks until the HTLC expires (note CLTV was explicitly 50 above)
let revoked_htlc_txn = {
@@ -6585,7 +6609,7 @@ pub fn test_counterparty_raa_skip_no_crash() {
check_added_monitors(&nodes[1], 1);
let reason =
ClosureReason::ProcessingError { err: "Received an unexpected revoke_and_ack".to_string() };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -6623,7 +6647,8 @@ pub fn test_bump_txn_sanitize_tracking_maps() {
mine_transaction(&nodes[0], &revoked_local_txn[0]);
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 1000000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 1000000);
let penalty_txn = {
let mut node_txn = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap();
assert_eq!(node_txn.len(), 2); //ChannelMonitor: justice txn * 2
@@ -6682,7 +6707,8 @@ pub fn test_channel_conf_timeout() {
connect_blocks(&nodes[1], 1);
check_added_monitors(&nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::FundingTimedOut, [node_a_id], 1000000);
+ let reason = ClosureReason::FundingTimedOut;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 1000000);
let close_ev = nodes[1].node.get_and_clear_pending_msg_events();
assert_eq!(close_ev.len(), 1);
match close_ev[0] {
@@ -7501,7 +7527,7 @@ pub fn test_concurrent_monitor_claim() {
connect_blocks(&nodes[0], height - nodes[0].best_block_info().1);
check_closed_broadcast(&nodes[0], 1, true);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash_timeout) };
- check_closed_event!(&nodes[0], 1, reason, false, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
watchtower_alice.chain_monitor.block_connected(
&create_dummy_block(BlockHash::all_zeros(), 42, vec![bob_state_y.clone()]),
height,
@@ -7561,7 +7587,7 @@ pub fn test_pre_lockin_no_chan_closed_update() {
assert!(nodes[0].chain_monitor.added_monitors.lock().unwrap().is_empty());
let reason =
ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString("Hi".to_string()) };
- check_closed_event!(nodes[0], 2, reason, true, [node_b_id], 100000);
+ check_closed_event_internal(&nodes[0], 2, reason, true, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -7602,7 +7628,8 @@ pub fn test_htlc_no_detection() {
);
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
connect_blocks(&nodes[0], TEST_FINAL_CLTV);
let htlc_timeout = {
@@ -7685,7 +7712,7 @@ fn do_test_onchain_htlc_settlement_after_close(
check_closed_broadcast!(nodes[force_closing_node], true);
check_added_monitors(&nodes[force_closing_node], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[force_closing_node], 1, reason, [counterparty_node_id], 100000);
+ check_closed_event(&nodes[force_closing_node], 1, reason, &[counterparty_node_id], 100000);
if go_onchain_before_fulfill {
let txn_to_broadcast = match broadcast_alice {
@@ -7700,7 +7727,7 @@ fn do_test_onchain_htlc_settlement_after_close(
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
}
@@ -7789,7 +7816,7 @@ fn do_test_onchain_htlc_settlement_after_close(
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
let mut bob_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap();
if broadcast_alice {
@@ -7981,7 +8008,7 @@ pub fn test_error_chans_closed() {
let reason =
ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString("ERR".to_string()) };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
assert_eq!(nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0).len(), 1);
assert_eq!(nodes[0].node.list_usable_channels().len(), 2);
@@ -8004,7 +8031,7 @@ pub fn test_error_chans_closed() {
let reason =
ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString("ERR".to_string()) };
- check_closed_event!(nodes[0], 2, reason, [node_b_id; 2], 100000);
+ check_closed_event(&nodes[0], 2, reason, &[node_b_id; 2], 100000);
let events = nodes[0].node.get_and_clear_pending_msg_events();
assert_eq!(events.len(), 2);
@@ -8072,7 +8099,7 @@ fn do_test_tx_confirmed_skipping_blocks_immediate_broadcast(test_height_before_t
check_closed_broadcast(&nodes[1], 1, false);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, reason, [node_c_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_c_id], 100000);
check_added_monitors(&nodes[1], 1);
let node_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
assert_eq!(node_txn.len(), 1);
@@ -9584,7 +9611,7 @@ pub fn test_remove_expired_outbound_unfunded_channels() {
_ => panic!("Unexpected event"),
}
let reason = ClosureReason::FundingTimedOut;
- check_closed_event(&nodes[0], 1, reason, false, &[node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -9648,7 +9675,7 @@ pub fn test_remove_expired_inbound_unfunded_channels() {
_ => panic!("Unexpected event"),
}
let reason = ClosureReason::FundingTimedOut;
- check_closed_event(&nodes[1], 1, reason, false, &[node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
fn do_test_manual_broadcast_skips_commitment_until_funding(
@@ -9682,7 +9709,7 @@ fn do_test_manual_broadcast_skips_commitment_until_funding(
connect_blocks(&nodes[0], TEST_FINAL_CLTV + LATENCY_GRACE_PERIOD_BLOCKS + 1);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash) };
- check_closed_event(&nodes[0], 1, reason, false, &[node_b_id], 100_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100_000);
// On timeout, B will try to fail the HTLC back, but its too late - A has already FC'd.
connect_blocks(&nodes[1], TEST_FINAL_CLTV + LATENCY_GRACE_PERIOD_BLOCKS + 1);
@@ -9698,7 +9725,7 @@ fn do_test_manual_broadcast_skips_commitment_until_funding(
.unwrap();
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message: msg };
- check_closed_event(&nodes[0], 1, reason, false, &[node_b_id], 100_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100_000);
}
check_added_monitors(&nodes[0], 1);
assert_eq!(get_err_msg(&nodes[0], &node_b_id).channel_id, channel_id);
diff --git a/lightning/src/ln/htlc_reserve_unit_tests.rs b/lightning/src/ln/htlc_reserve_unit_tests.rs
index 11a5c52..031c7b4 100644
--- a/lightning/src/ln/htlc_reserve_unit_tests.rs
+++ b/lightning/src/ln/htlc_reserve_unit_tests.rs
@@ -1086,9 +1086,9 @@ pub fn test_chan_reserve_violation_inbound_htlc_outbound_channel() {
assert_eq!(nodes[0].node.list_channels().len(), 0);
let err_msg = check_closed_broadcast!(nodes[0], true).unwrap();
assert_eq!(err_msg.data, "Cannot accept HTLC that would put our balance under counterparty-announced channel reserve value");
+ let reason = ClosureReason::ProcessingError { err: "Cannot accept HTLC that would put our balance under counterparty-announced channel reserve value".to_string() };
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::ProcessingError { err: "Cannot accept HTLC that would put our balance under counterparty-announced channel reserve value".to_string() },
- [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1276,7 +1276,7 @@ pub fn test_chan_reserve_violation_inbound_htlc_inbound_chan() {
assert_eq!(err_msg.data, "Remote HTLC add would put them under remote reserve value");
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data.clone() };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1395,7 +1395,7 @@ pub fn test_update_add_htlc_bolt2_receiver_zero_value_msat() {
let reason = ClosureReason::ProcessingError {
err: "Remote side tried to send a 0-msat HTLC".to_string(),
};
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1551,7 +1551,7 @@ pub fn test_update_add_htlc_bolt2_receiver_check_amount_received_more_than_min()
assert!(regex::Regex::new(r"Remote side tried to send less than our minimum HTLC value\. Lower limit: \(\d+\)\. Actual: \(\d+\)").unwrap().is_match(err_msg.data.as_str()));
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1594,7 +1594,7 @@ pub fn test_update_add_htlc_bolt2_receiver_sender_can_afford_amount_sent() {
assert_eq!(err_msg.data, "Remote HTLC add would put them under remote reserve value");
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1662,7 +1662,7 @@ pub fn test_update_add_htlc_bolt2_receiver_check_max_htlc_limit() {
.is_match(err_msg.data.as_str()));
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1697,7 +1697,7 @@ pub fn test_update_add_htlc_bolt2_receiver_check_max_in_flight_msat() {
.is_match(err_msg.data.as_str()));
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 1000000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 1000000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1727,7 +1727,7 @@ pub fn test_update_add_htlc_bolt2_receiver_check_cltv_expiry() {
assert_eq!(err_msg.data, "Remote provided CLTV expiry in seconds instead of block height");
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1793,7 +1793,7 @@ pub fn test_update_add_htlc_bolt2_receiver_check_repeated_id_ignore() {
.is_match(err_msg.data.as_str()));
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1837,7 +1837,7 @@ pub fn test_update_fulfill_htlc_bolt2_update_fulfill_htlc_before_commitment() {
.is_match(err_msg.data.as_str()));
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1881,7 +1881,7 @@ pub fn test_update_fulfill_htlc_bolt2_update_fail_htlc_before_commitment() {
.is_match(err_msg.data.as_str()));
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1924,7 +1924,7 @@ pub fn test_update_fulfill_htlc_bolt2_update_fail_malformed_htlc_before_commitme
.is_match(err_msg.data.as_str()));
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -1983,7 +1983,7 @@ pub fn test_update_fulfill_htlc_bolt2_incorrect_htlc_id() {
assert_eq!(err_msg.data, "Remote tried to fulfill/fail an HTLC we couldn't find");
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -2044,7 +2044,7 @@ pub fn test_update_fulfill_htlc_bolt2_wrong_preimage() {
.is_match(err_msg.data.as_str()));
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -2115,7 +2115,7 @@ pub fn test_update_fulfill_htlc_bolt2_missing_badonion_bit_for_malformed_htlc_me
assert_eq!(err_msg.data, "Got update_fail_malformed_htlc with BADONION not set");
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::ProcessingError { err: err_msg.data };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 1000000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 1000000);
}
#[xtest(feature = "_externalize_tests")]
@@ -2262,7 +2262,7 @@ pub fn do_test_dust_limit_fee_accounting(can_afford: bool) {
let events = nodes[1].node.get_and_clear_pending_msg_events();
assert_eq!(events.len(), 2);
let reason = ClosureReason::ProcessingError { err };
- check_closed_event(&nodes[1], 1, reason, false, &[node_a_id], CHANNEL_VALUE_SAT);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], CHANNEL_VALUE_SAT);
check_added_monitors(&nodes[1], 1);
} else {
// Now manually create the commitment_signed message corresponding to the update_add
diff --git a/lightning/src/ln/monitor_tests.rs b/lightning/src/ln/monitor_tests.rs
index ba80dbf..34064eb 100644
--- a/lightning/src/ln/monitor_tests.rs
+++ b/lightning/src/ln/monitor_tests.rs
@@ -85,7 +85,7 @@ fn chanmon_fail_from_stale_commitment() {
mine_transaction(&nodes[1], &bs_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[2].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[2].node.get_our_node_id()], 100000);
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 1);
@@ -141,7 +141,7 @@ fn revoked_output_htlc_resolution_timing() {
mine_transaction(&nodes[1], &revoked_local_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 1000000);
// Two justice transactions will be broadcast, one on the unpinnable, revoked to_self output,
// and one on the pinnable revoked HTLC output.
@@ -188,7 +188,7 @@ fn archive_fully_resolved_monitors() {
check_added_monitors!(nodes[0], 1);
check_closed_broadcast!(nodes[0], true);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [nodes[1].node.get_our_node_id()], 1_000_000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 1_000_000);
let commitment_tx = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
assert_eq!(commitment_tx.len(), 1);
@@ -196,7 +196,7 @@ fn archive_fully_resolved_monitors() {
mine_transaction(&nodes[0], &commitment_tx[0]);
mine_transaction(&nodes[1], &commitment_tx[0]);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event!(nodes[1], 1, reason, [nodes[0].node.get_our_node_id()], 1_000_000);
+ check_closed_event(&nodes[1], 1, reason, &[nodes[0].node.get_our_node_id()], 1_000_000);
check_closed_broadcast(&nodes[1], 1, true);
check_added_monitors(&nodes[1], 1);
@@ -429,8 +429,8 @@ fn do_chanmon_claim_value_coop_close(keyed_anchors: bool, p2a_anchor: bool) {
spendable_outputs_b
);
- check_closed_event!(nodes[0], 1, ClosureReason::LocallyInitiatedCooperativeClosure, [nodes[1].node.get_our_node_id()], 1000000);
- check_closed_event!(nodes[1], 1, ClosureReason::CounterpartyInitiatedCooperativeClosure, [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[0], 1, ClosureReason::LocallyInitiatedCooperativeClosure, &[nodes[1].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CounterpartyInitiatedCooperativeClosure, &[nodes[0].node.get_our_node_id()], 1000000);
}
#[test]
@@ -682,11 +682,11 @@ fn do_test_claim_value_force_close(keyed_anchors: bool, p2a_anchor: bool, prev_c
check_closed_broadcast!(nodes[0], true);
check_added_monitors!(nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [nodes[1].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[1].node.get_our_node_id()], 1000000);
assert!(nodes[0].node.list_channels().is_empty());
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 1000000);
assert!(nodes[1].node.list_channels().is_empty());
assert!(nodes[0].node.get_and_clear_pending_events().is_empty());
assert!(nodes[1].node.get_and_clear_pending_events().is_empty());
@@ -921,7 +921,7 @@ fn do_test_balances_on_local_commitment_htlcs(keyed_anchors: bool, p2a_anchor: b
check_added_monitors!(nodes[0], 1);
check_closed_broadcast!(nodes[0], true);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [nodes[1].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 1000000);
if keyed_anchors || p2a_anchor {
handle_bump_close_event(&nodes[0]);
}
@@ -981,7 +981,7 @@ fn do_test_balances_on_local_commitment_htlcs(keyed_anchors: bool, p2a_anchor: b
mine_transaction(&nodes[1], &commitment_tx);
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 1000000);
let bs_htlc_claim_txn = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
assert_eq!(bs_htlc_claim_txn.len(), 1);
check_spends!(bs_htlc_claim_txn[0], commitment_tx);
@@ -1211,7 +1211,7 @@ fn test_no_preimage_inbound_htlc_balances() {
nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().clear();
check_closed_broadcast!(nodes[0], true);
check_added_monitors!(nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [nodes[1].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[1].node.get_our_node_id()], 1000000);
assert_eq!(as_pre_spend_claims,
sorted_vec(nodes[0].chain_monitor.chain_monitor.get_monitor(chan_id).unwrap().get_claimable_balances()));
@@ -1219,7 +1219,7 @@ fn test_no_preimage_inbound_htlc_balances() {
mine_transaction(&nodes[1], &as_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 1000000);
let node_b_commitment_claimable = nodes[1].best_block_info().1 + ANTI_REORG_DELAY - 1;
let mut bs_pre_spend_claims = sorted_vec(vec![Balance::ClaimableAwaitingConfirmations {
@@ -1724,7 +1724,7 @@ fn do_test_revoked_counterparty_htlc_tx_balances(keyed_anchors: bool, p2a_anchor
mine_transaction(&nodes[1], &revoked_local_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 1000000);
if keyed_anchors || p2a_anchor {
handle_bump_htlc_event(&nodes[1], 1);
}
@@ -1768,7 +1768,7 @@ fn do_test_revoked_counterparty_htlc_tx_balances(keyed_anchors: bool, p2a_anchor
mine_transaction(&nodes[0], &revoked_local_txn[0]);
check_closed_broadcast!(nodes[0], true);
check_added_monitors!(nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [nodes[1].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[1].node.get_our_node_id()], 1000000);
let to_remote_conf_height = nodes[0].best_block_info().1 + ANTI_REORG_DELAY - 1;
let revoked_to_self_claim = {
@@ -2048,7 +2048,7 @@ fn do_test_revoked_counterparty_aggregated_claims(keyed_anchors: bool, p2a_ancho
mine_transaction(&nodes[1], &as_revoked_txn[0]);
check_closed_broadcast!(nodes[1], true);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 1000000);
check_added_monitors!(nodes[1], 1);
let mut claim_txn = nodes[1].tx_broadcaster.txn_broadcast();
@@ -2090,7 +2090,7 @@ fn do_test_revoked_counterparty_aggregated_claims(keyed_anchors: bool, p2a_ancho
mine_transaction(&nodes[0], &as_revoked_txn[0]);
check_closed_broadcast(&nodes[0], 1, true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed, false, [nodes[1].node.get_our_node_id()], 1_000_000);
+ check_closed_event(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[1].node.get_our_node_id()], 1_000_000);
handle_bump_htlc_event(&nodes[0], 1);
}
let htlc_success_claim = if keyed_anchors || p2a_anchor {
@@ -2338,8 +2338,7 @@ fn do_test_restored_packages_retry(check_old_monitor_retries_after_upgrade: bool
check_added_monitors(&nodes[0], 1);
check_closed_broadcast(&nodes[0], 1, true);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(&nodes[0], 1, reason, false,
- [nodes[1].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 100000);
let commitment_tx = {
let mut txn = nodes[0].tx_broadcaster.txn_broadcast();
@@ -2422,8 +2421,7 @@ fn do_test_monitor_rebroadcast_pending_claims(keyed_anchors: bool, p2a_anchor: b
check_spends!(&commitment_txn[0], &funding_tx);
mine_transaction(&nodes[0], &commitment_txn[0]);
check_closed_broadcast!(&nodes[0], true);
- check_closed_event!(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed,
- false, [nodes[1].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[1].node.get_our_node_id()], 1000000);
check_added_monitors(&nodes[0], 1);
// Set up a helper closure we'll use throughout our test. We should only expect retries without
@@ -2788,7 +2786,7 @@ fn do_test_anchors_aggregated_revoked_htlc_tx(p2a_anchor: bool) {
// Bob force closes by restarting with the outdated state, prompting the ChannelMonitors to
// broadcast the latest commitment transaction known to them, which in our case is the one with
// the HTLCs still pending.
- check_closed_event!(&nodes[1], 2, ClosureReason::OutdatedChannelManager, [nodes[0].node.get_our_node_id(); 2], 1000000);
+ check_closed_event(&nodes[1], 2, ClosureReason::OutdatedChannelManager, &[nodes[0].node.get_our_node_id(); 2], 1000000);
check_added_monitors(&nodes[1], 2);
// Bob should now receive two events to bump his revoked commitment transaction fees.
@@ -2831,7 +2829,7 @@ fn do_test_anchors_aggregated_revoked_htlc_tx(p2a_anchor: bool) {
}
check_closed_broadcast(&nodes[0], 2, true);
check_added_monitors!(&nodes[0], 2);
- check_closed_event!(&nodes[0], 2, ClosureReason::CommitmentTxConfirmed, [nodes[1].node.get_our_node_id(); 2], 1000000);
+ check_closed_event(&nodes[0], 2, ClosureReason::CommitmentTxConfirmed, &[nodes[1].node.get_our_node_id(); 2], 1000000);
// Alice should detect the confirmed revoked commitments, and attempt to claim all of the
// revoked outputs in aggregated transactions per channel, grouped into pinnable and unpinnable
@@ -3063,8 +3061,7 @@ fn do_test_anchors_monitor_fixes_counterparty_payment_script_on_reload(confirm_c
check_added_monitors(&nodes[0], 1);
check_closed_broadcast(&nodes[0], 1, true);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(&nodes[0], 1, reason, false,
- [nodes[1].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 100000);
handle_bump_close_event(&nodes[0]);
let commitment_tx = {
@@ -3093,8 +3090,7 @@ fn do_test_anchors_monitor_fixes_counterparty_payment_script_on_reload(confirm_c
check_added_monitors(&nodes[1], 1);
commitment_tx_conf_height
};
- check_closed_event!(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, false,
- [nodes[0].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 100000);
assert!(get_monitor!(nodes[1], chan_id).get_counterparty_payment_script().is_p2wsh());
connect_blocks(&nodes[0], ANTI_REORG_DELAY - 1);
@@ -3173,12 +3169,12 @@ fn do_test_monitor_claims_with_random_signatures(keyed_anchors: bool, p2a_anchor
check_closed_broadcast!(closing_node, true);
check_added_monitors!(closing_node, 1);
let message = "ChannelMonitor-initiated commitment transaction broadcast".to_string();
- check_closed_event!(closing_node, 1, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message }, [other_node.node.get_our_node_id()], 1_000_000);
+ check_closed_event(&closing_node, 1, ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message }, &[other_node.node.get_our_node_id()], 1_000_000);
mine_transaction(other_node, &commitment_tx);
check_closed_broadcast!(other_node, true);
check_added_monitors!(other_node, 1);
- check_closed_event!(other_node, 1, ClosureReason::CommitmentTxConfirmed, [closing_node.node.get_our_node_id()], 1_000_000);
+ check_closed_event(&other_node, 1, ClosureReason::CommitmentTxConfirmed, &[closing_node.node.get_our_node_id()], 1_000_000);
// If we update the best block to the new height before providing the confirmed transactions,
// we'll see another broadcast of the commitment transaction.
@@ -3289,7 +3285,7 @@ fn test_update_replay_panics() {
let message = "Channel force-closed".to_owned();
nodes[1].node.force_close_broadcasting_latest_txn(&chan.2, &nodes[0].node.get_our_node_id(), message.clone()).unwrap();
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[1], 1, reason, false, &[nodes[0].node.get_our_node_id()], 100_000);
+ check_closed_event(&nodes[1], 1, reason, &[nodes[0].node.get_our_node_id()], 100_000);
check_closed_broadcast(&nodes[1], 1, true);
check_added_monitors(&nodes[1], 1);
@@ -3464,7 +3460,7 @@ fn do_test_lost_preimage_monitor_events(on_counterparty_tx: bool, p2a_anchor: bo
.unwrap();
check_added_monitors(&nodes[2], 1);
let c_reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[2], 1, c_reason, [node_b_id], 1_000_000);
+ check_closed_event(&nodes[2], 1, c_reason, &[node_b_id], 1_000_000);
check_closed_broadcast(&nodes[2], 1, false);
handle_bump_events(&nodes[2], true, 0);
@@ -3478,7 +3474,7 @@ fn do_test_lost_preimage_monitor_events(on_counterparty_tx: bool, p2a_anchor: bo
.unwrap();
check_added_monitors(&nodes[1], 1);
let b_reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, b_reason, [node_c_id], 1_000_000);
+ check_closed_event(&nodes[1], 1, b_reason, &[node_c_id], 1_000_000);
check_closed_broadcast(&nodes[1], 1, false);
handle_bump_events(&nodes[1], true, 0);
@@ -3678,7 +3674,7 @@ fn do_test_lost_timeout_monitor_events(confirm_tx: CommitmentType, dust_htlcs: b
.unwrap();
check_added_monitors(&nodes[2], 1);
let c_reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[2], 1, c_reason, [node_b_id], 1_000_000);
+ check_closed_event(&nodes[2], 1, c_reason, &[node_b_id], 1_000_000);
check_closed_broadcast(&nodes[2], 1, false);
handle_bump_events(&nodes[2], true, 0);
@@ -3692,7 +3688,7 @@ fn do_test_lost_timeout_monitor_events(confirm_tx: CommitmentType, dust_htlcs: b
.unwrap();
check_added_monitors(&nodes[1], 1);
let b_reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, b_reason, [node_c_id], 1_000_000);
+ check_closed_event(&nodes[1], 1, b_reason, &[node_c_id], 1_000_000);
check_closed_broadcast(&nodes[1], 1, false);
handle_bump_events(&nodes[1], true, 0);
@@ -3863,7 +3859,7 @@ fn test_ladder_preimage_htlc_claims() {
check_added_monitors(&nodes[0], 1);
check_closed_broadcast(&nodes[0], 1, true);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message: "test".to_string() };
- check_closed_event(&nodes[0], 1, reason, false, &[node_id_1], 1_000_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_id_1], 1_000_000);
let commitment_tx = {
let mut txn = nodes[0].tx_broadcaster.txn_broadcast();
@@ -3875,7 +3871,7 @@ fn test_ladder_preimage_htlc_claims() {
check_closed_broadcast(&nodes[1], 1, true);
check_added_monitors(&nodes[1], 1);
- check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, false, &[node_id_0], 1_000_000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[node_id_0], 1_000_000);
nodes[1].node.claim_funds(payment_preimage1);
expect_payment_claimed!(&nodes[1], payment_hash1, 1_000_000);
diff --git a/lightning/src/ln/offers_tests.rs b/lightning/src/ln/offers_tests.rs
index fc11843..4c53aef 100644
--- a/lightning/src/ln/offers_tests.rs
+++ b/lightning/src/ln/offers_tests.rs
@@ -2506,7 +2506,7 @@ fn no_double_pay_with_stale_channelmanager() {
let monitor_1 = get_monitor!(nodes[0], chan_id_1).encode();
reload_node!(nodes[0], &alice_chan_manager_serialized, &[&monitor_0, &monitor_1], persister, chain_monitor, alice_deserialized);
// The stale manager results in closing the channels.
- check_closed_event!(nodes[0], 2, ClosureReason::OutdatedChannelManager, [bob_id, bob_id], 10_000_000);
+ check_closed_event(&nodes[0], 2, ClosureReason::OutdatedChannelManager, &[bob_id, bob_id], 10_000_000);
check_added_monitors!(nodes[0], 2);
// Alice receives a duplicate invoice, but the payment should be transitioned to Retryable by now.
diff --git a/lightning/src/ln/payment_tests.rs b/lightning/src/ln/payment_tests.rs
index b848827..7463fe9 100644
--- a/lightning/src/ln/payment_tests.rs
+++ b/lightning/src/ln/payment_tests.rs
@@ -849,7 +849,8 @@ fn do_retry_with_no_persist(confirm_before_reload: bool) {
// On reload, the ChannelManager should realize it is stale compared to the ChannelMonitor and
// force-close the channel.
- check_closed_event!(nodes[0], 1, ClosureReason::OutdatedChannelManager, [node_b_id], 100000);
+ let reason = ClosureReason::OutdatedChannelManager;
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
assert!(nodes[0].node.list_channels().is_empty());
assert!(nodes[0].node.has_pending_payments());
nodes[0].node.timer_tick_occurred();
@@ -887,8 +888,8 @@ fn do_retry_with_no_persist(confirm_before_reload: bool) {
} => {
assert_eq!(node_id, node_b_id);
nodes[1].node.handle_error(node_a_id, msg);
- check_closed_event!(nodes[1], 1, ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(format!("Got a message for a channel from the wrong node! No such channel for the passed counterparty_node_id {}",
- &node_b_id)) }, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(format!("Got a message for a channel from the wrong node! No such channel for the passed counterparty_node_id {}",
+ &node_b_id)) }, &[node_a_id], 100000);
check_added_monitors!(nodes[1], 1);
assert_eq!(nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().len(), 1);
nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().clear();
@@ -1065,7 +1066,7 @@ fn do_test_completed_payment_not_retryable_on_reload(use_dust: bool) {
// On reload, the ChannelManager should realize it is stale compared to the ChannelMonitor and
// force-close the channel.
- check_closed_event!(nodes[0], 1, ClosureReason::OutdatedChannelManager, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, ClosureReason::OutdatedChannelManager, &[node_b_id], 100000);
nodes[0].node.timer_tick_occurred();
assert!(nodes[0].node.list_channels().is_empty());
assert!(nodes[0].node.has_pending_payments());
@@ -1100,7 +1101,7 @@ fn do_test_completed_payment_not_retryable_on_reload(use_dust: bool) {
&node_b_id
);
let reason = ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(msg) };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
check_added_monitors!(nodes[1], 1);
bs_commitment_tx = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
},
@@ -1272,7 +1273,7 @@ fn do_test_dup_htlc_onchain_doesnt_fail_on_reload(
check_closed_broadcast!(nodes[0], true);
check_added_monitors!(nodes[0], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
nodes[0].node.peer_disconnected(node_b_id);
nodes[1].node.peer_disconnected(node_a_id);
@@ -1294,7 +1295,8 @@ fn do_test_dup_htlc_onchain_doesnt_fail_on_reload(
mine_transaction(&nodes[1], &commitment_tx);
check_closed_broadcast(&nodes[1], 1, false);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [node_a_id], 100000);
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
let htlc_success_tx = {
let mut txn = nodes[1].tx_broadcaster.txn_broadcast();
assert_eq!(txn.len(), 1);
@@ -4340,7 +4342,7 @@ fn do_claim_from_closed_chan(fail_payment: bool) {
.unwrap();
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(&nodes[1], 1, reason, false, [node_d_id], 1000000);
+ check_closed_event(&nodes[1], 1, reason, &[node_d_id], 1000000);
check_closed_broadcast(&nodes[1], 1, true);
let bs_tx = nodes[1].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
assert_eq!(bs_tx.len(), 1);
@@ -4349,7 +4351,7 @@ fn do_claim_from_closed_chan(fail_payment: bool) {
check_closed_broadcast(&nodes[3], 1, true);
check_added_monitors(&nodes[3], 1);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event!(&nodes[3], 1, reason, false, [node_b_id], 1000000);
+ check_closed_event(&nodes[3], 1, reason, &[node_b_id], 1000000);
nodes[3].node.claim_funds(payment_preimage);
check_added_monitors(&nodes[3], 2);
@@ -5049,7 +5051,7 @@ fn test_htlc_forward_considers_anchor_outputs_value() {
let err = "Remote HTLC add would put them under remote reserve value".to_owned();
let reason = ClosureReason::ProcessingError { err };
- check_closed_event(&nodes[2], 1, reason, false, &[node_b_id], 1_000_000);
+ check_closed_event(&nodes[2], 1, reason, &[node_b_id], 1_000_000);
check_closed_broadcast(&nodes[2], 1, true);
check_added_monitors(&nodes[2], 1);
}
diff --git a/lightning/src/ln/priv_short_conf_tests.rs b/lightning/src/ln/priv_short_conf_tests.rs
index 9e7f511..ea34e88 100644
--- a/lightning/src/ln/priv_short_conf_tests.rs
+++ b/lightning/src/ln/priv_short_conf_tests.rs
@@ -1012,7 +1012,7 @@ fn test_0conf_close_no_early_chan_update() {
nodes[0].node.force_close_all_channels_broadcasting_latest_txn(message.clone());
check_added_monitors!(nodes[0], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(&nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
let _ = get_err_msg(&nodes[0], &node_b_id);
}
@@ -1128,14 +1128,14 @@ fn test_0conf_channel_reorg() {
err: "Funding transaction was un-confirmed. Locked at 0 confs, now have 0 confs."
.to_owned(),
};
- check_closed_event!(&nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
check_closed_broadcast!(nodes[0], true);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::ProcessingError {
err: "Funding transaction was un-confirmed. Locked at 0 confs, now have 0 confs."
.to_owned(),
};
- check_closed_event!(&nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
}
diff --git a/lightning/src/ln/reload_tests.rs b/lightning/src/ln/reload_tests.rs
index cd69652..6389f1d 100644
--- a/lightning/src/ln/reload_tests.rs
+++ b/lightning/src/ln/reload_tests.rs
@@ -466,7 +466,7 @@ fn test_manager_serialize_deserialize_inconsistent_monitor() {
}
nodes[0].node = &nodes_0_deserialized;
- check_closed_event!(nodes[0], 1, ClosureReason::OutdatedChannelManager, [nodes[3].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[0], 1, ClosureReason::OutdatedChannelManager, &[nodes[3].node.get_our_node_id()], 100000);
{ // Channel close should result in a commitment tx
nodes[0].node.timer_tick_occurred();
let txn = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap();
@@ -631,9 +631,9 @@ fn do_test_data_loss_protect(reconnect_panicing: bool, substantially_old: bool,
// has sent, but not a newer revocation secret, so A just (correctly) closes.
check_closed_broadcast(&nodes[0], 1, true);
check_added_monitors(&nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::ProcessingError {
+ check_closed_event(&nodes[0], 1, ClosureReason::ProcessingError {
err: "Peer attempted to reestablish channel with a future remote commitment transaction: 2 (received) vs 1 (expected)".to_owned()
- }, [nodes[1].node.get_our_node_id()], 1000000);
+ }, &[nodes[1].node.get_our_node_id()], 1000000);
} else {
assert!(reconnect_res.is_err());
// Skip the `Drop` handler for `Node`s as some may be in an invalid (panicked) state.
@@ -650,7 +650,7 @@ fn do_test_data_loss_protect(reconnect_panicing: bool, substantially_old: bool,
check_added_monitors!(nodes[0], 1);
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[0], 1, reason, [nodes[1].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 1000000);
{
let node_txn = nodes[0].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
assert_eq!(node_txn.len(), 1);
@@ -698,8 +698,8 @@ fn do_test_data_loss_protect(reconnect_panicing: bool, substantially_old: bool,
nodes[1].node.handle_error(nodes[0].node.get_our_node_id(), &err_msgs_0[0]);
assert!(nodes[1].node.list_usable_channels().is_empty());
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(format!("Got a message for a channel from the wrong node! No such channel for the passed counterparty_node_id {}", &nodes[1].node.get_our_node_id())) }
- , [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(format!("Got a message for a channel from the wrong node! No such channel for the passed counterparty_node_id {}", &nodes[1].node.get_our_node_id())) }
+ , &[nodes[0].node.get_our_node_id()], 1000000);
check_closed_broadcast!(nodes[1], false);
}
}
@@ -1007,7 +1007,7 @@ fn do_forwarded_payment_no_manager_persistence(use_cs_commitment: bool, claim_ht
check_added_monitors!(nodes[2], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[2], 1, reason, [nodes[1].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[2], 1, reason, &[nodes[1].node.get_our_node_id()], 100000);
check_closed_broadcast!(nodes[2], true);
let chan_0_monitor_serialized = get_monitor!(nodes[1], chan_id_1).encode();
@@ -1016,7 +1016,7 @@ fn do_forwarded_payment_no_manager_persistence(use_cs_commitment: bool, claim_ht
// Note that this checks that this is the only event on nodes[1], implying the
// `HTLCIntercepted` event has been removed in the `use_intercept` case.
- check_closed_event!(nodes[1], 1, ClosureReason::OutdatedChannelManager, [nodes[2].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[1], 1, ClosureReason::OutdatedChannelManager, &[nodes[2].node.get_our_node_id()], 100000);
if use_intercept {
// Attempt to forward the HTLC back out over nodes[1]' still-open channel, ensuring we get
diff --git a/lightning/src/ln/reorg_tests.rs b/lightning/src/ln/reorg_tests.rs
index f5b7b07..97e4429 100644
--- a/lightning/src/ln/reorg_tests.rs
+++ b/lightning/src/ln/reorg_tests.rs
@@ -80,7 +80,7 @@ fn do_test_onchain_htlc_reorg(local_commitment: bool, claim: bool) {
connect_block(&nodes[2], &create_dummy_block(nodes[2].best_block_hash(), 42, node_1_commitment_txn.clone()));
check_closed_broadcast!(nodes[2], true); // We should get a BroadcastChannelUpdate (and *only* a BroadcstChannelUpdate)
check_added_monitors!(nodes[2], 1);
- check_closed_event!(nodes[2], 1, ClosureReason::CommitmentTxConfirmed, [nodes[1].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[2], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[1].node.get_our_node_id()], 100000);
let node_2_commitment_txn = nodes[2].tx_broadcaster.txn_broadcasted.lock().unwrap().split_off(0);
assert_eq!(node_2_commitment_txn.len(), 1); // ChannelMonitor: 1 offered HTLC-Claim
check_spends!(node_2_commitment_txn[0], node_1_commitment_txn[0]);
@@ -114,7 +114,7 @@ fn do_test_onchain_htlc_reorg(local_commitment: bool, claim: bool) {
};
check_closed_broadcast!(nodes[1], true); // We should get a BroadcastChannelUpdate (and *only* a BroadcstChannelUpdate)
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[2].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[2].node.get_our_node_id()], 100000);
// Connect ANTI_REORG_DELAY - 2 blocks, giving us a confirmation count of ANTI_REORG_DELAY - 1.
connect_blocks(&nodes[1], ANTI_REORG_DELAY - 2);
check_added_monitors!(nodes[1], 0);
@@ -212,7 +212,7 @@ fn test_counterparty_revoked_reorg() {
mine_transaction(&nodes[1], &revoked_local_txn[0]);
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 1000000);
// Connect up to one block before the revoked transaction would be considered final, then do a
// reorg that disconnects the full chain and goes up to the height at which the revoked
@@ -390,12 +390,11 @@ fn do_test_unconf_chan(reload_node: bool, reorg_after_reload: bool, use_funding_
if reorg_after_reload || !reload_node {
handle_announce_close_broadcast_events(&nodes, 0, 1, true, "Channel closed because of an exception: Funding transaction was un-confirmed. Locked at 6 confs, now have 0 confs.");
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(format!("Channel closed because of an exception: {}", expected_err)) }
- , [nodes[0].node.get_our_node_id()], 100000);
+ let reason = ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(format!("Channel closed because of an exception: {}", expected_err)) };
+ check_closed_event(&nodes[1], 1, reason, &[nodes[0].node.get_our_node_id()], 100000);
}
- check_closed_event!(nodes[0], 1, ClosureReason::ProcessingError { err: expected_err.to_owned() },
- [nodes[1].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[0], 1, ClosureReason::ProcessingError { err: expected_err.to_owned() }, &[nodes[1].node.get_our_node_id()], 100000);
// Now check that we can create a new channel
if reload_node && !reorg_after_reload {
@@ -484,7 +483,7 @@ fn test_set_outpoints_partial_claiming() {
// Connect blocks on node A commitment transaction
mine_transaction(&nodes[0], &remote_txn[0]);
check_closed_broadcast!(nodes[0], true);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [nodes[1].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[1].node.get_our_node_id()], 1000000);
check_added_monitors!(nodes[0], 1);
// Verify node A broadcast tx claiming both HTLCs
{
@@ -585,11 +584,11 @@ fn do_test_to_remote_after_local_detection(style: ConnectStyle) {
check_closed_broadcast!(nodes[0], true);
assert!(nodes[0].node.list_channels().is_empty());
check_added_monitors!(nodes[0], 1);
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [nodes[1].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[1].node.get_our_node_id()], 1000000);
check_closed_broadcast!(nodes[1], true);
assert!(nodes[1].node.list_channels().is_empty());
check_added_monitors!(nodes[1], 1);
- check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed, [nodes[0].node.get_our_node_id()], 1000000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 1000000);
assert!(nodes[0].chain_monitor.chain_monitor.get_and_clear_pending_events().is_empty());
assert!(nodes[1].chain_monitor.chain_monitor.get_and_clear_pending_events().is_empty());
@@ -692,7 +691,7 @@ fn test_htlc_preimage_claim_holder_commitment_after_counterparty_commitment_reor
broadcasted_latest_txn: Some(true),
message: message.clone(),
};
- check_closed_event(&nodes[0], 1, reason, false, &[nodes[1].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 100000);
nodes[1]
.node
@@ -701,7 +700,7 @@ fn test_htlc_preimage_claim_holder_commitment_after_counterparty_commitment_reor
check_closed_broadcast(&nodes[1], 1, true);
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[1], 1, reason, false, &[nodes[0].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[nodes[0].node.get_our_node_id()], 100000);
let mut txn = nodes[0].tx_broadcaster.txn_broadcast();
assert_eq!(txn.len(), 1);
@@ -781,7 +780,7 @@ fn test_htlc_preimage_claim_prev_counterparty_commitment_after_current_counterpa
check_closed_broadcast(&nodes[0], 1, true);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[0], 1, reason, false, &[nodes[1].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 100000);
let mut txn = nodes[0].tx_broadcaster.txn_broadcast();
assert_eq!(txn.len(), 1);
@@ -794,7 +793,7 @@ fn test_htlc_preimage_claim_prev_counterparty_commitment_after_current_counterpa
check_closed_broadcast(&nodes[1], 1, true);
check_added_monitors(&nodes[1], 1);
- check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, false, &[nodes[0].node.get_our_node_id()], 100000);
+ check_closed_event(&nodes[1], 1, ClosureReason::CommitmentTxConfirmed, &[nodes[0].node.get_our_node_id()], 100000);
disconnect_blocks(&nodes[0], 1);
disconnect_blocks(&nodes[1], 1);
@@ -860,7 +859,7 @@ fn do_test_retries_own_commitment_broadcast_after_reorg(keyed_anchors: bool, p2a
check_closed_broadcast(&nodes[0], 1, true);
check_added_monitors(&nodes[0], 1);
let reason = ClosureReason::HTLCsTimedOut { payment_hash: Some(payment_hash) };
- check_closed_event(&nodes[0], 1, reason, false, &[nodes[1].node.get_our_node_id()], 100_000);
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], 100_000);
if keyed_anchors || p2a_anchor {
handle_bump_close_event(&nodes[0]);
}
@@ -895,7 +894,7 @@ fn do_test_retries_own_commitment_broadcast_after_reorg(keyed_anchors: bool, p2a
check_closed_broadcast(&nodes[1], 1, !revoked_counterparty_commitment);
check_added_monitors(&nodes[1], 1);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[1], 1, reason, false, &[nodes[0].node.get_our_node_id()], 100_000);
+ check_closed_event(&nodes[1], 1, reason, &[nodes[0].node.get_our_node_id()], 100_000);
if keyed_anchors || p2a_anchor {
handle_bump_close_event(&nodes[1]);
}
@@ -1033,7 +1032,7 @@ fn do_test_split_htlc_expiry_tracking(use_third_htlc: bool, reorg_out: bool, p2a
check_added_monitors(&nodes[1], 1);
let message = "Channel force-closed".to_owned();
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[1], 1, reason, false, &[node_a_id], 10_000_000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 10_000_000);
handle_bump_close_event(&nodes[1]);
let mut txn = nodes[1].tx_broadcaster.txn_broadcast();
@@ -1058,7 +1057,7 @@ fn do_test_split_htlc_expiry_tracking(use_third_htlc: bool, reorg_out: bool, p2a
}
check_closed_broadcast(&nodes[0], 1, false);
let reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event(&nodes[0], 1, reason, false, &[node_b_id], 10_000_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 10_000_000);
check_added_monitors(&nodes[0], 1);
if let Some(ref a_tx) = anchor_tx {
diff --git a/lightning/src/ln/shutdown_tests.rs b/lightning/src/ln/shutdown_tests.rs
index caf5b72..9292ea2 100644
--- a/lightning/src/ln/shutdown_tests.rs
+++ b/lightning/src/ln/shutdown_tests.rs
@@ -78,9 +78,9 @@ fn pre_funding_lock_shutdown_test() {
assert!(nodes[0].node.list_channels().is_empty());
assert!(nodes[1].node.list_channels().is_empty());
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 8000000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 8000000);
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 8000000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 8000000);
}
#[test]
@@ -129,9 +129,9 @@ fn expect_channel_shutdown_state() {
assert!(nodes[0].node.list_channels().is_empty());
assert!(nodes[1].node.list_channels().is_empty());
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
}
#[test]
@@ -220,9 +220,9 @@ fn expect_channel_shutdown_state_with_htlc() {
let (_, node_1_none) = get_closing_signed_broadcast!(nodes[1].node, node_a_id);
assert!(node_1_none.is_none());
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
// Shutdown basically removes the channelDetails, testing of shutdowncomplete state unnecessary
assert!(nodes[0].node.list_channels().is_empty());
@@ -289,9 +289,9 @@ fn test_lnd_bug_6039() {
assert!(node_1_none.is_none());
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
// Shutdown basically removes the channelDetails, testing of shutdowncomplete state unnecessary
assert!(nodes[0].node.list_channels().is_empty());
@@ -320,7 +320,7 @@ fn shutdown_on_unfunded_channel() {
},
);
let reason = ClosureReason::CounterpartyCoopClosedUnfundedChannel;
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 1_000_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 1_000_000);
}
#[test]
@@ -338,7 +338,7 @@ fn close_on_unfunded_channel() {
nodes[0].node.close_channel(&chan_id, &node_b_id).unwrap();
let reason = ClosureReason::LocallyCoopClosedUnfundedChannel;
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 1_000_000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 1_000_000);
}
#[test]
@@ -375,9 +375,9 @@ fn expect_channel_shutdown_state_with_force_closure() {
assert!(nodes[0].node.list_channels().is_empty());
assert!(nodes[1].node.list_channels().is_empty());
- check_closed_event!(nodes[0], 1, ClosureReason::CommitmentTxConfirmed, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, ClosureReason::CommitmentTxConfirmed, &[node_b_id], 100000);
let reason_b = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
}
#[test]
@@ -488,9 +488,9 @@ fn updates_shutdown_wait() {
assert!(node_1_none.is_none());
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
assert!(nodes[0].node.list_channels().is_empty());
@@ -501,9 +501,9 @@ fn updates_shutdown_wait() {
assert!(nodes[1].node.list_channels().is_empty());
assert!(nodes[2].node.list_channels().is_empty());
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_c_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_c_id], 100000);
let reason_c = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[2], 1, reason_c, [node_b_id], 100000);
+ check_closed_event(&nodes[2], 1, reason_c, &[node_b_id], 100000);
}
#[test]
@@ -630,7 +630,7 @@ fn do_htlc_fail_async_shutdown(blinded_recipient: bool) {
assert!(nodes[1].node.list_channels().is_empty());
assert!(nodes[2].node.list_channels().is_empty());
let reason_a = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let event1 = ExpectedCloseEvent {
channel_capacity_sats: Some(100000),
channel_id: None,
@@ -653,7 +653,7 @@ fn do_htlc_fail_async_shutdown(blinded_recipient: bool) {
};
check_closed_events(&nodes[1], &[event1, event2]);
let reason_c = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[2], 1, reason_c, [node_b_id], 100000);
+ check_closed_event(&nodes[2], 1, reason_c, &[node_b_id], 100000);
}
fn do_test_shutdown_rebroadcast(recv_count: u8) {
@@ -804,7 +804,7 @@ fn do_test_shutdown_rebroadcast(recv_count: u8) {
let (_, node_1_none) = get_closing_signed_broadcast!(nodes[1].node, node_a_id);
assert!(node_1_none.is_none());
let reason = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
} else {
// If one node, however, received + responded with an identical closing_signed we end
// up erroring and node[0] will try to broadcast its own latest commitment transaction.
@@ -836,7 +836,7 @@ fn do_test_shutdown_rebroadcast(recv_count: u8) {
check_closed_broadcast!(nodes[1], false);
check_added_monitors!(nodes[1], 1);
let reason = ClosureReason::CounterpartyForceClosed { peer_msg: UntrustedString(format!("Got a message for a channel from the wrong node! No such channel for the passed counterparty_node_id {}", &node_b_id)) };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
}
assert!(nodes[0].node.list_channels().is_empty());
@@ -849,11 +849,11 @@ fn do_test_shutdown_rebroadcast(recv_count: u8) {
assert!(nodes[2].node.list_channels().is_empty());
let reason_a = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_c_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_c_id], 100000);
let reason_c = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[2], 1, reason_c, [node_b_id], 100000);
+ check_closed_event(&nodes[2], 1, reason_c, &[node_b_id], 100000);
}
#[test]
@@ -1038,7 +1038,7 @@ fn test_unsupported_anysegwit_upfront_shutdown_script() {
_ => panic!("Unexpected event"),
}
let reason = ClosureReason::ProcessingError { err: "Peer is signaling upfront_shutdown but has provided an unacceptable scriptpubkey format: OP_PUSHNUM_16 OP_PUSHBYTES_2 0028".to_string() };
- check_closed_event!(nodes[0], 1, reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_b_id], 100000);
}
#[test]
@@ -1363,10 +1363,10 @@ fn do_test_closing_signed_reinit_timeout(timeout_step: TimeoutStep) {
if timeout_step == TimeoutStep::NoTimeout {
nodes[1].node.handle_closing_signed(node_a_id, &node_0_2nd_closing_signed.1.unwrap());
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
}
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
}
if timeout_step != TimeoutStep::NoTimeout {
@@ -1394,7 +1394,7 @@ fn do_test_closing_signed_reinit_timeout(timeout_step: TimeoutStep) {
let reason = ClosureReason::ProcessingError {
err: "closing_signed negotiation failed to finish within two timer ticks".to_string(),
};
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
} else {
assert!(txn[0].output[0].script_pubkey.is_p2wpkh());
assert!(txn[0].output[1].script_pubkey.is_p2wpkh());
@@ -1458,9 +1458,9 @@ fn do_simple_legacy_shutdown_test(high_initiator_fee: bool) {
let (_, node_0_none) = get_closing_signed_broadcast!(nodes[0].node, node_b_id);
assert!(node_0_none.is_none());
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
}
#[test]
@@ -1532,9 +1532,9 @@ fn simple_target_feerate_shutdown() {
let (_, node_0_none) = get_closing_signed_broadcast!(nodes[0].node, node_b_id);
assert!(node_0_none.is_none());
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
}
fn do_outbound_update_no_early_closing_signed(use_htlc: bool) {
@@ -1637,9 +1637,9 @@ fn do_outbound_update_no_early_closing_signed(use_htlc: bool) {
assert!(node_1_none.is_none());
let reason_a = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, reason_a, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, reason_a, &[node_b_id], 100000);
let reason_b = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, reason_b, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason_b, &[node_a_id], 100000);
}
#[test]
diff --git a/lightning/src/ln/splicing_tests.rs b/lightning/src/ln/splicing_tests.rs
index 5c3499c..a96af7b 100644
--- a/lightning/src/ln/splicing_tests.rs
+++ b/lightning/src/ln/splicing_tests.rs
@@ -914,12 +914,12 @@ fn do_test_splice_commitment_broadcast(splice_status: SpliceStatus, claim_htlcs:
} else {
initial_channel_capacity
};
- check_closed_event(&nodes[0], 1, closure_reason, false, &[node_id_1], closed_channel_capacity);
+ check_closed_event(&nodes[0], 1, closure_reason, &[node_id_1], closed_channel_capacity);
check_closed_broadcast(&nodes[0], 1, true);
check_added_monitors(&nodes[0], 1);
let closure_reason = ClosureReason::CommitmentTxConfirmed;
- check_closed_event(&nodes[1], 1, closure_reason, false, &[node_id_0], closed_channel_capacity);
+ check_closed_event(&nodes[1], 1, closure_reason, &[node_id_0], closed_channel_capacity);
check_closed_broadcast(&nodes[1], 1, true);
check_added_monitors(&nodes[1], 1);
diff --git a/lightning/src/ln/update_fee_tests.rs b/lightning/src/ln/update_fee_tests.rs
index 6f2fa14..060496d 100644
--- a/lightning/src/ln/update_fee_tests.rs
+++ b/lightning/src/ln/update_fee_tests.rs
@@ -531,7 +531,7 @@ pub fn do_test_update_fee_that_funder_cannot_afford(channel_type_features: Chann
check_added_monitors(&nodes[1], 1);
check_closed_broadcast!(nodes[1], true);
let reason = ClosureReason::ProcessingError { err: err.to_string() };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], channel_value);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], channel_value);
}
#[xtest(feature = "_externalize_tests")]
@@ -629,7 +629,7 @@ pub fn test_update_fee_that_saturates_subs() {
check_added_monitors(&nodes[1], 1);
check_closed_broadcast!(nodes[1], true);
let reason = ClosureReason::ProcessingError { err: err.to_string() };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 10_000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 10_000);
}
#[xtest(feature = "_externalize_tests")]
@@ -734,9 +734,9 @@ pub fn test_update_fee_with_fundee_update_add_htlc() {
send_payment(&nodes[0], &[&nodes[1]], 800000);
close_channel(&nodes[0], &nodes[1], &chan.2, chan.3, true);
let node_a_reason = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, node_a_reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, node_a_reason, &[node_b_id], 100000);
let node_b_reason = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, node_b_reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, node_b_reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -858,9 +858,9 @@ pub fn test_update_fee() {
assert_eq!(get_feerate!(nodes[1], nodes[0], channel_id), feerate + 30);
close_channel(&nodes[0], &nodes[1], &chan.2, chan.3, true);
let node_a_reason = ClosureReason::CounterpartyInitiatedCooperativeClosure;
- check_closed_event!(nodes[0], 1, node_a_reason, [node_b_id], 100000);
+ check_closed_event(&nodes[0], 1, node_a_reason, &[node_b_id], 100000);
let node_b_reason = ClosureReason::LocallyInitiatedCooperativeClosure;
- check_closed_event!(nodes[1], 1, node_b_reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, node_b_reason, &[node_a_id], 100000);
}
#[xtest(feature = "_externalize_tests")]
@@ -995,7 +995,7 @@ pub fn accept_busted_but_better_fee() {
peer_feerate_sat_per_kw: 1000,
required_feerate_sat_per_kw: 5000,
};
- check_closed_event!(nodes[1], 1, reason, [node_a_id], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], 100000);
check_closed_broadcast!(nodes[1], true);
check_added_monitors(&nodes[1], 1);
},
diff --git a/lightning/src/ln/zero_fee_commitment_tests.rs b/lightning/src/ln/zero_fee_commitment_tests.rs
index b4fd9e0..f940667 100644
--- a/lightning/src/ln/zero_fee_commitment_tests.rs
+++ b/lightning/src/ln/zero_fee_commitment_tests.rs
@@ -189,23 +189,13 @@ fn test_htlc_claim_chunking() {
check_closed_broadcast!(nodes[0], true);
check_added_monitors!(nodes[0], 1);
- check_closed_event!(
- nodes[0],
- 1,
- ClosureReason::CommitmentTxConfirmed,
- [nodes[1].node.get_our_node_id()],
- CHAN_CAPACITY
- );
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[0], 1, reason, &[nodes[1].node.get_our_node_id()], CHAN_CAPACITY);
assert!(nodes[0].node.list_channels().is_empty());
check_closed_broadcast!(nodes[1], true);
check_added_monitors!(nodes[1], 1);
- check_closed_event!(
- nodes[1],
- 1,
- ClosureReason::CommitmentTxConfirmed,
- [nodes[0].node.get_our_node_id()],
- CHAN_CAPACITY
- );
+ let reason = ClosureReason::CommitmentTxConfirmed;
+ check_closed_event(&nodes[1], 1, reason, &[nodes[0].node.get_our_node_id()], CHAN_CAPACITY);
assert!(nodes[1].node.list_channels().is_empty());
assert!(nodes[0].node.get_and_clear_pending_events().is_empty());
assert!(nodes[1].node.get_and_clear_pending_events().is_empty());
@@ -362,7 +352,7 @@ fn test_anchor_tx_too_big() {
check_closed_broadcast!(nodes[1], true);
let reason = ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event!(nodes[1], 1, reason, [node_a_id], CHAN_CAPACITY);
+ check_closed_event(&nodes[1], 1, reason, &[node_a_id], CHAN_CAPACITY);
let mut events = nodes[1].chain_monitor.chain_monitor.get_and_clear_pending_events();
assert_eq!(events.len(), 1);
diff --git a/lightning/src/util/persist.rs b/lightning/src/util/persist.rs
index d00e29e..bcee29b 100644
--- a/lightning/src/util/persist.rs
+++ b/lightning/src/util/persist.rs
@@ -1726,7 +1726,7 @@ mod tests {
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[0], 1, reason, false, &[node_id_1], 100000);
+ check_closed_event(&nodes[0], 1, reason, &[node_id_1], 100000);
check_closed_broadcast!(nodes[0], true);
check_added_monitors!(nodes[0], 1);
@@ -1739,7 +1739,7 @@ mod tests {
check_closed_broadcast!(nodes[1], true);
let reason = ClosureReason::CommitmentTxConfirmed;
let node_id_0 = nodes[0].node.get_our_node_id();
- check_closed_event(&nodes[1], 1, reason, false, &[node_id_0], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_id_0], 100000);
check_added_monitors!(nodes[1], 1);
// Make sure everything is persisted as expected after close.
@@ -1776,7 +1776,7 @@ mod tests {
.unwrap();
let reason =
ClosureReason::HolderForceClosed { broadcasted_latest_txn: Some(true), message };
- check_closed_event(&nodes[1], 1, reason, false, &[node_id_0], 100000);
+ check_closed_event(&nodes[1], 1, reason, &[node_id_0], 100000);
{
let mut added_monitors = nodes[1].chain_monitor.added_monitors.lock().unwrap();
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.