Esempio n. 1
0
        /// <summary>cancel
        /// <para>Cancel a buy or sell order.</para>
        /// <para>Required : uuid - uuid of buy or sell order</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static CCEXBuySellMessage setCancel(string uuid)
        {
            try
            {
                string requestUrl = "https://c-cex.com/t/api.html?a=cancel&apikey=" + Api.key +
                                    "&uuid=" + uuid +
                                    "&nonce=" + ExchangeManager.GetNonce();

                var    jsonObject = JObject.Parse(GetApiRequest(requestUrl));
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    return(jsonObject["result"].ToObject <CCEXBuySellMessage>());
                }
                else
                {
                    LogManager.AddLogMessage(Name, "setSell", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "setSell", ex.Message, LogManager.LogMessageType.EXCEPTION);
                return(null);
            }
        }
Esempio n. 2
0
        /// <summary>selllimit
        /// <para>Place a sell limit order in a specific market.</para>
        /// <para>Required : market - Market name (ex: SYM-MKT)</para>
        /// <para>Required : quantity - Amount to purchase</para>
        /// <para>Required : rate - Rate at which to place the order</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static CCEXBuySellMessage setSell(string symbol, string market, Decimal quantity, Decimal rate)
        {
            try
            {
                string requestUrl = "https://c-cex.com/t/api.html?a=selllimit&apikey=" + Api.key +
                                    "&market=" + symbol + "-" + market +
                                    "&quantity=" + quantity +
                                    "&rate=" + rate +
                                    "&nonce=" + ExchangeManager.GetNonce();

                var    jsonObject = JObject.Parse(GetApiRequest(requestUrl));
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    return(jsonObject["result"].ToObject <CCEXBuySellMessage>());
                }
                else
                {
                    LogManager.AddLogMessage(Name, "setSell", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "setSell", ex.Message, LogManager.LogMessageType.EXCEPTION);
                return(null);
            }
        }
Esempio n. 3
0
        /// <summary>mytrades
        /// <para>Retrieve detailed trading history.</para>
        /// <para>Required : marketid - name (ex: SYM-MKT)</para>
        /// <para>Optional : limit</para>
        /// </summary>
        public static List <CCEXTrade> getTradeList(string symbol, string market)
        {
            List <CCEXTrade> list = new List <CCEXTrade>();

            try
            {
                string requestUrl = Api_privateUrl + "mytrades" +
                                    "&apikey=" + Api.key +
                                    "&marketid=" + symbol.ToLower() + "-" + market.ToLower() +
                                    "&nonce=" + ExchangeManager.GetNonce();

                var    jsonObject = JObject.Parse(GetApiRequest(requestUrl));
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    list = jsonObject["result"].ToObject <List <CCEXTrade> >();
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getTradeList", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getTradeList", ex.Message, LogManager.LogMessageType.EXCEPTION);
            }
            return(list);
        }
Esempio n. 4
0
        /// <summary>getorder
        /// <para>Retrieve a single order by uuid.</para>
        /// <para>Required : uuid - uuid of the buy or sell order</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static CCEXOrder getOrder(string uuid)
        {
            try
            {
                string requestUrl = Api_privateUrl + "getorder" +
                                    "&apikey=" + Api.key +
                                    "&uuid=" + uuid +
                                    "&nonce=" + ExchangeManager.GetNonce();

                var    jsonObject = JObject.Parse(GetApiRequest(requestUrl));
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    return(jsonObject["result"].ToObject <CCEXOrder>());
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getOrder", "successs IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getOrder", ex.Message, LogManager.LogMessageType.EXCEPTION);
                return(null);
            }
        }
Esempio n. 5
0
        /// <summary>getopenorders
        /// <para>Get all orders that you currently have opened. A specific market can be requested.</para>
        /// <para>Required : none</para>
        /// <para>Optional : market - Market name (ex: MKT-SYM)</para>
        /// </summary>
        public static List <CCEXOrder> getOpenOrdersList(string market = "", string symbol = "")
        {
            List <CCEXOrder> list = new List <CCEXOrder>();

            try
            {
                string requestUrl = Api_privateUrl + "getopenorders" +
                                    "&apikey=" + Api.key +
                                    "&nonce=" + ExchangeManager.GetNonce();

                if (market.Length > 0 && symbol.Length > 0)
                {
                    requestUrl += "&market=" + market + "-" + symbol;
                }
                string result = GetApiRequest(requestUrl);
                //LogManager.AddLogMessage(Name, "getOpenOrdersList", result, LogManager.LogMessageType.DEBUG);
                var    jsonObject = JObject.Parse(result);
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    list = jsonObject["result"].ToObject <List <CCEXOrder> >();
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getOpenOrdersList", "successs IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getOpenOrdersList", ex.Message, LogManager.LogMessageType.EXCEPTION);
            }
            return(list);
        }
