Bitcoin Forum
November 12, 2024, 01:47:59 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: C# Client API Library for Cex.IO  (Read 1555 times)
jordansjones (OP)
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
January 14, 2014, 05:17:03 AM
Last edit: January 23, 2014, 04:53:13 AM by jordansjones
 #1

I just open sourced a C# client API library for Cex.io available at https://github.com/jordansjones/Cex.io-Api-Client.
You need to have an account and API Access Key/Secret generated. Ideally you will want to enable all permissions when you generate your Key/Secret.

Code: (C#)
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

using Nextmethod.Cex;

namespace SimpleExample
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program().RunExample().Wait();
        }

        const string CexUsername = ""; // Your username on Cex.io
        const string CexApiKey = ""; // Your API key
        const string CexApiSecret = ""; // Your API secret

        private CexApi CexClient { get; set; }

        private GhashApi GhashClient { get; set; }

        private async Task RunExample()
        {

            // Using the ApiCredentials Class
            // Client = new Api(new ApiCredentials(CexUsername, CexApiKey, CexApiSecret));
            // Or not
            // CexClient = new CexApi(CexUsername, CexApiKey, CexApiSecret);
            // ApiCredentials/(Username, ApiKey, ApiSecret) not needed for public functions
            CexClient = new CexApi();

            // Get Ticker Data
            Ticker tickerData = await CexClient.Ticker(SymbolPair.GHS_BTC);

            // Get Order Book
            OrderBook orderBook = await CexClient.OrderBook(SymbolPair.GHS_BTC);

            // Get Trade history
            IEnumerable<Trade> tradeHistory = await CexClient.TradeHistory(SymbolPair.NMC_BTC);

            // ApiCredentials required for user specific calls or "Private Functions"
            CexClient = new CexApi(CexUsername, CexApiKey, CexApiSecret);

            // Get Account Balance
            Balance accountBalance = await CexClient.AccountBalance();

            // Get Open Orders
            IEnumerable<OpenOrder> openOrders = await CexClient.OpenOrders(SymbolPair.LTC_BTC);

            // Place an order
            OpenOrder openOrder = await CexClient.PlaceOrder(
                SymbolPair.GHS_BTC,
                new Order
                {
                    Amount = 1.00m,
                    Price = 0.04644000m,
                    Type = OrderType.Buy
                });

            // Cancel an order
            bool didSucceed = await CexClient.CancelOrder(openOrder.Id);

            // GHash.IO Example
            GhashClient = new GhashApi(new ApiCredentials(CexUsername, CexApiKey, CexApiSecret));

            // Get Hash Rate
            Hashrate hashrate = await GhashClient.Hashrate();

            // Get Workers Hash Rate
            IEnumerable<KeyValuePair<string, WorkerHashrate>> workerHashRate = await GhashClient.WorkersHashRate();
        }
    }
}

Update 2014-01-22 I have also added support for GHash.IO API Endpoints. Previous sample has been updated.
Markov
Sr. Member
****
Offline Offline

Activity: 258
Merit: 250


Breizh Atao


View Profile
January 14, 2014, 07:02:32 AM
 #2

Excellent work. We needed something like that

piggybank
Newbie
*
Offline Offline

Activity: 49
Merit: 0


View Profile WWW
January 14, 2014, 01:25:49 PM
 #3

+1 Good job!
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!