Skip to content

Commit 1ab269e

Browse files
committed
example_cli: fix collect assets with for_each_key
which allows creating txs for more descriptor types.
1 parent ea150b4 commit 1ab269e

File tree

1 file changed

+9
-13
lines changed
  • example-crates/example_cli/src

1 file changed

+9
-13
lines changed

example-crates/example_cli/src/lib.rs

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use bdk_chain::miniscript::{
1717
descriptor::{DescriptorSecretKey, SinglePubKey},
1818
plan::{Assets, Plan},
1919
psbt::PsbtExt,
20-
Descriptor, DescriptorPublicKey,
20+
Descriptor, DescriptorPublicKey, ForEachKey,
2121
};
2222
use bdk_chain::ConfirmationBlockTime;
2323
use bdk_chain::{
@@ -596,24 +596,20 @@ pub fn handle_commands<CS: clap::Subcommand, S: clap::Args>(
596596
let chain = chain.lock().unwrap();
597597

598598
// collect assets we can sign for
599-
let mut assets = Assets::new();
599+
let mut pks = vec![];
600+
for (_, desc) in graph.index.keychains() {
601+
desc.for_each_key(|k| {
602+
pks.push(k.clone());
603+
true
604+
});
605+
}
606+
let mut assets = Assets::new().add(pks);
600607
if let Some(n) = after {
601608
assets = assets.after(absolute::LockTime::from_consensus(n));
602609
}
603610
if let Some(n) = older {
604611
assets = assets.older(relative::LockTime::from_consensus(n)?);
605612
}
606-
for (_, desc) in graph.index.keychains() {
607-
match desc {
608-
Descriptor::Wpkh(wpkh) => {
609-
assets = assets.add(wpkh.clone().into_inner());
610-
}
611-
Descriptor::Tr(tr) => {
612-
assets = assets.add(tr.internal_key().clone());
613-
}
614-
_ => bail!("unsupported descriptor type"),
615-
}
616-
}
617613

618614
create_tx(&mut graph, &*chain, &assets, coin_select, address, value)?
619615
};

0 commit comments

Comments
 (0)