nado-sdk 0.3.5

Official Rust SDK for the Nado Protocol API
Documentation
use crate::core::query::NadoQuery;
use crate::{build_and_call, fields_to_vars, nado_builder};
use eyre::Result;

use crate::engine;
use crate::engine::{Direction, MaxOrderSizeResponse};
use crate::utils::client_error::none_error;
use crate::utils::wrapped_option_utils::optional_bool_to_string;

nado_builder!(
    MaxOrderSizeBuilder,
    NadoQuery,
    subaccount: [u8; 32],
    product_id: u32,
    price_x18: i128,
    direction: Direction,
    spot_leverage: bool,
    reduce_only: bool,
    isolated: bool,
    borrow_margin: bool;

    build_and_call!(self, query, get_max_order_size => MaxOrderSizeResponse);

    pub fn build(&self) -> Result<engine::Query> {
        fields_to_vars!(self, product_id, subaccount, price_x18, (direction: clone));
        Ok(engine::Query::MaxOrderSize {
            sender: subaccount,
            product_id,
            price_x18,
            direction,
            spot_leverage: optional_bool_to_string(self.spot_leverage),
            reduce_only: optional_bool_to_string(self.reduce_only),
            isolated: optional_bool_to_string(self.isolated),
            borrow_margin: optional_bool_to_string(self.borrow_margin),
        })
    }
);