2727//! let _ = segwit::encode_v0(&hrp::TB, &witness_prog);
2828//!
2929//! // If you have the witness version already you can use:
30- //! # let witness_version = Fe32::Q ;
30+ //! # let witness_version = segwit::VERSION_0 ;
3131//! let _ = segwit::encode(&hrp::BC, witness_version, &witness_prog);
3232//!
3333//! // Decode a Bitcoin bech32 segwit address.
@@ -50,9 +50,8 @@ use crate::primitives::decode::{SegwitHrpstring, SegwitHrpstringError};
5050use crate :: primitives:: gf32:: Fe32 ;
5151use crate :: primitives:: hrp:: Hrp ;
5252use crate :: primitives:: iter:: { ByteIterExt , Fe32IterExt } ;
53- #[ cfg( feature = "alloc" ) ]
54- use crate :: primitives:: segwit;
55- use crate :: primitives:: segwit:: { InvalidWitnessVersionError , WitnessLengthError } ;
53+ use crate :: primitives:: segwit:: { self , InvalidWitnessVersionError , WitnessLengthError } ;
54+ pub use crate :: primitives:: segwit:: { VERSION_0 , VERSION_1 } ;
5655use crate :: primitives:: { Bech32 , Bech32m } ;
5756use crate :: write_err;
5857
@@ -102,13 +101,13 @@ pub fn encode(
102101/// Encodes a segwit version 0 address.
103102#[ cfg( feature = "alloc" ) ]
104103pub fn encode_v0 ( hrp : & Hrp , witness_program : & [ u8 ] ) -> Result < String , EncodeError > {
105- encode ( hrp, Fe32 :: Q , witness_program)
104+ encode ( hrp, VERSION_0 , witness_program)
106105}
107106
108107/// Encodes a segwit version 1 address.
109108#[ cfg( feature = "alloc" ) ]
110109pub fn encode_v1 ( hrp : & Hrp , witness_program : & [ u8 ] ) -> Result < String , EncodeError > {
111- encode ( hrp, Fe32 :: P , witness_program)
110+ encode ( hrp, VERSION_1 , witness_program)
112111}
113112
114113/// Encodes a segwit address to a writer ([`fmt::Write`]) using lowercase characters.
@@ -123,8 +122,8 @@ pub fn encode_to_fmt_unchecked<W: fmt::Write>(
123122) -> fmt:: Result {
124123 let iter = witness_program. iter ( ) . copied ( ) . bytes_to_fes ( ) ;
125124 match witness_version {
126- Fe32 :: Q => {
127- for c in iter. with_checksum :: < Bech32 > ( hrp) . with_witness_version ( Fe32 :: Q ) . chars ( ) {
125+ VERSION_0 => {
126+ for c in iter. with_checksum :: < Bech32 > ( hrp) . with_witness_version ( VERSION_0 ) . chars ( ) {
128127 fmt. write_char ( c) ?;
129128 }
130129 }
@@ -151,8 +150,8 @@ pub fn encode_to_fmt_unchecked_uppercase<W: fmt::Write>(
151150) -> fmt:: Result {
152151 let iter = witness_program. iter ( ) . copied ( ) . bytes_to_fes ( ) ;
153152 match witness_version {
154- Fe32 :: Q => {
155- for c in iter. with_checksum :: < Bech32 > ( hrp) . with_witness_version ( Fe32 :: Q ) . chars ( ) {
153+ VERSION_0 => {
154+ for c in iter. with_checksum :: < Bech32 > ( hrp) . with_witness_version ( VERSION_0 ) . chars ( ) {
156155 fmt. write_char ( c. to_ascii_uppercase ( ) ) ?;
157156 }
158157 }
@@ -247,7 +246,7 @@ mod tests {
247246 fn encode_to_fmt_lowercase ( ) {
248247 let program = witness_program ( ) ;
249248 let mut address = String :: new ( ) ;
250- encode_to_fmt_unchecked ( & mut address, & hrp:: BC , Fe32 :: Q , & program)
249+ encode_to_fmt_unchecked ( & mut address, & hrp:: BC , VERSION_0 , & program)
251250 . expect ( "failed to encode address to QR code" ) ;
252251
253252 let want = "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4" ;
@@ -258,7 +257,7 @@ mod tests {
258257 fn encode_to_fmt_uppercase ( ) {
259258 let program = witness_program ( ) ;
260259 let mut address = String :: new ( ) ;
261- encode_to_fmt_unchecked_uppercase ( & mut address, & hrp:: BC , Fe32 :: Q , & program)
260+ encode_to_fmt_unchecked_uppercase ( & mut address, & hrp:: BC , VERSION_0 , & program)
262261 . expect ( "failed to encode address to QR code" ) ;
263262
264263 let want = "BC1QW508D6QEJXTDG4Y5R3ZARVARY0C5XW7KV8F3T4" ;
0 commit comments