serde.rs 549 B

123456789101112131415161718192021
  1. pub mod u256 {
  2. use {
  3. ethers::types::U256,
  4. serde::{de::Error, Deserialize, Deserializer, Serializer},
  5. };
  6. pub fn serialize<S>(b: &U256, s: S) -> Result<S::Ok, S::Error>
  7. where
  8. S: Serializer,
  9. {
  10. s.serialize_str(b.to_string().as_str())
  11. }
  12. pub fn deserialize<'de, D>(d: D) -> Result<U256, D::Error>
  13. where
  14. D: Deserializer<'de>,
  15. {
  16. let s: String = Deserialize::deserialize(d)?;
  17. U256::from_dec_str(s.as_str()).map_err(|err| D::Error::custom(err.to_string()))
  18. }
  19. }