@@ -154,13 +154,13 @@ where
154154 Ok ( ( ) )
155155 }
156156
157- fn address ( & self , network : bitcoin:: Network ) -> Option < bitcoin:: Address >
157+ fn address ( & self , network : bitcoin:: Network ) -> Result < bitcoin:: Address , Error >
158158 where
159159 Pk : ToPublicKey ,
160160 {
161161 match self . inner {
162- WshInner :: SortedMulti ( ref smv) => Some ( bitcoin:: Address :: p2wsh ( & smv. encode ( ) , network) ) ,
163- WshInner :: Ms ( ref ms) => Some ( bitcoin:: Address :: p2wsh ( & ms. encode ( ) , network) ) ,
162+ WshInner :: SortedMulti ( ref smv) => Ok ( bitcoin:: Address :: p2wsh ( & smv. encode ( ) , network) ) ,
163+ WshInner :: Ms ( ref ms) => Ok ( bitcoin:: Address :: p2wsh ( & ms. encode ( ) , network) ) ,
164164 }
165165 }
166166
@@ -202,7 +202,7 @@ where
202202 Ok ( ( witness, script_sig) )
203203 }
204204
205- fn max_satisfaction_weight ( & self ) -> Option < usize > {
205+ fn max_satisfaction_weight ( & self ) -> Result < usize , Error > {
206206 let ( script_size, max_sat_elems, max_sat_size) = match self . inner {
207207 WshInner :: SortedMulti ( ref smv) => (
208208 smv. script_size ( ) ,
@@ -215,13 +215,11 @@ where
215215 ms. max_satisfaction_size ( ) ?,
216216 ) ,
217217 } ;
218- Some (
219- 4 + // scriptSig length byte
218+ Ok ( 4 + // scriptSig length byte
220219 varint_len ( script_size) +
221220 script_size +
222221 varint_len ( max_sat_elems) +
223- max_sat_size,
224- )
222+ max_sat_size)
225223 }
226224
227225 fn script_code ( & self ) -> Script
@@ -348,11 +346,12 @@ where
348346 }
349347 }
350348
351- fn address ( & self , network : bitcoin:: Network ) -> Option < bitcoin:: Address >
349+ fn address ( & self , network : bitcoin:: Network ) -> Result < bitcoin:: Address , Error >
352350 where
353351 Pk : ToPublicKey ,
354352 {
355- bitcoin:: Address :: p2wpkh ( & self . pk . to_public_key ( ) , network) . ok ( )
353+ Ok ( bitcoin:: Address :: p2wpkh ( & self . pk . to_public_key ( ) , network)
354+ . expect ( "Rust Miniscript types don't allow uncompressed pks in segwit descriptors" ) )
356355 }
357356
358357 fn script_pubkey ( & self ) -> Script
@@ -394,8 +393,8 @@ where
394393 }
395394 }
396395
397- fn max_satisfaction_weight ( & self ) -> Option < usize > {
398- Some ( 4 + 1 + 73 + self . pk . serialized_len ( ) )
396+ fn max_satisfaction_weight ( & self ) -> Result < usize , Error > {
397+ Ok ( 4 + 1 + 73 + self . pk . serialized_len ( ) )
399398 }
400399
401400 fn script_code ( & self ) -> Script
0 commit comments