Expand description
This crate is a collection of core structures for Bitcoin Dev Kit (alpha release).
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. - Error-free APIs.
- Data persistence agnostic –
bdk_chain
does not care where you cache on-chain data, what you cache or how you fetch it.
Re-exports
pub extern crate serde_crate as serde;
pub use bitcoin;
pub use indexed_tx_graph::IndexedTxGraph;
pub use tx_graph::TxGraph;
pub use miniscript;
Modules
Contains the
IndexedTxGraph
structure and associated types.Module for keychain related structures.
The
LocalChain
is a local implementation of ChainOracle
.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 itPersist
wraps a PersistBackend
(B
) to create a convenient staging area for changes (C
)
before they are persisted.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.
A persistence backend for
Persist
.