pangea_client/core/requests/
pyth.rs1use std::collections::HashSet;
2
3use serde::{Deserialize, Serialize};
4
5use ethers_core::types::H256;
6
7use crate::{core::types::ChainId, query::Bound, utils::serialize_comma_separated};
8
9#[allow(non_snake_case)]
10#[derive(Clone, Debug, Deserialize, Serialize)]
11#[serde(deny_unknown_fields)]
12pub struct GetPricesRequest {
13 #[serde(
14 default = "default_chains",
15 serialize_with = "serialize_comma_separated"
16 )]
17 pub chains: HashSet<ChainId>,
18
19 #[serde(default)]
21 pub from_block: Bound,
22 #[serde(default)]
24 pub to_block: Bound,
25
26 #[serde(default)]
27 #[serde(
28 alias = "price_id__in",
29 serialize_with = "serialize_comma_separated",
30 skip_serializing_if = "HashSet::is_empty"
31 )]
32 pub identifier__in: HashSet<H256>,
33}
34
35impl Default for GetPricesRequest {
36 fn default() -> Self {
37 Self {
38 chains: default_chains(),
39 from_block: Bound::default(),
40 to_block: Bound::default(),
41 identifier__in: HashSet::new(),
42 }
43 }
44}
45
46pub fn default_chains() -> HashSet<ChainId> {
47 HashSet::from([ChainId::MOVEMENT])
48}