Esempio n. 6
0
        /// <summary>getmarkets
        /// <para>Get the open and available trading markets along with other meta data.</para>
        /// <para>Required : none</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static List <CCEXMarket> getMarketList()
        {
            List <CCEXMarket> list = new List <CCEXMarket>();

            try
            {
                var request  = new RestRequest(Api_publicUrl + "getmarkets", Method.GET);
                var response = client.Execute(request);
                //LogManager.AddLogMessage(Name, "getMarketSummariesList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG);
                var    jsonObject = JObject.Parse(response.Content);
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    list = jsonObject["result"].ToObject <List <CCEXMarket> >();
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getMarketList", "success IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getMarketList", ex.Message, LogManager.LogMessageType.EXCEPTION);
            }
            return(list);
        }
Esempio n. 7
0
        public object aspect_symbolIcon(object rowObject)
        {
            try
            {
                ForkData fork = (ForkData)rowObject;
                return(ContentManager.ResizeImage(ContentManager.GetForkSymbolIcon(fork.Symbol, fork.IconUrl), listView_Forks.RowHeightEffective, listView_Forks.RowHeightEffective));

                /*
                 * if (balance != null)
                 * {
                 *  //return DataManager.ResizeImage(ExchangeManager.GetExchangeImage(e.exchange), 24, 24);
                 *  return ContentManager.ResizeImage(ContentManager.GetSymbolIcon(balance.Symbol), listView.RowHeightEffective, listView.RowHeightEffective);
                 * }
                 * else
                 * {
                 *  return ContentManager.ResizeImage(Properties.Resources.ConnectionStatus_DISABLED, listView.RowHeightEffective, listView.RowHeightEffective);
                 * }
                 */
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "aspect_symbolIcon", ex.Message, LogManager.LogMessageType.EXCEPTION);
                return(ContentManager.ResizeImage(Properties.Resources.ConnectionStatus_ERROR, listView_Forks.RowHeightEffective, listView_Forks.RowHeightEffective));
            }
        }
Esempio n. 8
0
        /// <summary>Address Balance Endpoint
        /// <para>The Address Balance Endpoint is the simplest—and fastest—method to get a subset of information on a public address.</para>
        /// </summary>
        public static decimal getBalance(string symbol, string address)
        {
            try
            {
                var request  = new RestRequest("/" + symbol.ToLower() + "/main/addrs/" + address + "/balance", Method.GET);
                var response = client.Execute(request);
                //LogManager.AddLogMessage(Name, "getTicker", "response.Content=" + response.Content, LogManager.LogMessageType.OTHER);
                var jsonObject = JObject.Parse(response.Content);
                AddressBalanceEndpoint balance = jsonObject.ToObject <AddressBalanceEndpoint>();
                Decimal value = 0;

                if (symbol != "ETH")
                {
                    value = balance.balance / 100000000;
                }
                else
                {
                    value = balance.balance / 1000000000000000000;
                }
                //LogManager.AddLogMessage(Name, "getTicker", "balance=" + balance.balance + " | " + symbol + " | " + value + " | " + address, LogManager.LogMessageType.OTHER);
                return(value);
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getBalance", ex.Message, LogManager.LogMessageType.EXCEPTION);
                return(0);
            }
        }
