Cache our node ID in ChannelManager
[rust-lightning] / lightning / src / ln / functional_test_utils.rs
index fe3df8d1e5bd674a3f18bb4c94017d454106c215..9adfeb292fd66e74db9037e88b117298dedb04ef 100644 (file)
@@ -107,16 +107,12 @@ pub fn connect_block<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, block: &Block)
        node.blocks.borrow_mut().push((block.header, height));
 }
 
-pub fn disconnect_block<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, header: &BlockHeader) {
-       node.chain_monitor.chain_monitor.block_disconnected(header, node.best_block_info().1);
-       node.node.block_disconnected(header);
-       node.blocks.borrow_mut().pop();
-}
 pub fn disconnect_blocks<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, count: u32) {
-       assert!(node.blocks.borrow_mut().len() as u32 > count); // Cannot disconnect genesis
        for _ in 0..count {
-               let block_header = node.blocks.borrow().last().unwrap().0;
-               disconnect_block(&node, &block_header);
+               let orig_header = node.blocks.borrow_mut().pop().unwrap();
+               assert!(orig_header.1 > 0); // Cannot disconnect genesis
+               node.chain_monitor.chain_monitor.block_disconnected(&orig_header.0, orig_header.1);
+               node.node.block_disconnected(&orig_header.0);
        }
 }
 
@@ -317,6 +313,24 @@ macro_rules! get_event_msg {
        }
 }
 
+/// Get a specific event from the pending events queue.
+#[macro_export]
+macro_rules! get_event {
+       ($node: expr, $event_type: path) => {
+               {
+                       let mut events = $node.node.get_and_clear_pending_events();
+                       assert_eq!(events.len(), 1);
+                       let ev = events.pop().unwrap();
+                       match ev {
+                               $event_type { .. } => {
+                                       ev
+                               },
+                               _ => panic!("Unexpected event"),
+                       }
+               }
+       }
+}
+
 #[cfg(test)]
 macro_rules! get_htlc_update_msgs {
        ($node: expr, $node_id: expr) => {
@@ -345,7 +359,8 @@ macro_rules! get_feerate {
        }
 }
 
-#[cfg(test)]
+/// Returns any local commitment transactions for the channel.
+#[macro_export]
 macro_rules! get_local_commitment_txn {
        ($node: expr, $channel_id: expr) => {
                {