use crate::core::types::{
AccountCapabilities, AccountInfo, AccountType, Balance, BalanceQuery, ExchangeResult, FeeInfo,
};
use super::ExchangeIdentity;
#[cfg_attr(target_arch = "wasm32", async_trait::async_trait(?Send))]
#[cfg_attr(not(target_arch = "wasm32"), async_trait::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()
}
}