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 indexer::spk_txout;
pub use indexer::Indexer;
pub use tx_graph::TxGraph;
pub use indexer::keychain_txout;
pub use bitcoin;
pub use miniscript;
Modules§
- Contains the
IndexedTxGraph
and associated types. Refer to theIndexedTxGraph
documentation for more. Indexer
provides utilities for indexing transaction data.- The
LocalChain
is a local implementation ofChainOracle
. - Helper types for spk-based blockchain clients.
- Module for structures that store and traverse transactions.
Structs§
- Balance, differentiated into various categories.
- A reference to a block in the canonical chain.
- An
Anchor
implementation that also records the exact confirmation time of the transaction. - Represents the unique ID of a descriptor.
- A
TxOut
with as much data as we can retrieve about it - A wrapper that we use to impl remote traits for types in our crate or dependency crates.
- Represents a persisted
T
. - An iterator for derived script pubkeys.
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. - Represents a service that tracks the blockchain.
- A trait to extend the functionality of a miniscript descriptor.
- Trait that makes an object mergeable.
- Trait that persists the type with an async
Db
. - Trait that persists the type with
Db
. - Represents a type that contains staged changes.
Type Aliases§
- A tuple of keychain index and
T
representing the indexed value. - A tuple of keychain
K
, derivation index (u32
) and aT
associated with them.