a4f28c079echore: improve LocalChain::apply_header_connected_to doc (LLFourn)8ec65f0b8efeat(example): add RPC wallet example (Vladimir Fomene)a7d01dc39afeat(chain)!: make `IndexedTxGraph::apply_block_relevant` more efficient (志宇)e0512acf94feat(bitcoind_rpc)!: emissions include checkpoint and connected_to data (志宇)8f2d4d9d40test(chain): `LocalChain` test for update that is shorter than original (志宇)9467cad55dfeat(wallet): introduce block-by-block api (Vladimir Fomene)d3e5095df1feat(chain): add `apply_header..` methods to `LocalChain` (志宇)2b61a122fffeat(chain): add `CheckPoint::from_block_ids` convenience method (志宇) Pull request description: ### Description Introduce block-by-block API for `bdk::Wallet`. A `wallet_rpc` example is added to demonstrate syncing `bdk::Wallet` with the `bdk_bitcoind_rpc` chain-source crate. The API of `bdk_bitcoind_rpc::Emitter` is changed so the receiver knows how to connect to the block emitted. ### Notes to the reviewers ### Changelog notice Added * `Wallet` methods to apply full blocks (`apply_block` and `apply_block_connected_to`) and a method to apply a batch of unconfirmed transactions (`apply_unconfirmed_txs`). * `CheckPoint::from_block_ids` convenience method. * `LocalChain` methods to apply a block header (`apply_header` and `apply_header_connected_to`). * Test to show that `LocalChain` can apply updates that are shorter than original. This will happen during reorgs if we sync wallet with `bdk_bitcoind_rpc::Emitter`. Fixed * `InsertTxError` now implements `std::error::Error`. #### All Submissions: * [x] I've signed all my commits * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md) * [x] I ran `cargo fmt` and `cargo clippy` before committing #### New Features: * [x] I've added tests for the new feature * [x] I've added docs for the new feature ACKs for top commit: LLFourn: self-ACK:a4f28c079eevanlinjin: ACKa4f28c079eTree-SHA512: e39fb65b4e69c0a6748d64eab12913dc9cfe5eb8355ab8fb68f60a37c3bb2e1489ddd8f2f138c6470135344f40e3dc671928f65d303fd41fb63f577b30895b60
BDK Chain
BDK keychain tracker, tools for storing and indexing chain data.