Trait lightning::chain::Listen

source ·
pub trait Listen {
    // Required methods
    fn filtered_block_connected(
        &self,
        header: &BlockHeader,
        txdata: &TransactionData<'_>,
        height: u32
    );
    fn block_disconnected(&self, header: &BlockHeader, height: u32);

    // Provided method
    fn block_connected(&self, block: &Block, height: u32) { ... }
}
Expand description

The Listen trait is used to notify when blocks have been connected or disconnected from the chain.

Useful when needing to replay chain data upon startup or as new chain events occur. Clients sourcing chain data using a block-oriented API should prefer this interface over Confirm. Such clients fetch the entire header chain whereas clients using Confirm only fetch headers when needed.

By using Listen::filtered_block_connected this interface supports clients fetching the entire header chain and only blocks with matching transaction data using BIP 157 filters or other similar filtering.

Required Methods§

source

fn filtered_block_connected( &self, header: &BlockHeader, txdata: &TransactionData<'_>, height: u32 )

Notifies the listener that a block was added at the given height, with the transaction data possibly filtered.

source

fn block_disconnected(&self, header: &BlockHeader, height: u32)

Notifies the listener that a block was removed at the given height.

Provided Methods§

source

fn block_connected(&self, block: &Block, height: u32)

Notifies the listener that a block was added at the given height.

Implementations on Foreign Types§

source§

impl<Signer: WriteableEcdsaChannelSigner, T: Deref, F: Deref, L: Deref> Listen for (ChannelMonitor<Signer>, T, F, L)where T::Target: BroadcasterInterface, F::Target: FeeEstimator, L::Target: Logger,

source§

fn filtered_block_connected( &self, header: &BlockHeader, txdata: &TransactionData<'_>, height: u32 )

source§

fn block_disconnected(&self, header: &BlockHeader, height: u32)

source§

impl<T: Listen> Listen for dyn Deref<Target = T>

source§

fn filtered_block_connected( &self, header: &BlockHeader, txdata: &TransactionData<'_>, height: u32 )

source§

fn block_disconnected(&self, header: &BlockHeader, height: u32)

source§

impl<T: Deref, U: Deref> Listen for (T, U)where T::Target: Listen, U::Target: Listen,

source§

fn filtered_block_connected( &self, header: &BlockHeader, txdata: &TransactionData<'_>, height: u32 )

source§

fn block_disconnected(&self, header: &BlockHeader, height: u32)

Implementors§

source§

impl<ChannelSigner: WriteableEcdsaChannelSigner, C: Deref, T: Deref, F: Deref, L: Deref, P: Deref> Listen for ChainMonitor<ChannelSigner, C, T, F, L, P>where C::Target: Filter, T::Target: BroadcasterInterface, F::Target: FeeEstimator, L::Target: Logger, P::Target: Persist<ChannelSigner>,

source§

impl<M: Deref, T: Deref, ES: Deref, NS: Deref, SP: Deref, F: Deref, R: Deref, L: Deref> Listen for ChannelManager<M, T, ES, NS, SP, F, R, L>where M::Target: Watch<<SP::Target as SignerProvider>::Signer>, T::Target: BroadcasterInterface, ES::Target: EntropySource, NS::Target: NodeSigner, SP::Target: SignerProvider, F::Target: FeeEstimator, R::Target: Router, L::Target: Logger,