xpx_chain_sdk/api/
transaction_query_params.rs1use crate::api::OrderV2;
8use crate::transaction::{Height, TransactionType};
9
10#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
11pub struct TransactionSortingField(&'static str);
12
13#[derive(Clone, Debug, Default, Eq, PartialEq, Builder, Serialize)]
14#[builder(setter(into, strip_option), default, create_empty = "empty")]
15#[serde(rename_all = "camelCase")]
16pub struct TransactionQueryParams {
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub(crate) page_size: Option<u16>,
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub(crate) page_number: Option<u16>,
21 pub(crate) r#type: Vec<TransactionType>,
22 pub(crate) embedded: bool,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub(crate) order: Option<OrderV2>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub(crate) sort_field: Option<TransactionSortingField>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub(crate) to_height: Option<Height>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub(crate) from_height: Option<Height>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub(crate) height: Option<Height>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub(crate) signer_public_key: Option<String>,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub(crate) recipient_address: Option<String>,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 address: Option<String>,
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub(crate) public_key: Option<String>,
41 #[builder(default = "true")]
42 pub(crate) first_level: bool, }
44
45impl TransactionQueryParams {
46 pub fn create() -> TransactionQueryParamsBuilder {
47 TransactionQueryParamsBuilder::default()
48 }
49
50 pub fn to_query_string(&self) -> String {
53 qs::to_string(self).unwrap()
54 }
55}