Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ jobs:
- uses: actions/checkout@v4

- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
# Use the toolchain pinned in ffi/rust-toolchain.toml.
rust-src-dir: ffi
# Sets RUSTFLAGS, which overrides ffi/.cargo/config.toml, so the
# bdk_wallet unstable cfg must be repeated here.
rustflags: "-D warnings --cfg bdk_wallet_unstable"

- name: Run Rust tests
working-directory: ffi
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ jobs:

- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
# Use the toolchain pinned in ffi/rust-toolchain.toml.
rust-src-dir: ffi
# Leave RUSTFLAGS unset: it would override ffi/.cargo/config.toml
# (bdk_wallet unstable cfg, Android 16KB page size) and ubrn's
# flags, so builds match a local `just generate`.
rustflags: ""
target: >-
aarch64-linux-android,
armv7-linux-androideabi,
Expand Down Expand Up @@ -96,6 +102,12 @@ jobs:

- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
# Use the toolchain pinned in ffi/rust-toolchain.toml.
rust-src-dir: ffi
# Leave RUSTFLAGS unset: it would override ffi/.cargo/config.toml
# (bdk_wallet unstable cfg, Android 16KB page size) and ubrn's
# flags, so builds match a local `just generate`.
rustflags: ""
target: >-
aarch64-apple-ios,
aarch64-apple-ios-sim,
Expand Down
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,39 @@ All notable changes to this project are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.8.0] - 2026-10-17

Exposes the new `bdk_wallet` 3.2 APIs. No breaking changes.

### Added

- `BdkWallet.tryFinalizePsbt` — finalizes like `finalizePsbt` and also returns a per-input outcome (`FinalizePsbtOutcome`) that explains why an input was not finalized
- `BdkWallet.signWithDescriptors` — signs a PSBT with private descriptors passed per call, so the wallet itself can stay watch-only
- `BdkWallet.spendingPolicy` and `BdkWallet.policyCondition` — read the spending policy and turn a chosen path into a `Condition` (CSV / absolute timelock)
- `BdkTxBuilder.setCondition` — applies a spending path's timelocks directly. Takes precedence over `policyPath`
- `mergeConditions` — combines two `Condition`s
- Experimental `bdk-tx` transaction building: `BdkWallet.createPsbt` and `BdkWallet.replaceByFee`, configured with `BdkPsbtParams`. Both return the PSBT together with a `Finalizer`. Supports coin selection strategies (`SelectionStrategy`), spending-path assets (`SpendAssets`), maturity and anti-fee-sniping heights, per-input sequence overrides and v3 transactions. Coin selection follows BIP-431 rule 2 like `BdkTxBuilder`: unconfirmed v3 (TRUC) and non-v3 parents are not mixed (UTXOs added manually are not checked). These APIs may change in future releases
- `KyotoScanType.NewWallet` — for freshly generated wallets with no history: syncs block headers only, without downloading filters

### Changed

- Bumped `bdk_esplora` to 0.22.3
- Bumped `bdk_electrum` to 0.24.1
- Bumped `bdk_kyoto` to 0.18.1
- Bumped `bdk_bitcoind_rpc` to 0.22.1
- `bdk_wallet` is pinned to `~3.2.0` with the `bdk-tx` feature enabled, because its unstable APIs may break in minor releases

### Deprecated

- `KyotoOptions.dataDir` — ignored since `bdk_kyoto` 0.18 and now optional
- `BdkWallet.sign`, `BdkWallet.policies` and `BdkTxBuilder.policyPath` keep working, but new code should prefer `signWithDescriptors`, `spendingPolicy` / `policyCondition` and `setCondition`

### Fixed

- `BdkTxBuilder.sighash` was ignored. It now sets the sighash type of every input. `BdkWallet.sign` and `signWithDescriptors` only sign `SIGHASH_ALL` / `SIGHASH_DEFAULT` inputs, so sign other types externally
- `BdkTxBuilder.finish` and `BdkWallet.buildFeeBump` now persist the wallet, so a revealed change address is kept if the app restarts before the next sync
- Release binaries are built with the Rust toolchain pinned in `ffi/rust-toolchain.toml` and the repository's linker flags (16KB page size on all Android ABIs)

## [0.7.0] - 2026-09-23

### Changed
Expand Down
Loading
Loading