Esempio n. 9
0
        /// <summary>Price
        /// <para>Get the latest price for a list of one or more currencies. Really fast, 20-60 ms. Cached each 10 seconds.</para>
        /// <para>Documentation at https://min-api.cryptocompare.com/</para>
        /// <para>Required : fsym - string From Symbol</para>
        /// <para>Required : tsyms - string[] To Symbols, include multiple symbols</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static List <CryptoComparePrice> getPriceList(string fsym, string[] tsyms)
        {
            List <CryptoComparePrice> list = new List <CryptoComparePrice>();

            try
            {
                string markets  = string.Join(",", tsyms);
                var    request  = new RestRequest("/data/price?fsym=" + fsym + "&tsyms=" + markets, Method.GET);
                var    response = client.Execute(request);
                //LogManager.AddLogMessage(thisClassName, "getCoinList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG);
                var jsonObject = JObject.Parse(response.Content);

                foreach (var item in jsonObject)
                {
                    //LogManager.AddLogMessage(thisClassName, "getPriceList", item.Key + " | " + item.Value, LogManager.LogMessageType.DEBUG);
                    CryptoComparePrice price = new CryptoComparePrice()
                    {
                        symbol = fsym,
                        market = item.Key,
                        value  = Convert.ToDecimal(item.Value)
                    };
                    list.Add(price);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getCoinList", ex.Message, LogManager.LogMessageType.EXCEPTION);
            }
            return(list);
        }
Esempio n. 10
0
        /// <summary>CoinList
        /// <para>Get general info for all the coins available on the website.</para>
        /// <para>Required : none</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static List <CryptoCompareCoin> getCoinList()
        {
            List <CryptoCompareCoin> list = new List <CryptoCompareCoin>();

            try
            {
                RestClient tclient = new RestClient("https://www.cryptocompare.com");
                var        request = new RestRequest("/api/data/coinlist/", Method.GET);
                //var request = new RestRequest("/data/coinlist/", Method.GET);
                var response = tclient.Execute(request);
                //LogManager.AddLogMessage(thisClassName, "getCoinList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG);
                var jsonObject             = JObject.Parse(response.Content);
                CryptoCompareResult result = jsonObject.ToObject <CryptoCompareResult>();
                if (result.Response.ToLower() == "success")
                {
                    //LogManager.AddLogMessage(thisClassName, "getCoinList", "success : " + jsonObject["Data"].ToString(), LogManager.LogMessageType.DEBUG);
                    var data = JObject.Parse(jsonObject["Data"].ToString());

                    foreach (var item in data)
                    {
                        CryptoCompareCoin coin = data[item.Key].ToObject <CryptoCompareCoin>();
                        list.Add(coin);
                    }
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getCoinList", "success IS FALSE : message=" + result.Message + " | Type=" + result.Type, LogManager.LogMessageType.DEBUG);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getCoinList", ex.Message, LogManager.LogMessageType.EXCEPTION);
            }
            return(list);
        }
Esempio n. 11
0
        /*
         * private string getApiKey(string symbol)
         * {
         *
         * }
         */
        public static decimal getBalance(string key)
        {
            try
            {
                var request  = new RestRequest("/get_balance/?api_key=" + key, Method.GET);
                var response = client.Execute(request);

                //LogManager.AddLogMessage(Name, "getTicker", "response.Content=" + response.Content);
                var    jsonObject = JObject.Parse(response.Content);
                string status     = jsonObject["status"].ToString().ToLower();

                if (status == "success")
                {
                    //BittrexTicker ticker = jsonObject["result"].ToObject<BittrexTicker>();
                    //return ticker;
                    BlockIOMessage message = jsonObject.ToObject <BlockIOMessage>();
                    return(message.data.available_balance);
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getBalance", "ERROR LOADING : SUCCESS false on key : " + key, LogManager.LogMessageType.OTHER);
                    //return null;
                    return(0);
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getBalance", ex.Message, LogManager.LogMessageType.EXCEPTION);
                //return null;
                return(0);
            }
        }
Esempio n. 12
0
        /// <summary>Address Balance Endpoint
        /// <para>The Address Balance Endpoint is the simplest—and fastest—method to get a subset of information on a public address.</para>
        /// </summary>
        public static decimal getBalance(string symbol, string address)
        {
            try
            {
                if (symbol.ToLower() == "bch")
                {
                    symbol = "bcc";
                }

                var request  = new RestRequest("/" + symbol.ToLower() + "/address/" + address + "?api_key=5abc4df2c200059b0ad8ec828269c5670ee1e471", Method.GET);
                var response = client.Execute(request);
                //LogManager.AddLogMessage(Name, "getTicker", "response.Content=" + response.Content, LogManager.LogMessageType.OTHER);
                var jsonObject = JObject.Parse(response.Content);

                AddressBalanceEndpoint balance = jsonObject.ToObject <AddressBalanceEndpoint>();
                Decimal value = balance.balance / 100000000;
                //LogManager.AddLogMessage(Name, "getBalance", "balance=" + balance.balance + " | " + value + " | " + symbol, LogManager.LogMessageType.OTHER);
                return(value);
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getBalance", ex.Message, LogManager.LogMessageType.EXCEPTION);
                return(0);
            }
        }
Esempio n. 13
0
        public void UpdateUI(bool resize = false)
        {
            if (InvokeRequired)
            {
                UpdateUICallback d = new UpdateUICallback(UpdateUI);
                Invoke(d, new object[] { resize });
            }
            else
            {
                try
                {
                    //listView.SetObjects(PreferenceManager.WalletPreferences.Forks);
                    listView.SetObjects(PreferenceManager.WalletPreferences.WalletForks);
                    //toolStripLabel_totals.Text = listView.OLVGroups.Count + " Addresses | " + PreferenceManager.WalletPreferences.Forks.Sum(item => item.TotalInBTC).ToString("N8") + " | " + PreferenceManager.WalletPreferences.Forks.Sum(item => item.TotalInUSD).ToString("C");
                    toolStripLabel_totals.Text = PreferenceManager.WalletPreferences.WalletForks.Count + " Forks : " + PreferenceManager.WalletPreferences.WalletForks.Sum(item => item.TotalInBTC).ToString("N8") + " (" + PreferenceManager.WalletPreferences.WalletForks.Sum(item => item.TotalInUSD).ToString("C") + ")";

                    if (resize)
                    {
                        ResizeUI();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.AddLogMessage(Name, "UpdateUI", ex.Message, LogManager.LogMessageType.EXCEPTION);
                }
            }
        }
Esempio n. 14
0
        /// <summary>/products
        /// <para>Get a list of available currency pairs for trading.</para>
        /// <para>The base_min_size and base_max_size fields define the min and max order size. The quote_increment field specifies the min order price as well as the price increment.</para>
        /// <para>The order price must be a multiple of this increment (i.e. if the increment is 0.01, order prices of 0.001 or 0.021 would be rejected).</para>
        /// <para>Product ID will not change once assigned to a product but the min/max/quote sizes can be updated in the future.</para>
        /// <para>Required : none</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static List <GDAXProduct> getProductList()
        {
            List <GDAXProduct> list           = new List <GDAXProduct>();
            string             responseString = String.Empty;

            try
            {
                var request  = new RestRequest("/products", Method.GET);
                var response = client.Execute(request);
                responseString = response.Content;
                //LogManager.AddLogMessage(Name, "getProductList", "Content:" + response.Content, LogManager.LogMessageType.DEBUG);
                JArray jsonVal = JArray.Parse(responseString) as JArray;
                list = jsonVal.ToObject <GDAXProduct[]>().ToList();
                UpdateStatus(true, "Updated Products");
            }
            catch (Exception ex)
            {
                //LogManager.AddLogMessage(Name, "getProductList", "EXCEPTION!!! : " + ex.Message, LogManager.LogMessageType.EXCEPTION);
                var jsonObject         = JObject.Parse(responseString);
                GDAXErrorMessage error = jsonObject.ToObject <GDAXErrorMessage>();
                LogManager.AddLogMessage(Name, "getProductList", ex.Message + " | " + error.message, LogManager.LogMessageType.EXCEPTION);
                UpdateStatus(false, error.message);
            }
            return(list);
        }
Esempio n. 15
0
        public static async Task <TradeSatoshiBalance> GetBalance(string Currency)
        {
            TradeSatoshiBalance balance = new TradeSatoshiBalance();

            using (HttpClient client = new HttpClient())
            {
                try
                {
                    string uri = "https://tradesatoshi.com/api/private/getbalance";
                    //string nonce = Guid.NewGuid().ToString();
                    string  nonce       = ExchangeManager.GetNonce();
                    JObject post_params = new JObject();
                    post_params.Add("Currency", Currency);
                    string signature = GetSignature(uri, nonce, JsonConvert.SerializeObject(post_params)).Result;
                    //string authenticationString = "Basic " + GlobalSettings.API_Key + ":" + signature + ":" + nonce;
                    string authenticationString = Api.key + ":" + signature + ":" + nonce;
                    //string authenticationString = "Basic " + Api.key + ":" + signature + ":" + nonce;
                    client.DefaultRequestHeaders.Add("Authentication", authenticationString);
                    string result = await client.PostAsync(uri, new StringContent(JsonConvert.SerializeObject(post_params), Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync();

                    LogManager.AddLogMessage(Name, "GetBalance", "result=" + result, LogManager.LogMessageType.CONSOLE);
                    //return JsonConvert.DeserializeObject<GetBalanceReturn>(await client.PostAsync(uri, new StringContent(JsonConvert.SerializeObject(post_params), Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync());
                }
                catch (Exception ex)
                {
                    LogManager.AddLogMessage(Name, "GetBalance", ex.Message, LogManager.LogMessageType.EXCEPTION);
                    //throw e;
                };
            }
            return(balance);
        }
Esempio n. 16
0
        // GetTicker
        // GetMarketHistory
        // GetMarketSummary
        public static List <TradeSatoshiMarketSummary> getMarketSummariesList()
        {
            List <TradeSatoshiMarketSummary> list = new List <TradeSatoshiMarketSummary>();
            string responseString = string.Empty;

            try
            {
                var request  = new RestRequest("/public/getmarketsummaries", Method.GET);
                var response = client.Execute(request);
                //LogManager.AddLogMessage(Name, "getMarketSummaries", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG);
                responseString = response.Content;
                var    jsonObject = JObject.Parse(responseString);
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    list = jsonObject["result"].ToObject <List <TradeSatoshiMarketSummary> >();
                    UpdateStatus(true, "Updated Tickers");
                }
                else
                {
                    UpdateStatus(true, jsonObject["message"].ToString());
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getMarketSummariesList", ex.Message + " | " + responseString, LogManager.LogMessageType.EXCEPTION);
                UpdateStatus(false, responseString);
            }
            return(list);
        }
Esempio n. 17
0
        /// <summary>pricemultifull
        /// <para>Get all the current trading info (price, vol, open, high, low etc) of any list of cryptocurrencies in any other currency that you need.</para>
        /// <para>If the crypto does not trade directly into the toSymbol requested, BTC will be used for conversion.</para>
        /// <para>This API also returns Display values for all the fields.If the opposite pair trades we invert it (eg.: BTC-XMR).</para>
        /// <para>Required : fsyms - string[] From Symbol, include multiple symbols</para>
        /// <para>Required : tsyms - string[] To Symbols, include multiple symbols</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static List <CryptoComparePriceFull> getPriceMultiFullList(string[] fsyms, string[] tsyms)
        {
            List <CryptoComparePriceFull> list = new List <CryptoComparePriceFull>();

            try
            {
                string symbols  = string.Join(",", fsyms);
                string markets  = string.Join(",", tsyms);
                var    request  = new RestRequest("/data/pricemultifull?fsyms=" + symbols + "&tsyms=" + markets, Method.GET);
                var    response = client.Execute(request);
                //LogManager.AddLogMessage(thisClassName, "getPriceMultiFullList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG);
                var jsonObject = JObject.Parse(response.Content);
                var dataObject = JObject.Parse(jsonObject["RAW"].ToString());
                foreach (var item in dataObject)
                {
                    //LogManager.AddLogMessage(thisClassName, "getPriceMultiFullList", item.Key + " | " + item.Value, LogManager.LogMessageType.DEBUG);
                    var priceObject = JObject.Parse(jsonObject["RAW"][item.Key].ToString());
                    foreach (var priceData in priceObject)
                    {
                        //LogManager.AddLogMessage(thisClassName, "getPriceMultiFullList", priceData.Key + " | " + priceData.Value, LogManager.LogMessageType.DEBUG);
                        CryptoComparePriceFull price = priceObject[priceData.Key].ToObject <CryptoComparePriceFull>();
                        //LogManager.AddLogMessage(thisClassName, "getPriceMultiFullList", price.FROMSYMBOL + " | " + price.TOSYMBOL, LogManager.LogMessageType.DEBUG);
                        list.Add(price);
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getPriceMultiFullList", ex.Message, LogManager.LogMessageType.EXCEPTION);
            }
            return(list);
        }
Esempio n. 18
0
        public void UpdateUI(bool resize = false)
        {
            if (InvokeRequired)
            {
                UpdateUICallback d = new UpdateUICallback(UpdateUI);
                Invoke(d, new object[] { resize });
            }
            else
            {
                try
                {
                    if (sort == "Symbol")
                    {
                        listView.SetObjects(symbolList.OrderBy(item => item.symbol));
                    }
                    else
                    {
                        listView.SetObjects(symbolList.OrderBy(item => item.value));
                    }

                    if (resize)
                    {
                        ResizeUI();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.AddLogMessage(Name, "UpdateUI", ex.Message, LogManager.LogMessageType.EXCEPTION);
                }
            }
        }
Esempio n. 19
0
        /// <summary>/ticker/
        /// <para>Return the list of tickers</para>
        /// <para>Required : none</para>
        /// <para>Optional : start - return results from rank [start] and above (default=1)</para>
        /// <para>Optional : limit - return a maximum of [limit] results (default is 100, use 0 to return all results)</para>
        /// <para>Optional : [NOT IN USE] convert - return price, 24h volume, and market cap in terms of another currency. Valid values are: 'AUD', 'BRL', 'CAD', 'CHF', 'CLP', 'CNY', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HUF', 'IDR', 'ILS', 'INR', 'JPY', 'KRW', 'MXN', 'MYR', 'NOK', 'NZD', 'PHP', 'PKR', 'PLN', 'RUB', 'SEK', 'SGD', 'THB', 'TRY', 'TWD', 'ZAR'</para>
        /// </summary>

        public static List <CoinMarketCapTicker> getTickerList(int start = 0, int limit = 100)
        {
            List <CoinMarketCapTicker> list = new List <CoinMarketCapTicker>();

            try
            {
                var request  = new RestRequest("/v1/ticker/?start=" + start + "&limit=" + limit, Method.GET);
                var response = client.Execute(request);
                //LogManager.AddLogMessage(thisClassName, "getTickerList", "response.Content=" + response.Content, LogManager.LogMessageType.DEBUG);

                var settings = new JsonSerializerSettings
                {
                    NullValueHandling     = NullValueHandling.Ignore,
                    MissingMemberHandling = MissingMemberHandling.Ignore
                };

                var jsonArray = JsonConvert.DeserializeObject <List <CoinMarketCapTicker> >(response.Content, settings);
                //var jsonArray = JsonConvert.DeserializeObject<List<CoinMarketCapTicker>>(response.Content);
                list = jsonArray.ToList();
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getTickerList", ex.Message, LogManager.LogMessageType.EXCEPTION);
            }
            return(list);
        }
Esempio n. 20
0
        /// <summary>
        /// handles the web server state
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void StartWebServerButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (!WebServerManager.WebServerStarted)
                {
                    int.TryParse(OptionsManager.CurrentOptions.Port, out var port);
                    if (port == 0)
                    {
                        port = 8080;
                        LogManager.AddLogMessage("invalid port, fallback to port 8080");
                    }
                    WebServerManager.StartWebServer(port);
                    //AddonCompiler.Insatnce.WebServer = new WebServerClient();
                    //AddonCompiler.Insatnce.WebServer.Start();
                }
                else
                {
                    AddonCompiler.Insatnce.WebServer.Stop();
                }
            }
            catch (Exception ex)
            {
                LogManager.AddErrorLog(ex);
                WebServerManager.WebServerStarted = false;
            }

            WebServerButton.Content = WebServerManager.WebServerStarted ? "Stop Web Server" : "Start Web Server";
            ApplicationWindows.TestWidnow.Update();
        }
Esempio n. 21
0
        public void ResizeUI()
        {
            if (InvokeRequired)
            {
                ResizeUICallback d = new ResizeUICallback(ResizeUI);
                Invoke(d, new object[] { });
            }
            else
            {
                try
                {
                    if (balanceListControl.PreferredWidth > 0)
                    {
                        Visible = false;
                        tableLayoutPanel.ColumnStyles[0].SizeType = SizeType.Absolute;
                        tableLayoutPanel.ColumnStyles[0].Width    = balanceListControl.PreferredWidth;

                        tableLayoutPanel.ColumnStyles[1].SizeType = SizeType.Absolute;
                        tableLayoutPanel.ColumnStyles[1].Width    = tickerListControl.PreferredWidth;
                        Visible = true;
                    }
                }
                catch (Exception ex)
                {
                    LogManager.AddLogMessage(Name, "ResizeUI", ex.Message, LogManager.LogMessageType.EXCEPTION);
                }
            }
        }
Esempio n. 22
0
        private void listView_Wallets_CellEditFinishing(object sender, CellEditEventArgs e)
        {
            WalletBalance balance = listView_Wallets.SelectedObject as WalletBalance;

            if (balance != null)
            {
                WalletBalance listItem = PreferenceManager.WalletPreferences.WalletForks.FirstOrDefault(item => item.Symbol == balance.Symbol && item.Name == balance.Name);
                if (listItem != null)
                {
                    try
                    {
                        Decimal newValue = Convert.ToDecimal(e.Control.Text);
                        //LogManager.AddLogMessage(Name, "listView_Wallets_CellEditFinishing", balance.Symbol + " | " + e.Control.Text + " | " + e.Value, LogManager.LogMessageType.DEBUG);
                        listItem.Balance = newValue;
                        PreferenceManager.UpdatePreferenceFile(PreferenceManager.PreferenceType.Wallet);
                        LoadWallets();
                    }
                    catch (Exception ex)
                    {
                        LogManager.AddLogMessage(Name, "listView_Wallets_CellEditFinishing", ex.Message, LogManager.LogMessageType.EXCEPTION);
                    }
                }
            }
            //LogManager.AddLogMessage(Name, "listView_Wallets_CellEditFinishing", sender + " | " + e.Control.Text + " | " + e.Value, LogManager.LogMessageType.DEBUG);
        }
Esempio n. 23
0
        /// <summary>getbalances
        /// <para>Retrieve all balances from your account.</para>
        /// <para>Required : none</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static List <CCEXBalance> getBalanceList()
        {
            List <CCEXBalance> list           = new List <CCEXBalance>();
            string             responseString = string.Empty;

            try
            {
                string requestUrl = Api_privateUrl + "getbalances" +
                                    "&apikey=" + Api.key +
                                    "&nonce=" + ExchangeManager.GetNonce();
                responseString = GetApiRequest(requestUrl);
                var    jsonObject = JObject.Parse(responseString);
                string success    = jsonObject["success"].ToString().ToLower();

                if (success == "true")
                {
                    list = jsonObject["result"].ToObject <List <CCEXBalance> >();
                    UpdateStatus(true, "Updated Balances");
                }
                else
                {
                    LogManager.AddLogMessage(Name, "getBalanceList", "sucess IS FALSE : message=" + jsonObject["message"], LogManager.LogMessageType.DEBUG);
                    UpdateStatus(true, jsonObject["message"].ToString());
                }
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "getBalances", ex.Message, LogManager.LogMessageType.EXCEPTION);
                UpdateStatus(false, responseString);
            }
            return(list);
        }
Esempio n. 24
0
        public void UpdateUI(bool resize = false)
        {
            if (InvokeRequired)
            {
                UpdateUICallback d = new UpdateUICallback(UpdateUI);
                Invoke(d, new object[] { resize });
            }
            else
            {
                try
                {
                    listView.SetObjects(FormPreferences);
                    groupBox.Text = listView.Items.Count + " Forms";

                    if (resize)
                    {
                        ResizeUI();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.AddLogMessage(Name, "UpdateUI", ex.Message, LogManager.LogMessageType.EXCEPTION);
                }
            }
        }
Esempio n. 25
0
        /// <summary>/products/<product-id>/ticker
        /// <para>Snapshot information about the last trade (tick), best bid/ask and 24h volume.</para>
        /// <para>Required : product-id</para>
        /// <para>Optional : none</para>
        /// </summary>
        public static GDAXProductTicker GetProductTicker(string productID)
        {
            string responseString = string.Empty;

            try
            {
                var request  = new RestRequest("/products/" + productID + "/ticker", Method.GET);
                var response = client.Execute(request);
                //LogManager.AddLogMessage("GDAXControl", "GetProductTicker", "TICKER:" + tickresponse.Content);
                responseString = response.Content;
                var jsonObject           = JObject.Parse(responseString);
                GDAXProductTicker ticker = jsonObject.ToObject <GDAXProductTicker>();
                ticker.id = productID;
                string[] split = ticker.id.Split('-');
                ticker.symbol = split[0];
                ticker.market = split[1];
                //LogManager.AddLogMessage(Name, "GetProductTicker", ticker.id + " | " + ticker.price);
                UpdateStatus(true, "Updated Tickers");
                return(ticker);

                /*
                 * GDAXProductTicker ticker = new JavaScriptSerializer().Deserialize<GDAXProductTicker>(response.Content);
                 * ticker.id = productID;
                 * return ticker;
                 */
                // TO TEST
                //return null;
            }
            catch (Exception ex)
            {
                LogManager.AddLogMessage(Name, "GetProductTicker", "EXCEPTION!!! : " + ex.Message);
                UpdateStatus(false, responseString);
                return(null);
            }
        }
Esempio n. 26
0
        private void reset_Menu_Click(object sender, EventArgs e)
        {
            FormPreference preference = listView.SelectedObject as FormPreference;

            LogManager.AddLogMessage(Name, "reset_Menu_Click", preference.Name, LogManager.LogMessageType.DEBUG);
            FormManager.ResetForm(preference);
            //PreferenceManager.ExportPreferences(item.type);
        }
Esempio n. 27
0
 // INITIALIZE
 public static void InitializeExchange()
 {
     LogManager.AddLogMessage(Name, "InitializeExchange", "Initialized", LogManager.LogMessageType.EXCHANGE);
     updateExchangeBalanceList(true);
     Thread.Sleep(1000);
     updateExchangeOrderList(true);
     //updateExchangeTickerList();
 }
Esempio n. 28
0
 private void listView_GroupTaskClicked(object sender, GroupTaskClickedEventArgs e)
 {
     LogManager.AddLogMessage(Name, "listView_GroupTaskClicked", e.Group.GroupId + " | " + e.Group.Header + " | " + e.Group.Id + " | " + e.Group.Key + " | " + e.Group.TopDescription, LogManager.LogMessageType.DEBUG);
     if (manager != null)
     {
         //if (view == BalanceViewType.exchange)
         manager.SetChart(view, e.Group.Key.ToString());
     }
 }
Esempio n. 29
0
        private void toolStripDropDownButton_view_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            LogManager.AddLogMessage(Name, "toolStripDropDownButton_view_DropDownItemClicked", sender.ToString() + " | " + e.ClickedItem.Tag, LogManager.LogMessageType.DEBUG);
            toolStripDropDownButton_view.Text = e.ClickedItem.Tag.ToString();
            TradingViewCryptocurrencyMarketDefaultColumn view = (TradingViewCryptocurrencyMarketDefaultColumn)Enum.Parse(typeof(TradingViewCryptocurrencyMarketDefaultColumn), e.ClickedItem.Tag.ToString());

            PreferenceManager.TradingViewPreferences.CryptocurrencyMarketParameters.defaultColumn = view;
            marketsWidget.setCryptocurrencyMarket(PreferenceManager.TradingViewPreferences.CryptocurrencyMarketParameters);
            PreferenceManager.UpdatePreferenceFile(PreferenceManager.PreferenceType.TradingView);
        }
Esempio n. 30
0
        private void toolStripButton_buy_Click(object sender, EventArgs e)
        {
            ExchangeManager.ExchangeBalance marketBalance = ExchangeManager.Balances.FirstOrDefault(balance =>
                                                                                                    balance.Exchange == Exchange.Name &&
                                                                                                    balance.Symbol == Exchange.CurrentTicker.market);

            if (numericUpDown_total.Value == 0 || numericUpDown_amount.Value == 0)
            {
                MessageBox.Show("No Amount Or Total To Process", "EMPTY ORDER");
            }
            else
            {
                if (numericUpDown_total.Value > marketBalance.Balance)
                {
                    MessageBox.Show("Not Enough Funds For This Buy", "INSUFFICIENT FUNDS");
                }
                else
                {
                    if (View != "stop-limit")
                    {
                        string       message      = "Buy : " + numericUpDown_amount.Value.ToString("N8") + " " + Exchange.CurrentTicker.symbol + " @ Price : " + numericUpDown_price.Value.ToString("N8") + " " + Exchange.CurrentTicker.market;
                        string       title        = "TOTAL : " + numericUpDown_total.Value.ToString("N8") + " " + Exchange.CurrentTicker.market;
                        DialogResult dialogResult = MessageBox.Show(message, title, MessageBoxButtons.YesNo);
                        if (dialogResult == DialogResult.Yes)
                        {
                            //do something
                            LogManager.AddLogMessage(Name, "toolStripButton_buy_Click", "THIS BUY FUNCTION NEEDS TO BE ENABLED", LogManager.LogMessageType.DEBUG);
                            ExchangeManager.CreateNewOrder(Exchange.Name, ExchangeManager.ExchangeOrderType.buy, Exchange.CurrentTicker.symbol, Exchange.CurrentTicker.market, numericUpDown_price.Value, numericUpDown_amount.Value);

                            numericUpDown_amount.Value = 0;
                            numericUpDown_total.Value  = 0;
                        }
                    }
                    else
                    {
                        //string message = "STOP-LIMIT Buy : " + numericUpDown_amount.Value.ToString("N8") + " " + Exchange.CurrentTicker.symbol +
                        //" @ Price : " + numericUpDown_price.Value.ToString("N8") + " " + Exchange.CurrentTicker.market +
                        //" With STOP LIMIT OF " + numericUpDown_stop.Value;
                        string message = "If the lowest ask rises to or above " + numericUpDown_stop.Value + " " + Exchange.CurrentTicker.market +
                                         ", An order to buy " + numericUpDown_amount.Value + " " + Exchange.CurrentTicker.symbol +
                                         " at a price of " + numericUpDown_price.Value + " " + Exchange.CurrentTicker.market + " will be placed.";

                        string       title        = "STOP-LIMIT BUY for " + numericUpDown_amount.Value + " " + Exchange.CurrentTicker.symbol + " @ " + numericUpDown_total.Value.ToString("N8") + " " + Exchange.CurrentTicker.market;
                        DialogResult dialogResult = MessageBox.Show(message, title, MessageBoxButtons.YesNo);
                        if (dialogResult == DialogResult.Yes)
                        {
                            //do something
                            LogManager.AddLogMessage(Name, "toolStripButton_buy_Click", "THIS STOP-LIMIT BUY FUNCTION NEEDS TO BE ENABLED", LogManager.LogMessageType.DEBUG);
                            numericUpDown_amount.Value = 0;
                            numericUpDown_total.Value  = 0;
                        }
                    }
                }
            }
        }