From 36004c91fde89c9d1d401f016bfc1138985da0ad Mon Sep 17 00:00:00 2001 From: Andronik Ordian Date: Fri, 1 Jan 2021 14:42:51 +0100 Subject: [PATCH 1/2] primitive-types: address nits of #480 (#485) * primitive-types: address nits of #480 * fix ethereum-types --- ethereum-types/src/lib.rs | 4 +--- ethereum-types/src/uint.rs | 2 +- primitive-types/impls/num-traits/Cargo.toml | 4 ---- primitive-types/impls/num-traits/src/lib.rs | 7 ++++--- primitive-types/src/lib.rs | 1 - 5 files changed, 6 insertions(+), 12 deletions(-) diff --git a/ethereum-types/src/lib.rs b/ethereum-types/src/lib.rs index ce84e3731..56963f28d 100644 --- a/ethereum-types/src/lib.rs +++ b/ethereum-types/src/lib.rs @@ -13,9 +13,7 @@ mod uint; pub use ethbloom::{Bloom, BloomRef, Input as BloomInput}; pub use hash::{BigEndianHash, H128, H160, H256, H264, H32, H512, H520, H64}; -#[cfg(feature = "num-traits")] -pub use primitive_types::{FromStrRadixErr, FromStrRadixErrKind}; -pub use uint::{FromDecStrErr, U128, U256, U512, U64}; +pub use uint::{FromDecStrErr, FromStrRadixErr, FromStrRadixErrKind, U128, U256, U512, U64}; pub type Address = H160; pub type Secret = H256; diff --git a/ethereum-types/src/uint.rs b/ethereum-types/src/uint.rs index 440221c16..eaf9bbf49 100644 --- a/ethereum-types/src/uint.rs +++ b/ethereum-types/src/uint.rs @@ -14,7 +14,7 @@ use impl_rlp::impl_uint_rlp; use impl_serde::impl_uint_serde; use uint_crate::*; -pub use uint_crate::FromDecStrErr; +pub use uint_crate::{FromDecStrErr, FromStrRadixErr, FromStrRadixErrKind}; construct_uint! { /// Unsigned 64-bit integer. diff --git a/primitive-types/impls/num-traits/Cargo.toml b/primitive-types/impls/num-traits/Cargo.toml index fed7c898e..8e0fef9f3 100644 --- a/primitive-types/impls/num-traits/Cargo.toml +++ b/primitive-types/impls/num-traits/Cargo.toml @@ -10,7 +10,3 @@ edition = "2018" [dependencies] num-traits = { version = "0.2", default-features = false } uint = { version = "0.8.5", path = "../../../uint", default-features = false } - -[features] -default = ["std"] -std = ["num-traits/std", "uint/std"] diff --git a/primitive-types/impls/num-traits/src/lib.rs b/primitive-types/impls/num-traits/src/lib.rs index d5e5e5d8b..094447592 100644 --- a/primitive-types/impls/num-traits/src/lib.rs +++ b/primitive-types/impls/num-traits/src/lib.rs @@ -8,12 +8,13 @@ //! num-traits support for uint. -#![cfg_attr(not(feature = "std"), no_std)] +#![no_std] #[doc(hidden)] pub use num_traits; -pub use uint::{FromStrRadixErr, FromStrRadixErrKind}; +#[doc(hidden)] +pub use uint; /// Add num-traits support to an integer created by `construct_uint!`. #[macro_export] @@ -39,7 +40,7 @@ macro_rules! impl_uint_num_traits { } impl $crate::num_traits::Num for $name { - type FromStrRadixErr = $crate::FromStrRadixErr; + type FromStrRadixErr = $crate::uint::FromStrRadixErr; fn from_str_radix(txt: &str, radix: u32) -> Result { Self::from_str_radix(txt, radix) diff --git a/primitive-types/src/lib.rs b/primitive-types/src/lib.rs index bf9acbdc3..696ac6898 100644 --- a/primitive-types/src/lib.rs +++ b/primitive-types/src/lib.rs @@ -22,7 +22,6 @@ use fixed_hash::{construct_fixed_hash, impl_fixed_hash_conversions}; #[cfg(feature = "scale-info")] use scale_info::TypeInfo; use uint::{construct_uint, uint_full_mul_reg}; -pub use uint::{FromStrRadixErr, FromStrRadixErrKind}; /// Error type for conversion. #[derive(Debug, PartialEq, Eq)] From f98a93d7a26703732f7071748c250e39ee82205d Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Jan 2021 09:50:17 +0000 Subject: [PATCH 2/2] Remove deprecated FromStr/TryFrom impls for Secret (#495) * Remove deprecated FromStr/TryFrom impls for Secret * update CHANGELOG --- parity-crypto/CHANGELOG.md | 1 + parity-crypto/src/publickey/secret_key.rs | 31 +---------------------- 2 files changed, 2 insertions(+), 30 deletions(-) diff --git a/parity-crypto/CHANGELOG.md b/parity-crypto/CHANGELOG.md index 42a24d6a5..2d8a372c0 100644 --- a/parity-crypto/CHANGELOG.md +++ b/parity-crypto/CHANGELOG.md @@ -8,6 +8,7 @@ The format is based on [Keep a Changelog]. ### Breaking - Bump `rust-secp256k1` to v0.19, always allow zero signatures. [#438](https://github.com/paritytech/parity-common/pull/438) - Updated `rlp` to 0.5. [#463](https://github.com/paritytech/parity-common/pull/463) +- Remove deprecated trait impls `FromStr`/`TryFrom` for `Secret` [#495](https://github.com/paritytech/parity-common/pull/495) ## [0.6.2] - 2020-06-19 - Put `Secret` memory on heap. [#400](https://github.com/paritytech/parity-common/pull/400) diff --git a/parity-crypto/src/publickey/secret_key.rs b/parity-crypto/src/publickey/secret_key.rs index 269afdf3e..80a37a590 100644 --- a/parity-crypto/src/publickey/secret_key.rs +++ b/parity-crypto/src/publickey/secret_key.rs @@ -138,7 +138,7 @@ impl Secret { pub fn dec(&mut self) -> Result<(), Error> { match self.is_zero() { true => { - *self = Secret::try_from(super::MINUS_ONE_KEY) + *self = Self::copy_from_slice(&super::MINUS_ONE_KEY) .expect("Constructing a secret key from a known-good constant works; qed."); Ok(()) } @@ -213,14 +213,6 @@ impl Secret { } } -#[deprecated(since = "0.6.2", note = "please use `copy_from_str` instead, input is not zeroized")] -impl FromStr for Secret { - type Err = Error; - fn from_str(s: &str) -> Result { - Ok(H256::from_str(s).map_err(|e| Error::Custom(format!("{:?}", e)))?.into()) - } -} - impl From<[u8; 32]> for Secret { #[inline(always)] fn from(mut k: [u8; 32]) -> Self { @@ -239,27 +231,6 @@ impl From for Secret { } } -#[deprecated(since = "0.6.2", note = "please use `copy_from_str` instead, input is not zeroized")] -impl TryFrom<&str> for Secret { - type Error = Error; - - fn try_from(s: &str) -> Result { - s.parse().map_err(|e| Error::Custom(format!("{:?}", e))) - } -} - -#[deprecated(since = "0.6.2", note = "please use `copy_from_slice` instead, input is not zeroized")] -impl TryFrom<&[u8]> for Secret { - type Error = Error; - - fn try_from(b: &[u8]) -> Result { - if b.len() != SECP256K1_SECRET_KEY_SIZE { - return Err(Error::InvalidSecretKey); - } - Ok(Self { inner: Box::new(H256::from_slice(b)) }) - } -} - impl From for Secret { #[inline(always)] fn from(key: key::SecretKey) -> Self {