Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }