Expand description
This crate is a collection of core structures for Bitcoin Dev Kit.
The goal of this crate is to give wallets the mechanisms needed to:
- Figure out what data they need to fetch.
- Process the data in a way that never leads to inconsistent states.
- Fully index that data and expose it to be consumed without friction.
Our design goals for these mechanisms are:
- Data source agnostic – nothing in
bdk_chain
cares about where you get data from or whether you do it synchronously or asynchronously. If you know a fact about the blockchain, you can just tellbdk_chain
’s APIs about it, and that information will be integrated, if it can be done consistently. - Data persistence agnostic –
bdk_chain
does not care where you cache on-chain data, what you cache or how you retrieve it from persistent storage.
Re-exports§
pub use indexed_tx_graph::IndexedTxGraph;
pub use tx_graph::TxGraph;
pub use bitcoin;
pub use miniscript;
Modules§
- Contains the
IndexedTxGraph
and associated types. Refer to theIndexedTxGraph
documentation for more. - Module for keychain related structures.
- The
LocalChain
is a local implementation ofChainOracle
. - Helper types for spk-based blockchain clients.
- Module for structures that store and traverse transactions.
Structs§
- A reference to a block in the canonical chain.
- An
Anchor
implementation that also records the exact confirmation height of the transaction. - An
Anchor
implementation that also records the exact confirmation time and height of the transaction. - A
TxOut
with as much data as we can retrieve about it - An iterator for derived script pubkeys.
- An index storing
TxOut
s that have a script pubkey that matches those in a list.
Enums§
- Represents the observed position of some chain data.
- Block height and timestamp at which a transaction is confirmed.
Constants§
- Maximum BIP32 derivation index.
- How many confirmations are needed f or a coinbase output to be spent.
Traits§
- Trait that “anchors” blockchain data to a specific block of height and hash.
- An
Anchor
that can be constructed from a given block, block height and transaction position within the block. - Trait that makes an object appendable.
- Represents a service that tracks the blockchain.
- A trait to extend the functionality of a miniscript descriptor.