Exemplo n.º 1
0
        // TODO: Not tested.
        public static ArchivedOrdersResults GetArchivedOrders(
            CexIoApiInfo credential,
            string curr1,
            string curr2,
            string limit,
            string dateTo,
            string dateFrom,
            string lastTxDateTo,
            string lastTxDateFrom,
            string status)
        {
            var endpointBase = "https://cex.io/api/archived_orders/";
            var endpoint     = endpointBase + curr1 + "/" + curr2;

            var formParameters = new Dictionary <string, string>()
            {
                { "limit", limit },
                { "dateTo", dateTo },
                { "dateFrom", dateFrom },
                { "lastTxDateTo", lastTxDateTo },
                { "lastTxDateFrom", lastTxDateFrom },
                { "status", status }
            };

            var jsonResponse = ExecutePostRequest(credential, endpoint, formParameters);

            var archivedOrders = JsonConvert.DeserializeObject <ArchivedOrdersResults>(jsonResponse);

            return(archivedOrders);
        }
Exemplo n.º 2
0
        // TODO: Not tested yet.
        public static ActiveOrderStatusResult GetActiveOrderStatus(CexIoApiInfo credential)
        {
            var endpoint = "https://cex.io/api/active_orders_status";

            var jsonResponse = ExecutePostRequest(credential, endpoint);

            var activeOrderStatus = JsonConvert.DeserializeObject <ActiveOrderStatusResult>(jsonResponse);

            return(activeOrderStatus);
        }
Exemplo n.º 3
0
        // TODO: Not tested yet.
        public static List <OrdersResult> GetOpenOrders(CexIoApiInfo credential)
        {
            //target to hit
            var endpoint = " https://cex.io/api/open_orders/";

            var jsonResponse = ExecutePostRequest(credential, endpoint);

            var orders = JsonConvert.DeserializeObject <List <OrdersResult> >(jsonResponse);

            return(orders);
        }
Exemplo n.º 4
0
        // TODO: Not Tested
        public static CancelAllOrdersForGivenPairResult CancelAllOrdersForGivenPair(CexIoApiInfo credential, string curr1, string curr2)
        {
            var endpointBase = "https://cex.io/api/cancel_orders/BTC/USD";
            var endpoint     = endpointBase + curr1 + "/" + curr2;

            var response = ExecutePostRequest(credential, endpoint);

            var result = JsonConvert.DeserializeObject <CancelAllOrdersForGivenPairResult>(response);

            return(result);
        }
Exemplo n.º 5
0
        // returns the account balance
        public static BalanceResult GetAccountBalance(CexIoApiInfo credential)
        {
            //target to hit
            var endpoint = "https://cex.io/api/balance/";

            var jsonResponse = ExecutePostRequest(credential, endpoint);

            // Json convert
            var balance = JsonConvert.DeserializeObject <BalanceResult>(jsonResponse);

            return(balance);
        }
Exemplo n.º 6
0
        public static OrderDetailsResult GetOrderDetails(CexIoApiInfo credential, int order_id)
        {
            var endpoint       = "https://cex.io/api/get_order/";
            var formParameters = new Dictionary <string, string>()
            {
                { "id", order_id.ToString() }
            };

            var jsonResponse = ExecutePostRequest(credential, endpoint, formParameters);

            var orderDetailsResult = JsonConvert.DeserializeObject <OrderDetailsResult>(jsonResponse);

            return(orderDetailsResult);
        }
Exemplo n.º 7
0
        // TODO: Not Tested
        public static bool CancelOrder(CexIoApiInfo credential, string orderId)
        {
            var endpoint = "https://cex.io/api/cancel_order/";

            var formParameters = new Dictionary <string, string>()
            {
                { "orderId", orderId }
            };

            var jsonResponse = ExecutePostRequest(credential, endpoint, formParameters);

            var cancelled = Convert.ToBoolean(jsonResponse);

            return(cancelled);
        }
Exemplo n.º 8
0
        // TODO: not tested
        /// <summary>
        ///
        /// </summary>
        /// <param name="curr1">The currency we want to buy.</param>
        /// <param name="curr2">The currency we're buying with.</param>
        /// <param name="type">Buy or sell.</param>
        /// <param name="amount"></param>
        /// <returns></returns>
        public static PlaceInstantOrderResult PlaceInstantOrder(CexIoApiInfo credential, string curr1, string curr2, string type, string amount)
        {
            var endpointBase = "https://cex.io/api/place_order/";
            var endpoint     = endpointBase + curr1 + "/" + curr2;

            var formParameters = new Dictionary <string, string>()
            {
                { "type", type },
                { "amount", amount },
                { "order_type", "market" }
            };

            var jsonResponse = ExecutePostRequest(credential, endpoint, formParameters);

            var placeInstantOrderResult = JsonConvert.DeserializeObject <PlaceInstantOrderResult>(jsonResponse);

            return(placeInstantOrderResult);
        }
Exemplo n.º 9
0
        //Send the request
        private static string ExecutePostRequest(CexIoApiInfo credential, string endpoint, Dictionary <string, string> parameters = null)
        {
            var request = WebRequest.Create(endpoint);

            request.Method      = "POST";
            request.ContentType = "application/x-www-form-urlencoded";

            var nonce  = GetNextNonce();
            var userId = credential.UserId;
            var key    = credential.Key;
            var secret = credential.Secret;

            //users signature
            var signature = GenerateSignature(nonce, userId, key, secret);

            var formParameters = new Dictionary <string, string>()
            {
                { "key", key },
                { "signature", signature },
                { "nonce", nonce.ToString() }
            };

            if (parameters != null)
            {
                foreach (var param in parameters)
                {
                    formParameters.Add(param.Key, param.Value);
                }
            }

            var postData = "";

            foreach (var param in formParameters)
            {
                var parameterLine = param.Key + "=" + param.Value + "&";
                postData += parameterLine;
            }

            postData = postData.Substring(0, postData.Length - 1);

            var byteArray = Encoding.ASCII.GetBytes(postData);

            request.ContentLength = byteArray.Length;

            using (var requestStream = request.GetRequestStream())
            {
                requestStream.Write(byteArray, 0, byteArray.Length);
            }

            var response   = request.GetResponse();
            var statusCode = ((HttpWebResponse)response).StatusCode;

            if (statusCode != HttpStatusCode.OK)
            {
                var errorResponseStream = response.GetResponseStream();
                var errorResult         = "";
                using (var reader = new StreamReader(errorResponseStream))
                {
                    errorResult = reader.ReadToEnd();
                }

                throw new Exception("POST request failed. " + errorResult);
            }

            var responseStream = response.GetResponseStream();

            var result = "";

            using (var reader = new StreamReader(responseStream))
            {
                result = reader.ReadToEnd();
            }

            return(result);
        }