bluefin_api 1.8.0

Bluefin API
Documentation
/*
 * Bluefin API
 *
 * Bluefin API
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Market {
    /// Symbol of the market.
    #[serde(rename = "symbol")]
    pub symbol: String,
    /// Market address.
    #[serde(rename = "marketAddress")]
    pub market_address: String,
    #[serde(rename = "status")]
    pub status: models::MarketStatus,
    /// Base asset symbol.
    #[serde(rename = "baseAssetSymbol")]
    pub base_asset_symbol: String,
    /// Base asset name.
    #[serde(rename = "baseAssetName")]
    pub base_asset_name: String,
    /// Precision of the base asset.
    #[serde(rename = "baseAssetDecimals")]
    pub base_asset_decimals: i64,
    /// Step size for the quantity (e9 format).
    #[serde(rename = "stepSizeE9")]
    pub step_size_e9: String,
    /// Price increment size (e9 format).
    #[serde(rename = "tickSizeE9")]
    pub tick_size_e9: String,
    /// Minimum order size (e9 format).
    #[serde(rename = "minOrderQuantityE9")]
    pub min_order_quantity_e9: String,
    /// Maximum limit order size (e9 format).
    #[serde(rename = "maxLimitOrderQuantityE9")]
    pub max_limit_order_quantity_e9: String,
    /// Maximum market order size (e9 format).
    #[serde(rename = "maxMarketOrderQuantityE9")]
    pub max_market_order_quantity_e9: String,
    /// Minimum order price (e9 format).
    #[serde(rename = "minOrderPriceE9")]
    pub min_order_price_e9: String,
    /// Maximum order price (e9 format).
    #[serde(rename = "maxOrderPriceE9")]
    pub max_order_price_e9: String,
    /// Maintenance margin ratio (MMR, e9 format).
    #[serde(rename = "maintenanceMarginRatioE9")]
    pub maintenance_margin_ratio_e9: String,
    /// Initial margin ratio (IMR), e9 format).
    #[serde(rename = "initialMarginRatioE9")]
    pub initial_margin_ratio_e9: String,
    /// Insurance pool ratio (e9 format).
    #[serde(rename = "insurancePoolRatioE9")]
    pub insurance_pool_ratio_e9: String,
    /// Default leverage (e9 format).
    #[serde(rename = "defaultLeverageE9")]
    pub default_leverage_e9: String,
    /// Maximum notional value at current leverage. Index 0 is max notional value for leverage set to 1x, index 1 is for leverage 2x, etc...
    #[serde(rename = "maxNotionalAtOpenE9")]
    pub max_notional_at_open_e9: Vec<String>,
    /// Minimum trade quantity allowed (e9 format).
    #[serde(rename = "minTradeQuantityE9")]
    pub min_trade_quantity_e9: String,
    /// Max trade quantity allowed (e9 format).
    #[serde(rename = "maxTradeQuantityE9")]
    pub max_trade_quantity_e9: String,
    /// Minimum trade price allowed (e9 format).
    #[serde(rename = "minTradePriceE9")]
    pub min_trade_price_e9: String,
    /// Maximum trade price allowed (e9 format).
    #[serde(rename = "maxTradePriceE9")]
    pub max_trade_price_e9: String,
    /// Maximum allowed funding rate (e9 format).
    #[serde(rename = "maxFundingRateE9")]
    pub max_funding_rate_e9: String,
    /// Default maker fee (e9 format).
    #[serde(rename = "defaultMakerFeeE9")]
    pub default_maker_fee_e9: String,
    /// Default taker fee (e9 format).
    #[serde(rename = "defaultTakerFeeE9")]
    pub default_taker_fee_e9: String,
    /// Insurance pool address.
    #[serde(rename = "insurancePoolAddress")]
    pub insurance_pool_address: String,
    /// Fee pool address.
    #[serde(rename = "feePoolAddress")]
    pub fee_pool_address: String,
    /// The time when trading will start/have started on the market.
    #[serde(rename = "tradingStartTimeAtMillis")]
    pub trading_start_time_at_millis: String,
    /// Maximum take bound for long positions (e9 format).
    #[serde(rename = "mtbLongE9")]
    pub mtb_long_e9: String,
    /// Maximum take bound for short positions (e9 format).
    #[serde(rename = "mtbShortE9")]
    pub mtb_short_e9: String,
    /// Delisting price (e9 format).
    #[serde(rename = "delistingPriceE9")]
    pub delisting_price_e9: String,
    /// Indicates whether the market only allows isolated margin.
    #[serde(rename = "isolatedOnly")]
    pub isolated_only: bool,
}

impl Market {
    pub fn new(symbol: String, market_address: String, status: models::MarketStatus, base_asset_symbol: String, base_asset_name: String, base_asset_decimals: i64, step_size_e9: String, tick_size_e9: String, min_order_quantity_e9: String, max_limit_order_quantity_e9: String, max_market_order_quantity_e9: String, min_order_price_e9: String, max_order_price_e9: String, maintenance_margin_ratio_e9: String, initial_margin_ratio_e9: String, insurance_pool_ratio_e9: String, default_leverage_e9: String, max_notional_at_open_e9: Vec<String>, min_trade_quantity_e9: String, max_trade_quantity_e9: String, min_trade_price_e9: String, max_trade_price_e9: String, max_funding_rate_e9: String, default_maker_fee_e9: String, default_taker_fee_e9: String, insurance_pool_address: String, fee_pool_address: String, trading_start_time_at_millis: String, mtb_long_e9: String, mtb_short_e9: String, delisting_price_e9: String, isolated_only: bool) -> Market {
        Market {
            symbol,
            market_address,
            status,
            base_asset_symbol,
            base_asset_name,
            base_asset_decimals,
            step_size_e9,
            tick_size_e9,
            min_order_quantity_e9,
            max_limit_order_quantity_e9,
            max_market_order_quantity_e9,
            min_order_price_e9,
            max_order_price_e9,
            maintenance_margin_ratio_e9,
            initial_margin_ratio_e9,
            insurance_pool_ratio_e9,
            default_leverage_e9,
            max_notional_at_open_e9,
            min_trade_quantity_e9,
            max_trade_quantity_e9,
            min_trade_price_e9,
            max_trade_price_e9,
            max_funding_rate_e9,
            default_maker_fee_e9,
            default_taker_fee_e9,
            insurance_pool_address,
            fee_pool_address,
            trading_start_time_at_millis,
            mtb_long_e9,
            mtb_short_e9,
            delisting_price_e9,
            isolated_only,
        }
    }
}