Releases: bitcoindevkit/bdk-sp
Releases · bitcoindevkit/bdk-sp
Release 0.1.0
Summary
This initial version focuses on establishing core components for sending, receiving, and indexing Silent Payments, along with utility features and a testing framework.
This release lays a foundation for the Silent Payments integration into BDK. We encourage developers to explore the features and provide feedback for future enhancements.
Changelog
- Silent Payments Core Library (
bdk_sp
):- Functions for encoding and decoding Silent Payment Codes (BIP352).
- Support for deriving Silent Payment script pubkeys and shared secrets.
- Capabilities for scanning transactions to identify Silent Payment outputs.
- Implementation for signing PSBTs that spend Silent Payment outputs.
- Error handling for Silent Payment-related operations.
- Wallet Functionality (
bdk_sp_wallet
):- Wallet creation from descriptor keys for Silent Payments.
- Balance calculation and transaction management.
- Address derivation for spending and change.
- Chain state tracking and block processing for relevant transactions.
- Integration with
bdk_tx
for transaction handling.
- Indexing and Scanning (
bdk_sp_indexer
):SpIndexerV2
for scanning, indexing, and tracking Silent Payment transactions.- Methods for block processing, transaction relevance determination, and label management.
ChangeSet
for tracking minimal changes to Silent Payment data.- Optional
serde
serialization for smaller builds.
- Oracles and Data Retrieval (
bdk_sp_oracles
):- Kyoto-based filter infrastructure for accessing compact block filters.
- BlindBit client implementation for connecting to tweak server endpoints.
- Mechanisms to match tweaks against filters to identify transactions of interest.
- Command Line Interface (
bdk_sp_cli
):- A CLI tool providing examples of Silent Payment wallet functionality.
- Commands for creating and managing wallets, displaying Silent
- Payment codes, scanning the blockchain, creating transactions, and checking balances.
- Support for scanning payments using Kyoto Compact Block Filters (CBF) and BlindBit.
- PSBT signing and creation capabilities.
- Development and Testing Infrastructure:
- Comprehensive unit tests for core Silent Payment functions.
- Integration tests covering various Silent Payment flows, including sending and receiving.
- Functional tests with namespacing for BIP352 vectorized cases.
- Code harnesses for fuzz testing with AFL, libFuzz, and honggfuzz.
- Continuous Integration (CI) with mutation testing, coverage reports, and build stability checks.
- Documentation for contributing guidelines and API usage.
Breaking Changes
As this is the first release, there are no prior versions from which breaking changes would occur. All APIs introduced in this version are new.
What's Changed
- Add github issue and pull request templates by @nymius in #9
- Fix duplicated names in github templates by @nymius in #10
- ci: update coverage job by @nymius in #16
- ci: add incremental-mutants job to execute cargo mutants against PR diff by @nymius in #17
- test: add code harness to fuzz with AFL, libFuzz and honggfuzz by @nymius in #23
- test: add unit test for get smallest outpoint by @nymius in #18
- test: add unit test for create silentpayment spks by @nymius in #19
- test: add unit test for create partial secret by @nymius in #20
- test: add unit test for
tag_txin
by @nymius in #21 - Replace
get_smallest_lexicographic_outpoint
byLexMin
by @nymius in #26 - Refactor and test
psbt::derive_sp
by @nymius in #27 - Scope/rename tests and sort imports by @nymius in #32
- Rename
SpInputs
variants by @nymius in #33 - docs: add CONTRIBUTING.md by @nymius in #34
- Refactor
indexer
to improveexample_crates
interface by @nymius in #40 - Bump version to
0.1.0
by @nymius in #42
Full Changelog: https://github.com/bitcoindevkit/bdk-sp/commits/v0.1.0