diff --git a/Cargo.toml b/Cargo.toml index 09c4760194..af149f3d2e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,6 +35,7 @@ serde = { version = "1", optional = true } serde_derive = "<1.0.99" serde_json = "<1.0.45" serde_test = "1" +bincode = "1.3.1" secp256k1 = { version = "0.19.0", features = [ "recovery", "rand-std" ] } # We need to pin ryu (transitive dep from serde_json) to stay compatible with Rust 1.22.0 ryu = "<1.0.5" diff --git a/src/lib.rs b/src/lib.rs index 790b6182ca..31ac98ae14 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -48,6 +48,7 @@ pub extern crate bech32; #[cfg(all(test, feature = "serde"))] #[macro_use] extern crate serde_derive; // for 1.22.0 compat #[cfg(all(test, feature = "serde"))] extern crate serde_json; #[cfg(all(test, feature = "serde"))] extern crate serde_test; +#[cfg(all(test, feature = "serde"))] extern crate bincode; #[cfg(all(test, feature = "unstable"))] extern crate test; #[cfg(target_pointer_width = "16")] diff --git a/src/util/uint.rs b/src/util/uint.rs index f872e3cbf3..3f5be4a12c 100644 --- a/src/util/uint.rs +++ b/src/util/uint.rs @@ -721,6 +721,10 @@ mod tests { let json = format!("\"{}\"", hex); assert_eq!(::serde_json::to_string(&uint).unwrap(), json); assert_eq!(::serde_json::from_str::(&json).unwrap(), uint); + + let bin_encoded = ::bincode::serialize(&uint).unwrap(); + let bin_decoded: Uint256 = ::bincode::deserialize(&bin_encoded).unwrap(); + assert_eq!(bin_decoded, uint); }; check(