# Confirmed Transactions

Up until this point, we've explored how to notify LDK of chain activity using blocks. But what if you're sourcing chain activity from a place that doesn't provide a block-centric interface, like Electrum?

LDK's ChannelManager and ChainMonitor implement a chain::Confirm (opens new window) interface to support this use case, analogous to the block-oriented chain::Listen (opens new window) interface which we've been using up until now. With this alternative approach, you still need to give LDK information about chain activity, but only for transactions of interest. To this end, you must call Confirm::transactions_confirmed when any transactions identified by chain::Filter (opens new window)'s register_tx/register_output methods are confirmed.

You also need to notify LDK of any transactions with insufficient confirmations that have been reorganized out of the chain. Transactions that need to be monitored for such reorganization are returned by Confirm::get_relevant_txids. If any of these transactions become unconfirmed, you must call Confirm::transaction_unconfirmed.

Lastly, you must notify LDK whenever a new chain tip is available using the Confirm::best_block_updated method. See the documentation for a full picture of how this interface is intended to be used.

Note

Note that the described methods of Confirm must be called in accordance with the ordering requirements described in the Confirm documentation (opens new window)

Note

Note that the described methods of Confirm must be called both on the ChannelManager and the ChainMonitor.

Note

Be advised that chain::Confirm is a less mature interface than chain::Listen. As such, there is not yet a utility like lightning-block-sync to use for interacting with clients like Electrum.

Last Updated: 11/18/2024, 6:18:24 PM