fireblocks_sdk/models/
create_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 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    /// The amount to convert from
27    #[serde(rename = "baseAmount")]
28    pub base_amount: String,
29    /// Slippage tolerance in basis points (bps) for defi quotes - 1 is 0.01%
30    /// and 10000 is 100%
31    #[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    /// Side of the order
36    #[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/// Side of the order
62#[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}