Skip to content

feat(utxo-locking)!: Add commands to lock, unlock and list locked UTXOs#294

Open
tvpeter wants to merge 35 commits into
bitcoindevkit:masterfrom
tvpeter:feat/utxo-locking
Open

feat(utxo-locking)!: Add commands to lock, unlock and list locked UTXOs#294
tvpeter wants to merge 35 commits into
bitcoindevkit:masterfrom
tvpeter:feat/utxo-locking

Conversation

@tvpeter

@tvpeter tvpeter commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates the Wallet API to v3.1.0 and adds wallet subcommands to lock and unlock UTXOs. Locked outpoints are excluded from coin selection, and the lock state is stored in the wallet. It also updates the bdk_redb to v0.2.0 and bdk_kyoto to v0.17.0.

Fixes #293 and builds upon #289 and #278

Notes to the reviewers

Changelog notice

  • Update bdk_wallet to v3.1.0
  • Add wallet lock_utxo command
  • Add wallet unlock_utxo command
  • Add wallet locked_uxtos command
  • Update bdk_redb to v0.2.0
  • Update bdk_kyoto to v0.17.0
  • Replace Network enum with NetworkKind
  • Replace include_output_redeem_witness_script with add_global_xpubs in TxBuilder
  • Replace submit_package with broadcast_random for broadcasting transactions in KyotoClient

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

New Features:

  • I've added tests for the new feature
  • I've added docs for the new feature
  • I've updated CHANGELOG.md

tvpeter added 30 commits June 5, 2026 13:43
- move all blockchain clients code into the
backend subdirectory
- move commands.rs content into commands
subdirectory
- split util fns into `descriptors` and `common`
- move persister into wallet subdirectory
- update imports in payjoin module
- split handlers into top level commands config,
key and descriptors
- move handler fns into offline, online, wallets
modules
- split handler fns into repl
- add entry point to the handlers subdir
- add wallet subdir entry point
- add trait for formatting outputs
- add types for presenting data to the output
- refactor offline mod to use types
- add types for descriptor, key and wallets mods
- add simple table helper fn for creating tables
- refactor types to use simple table helper
- add type defs for key, wallets and descriptors
- rebase master for bip322 feature
- update types to use simple table helper
- move wallet subdir into the persister module
to simplify the structure as wallet was confusing
- remove --pretty flag
- move types to utils
- update commands
- add run fn in main to handle routing
- move execution logic into config, desc and key
modules
- fix execution logic for subcommands under
offline and online wallet subcommands
- Define Init state for when an execution does
not need either the wallet or client for execution
- Define the Offline wallet operations state
for app context when an execution envt needs
 a wallet
- Define the online wallet operations state for
appcontext when an execution needs both the
wallet and client
- make app context generic over the state
- make the app command and async app command
generic over the execution context
- deleted shorten fn as it was applicable to the
pretty flag
- removed tests for pretty flag
- apply app context with state to all the modules
- cover case for commands when db is not required
- add wallet runtime module to serve as context
manager
- fix clippy errors
- rebase silent payment feature
- Add new address, unused address and createtx
commands to list of commands that require
loading existing db
- adding persisting changes in offline and online
commands
- add BdkCli helper struct and impl methods
- add integration tests for the key subcommand
operations
- Add integration tests for wallets, descriptor,
compile and config modules
- add integration tests for offline wallet
operations
- Add test for creating, signing, broadcasting tx
- Add test for combining psbt, fee bump and other
psbt related commands
- Add bip322 tests
tvpeter added 5 commits June 24, 2026 20:10
- add saving proxy_opts for electrum and esplora
clients to config and reading values
- fix prepare_home_dir util fn
- Update bdk_wallet to v3.1.0
- Replaced Network enum with NetworkKind
- Replaced `include_output_redeem_witness_script`
with `add_global_xpubs`
- update bdk_redb to v0.2.0
- update bdk_kyoto to v0.17.0
- add ew broadcast/subscriber API for KyotoClient
- add wallet commands to lock, unlock and list
locked utxos
- update unspent command to show status of each
outpoint
@tvpeter tvpeter self-assigned this Jun 30, 2026
@tvpeter tvpeter changed the title feat(utxo-locking)!: Add wallet commands to lock, unlock and list locked UTXOs feat(utxo-locking)!: Add commands to lock, unlock and list locked UTXOs Jun 30, 2026
@tvpeter tvpeter added this to the CLI 4.0.0 milestone Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Add Lock/Unlock UTXO Commands

1 participant