f - Update ChainListener::block_connected
[rust-lightning] / lightning / src / ln / channelmonitor.rs
index e2ac2b8ebf6cbf18db19ad5e6878dbece8f3f45e..114c03611488d3c762e9b84a7bd1fe375c36f63a 100644 (file)
@@ -11,7 +11,7 @@
 //! security-domain-separated system design, you should consider having multiple paths for
 //! ChannelMonitors to get out of the HSM and onto monitoring devices.
 
-use bitcoin::blockdata::block::{Block, BlockHeader};
+use bitcoin::blockdata::block::BlockHeader;
 use bitcoin::blockdata::transaction::{TxOut,Transaction};
 use bitcoin::blockdata::transaction::OutPoint as BitcoinOutPoint;
 use bitcoin::blockdata::script::{Script, Builder};
@@ -183,13 +183,13 @@ impl<Key : Send + cmp::Eq + hash::Hash, ChanSigner: ChannelKeys, T: Deref + Sync
              L::Target: Logger,
         C::Target: ChainWatchInterface,
 {
-       fn block_connected(&self, block: &Block, height: u32) {
+       fn block_connected(&self, header: &BlockHeader, txdata: &[(usize, &Transaction)], height: u32) {
                let mut reentered = true;
                while reentered {
-                       let matched_indexes = self.chain_monitor.filter_block(block);
-                       let matched_txn: Vec<&Transaction> = matched_indexes.iter().map(|index| &block.txdata[*index]).collect();
+                       let matched_indexes = self.chain_monitor.filter_block(header, txdata);
+                       let matched_txn: Vec<_> = matched_indexes.iter().map(|index| txdata[*index].1).collect();
                        let last_seen = self.chain_monitor.reentered();
-                       let block_hash = block.bitcoin_hash();
+                       let block_hash = header.bitcoin_hash();
                        {
                                let mut monitors = self.monitors.lock().unwrap();
                                for monitor in monitors.values_mut() {