@@ -5,13 +5,13 @@ use bitcoin::blockdata::script::{Builder, Script};
55use bitcoin:: hashes:: Hash ;
66use bitcoin:: hash_types:: { WPubkeyHash , WScriptHash } ;
77use bitcoin:: secp256k1:: PublicKey ;
8+ use bitcoin:: util:: address:: WitnessVersion ;
89
910use ln:: features:: InitFeatures ;
1011use ln:: msgs:: DecodeError ;
1112use util:: ser:: { Readable , Writeable , Writer } ;
1213
1314use core:: convert:: TryFrom ;
14- use core:: num:: NonZeroU8 ;
1515use io;
1616
1717/// A script pubkey for shutting down a channel as defined by [BOLT #2].
@@ -84,9 +84,9 @@ impl ShutdownScript {
8484 /// # Errors
8585 ///
8686 /// This function may return an error if `program` is invalid for the segwit `version`.
87- pub fn new_witness_program ( version : NonZeroU8 , program : & [ u8 ] ) -> Result < Self , InvalidShutdownScript > {
87+ pub fn new_witness_program ( version : WitnessVersion , program : & [ u8 ] ) -> Result < Self , InvalidShutdownScript > {
8888 let script = Builder :: new ( )
89- . push_int ( version. get ( ) . into ( ) )
89+ . push_int ( version as i64 )
9090 . push_slice ( & program)
9191 . into_script ( ) ;
9292 Self :: try_from ( script)
@@ -180,7 +180,6 @@ mod shutdown_script_tests {
180180 use bitcoin:: secp256k1:: { PublicKey , SecretKey } ;
181181 use ln:: features:: InitFeatures ;
182182 use core:: convert:: TryFrom ;
183- use core:: num:: NonZeroU8 ;
184183 use bitcoin:: util:: address:: WitnessVersion ;
185184
186185 fn pubkey ( ) -> bitcoin:: util:: key:: PublicKey {
@@ -239,9 +238,7 @@ mod shutdown_script_tests {
239238 #[ test]
240239 fn generates_segwit_from_non_v0_witness_program ( ) {
241240 let witness_program = Script :: new_witness_program ( WitnessVersion :: V16 , & [ 0 ; 40 ] ) ;
242-
243- let version = NonZeroU8 :: new ( WitnessVersion :: V16 as u8 ) . unwrap ( ) ;
244- let shutdown_script = ShutdownScript :: new_witness_program ( version, & [ 0 ; 40 ] ) . unwrap ( ) ;
241+ let shutdown_script = ShutdownScript :: new_witness_program ( WitnessVersion :: V16 , & [ 0 ; 40 ] ) . unwrap ( ) ;
245242 assert ! ( shutdown_script. is_compatible( & InitFeatures :: known( ) ) ) ;
246243 assert ! ( !shutdown_script. is_compatible( & InitFeatures :: known( ) . clear_shutdown_anysegwit( ) ) ) ;
247244 assert_eq ! ( shutdown_script. into_inner( ) , witness_program) ;
@@ -253,12 +250,6 @@ mod shutdown_script_tests {
253250 assert ! ( ShutdownScript :: try_from( op_return) . is_err( ) ) ;
254251 }
255252
256- #[ test]
257- fn fails_from_invalid_segwit_version ( ) {
258- let version = NonZeroU8 :: new ( 17 ) . unwrap ( ) ;
259- assert ! ( ShutdownScript :: new_witness_program( version, & [ 0 ; 40 ] ) . is_err( ) ) ;
260- }
261-
262253 #[ test]
263254 fn fails_from_invalid_segwit_v0_witness_program ( ) {
264255 let witness_program = Script :: new_witness_program ( WitnessVersion :: V0 , & [ 0 ; 2 ] ) ;
@@ -270,7 +261,6 @@ mod shutdown_script_tests {
270261 let witness_program = Script :: new_witness_program ( WitnessVersion :: V16 , & [ 0 ; 42 ] ) ;
271262 assert ! ( ShutdownScript :: try_from( witness_program) . is_err( ) ) ;
272263
273- let version = NonZeroU8 :: new ( WitnessVersion :: V16 as u8 ) . unwrap ( ) ;
274- assert ! ( ShutdownScript :: new_witness_program( version, & [ 0 ; 42 ] ) . is_err( ) ) ;
264+ assert ! ( ShutdownScript :: new_witness_program( WitnessVersion :: V16 , & [ 0 ; 42 ] ) . is_err( ) ) ;
275265 }
276266}
0 commit comments