1use crate::{
20 bytes::Bytes,
21 hash::{Address, H256, Bloom},
22};
23use serde::Deserialize;
24
25#[derive(Debug, PartialEq, Deserialize)]
27pub struct Log {
28 pub address: Address,
30 pub topics: Vec<H256>,
32 pub data: Bytes,
34 pub bloom: Bloom,
36}
37
38#[cfg(test)]
39mod tests {
40 use super::Log;
41
42 #[test]
43 fn log_deserialization() {
44 let s = r#"{
45 "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
46 "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008800000000000000000020000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000",
47 "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
48 "topics" : [
49 "0000000000000000000000000000000000000000000000000000000000000000"
50 ]
51 }"#;
52 let _deserialized: Log = serde_json::from_str(s).unwrap();
53 }
55}