binance-spot 0.2.3

Binance Spot API client implementation with REST support for spot trading.
Documentation
use binance_common::error::BinanceError;
use binance_common::spot::{
    endpoint::route::Account,
    model::{
        params::account::{InfoParams, MyTradesParams, UnfilledOrderCountParams},
        response::account::{InfoResponse, MyTradesResponse, UnfilledOrderCountResponse},
    },
};
use reqwest::Method;

use binance_core::{client::synchronous::Client, signer::signature::Signature};

pub struct AccountApi<'a, S>
where
    S: Signature<'a>,
{
    client: Client<'a, S>,
}

impl<'a, S> AccountApi<'a, S>
where
    S: Signature<'a>,
{
    pub fn new(client: Client<'a, S>) -> Self {
        AccountApi { client }
    }

    pub fn get_info(&self, params: &InfoParams) -> Result<InfoResponse, BinanceError> {
        self.client
            .send::<InfoResponse>(Account::Info, params, Method::GET)
    }

    pub fn get_my_trades(
        &self,
        params: &MyTradesParams,
    ) -> Result<Vec<MyTradesResponse>, BinanceError> {
        self.client
            .send::<Vec<MyTradesResponse>>(Account::MyTrades, params, Method::GET)
    }

    pub fn get_unfilled_order_count(
        &self,
        params: &UnfilledOrderCountParams,
    ) -> Result<Vec<UnfilledOrderCountResponse>, BinanceError> {
        self.client
            .send(Account::UnfilledOrderCount, params, Method::GET)
    }
}