@@ -83,28 +83,23 @@ pub unsafe extern "C" fn rust_bitcoin_address_parse(address: *const c_char) -> *
83
83
84
84
match Address :: from_str ( address_str) {
85
85
Ok ( addr_unchecked) => {
86
- let addr = match addr_unchecked. clone ( ) . require_network ( bitcoin:: Network :: Bitcoin ) {
87
- Ok ( checked_addr) => checked_addr,
88
- Err ( _) => {
89
- match addr_unchecked. require_network ( bitcoin:: Network :: Testnet ) {
90
- Ok ( testnet_addr) => testnet_addr,
91
- Err ( _) => return str_to_c_string ( "INVALID_NETWORK" ) ,
92
- }
93
- }
94
- } ;
86
+ match addr_unchecked. require_network ( bitcoin:: Network :: Bitcoin ) {
87
+ Ok ( addr) => {
88
+ let prefix = match addr. address_type ( ) {
89
+ Some ( bitcoin:: address:: AddressType :: P2pkh ) => "PKH:" ,
90
+ Some ( bitcoin:: address:: AddressType :: P2sh ) => "SH:" ,
91
+ Some ( bitcoin:: address:: AddressType :: P2wpkh ) => "WPKH:" ,
92
+ Some ( bitcoin:: address:: AddressType :: P2wsh ) => "WSH:" ,
93
+ Some ( bitcoin:: address:: AddressType :: P2tr ) => "TR:" ,
94
+ Some ( _) => "UNK:" ,
95
+ None => "UNK:" ,
96
+ } ;
95
97
96
- let prefix = match addr. address_type ( ) {
97
- Some ( bitcoin:: address:: AddressType :: P2pkh ) => "PKH:" ,
98
- Some ( bitcoin:: address:: AddressType :: P2sh ) => "SH:" ,
99
- Some ( bitcoin:: address:: AddressType :: P2wpkh ) => "WPKH:" ,
100
- Some ( bitcoin:: address:: AddressType :: P2wsh ) => "WSH:" ,
101
- Some ( bitcoin:: address:: AddressType :: P2tr ) => "TR:" ,
102
- Some ( _) => "UNK:" ,
103
- None => "UNK:" ,
104
- } ;
105
-
106
- let result = format ! ( "{}{:}" , prefix, addr) ;
107
- str_to_c_string ( & result)
98
+ let result = format ! ( "{}{:}" , prefix, addr) ;
99
+ str_to_c_string ( & result)
100
+ } ,
101
+ Err ( _) => str_to_c_string ( "INVALID" ) ,
102
+ }
108
103
} ,
109
104
Err ( _) => str_to_c_string ( "INVALID" ) ,
110
105
}
0 commit comments