diff --git a/CHANGELOG.md b/CHANGELOG.md index b73da6d..d0c662a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +- Changed `btc::Network` (de)serializing into/from string + ## 0.8 - 2018-06-01 ### Breaking changes diff --git a/Cargo.toml b/Cargo.toml index 012fdd9..061da11 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ travis-ci = { repository = "exonum/exonum-btc-anchoring" } exonum = "0.8.0" exonum_bitcoinrpc = "0.5.1" -bitcoin="0.13.0" +bitcoin = "=0.13.1" byteorder = "1.0.0" btc-transaction-utils = "0.2.0" clap = "2.22.1" diff --git a/src/blockchain/consensus_storage.rs b/src/blockchain/consensus_storage.rs index 5f7bff4..2c43632 100644 --- a/src/blockchain/consensus_storage.rs +++ b/src/blockchain/consensus_storage.rs @@ -135,24 +135,17 @@ fn btc_network_to_str(network: &btc::Network, ser: S) -> Result ser.serialize_str("bitcoin"), - btc::Network::Testnet => ser.serialize_str("testnet"), - } + ser.serialize_str(&network.to_string()) } fn btc_network_from_str<'de, D>(deserializer: D) -> Result where D: Deserializer<'de>, { + const VARIANTS: &[&str] = &["bitcoin", "testnet", "regtest"]; let s: String = Deserialize::deserialize(deserializer)?; - - const VARIANTS: &[&str] = &["bitcoin", "testnet"]; - match s.as_str() { - "bitcoin" => Ok(btc::Network::Bitcoin), - "testnet" => Ok(btc::Network::Testnet), - other => Err(::serde::de::Error::unknown_variant(other, VARIANTS)), - } + s.parse::() + .map_err(|_| ::serde::de::Error::unknown_variant(&s, VARIANTS)) } impl StorageValue for AnchoringConfig {