- pub fn block_connected(&self, header: &BlockHeader, txdata: &TransactionData, height: u32) {
- self.process_chain_data(header, txdata, |monitor, txdata| {
- monitor.block_connected(
- header, txdata, height, &*self.broadcaster, &*self.fee_estimator, &*self.logger)
- });
- }
-
- /// Dispatches to per-channel monitors, which are responsible for updating their on-chain view
- /// of a channel and reacting accordingly to newly confirmed transactions. For details, see
- /// [`ChannelMonitor::transactions_confirmed`].
- ///
- /// Used instead of [`block_connected`] by clients that are notified of transactions rather than
- /// blocks. May be called before or after [`update_best_block`] for transactions in the
- /// corresponding block. See [`update_best_block`] for further calling expectations.
- ///
- /// [`block_connected`]: Self::block_connected
- /// [`update_best_block`]: Self::update_best_block
- pub fn transactions_confirmed(&self, header: &BlockHeader, txdata: &TransactionData, height: u32) {
- self.process_chain_data(header, txdata, |monitor, txdata| {
- monitor.transactions_confirmed(
- header, txdata, height, &*self.broadcaster, &*self.fee_estimator, &*self.logger)
- });
- }
-
- /// Dispatches to per-channel monitors, which are responsible for updating their on-chain view
- /// of a channel and reacting accordingly based on the new chain tip. For details, see
- /// [`ChannelMonitor::update_best_block`].
- ///
- /// Used instead of [`block_connected`] by clients that are notified of transactions rather than
- /// blocks. May be called before or after [`transactions_confirmed`] for the corresponding
- /// block.
- ///
- /// Must be called after new blocks become available for the most recent block. Intermediary
- /// blocks, however, may be safely skipped. In the event of a chain re-organization, this only
- /// needs to be called for the most recent block assuming `transaction_unconfirmed` is called
- /// for any affected transactions.
- ///
- /// [`block_connected`]: Self::block_connected
- /// [`transactions_confirmed`]: Self::transactions_confirmed
- /// [`transaction_unconfirmed`]: Self::transaction_unconfirmed
- pub fn update_best_block(&self, header: &BlockHeader, height: u32) {
- self.process_chain_data(header, &[], |monitor, txdata| {
- // While in practice there shouldn't be any recursive calls when given empty txdata,
- // it's still possible if a chain::Filter implementation returns a transaction.
- debug_assert!(txdata.is_empty());
- monitor.update_best_block(
- header, height, &*self.broadcaster, &*self.fee_estimator, &*self.logger)
- });
- }
-