#chain #mempool #block #transaction #notifications #called #updated

bitcoinchain-notifications

interface for notifying when, for example: transactions are added/removed to the mempool, blocks are connected/disconnected, the block tip is updated, or the chain state is flushed

2 releases

0.1.16-alpha.0 Apr 2, 2023
0.1.12-alpha.0 Jan 19, 2023

#23 in #mempool

Download history 98/week @ 2024-08-31 69/week @ 2024-09-07 52/week @ 2024-09-14 91/week @ 2024-09-21 80/week @ 2024-09-28 52/week @ 2024-10-12 46/week @ 2024-10-19 60/week @ 2024-10-26 58/week @ 2024-11-02 17/week @ 2024-11-09 29/week @ 2024-11-16 77/week @ 2024-11-23 90/week @ 2024-11-30 140/week @ 2024-12-07 93/week @ 2024-12-14

400 downloads per month
Used in 41 crates (8 directly)

MIT license

1MB
4K SLoC

bitcoinchain-notifications crate

The BitcoinChain-Notifications crate provides chain notifications for Bitcoin clients. This crate contains trait definitions for various events that clients can subscribe to in order to be notified about various changes in the Bitcoin chain.

The ChainNotifications trait is the main trait for listening to chain notifications. This trait is composed of other traits, including TransactionAddedToMempool, TransactionRemovedFromMempool, BlockConnected, BlockDisconnected, UpdatedBlockTip, and ChainStateFlushed. Each of these traits defines a method for listening to a specific type of event.

The TransactionAddedToMempool trait defines a method that is called when a transaction is added to the mempool.

The TransactionRemovedFromMempool trait defines a method that is called when a transaction is removed from the mempool.

This notification is fired for transactions that are removed from the mempool for various reasons including expiration, size limit, reorg, conflict, and replaced.

However, it does not fire for transactions that are removed from the mempool because they have been included in a block. Any client interested in transactions removed from the mempool for inclusion in a block can learn about those transactions from the BlockConnected notification.

The BlockConnected trait defines a method that is called when a new block is connected to the chain.

The BlockDisconnected trait defines a method that is called when a block is disconnected from the chain.

The UpdatedBlockTip trait defines a method that is called when the block tip is updated.

Finally, the ChainStateFlushed trait defines a method that is called when the chain state is flushed.

All of these traits are designed to be used on a background thread.

To use this crate, you can implement any of the traits in your client code and register your implementation with the client's notification system. When a chain event occurs that matches your implementation, the corresponding method will be called.

Dependencies

~103MB
~890K SLoC