Skip to content

Commit cff3c9b

Browse files
committed
refactor: remove duplication related to BitcoinAddress deserialization, #6250
1 parent 2fd677b commit cff3c9b

File tree

2 files changed

+6
-17
lines changed

2 files changed

+6
-17
lines changed

stacks-node/src/burnchains/rpc/bitcoin_rpc_client/mod.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -180,13 +180,9 @@ where
180180
D: Deserializer<'de>,
181181
{
182182
let addr_str: String = Deserialize::deserialize(deserializer)?;
183-
if let Some(addr) = BitcoinAddress::from_string(&addr_str) {
184-
Ok(addr)
185-
} else {
186-
Err(serde::de::Error::custom(
187-
"BitcoinAddress failed to create from string",
188-
))
189-
}
183+
BitcoinAddress::from_string(&addr_str).ok_or(serde::de::Error::custom(
184+
"BitcoinAddress failed to create from string",
185+
))
190186
}
191187

192188
/// Deserializes a JSON string into [`Script`]

stacks-node/src/burnchains/rpc/bitcoin_rpc_client/test_utils.rs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ use stacks::burnchains::bitcoin::address::BitcoinAddress;
2121
use stacks::burnchains::bitcoin::BitcoinNetworkType;
2222
use stacks::burnchains::Txid;
2323
use stacks::types::chainstate::BurnchainHeaderHash;
24-
use stacks::types::Address;
2524
use stacks_common::deps_common::bitcoin::blockdata::transaction::Transaction;
2625
use stacks_common::deps_common::bitcoin::network::serialize::deserialize_hex;
2726

2827
use crate::burnchains::rpc::bitcoin_rpc_client::{
29-
BitcoinRpcClient, BitcoinRpcClientResult, TxidWrapperResponse,
28+
deserialize_string_to_bitcoin_address, BitcoinRpcClient, BitcoinRpcClientResult,
29+
TxidWrapperResponse,
3030
};
3131

3232
/// Represents the response returned by the `getblockchaininfo` RPC call.
@@ -122,14 +122,7 @@ impl<'de> Deserialize<'de> for GetNewAddressResponse {
122122
where
123123
D: Deserializer<'de>,
124124
{
125-
let addr_str: String = Deserialize::deserialize(deserializer)?;
126-
if let Some(addr) = BitcoinAddress::from_string(&addr_str) {
127-
Ok(GetNewAddressResponse(addr))
128-
} else {
129-
Err(serde::de::Error::custom(
130-
"BitcoinAddress failed to create from string",
131-
))
132-
}
125+
deserialize_string_to_bitcoin_address(deserializer).map(GetNewAddressResponse)
133126
}
134127
}
135128

0 commit comments

Comments
 (0)