/// <summary> /// This method returns the balance, available balance, daily withdrawal limit and maximum withdraw for every currency in your account. /// </summary> /// <param name="args">Add additional attributes for each exchange</param> /// <returns></returns> public override async Task <Balances> FetchBalances(Dictionary <string, object> args = null) { var _result = new Balances(); var _markets = await publicApi.LoadMarkets(); if (_markets.success == true) { privateClient.ExchangeInfo.ApiCallWait(TradeType.Private); var _params = privateClient.MergeParamsAndArgs(args); var _json_value = await privateClient.CallApiPost1Async($"money/info", _params); #if DEBUG _result.rawJson = _json_value.Content; #endif var _json_result = privateClient.GetResponseMessage(_json_value.Response); if (_json_result.success == true) { var _json_data = privateClient.DeserializeObject <JObject>(_json_value.Content); { var _balances = _json_data["data"]["Wallets"]; foreach (var _currency_id in _markets.CurrencyNames) { var _token = _balances.SelectToken(_currency_id.Key); if (_token == null) { continue; } var _balance = new ABalanceItem { free = _token["Available_Balance"]["value"].Value <decimal>(), total = _token["Balance"]["value"].Value <decimal>() }; _balance.used = _balance.total - _balance.free; _balance.currency = _currency_id.Value; _result.result.Add(_balance); } } } _result.SetResult(_json_result); } else { _result.SetResult(_markets); } return(_result); }
/// <summary> /// This method returns the balance, available balance, daily withdrawal limit and maximum withdraw for every currency in your account. /// </summary> /// <param name="base_name">The type of trading base-currency of which information you want to query for.</param> /// <param name="quote_name">The type of trading quote-currency of which information you want to query for.</param> /// <param name="args">Add additional attributes for each exchange</param> /// <returns></returns> public override async Task <Balance> FetchBalance(string base_name, string quote_name, Dictionary <string, object> args = null) { var _result = new Balance(); var _currency_id = await publicApi.LoadCurrencyId(base_name); if (_currency_id.success == true) { privateClient.ExchangeInfo.ApiCallWait(TradeType.Private); var _params = privateClient.MergeParamsAndArgs(args); var _json_value = await privateClient.CallApiPost1Async($"money/info", _params); #if DEBUG _result.rawJson = _json_value.Content; #endif var _json_result = privateClient.GetResponseMessage(_json_value.Response); if (_json_result.success == true) { var _json_data = privateClient.DeserializeObject <JObject>(_json_value.Content); { var _balances = privateClient.DeserializeObject <Dictionary <string, JObject> >(_json_data["data"]["Wallets"].ToString()); foreach (var _b in _balances) { if (_b.Key.ToLower() != _currency_id.result.ToLower()) { continue; } var _balance = new ABalanceItem { free = _b.Value["Available_Balance"]["value"].Value <decimal>(), total = _b.Value["Balance"]["value"].Value <decimal>() }; _balance.currency = base_name; _balance.used = _balance.total - _balance.free; _result.result = _balance; break; } } } _result.SetResult(_json_result); } else { _result.SetResult(_currency_id); } return(_result); }