Skip to content

Commit

Permalink
fix: use quantity for v value (#715)
Browse files Browse the repository at this point in the history
  • Loading branch information
mattsse authored Aug 27, 2024
1 parent 6cf4e81 commit ea7f594
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions crates/primitives/src/signature/sig.rs
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,9 @@ impl serde::Serialize for crate::Signature {

match self.v {
Parity::Eip155(v) => map.serialize_entry("v", &crate::U64::from(v))?,
Parity::NonEip155(b) => map.serialize_entry("v", &(b as u8 + 27))?,
Parity::NonEip155(b) => {
map.serialize_entry("v", &crate::U64::from(b as u8 + 27))?
}
Parity::Parity(true) => map.serialize_entry("yParity", "0x1")?,
Parity::Parity(false) => map.serialize_entry("yParity", "0x0")?,
}
Expand All @@ -430,7 +432,7 @@ impl serde::Serialize for crate::Signature {
let mut tuple = serializer.serialize_tuple(3)?;
tuple.serialize_element(&self.r)?;
tuple.serialize_element(&self.s)?;
tuple.serialize_element(&self.v.to_u64())?;
tuple.serialize_element(&crate::U64::from(self.v.to_u64()))?;
tuple.end()
}
}
Expand Down Expand Up @@ -558,7 +560,7 @@ impl<'de> serde::Deserialize<'de> for crate::Signature {
let s = seq
.next_element()?
.ok_or_else(|| serde::de::Error::invalid_length(1, &self))?;
let v: u64 = seq
let v: crate::U64 = seq
.next_element()?
.ok_or_else(|| serde::de::Error::invalid_length(2, &self))?;

Expand Down Expand Up @@ -733,6 +735,16 @@ mod tests {
assert_eq!(serialized, expected);
}

#[cfg(feature = "serde")]
#[test]
fn serialize_v_hex() {
let s = r#"{"r":"0x3d43270611ffb1a10fcab841e636e355a787151969b920cf10fef48d3a61aac3","s":"0x11336489e3050e3ec017079dfe16582ce3d167559bcaa8383b665b3fda4eb963","v":"0x1b"}"#;

let sig = serde_json::from_str::<crate::Signature>(s).unwrap();
let serialized = serde_json::to_string(&sig).unwrap();
assert_eq!(serialized, s);
}

#[cfg(feature = "serde")]
#[test]
fn test_bincode_roundtrip() {
Expand Down

0 comments on commit ea7f594

Please sign in to comment.