use async_trait::async_trait;
use crate::core::types::{
AccountCapabilities, AccountInfo, AccountType, Balance, BalanceQuery, ExchangeResult, FeeInfo,
};
use super::ExchangeIdentity;
#[async_trait]
pub trait Account: ExchangeIdentity {
async fn get_balance(&self, query: BalanceQuery) -> ExchangeResult<Vec<Balance>>;
async fn get_account_info(&self, account_type: AccountType) -> ExchangeResult<AccountInfo>;
async fn get_fees(&self, symbol: Option<&str>) -> ExchangeResult<FeeInfo>;
fn account_capabilities(&self, account_type: AccountType) -> AccountCapabilities {
let _ = account_type;
AccountCapabilities::permissive()
}
}