@@ -5,13 +5,13 @@ use bitcoin::blockdata::script::{Builder, Script};
5
5
use bitcoin:: hashes:: Hash ;
6
6
use bitcoin:: hash_types:: { WPubkeyHash , WScriptHash } ;
7
7
use bitcoin:: secp256k1:: PublicKey ;
8
+ use bitcoin:: util:: address:: WitnessVersion ;
8
9
9
10
use ln:: features:: InitFeatures ;
10
11
use ln:: msgs:: DecodeError ;
11
12
use util:: ser:: { Readable , Writeable , Writer } ;
12
13
13
14
use core:: convert:: TryFrom ;
14
- use core:: num:: NonZeroU8 ;
15
15
use io;
16
16
17
17
/// A script pubkey for shutting down a channel as defined by [BOLT #2].
@@ -84,9 +84,9 @@ impl ShutdownScript {
84
84
/// # Errors
85
85
///
86
86
/// 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 > {
88
88
let script = Builder :: new ( )
89
- . push_int ( version. get ( ) . into ( ) )
89
+ . push_int ( version as i64 )
90
90
. push_slice ( & program)
91
91
. into_script ( ) ;
92
92
Self :: try_from ( script)
@@ -180,7 +180,6 @@ mod shutdown_script_tests {
180
180
use bitcoin:: secp256k1:: { PublicKey , SecretKey } ;
181
181
use ln:: features:: InitFeatures ;
182
182
use core:: convert:: TryFrom ;
183
- use core:: num:: NonZeroU8 ;
184
183
use bitcoin:: util:: address:: WitnessVersion ;
185
184
186
185
fn pubkey ( ) -> bitcoin:: util:: key:: PublicKey {
@@ -239,9 +238,7 @@ mod shutdown_script_tests {
239
238
#[ test]
240
239
fn generates_segwit_from_non_v0_witness_program ( ) {
241
240
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 ( ) ;
245
242
assert ! ( shutdown_script. is_compatible( & InitFeatures :: known( ) ) ) ;
246
243
assert ! ( !shutdown_script. is_compatible( & InitFeatures :: known( ) . clear_shutdown_anysegwit( ) ) ) ;
247
244
assert_eq ! ( shutdown_script. into_inner( ) , witness_program) ;
@@ -253,12 +250,6 @@ mod shutdown_script_tests {
253
250
assert ! ( ShutdownScript :: try_from( op_return) . is_err( ) ) ;
254
251
}
255
252
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
-
262
253
#[ test]
263
254
fn fails_from_invalid_segwit_v0_witness_program ( ) {
264
255
let witness_program = Script :: new_witness_program ( WitnessVersion :: V0 , & [ 0 ; 2 ] ) ;
@@ -270,7 +261,6 @@ mod shutdown_script_tests {
270
261
let witness_program = Script :: new_witness_program ( WitnessVersion :: V16 , & [ 0 ; 42 ] ) ;
271
262
assert ! ( ShutdownScript :: try_from( witness_program) . is_err( ) ) ;
272
263
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( ) ) ;
275
265
}
276
266
}
0 commit comments