27
27
//! let _ = segwit::encode_v0(&hrp::TB, &witness_prog);
28
28
//!
29
29
//! // If you have the witness version already you can use:
30
- //! # let witness_version = Fe32::Q ;
30
+ //! # let witness_version = segwit::VERSION_0 ;
31
31
//! let _ = segwit::encode(&hrp::BC, witness_version, &witness_prog);
32
32
//!
33
33
//! // Decode a Bitcoin bech32 segwit address.
@@ -50,9 +50,8 @@ use crate::primitives::decode::{SegwitHrpstring, SegwitHrpstringError};
50
50
use crate :: primitives:: gf32:: Fe32 ;
51
51
use crate :: primitives:: hrp:: Hrp ;
52
52
use 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 } ;
56
55
use crate :: primitives:: { Bech32 , Bech32m } ;
57
56
use crate :: write_err;
58
57
@@ -102,13 +101,13 @@ pub fn encode(
102
101
/// Encodes a segwit version 0 address.
103
102
#[ cfg( feature = "alloc" ) ]
104
103
pub fn encode_v0 ( hrp : & Hrp , witness_program : & [ u8 ] ) -> Result < String , EncodeError > {
105
- encode ( hrp, Fe32 :: Q , witness_program)
104
+ encode ( hrp, segwit :: VERSION_0 , witness_program)
106
105
}
107
106
108
107
/// Encodes a segwit version 1 address.
109
108
#[ cfg( feature = "alloc" ) ]
110
109
pub fn encode_v1 ( hrp : & Hrp , witness_program : & [ u8 ] ) -> Result < String , EncodeError > {
111
- encode ( hrp, Fe32 :: P , witness_program)
110
+ encode ( hrp, segwit :: VERSION_1 , witness_program)
112
111
}
113
112
114
113
/// 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>(
123
122
) -> fmt:: Result {
124
123
let iter = witness_program. iter ( ) . copied ( ) . bytes_to_fes ( ) ;
125
124
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 ( ) {
128
127
fmt. write_char ( c) ?;
129
128
}
130
129
}
@@ -151,8 +150,8 @@ pub fn encode_to_fmt_unchecked_uppercase<W: fmt::Write>(
151
150
) -> fmt:: Result {
152
151
let iter = witness_program. iter ( ) . copied ( ) . bytes_to_fes ( ) ;
153
152
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 ( ) {
156
155
fmt. write_char ( c. to_ascii_uppercase ( ) ) ?;
157
156
}
158
157
}
@@ -247,7 +246,7 @@ mod tests {
247
246
fn encode_to_fmt_lowercase ( ) {
248
247
let program = witness_program ( ) ;
249
248
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)
251
250
. expect ( "failed to encode address to QR code" ) ;
252
251
253
252
let want = "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4" ;
@@ -258,7 +257,7 @@ mod tests {
258
257
fn encode_to_fmt_uppercase ( ) {
259
258
let program = witness_program ( ) ;
260
259
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)
262
261
. expect ( "failed to encode address to QR code" ) ;
263
262
264
263
let want = "BC1QW508D6QEJXTDG4Y5R3ZARVARY0C5XW7KV8F3T4" ;
0 commit comments