X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=lightning%2Fsrc%2Fln%2Ffunctional_test_utils.rs;h=dee3c6ea3957b4ccf5b84c907df6bb2888bee40e;hb=e6c922803f8d1f0303dd8a8f9300e32de55e1fc9;hp=9e9c1f16c9aa8f855a55764e1bad799b4a759fef;hpb=5610ca193df693be2974dc31c18669a2c48ed00d;p=rust-lightning diff --git a/lightning/src/ln/functional_test_utils.rs b/lightning/src/ln/functional_test_utils.rs index 9e9c1f16..dee3c6ea 100644 --- a/lightning/src/ln/functional_test_utils.rs +++ b/lightning/src/ln/functional_test_utils.rs @@ -122,21 +122,25 @@ pub fn connect_block<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, block: &Block) do_connect_block(node, block, false); } -fn do_connect_block<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, block: &Block, skip_manager: bool) { - let txdata: Vec<_> = block.txdata.iter().enumerate().collect(); +fn do_connect_block<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, block: &Block, skip_intermediaries: bool) { let height = node.best_block_info().1 + 1; - node.chain_monitor.chain_monitor.block_connected(&block.header, &txdata, height); - if !skip_manager { + if !skip_intermediaries { + let txdata: Vec<_> = block.txdata.iter().enumerate().collect(); match *node.connect_style.borrow() { ConnectStyle::BestBlockFirst|ConnectStyle::BestBlockFirstSkippingBlocks => { + node.chain_monitor.chain_monitor.update_best_block(&block.header, height); + node.chain_monitor.chain_monitor.transactions_confirmed(&block.header, &txdata, height); node.node.update_best_block(&block.header, height); - node.node.transactions_confirmed(&block.header, height, &block.txdata.iter().enumerate().collect::>()); + node.node.transactions_confirmed(&block.header, height, &txdata); }, ConnectStyle::TransactionsFirst|ConnectStyle::TransactionsFirstSkippingBlocks => { - node.node.transactions_confirmed(&block.header, height, &block.txdata.iter().enumerate().collect::>()); + node.chain_monitor.chain_monitor.transactions_confirmed(&block.header, &txdata, height); + node.chain_monitor.chain_monitor.update_best_block(&block.header, height); + node.node.transactions_confirmed(&block.header, height, &txdata); node.node.update_best_block(&block.header, height); }, ConnectStyle::FullBlockViaListen => { + node.chain_monitor.chain_monitor.block_connected(&block.header, &txdata, height); Listen::block_connected(node.node, &block, height); } } @@ -151,17 +155,19 @@ pub fn disconnect_blocks<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, count: u32) assert!(orig_header.1 > 0); // Cannot disconnect genesis let prev_header = node.blocks.borrow().last().unwrap().clone(); - node.chain_monitor.chain_monitor.block_disconnected(&orig_header.0, orig_header.1); match *node.connect_style.borrow() { ConnectStyle::FullBlockViaListen => { + node.chain_monitor.chain_monitor.block_disconnected(&orig_header.0, orig_header.1); Listen::block_disconnected(node.node, &orig_header.0, orig_header.1); }, ConnectStyle::BestBlockFirstSkippingBlocks|ConnectStyle::TransactionsFirstSkippingBlocks => { if i == count - 1 { + node.chain_monitor.chain_monitor.update_best_block(&prev_header.0, prev_header.1); node.node.update_best_block(&prev_header.0, prev_header.1); } }, _ => { + node.chain_monitor.chain_monitor.update_best_block(&prev_header.0, prev_header.1); node.node.update_best_block(&prev_header.0, prev_header.1); }, }