@@ -479,11 +479,19 @@ impl Ord for Witness {
479479
480480impl Witness {
481481 /// Turn a signature into (part of) a satisfaction
482- fn signature < Pk : ToPublicKey , S : Satisfier < Pk > > ( sat : S , pk : & Pk ) -> Self {
483- match sat. lookup_ec_sig ( pk) {
484- Some ( sig) => Witness :: Stack ( vec ! [ sig. to_vec( ) ] ) ,
485- // Signatures cannot be forged
486- None => Witness :: Impossible ,
482+ fn signature < Pk : ToPublicKey , S : Satisfier < Pk > , Ctx : ScriptContext > ( sat : S , pk : & Pk ) -> Self {
483+ if Ctx :: is_tap ( ) {
484+ match sat. lookup_schnorr_sig ( pk) {
485+ Some ( sig) => Witness :: Stack ( vec ! [ sig. to_vec( ) ] ) ,
486+ // Signatures cannot be forged
487+ None => Witness :: Impossible ,
488+ }
489+ } else {
490+ match sat. lookup_ec_sig ( pk) {
491+ Some ( sig) => Witness :: Stack ( vec ! [ sig. to_vec( ) ] ) ,
492+ // Signatures cannot be forged
493+ None => Witness :: Impossible ,
494+ }
487495 }
488496 }
489497
@@ -819,7 +827,7 @@ impl Satisfaction {
819827 {
820828 match * term {
821829 Terminal :: PkK ( ref pk) => Satisfaction {
822- stack : Witness :: signature ( stfr, pk) ,
830+ stack : Witness :: signature :: < _ , _ , Ctx > ( stfr, pk) ,
823831 has_sig : true ,
824832 } ,
825833 Terminal :: PkH ( ref pkh) => Satisfaction {
@@ -980,7 +988,7 @@ impl Satisfaction {
980988 let mut sig_count = 0 ;
981989 let mut sigs = Vec :: with_capacity ( k) ;
982990 for pk in keys {
983- match Witness :: signature ( stfr, pk) {
991+ match Witness :: signature :: < _ , _ , Ctx > ( stfr, pk) {
984992 Witness :: Stack ( sig) => {
985993 sigs. push ( sig) ;
986994 sig_count += 1 ;
@@ -1022,7 +1030,7 @@ impl Satisfaction {
10221030 let mut sig_count = 0 ;
10231031 let mut sigs = vec ! [ vec![ vec![ ] ] ; keys. len( ) ] ;
10241032 for ( i, pk) in keys. iter ( ) . rev ( ) . enumerate ( ) {
1025- match Witness :: signature ( stfr, pk) {
1033+ match Witness :: signature :: < _ , _ , Ctx > ( stfr, pk) {
10261034 Witness :: Stack ( sig) => {
10271035 sigs[ i] = sig;
10281036 sig_count += 1 ;
0 commit comments