@@ -17,7 +17,7 @@ use bdk_chain::miniscript::{
17
17
descriptor:: { DescriptorSecretKey , SinglePubKey } ,
18
18
plan:: { Assets , Plan } ,
19
19
psbt:: PsbtExt ,
20
- Descriptor , DescriptorPublicKey ,
20
+ Descriptor , DescriptorPublicKey , ForEachKey ,
21
21
} ;
22
22
use bdk_chain:: ConfirmationBlockTime ;
23
23
use bdk_chain:: {
@@ -596,24 +596,20 @@ pub fn handle_commands<CS: clap::Subcommand, S: clap::Args>(
596
596
let chain = chain. lock ( ) . unwrap ( ) ;
597
597
598
598
// 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) ;
600
607
if let Some ( n) = after {
601
608
assets = assets. after ( absolute:: LockTime :: from_consensus ( n) ) ;
602
609
}
603
610
if let Some ( n) = older {
604
611
assets = assets. older ( relative:: LockTime :: from_consensus ( n) ?) ;
605
612
}
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
- }
617
613
618
614
create_tx ( & mut graph, & * chain, & assets, coin_select, address, value) ?
619
615
} ;
0 commit comments