fireblocks_sdk/models/
create_quote.rs1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreateQuote {
16 #[serde(rename = "scope")]
17 pub scope: Vec<models::CreateQuoteScopeInner>,
18 #[serde(rename = "baseAssetId")]
19 pub base_asset_id: String,
20 #[serde(rename = "baseAssetRail", skip_serializing_if = "Option::is_none")]
21 pub base_asset_rail: Option<models::TransferRail>,
22 #[serde(rename = "quoteAssetId")]
23 pub quote_asset_id: String,
24 #[serde(rename = "quoteAssetRail", skip_serializing_if = "Option::is_none")]
25 pub quote_asset_rail: Option<models::TransferRail>,
26 #[serde(rename = "baseAmount")]
28 pub base_amount: String,
29 #[serde(rename = "slippageBps", skip_serializing_if = "Option::is_none")]
32 pub slippage_bps: Option<f64>,
33 #[serde(rename = "settlement", skip_serializing_if = "Option::is_none")]
34 pub settlement: Option<models::DvpSettlement>,
35 #[serde(rename = "side")]
37 pub side: Side,
38}
39
40impl CreateQuote {
41 pub fn new(
42 scope: Vec<models::CreateQuoteScopeInner>,
43 base_asset_id: String,
44 quote_asset_id: String,
45 base_amount: String,
46 side: Side,
47 ) -> CreateQuote {
48 CreateQuote {
49 scope,
50 base_asset_id,
51 base_asset_rail: None,
52 quote_asset_id,
53 quote_asset_rail: None,
54 base_amount,
55 slippage_bps: None,
56 settlement: None,
57 side,
58 }
59 }
60}
61#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
63pub enum Side {
64 #[serde(rename = "BUY")]
65 Buy,
66 #[serde(rename = "SELL")]
67 Sell,
68}
69
70impl Default for Side {
71 fn default() -> Side {
72 Self::Buy
73 }
74}