@@ -202,17 +202,9 @@ impl<Pk: MiniscriptKey, Ctx: ScriptContext> Miniscript<Pk, Ctx> {
202
202
{
203
203
// Only satisfactions for default versions (0xc0) are allowed.
204
204
let leaf_hash = TapLeafHash :: from_script ( & self . encode ( ) , LeafVersion :: TapScript ) ;
205
- match satisfy:: Satisfaction :: satisfy ( & self . node , & satisfier, self . ty . mall . safe , & leaf_hash)
206
- . stack
207
- {
208
- satisfy:: Witness :: Stack ( stack) => {
209
- Ctx :: check_witness :: < Pk > ( & stack) ?;
210
- Ok ( stack)
211
- }
212
- satisfy:: Witness :: Unavailable | satisfy:: Witness :: Impossible => {
213
- Err ( Error :: CouldNotSatisfy )
214
- }
215
- }
205
+ let satisfaction =
206
+ satisfy:: Satisfaction :: satisfy ( & self . node , & satisfier, self . ty . mall . safe , & leaf_hash) ;
207
+ self . _satisfy ( satisfaction)
216
208
}
217
209
218
210
/// Attempt to produce a malleable satisfying witness for the
@@ -225,14 +217,20 @@ impl<Pk: MiniscriptKey, Ctx: ScriptContext> Miniscript<Pk, Ctx> {
225
217
Pk : ToPublicKey ,
226
218
{
227
219
let leaf_hash = TapLeafHash :: from_script ( & self . encode ( ) , LeafVersion :: TapScript ) ;
228
- match satisfy:: Satisfaction :: satisfy_mall (
220
+ let satisfaction = satisfy:: Satisfaction :: satisfy_mall (
229
221
& self . node ,
230
222
& satisfier,
231
223
self . ty . mall . safe ,
232
224
& leaf_hash,
233
- )
234
- . stack
235
- {
225
+ ) ;
226
+ self . _satisfy ( satisfaction)
227
+ }
228
+
229
+ fn _satisfy ( & self , satisfaction : satisfy:: Satisfaction ) -> Result < Vec < Vec < u8 > > , Error >
230
+ where
231
+ Pk : ToPublicKey ,
232
+ {
233
+ match satisfaction. stack {
236
234
satisfy:: Witness :: Stack ( stack) => {
237
235
Ctx :: check_witness :: < Pk > ( & stack) ?;
238
236
Ok ( stack)
0 commit comments