@@ -13,7 +13,7 @@ use bitcoin::util::taproot::{
13
13
} ;
14
14
use bitcoin:: { self , secp256k1, Script } ;
15
15
use errstr;
16
- use expression:: { self , FromTree , Tree } ;
16
+ use expression:: { self , FromTree } ;
17
17
use miniscript:: { limits:: TAPROOT_MAX_NODE_COUNT , Miniscript } ;
18
18
use std:: cmp:: { self , max} ;
19
19
use std:: hash;
@@ -344,21 +344,23 @@ where
344
344
<Pk as FromStr >:: Err : ToString ,
345
345
<<Pk as MiniscriptKey >:: Hash as FromStr >:: Err : ToString ,
346
346
{
347
- fn from_tree ( top : & Tree ) -> Result < Self , Error > {
347
+ fn from_tree ( top : & expression :: Tree ) -> Result < Self , Error > {
348
348
// Helper function to parse taproot script path
349
- fn parse_tr_script_spend < Pk : MiniscriptKey > ( tree : & Tree ) -> Result < TapTree < Pk > , Error >
349
+ fn parse_tr_script_spend < Pk : MiniscriptKey > (
350
+ tree : & expression:: Tree ,
351
+ ) -> Result < TapTree < Pk > , Error >
350
352
where
351
353
Pk : MiniscriptKey + FromStr ,
352
354
Pk :: Hash : FromStr ,
353
355
<Pk as FromStr >:: Err : ToString ,
354
356
<<Pk as MiniscriptKey >:: Hash as FromStr >:: Err : ToString ,
355
357
{
356
358
match tree {
357
- Tree { name, args } if !name. is_empty ( ) && args. is_empty ( ) => {
359
+ expression :: Tree { name, args } if !name. is_empty ( ) && args. is_empty ( ) => {
358
360
let script = Miniscript :: < Pk , Tap > :: from_str ( name) ?;
359
361
Ok ( TapTree :: Leaf ( Arc :: new ( script) ) )
360
362
}
361
- Tree { name, args } if name. is_empty ( ) && args. len ( ) == 2 => {
363
+ expression :: Tree { name, args } if name. is_empty ( ) && args. len ( ) == 2 => {
362
364
let left = parse_tr_script_spend ( & args[ 0 ] ) ?;
363
365
let right = parse_tr_script_spend ( & args[ 1 ] ) ?;
364
366
Ok ( TapTree :: Tree ( Arc :: new ( left) , Arc :: new ( right) ) )
@@ -456,7 +458,7 @@ impl<Pk: MiniscriptKey> fmt::Display for Tr<Pk> {
456
458
}
457
459
458
460
// Helper function to parse string into miniscript tree form
459
- fn parse_tr_tree ( s : & str ) -> Result < Tree , Error > {
461
+ fn parse_tr_tree ( s : & str ) -> Result < expression :: Tree , Error > {
460
462
for ch in s. bytes ( ) {
461
463
if !ch. is_ascii ( ) {
462
464
return Err ( Error :: Unprintable ( ch) ) ;
@@ -466,11 +468,11 @@ fn parse_tr_tree(s: &str) -> Result<Tree, Error> {
466
468
let ret = if s. len ( ) > 3 && & s[ ..3 ] == "tr(" && s. as_bytes ( ) [ s. len ( ) - 1 ] == b')' {
467
469
let rest = & s[ 3 ..s. len ( ) - 1 ] ;
468
470
if !rest. contains ( ',' ) {
469
- let internal_key = Tree {
471
+ let internal_key = expression :: Tree {
470
472
name : rest,
471
473
args : vec ! [ ] ,
472
474
} ;
473
- return Ok ( Tree {
475
+ return Ok ( expression :: Tree {
474
476
name : "tr" ,
475
477
args : vec ! [ internal_key] ,
476
478
} ) ;
@@ -479,19 +481,19 @@ fn parse_tr_tree(s: &str) -> Result<Tree, Error> {
479
481
let ( key, script) = split_once ( rest, ',' )
480
482
. ok_or_else ( || Error :: BadDescriptor ( "invalid taproot descriptor" . to_string ( ) ) ) ?;
481
483
482
- let internal_key = Tree {
484
+ let internal_key = expression :: Tree {
483
485
name : key,
484
486
args : vec ! [ ] ,
485
487
} ;
486
488
if script. is_empty ( ) {
487
- return Ok ( Tree {
489
+ return Ok ( expression :: Tree {
488
490
name : "tr" ,
489
491
args : vec ! [ internal_key] ,
490
492
} ) ;
491
493
}
492
494
let ( tree, rest) = expression:: Tree :: from_slice_helper_curly ( script, 1 ) ?;
493
495
if rest. is_empty ( ) {
494
- Ok ( Tree {
496
+ Ok ( expression :: Tree {
495
497
name : "tr" ,
496
498
args : vec ! [ internal_key, tree] ,
497
499
} )
0 commit comments