fireblocks_sdk/models/
quote.rs

1// Fireblocks API
2//
3// Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
4//
5// The version of the OpenAPI document: 1.8.0
6// Contact: developers@fireblocks.com
7// Generated by: https://openapi-generator.tech
8
9use {
10    crate::models,
11    serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Quote {
16    #[serde(rename = "via")]
17    pub via: models::AccessType,
18    #[serde(rename = "id")]
19    pub id: String,
20    /// Indicates this is an indicative quote
21    #[serde(rename = "type")]
22    pub r#type: Type,
23    #[serde(rename = "quoteAssetId")]
24    pub quote_asset_id: String,
25    #[serde(rename = "baseAssetId")]
26    pub base_asset_id: String,
27    #[serde(rename = "baseAmount")]
28    pub base_amount: String,
29    #[serde(rename = "quoteAmount")]
30    pub quote_amount: String,
31    #[serde(rename = "priceImpact", skip_serializing_if = "Option::is_none")]
32    pub price_impact: Option<f64>,
33    #[serde(rename = "quoteMinAmount", skip_serializing_if = "Option::is_none")]
34    pub quote_min_amount: Option<String>,
35    #[serde(rename = "executionSteps", skip_serializing_if = "Option::is_none")]
36    pub execution_steps: Option<Vec<models::ExecutionStepDetails>>,
37    #[serde(rename = "generalFees", skip_serializing_if = "Option::is_none")]
38    pub general_fees: Option<Vec<models::Fee>>,
39    /// Side of the order
40    #[serde(rename = "side")]
41    pub side: Side,
42    /// ISO 8601 timestamp of the expiration time of the quote.
43    #[serde(rename = "expiresAt")]
44    pub expires_at: String,
45}
46
47impl Quote {
48    pub fn new(
49        via: models::AccessType,
50        id: String,
51        r#type: Type,
52        quote_asset_id: String,
53        base_asset_id: String,
54        base_amount: String,
55        quote_amount: String,
56        side: Side,
57        expires_at: String,
58    ) -> Quote {
59        Quote {
60            via,
61            id,
62            r#type,
63            quote_asset_id,
64            base_asset_id,
65            base_amount,
66            quote_amount,
67            price_impact: None,
68            quote_min_amount: None,
69            execution_steps: None,
70            general_fees: None,
71            side,
72            expires_at,
73        }
74    }
75}
76/// Indicates this is an indicative quote
77#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
78pub enum Type {
79    #[serde(rename = "INDICATIVE")]
80    Indicative,
81}
82
83impl Default for Type {
84    fn default() -> Type {
85        Self::Indicative
86    }
87}
88/// Side of the order
89#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
90pub enum Side {
91    #[serde(rename = "BUY")]
92    Buy,
93    #[serde(rename = "SELL")]
94    Sell,
95}
96
97impl Default for Side {
98    fn default() -> Side {
99        Self::Buy
100    }
101}