Skip to content

Commit ab823cf

Browse files
author
Aton
committed
let ed25519/sr25519 Public Serialize/Deserialize use H256
#issue paritytech#2064
1 parent 28aa334 commit ab823cf

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

core/primitives/src/ed25519.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,21 @@ impl ::std::fmt::Debug for Public {
134134
#[cfg(feature = "std")]
135135
impl Serialize for Public {
136136
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer {
137-
serializer.serialize_str(&self.to_ss58check())
137+
// TODO wait until issue https://github.com/paritytech/substrate/issues/2064 fix
138+
// serializer.serialize_str(&self.to_ss58check())
139+
let h256: H256 = self.clone().into();
140+
h256.serialize(serializer)
138141
}
139142
}
140143

141144
#[cfg(feature = "std")]
142145
impl<'de> Deserialize<'de> for Public {
143146
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de> {
144-
Public::from_ss58check(&String::deserialize(deserializer)?)
145-
.map_err(|e| de::Error::custom(format!("{:?}", e)))
147+
// TODO wait until issue https://github.com/paritytech/substrate/issues/2064 fix
148+
// Public::from_ss58check(&String::deserialize(deserializer)?)
149+
// .map_err(|e| de::Error::custom(format!("{:?}", e)))
150+
let h256: H256 = H256::deserialize(deserializer)?;
151+
Ok(Public::from_h256(h256))
146152
}
147153
}
148154

core/primitives/src/sr25519.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,21 @@ impl ::std::fmt::Debug for Public {
119119
#[cfg(feature = "std")]
120120
impl Serialize for Public {
121121
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer {
122-
serializer.serialize_str(&self.to_ss58check())
122+
// TODO wait until issue https://github.com/paritytech/substrate/issues/2064 fix
123+
// serializer.serialize_str(&self.to_ss58check())
124+
let h256: H256 = self.clone().into();
125+
h256.serialize(serializer)
123126
}
124127
}
125128

126129
#[cfg(feature = "std")]
127130
impl<'de> Deserialize<'de> for Public {
128131
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de> {
129-
Public::from_ss58check(&String::deserialize(deserializer)?)
130-
.map_err(|e| de::Error::custom(format!("{:?}", e)))
132+
// TODO wait until issue https://github.com/paritytech/substrate/issues/2064 fix
133+
// Public::from_ss58check(&String::deserialize(deserializer)?)
134+
// .map_err(|e| de::Error::custom(format!("{:?}", e)))
135+
let h256: H256 = H256::deserialize(deserializer)?;
136+
Ok(Public::from_h256(h256))
131137
}
132138
}
133139

0 commit comments

Comments
 (0)