starknet_rust_providers/sequencer/models/
contract_addresses.rs1use serde::Deserialize;
2
3use super::L1Address;
4
5#[derive(Debug, Deserialize)]
6#[serde(rename_all = "PascalCase")]
7#[cfg_attr(feature = "no_unknown_fields", serde(deny_unknown_fields))]
8pub struct ContractAddresses {
9 pub starknet: L1Address,
10 pub gps_statement_verifier: L1Address,
11}
12
13#[cfg(test)]
14mod tests {
15 use super::*;
16 use core::str::FromStr;
17
18 #[test]
19 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
20 fn test_contract_addresses_deser() {
21 let raw = r#"{"Starknet": "0xde29d060D45901Fb19ED6C6e959EB22d8626708e", "GpsStatementVerifier": "0xAB43bA48c9edF4C2C4bB01237348D1D7B28ef168"}"#;
23 let ca: ContractAddresses = serde_json::from_str(raw).unwrap();
24 assert_eq!(
25 ca.starknet,
26 L1Address::from_str("0xde29d060D45901Fb19ED6C6e959EB22d8626708e").unwrap()
27 );
28 assert_eq!(
29 ca.gps_statement_verifier,
30 L1Address::from_str("0xAB43bA48c9edF4C2C4bB01237348D1D7B28ef168").unwrap()
31 );
32 }
33}