Module checksum

Module checksum 

Expand description

Serde functions for (de)serializing EIP-55 checksummed addresses.

Can also be used for rejecting non checksummend addresses during deserialization.

§Example

use alloy_primitives::{address, Address};
use alloy_serde;
use serde::{Deserialize, Serialize};

#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Container {
    #[serde(with = "alloy_serde::checksum")]
    value: Address,
}

let val = Container { value: address!("0xdadB0d80178819F2319190D340ce9A924f783711") };
let s = serde_json::to_string(&val).unwrap();
assert_eq!(s, "{\"value\":\"0xdadB0d80178819F2319190D340ce9A924f783711\"}");

let deserialized: Container = serde_json::from_str(&s).unwrap();
assert_eq!(val, deserialized);

let invalid = "{\"value\":\"0xdadb0d80178819F2319190D340ce9A924f783711\"}";
serde_json::from_str::<Container>(&invalid).unwrap_err();

Functions§

deserialize
Deserialize an Address only if it has EIP-55 checksum.
serialize
Serialize an Address with EIP-55 checksum.