@@ -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} ;
2222use bdk_chain:: ConfirmationBlockTime ;
2323use 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