1
1
// Tapscript
2
2
3
- // use super::{
4
- // checksum::{desc_checksum, verify_checksum},
5
- // DescriptorTrait,
6
- // };
3
+ use super :: checksum:: { desc_checksum, verify_checksum} ;
7
4
use bitcoin:: hashes:: _export:: _core:: fmt:: Formatter ;
8
5
use errstr;
9
6
use expression:: { self , FromTree , Tree } ;
50
47
{
51
48
fn fmt ( & self , f : & mut Formatter < ' _ > ) -> fmt:: Result {
52
49
let desc = self . to_string_no_checksum ( ) ;
53
- // let checksum = desc_checksum(&desc).map_err(|_| fmt::Error)?;
54
- // write!(f, "{}#{}", &desc, &checksum)
55
50
write ! ( f, "{}" , & desc)
56
51
}
57
52
}
@@ -110,6 +105,14 @@ where
110
105
}
111
106
}
112
107
}
108
+
109
+ pub fn to_string_no_checksum ( & self ) -> String {
110
+ let key = & self . key_path ;
111
+ match self . script_path {
112
+ Some ( ref s) => format ! ( "tr({},{})" , key, s) ,
113
+ None => format ! ( "tr({})" , key) ,
114
+ }
115
+ }
113
116
}
114
117
115
118
impl < Pk : MiniscriptKey > FromTree for Tr < Pk >
@@ -178,11 +181,8 @@ where
178
181
type Err = Error ;
179
182
180
183
fn from_str ( s : & str ) -> Result < Self , Self :: Err > {
181
- // let desc_str = verify_checksum(s)?;
182
- // let top = expression::Tree::from_str(desc_str)?;
183
-
184
- // Pass the TapTree then
185
- let top = parse_tr ( s) ?;
184
+ let desc_str = verify_checksum ( s) ?;
185
+ let top = parse_tr ( desc_str) ?;
186
186
Self :: from_tree ( & top) // parse taptree and tapscript differently
187
187
}
188
188
}
@@ -195,11 +195,9 @@ where
195
195
<<Pk as MiniscriptKey >:: Hash as FromStr >:: Err : ToString ,
196
196
{
197
197
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
198
- let key = & self . key_path ;
199
- match self . script_path {
200
- Some ( ref s) => write ! ( f, "tr({},{})" , key, s) ,
201
- None => write ! ( f, "tr({})" , key) ,
202
- }
198
+ let desc = self . to_string_no_checksum ( ) ;
199
+ let checksum = desc_checksum ( & desc) . map_err ( |_| fmt:: Error ) ?;
200
+ write ! ( f, "{}#{}" , & desc, & checksum)
203
201
}
204
202
}
205
203
0 commit comments