diff --git a/Examples/BlazorClient/BlazorClient.csproj b/Examples/BlazorClient/BlazorClient.csproj index 69dc48f..172e8d8 100644 --- a/Examples/BlazorClient/BlazorClient.csproj +++ b/Examples/BlazorClient/BlazorClient.csproj @@ -5,25 +5,26 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + diff --git a/Examples/BlazorClient/Pages/Index.razor b/Examples/BlazorClient/Pages/Index.razor index bc3078a..8d7ec42 100644 --- a/Examples/BlazorClient/Pages/Index.razor +++ b/Examples/BlazorClient/Pages/Index.razor @@ -9,6 +9,7 @@ @inject ICoinbaseRestClient coinbaseClient @inject ICoinExRestClient coinexClient @inject ICryptoComRestClient cryptocomClient +@inject IDeepCoinRestClient deepCoinClient @inject IGateIoRestClient gateioClient @inject IHTXRestClient htxClient @inject IHyperLiquidRestClient hyperLiquidClient @@ -37,8 +38,9 @@ var bitmexTask = bitmexClient.ExchangeApi.ExchangeData.GetSymbolsAsync("XBT_USDT"); var bybitTask = bybitClient.V5Api.ExchangeData.GetSpotTickersAsync("BTCUSDT"); var coinbaseTask = coinbaseClient.AdvancedTradeApi.ExchangeData.GetSymbolAsync("BTC-USDT"); - var coinexTask = coinexClient.SpotApi.ExchangeData.GetTickerAsync("BTCUSDT"); + var coinexTask = coinexClient.SpotApiV2.ExchangeData.GetTickersAsync(["BTCUSDT"]); var cryptocomTask = cryptocomClient.ExchangeApi.ExchangeData.GetTickersAsync("BTC_USDT"); + var deepCoinTask = deepCoinClient.ExchangeApi.ExchangeData.GetTickersAsync(DeepCoin.Net.Enums.SymbolType.Spot); var gateioTask = gateioClient.SpotApi.ExchangeData.GetTickersAsync("BTC_USDT"); var htxTask = htxClient.SpotApi.ExchangeData.GetTickerAsync("btcusdt"); var hyperLiquidTask = hyperLiquidClient.FuturesApi.ExchangeData.GetExchangeInfoAndTickersAsync(); // HyperLiquid does not have BTC spot trading @@ -48,7 +50,7 @@ var okxTask = okxClient.UnifiedApi.ExchangeData.GetTickerAsync("BTCUSDT"); var whitebitTask = whitebitClient.V4Api.ExchangeData.GetTickersAsync(); - await Task.WhenAll(binanceTask, bingXTask, bitfinexTask, bitgetTask, bitmartTask, bybitTask, coinexTask, gateioTask, htxTask, krakenTask, kucoinTask, mexcTask, okxTask); + await Task.WhenAll(binanceTask, bingXTask, bitfinexTask, bitgetTask, bitmartTask, bybitTask, coinexTask, deepCoinTask, gateioTask, htxTask, krakenTask, kucoinTask, mexcTask, okxTask); if (binanceTask.Result.Success) _prices.Add("Binance", binanceTask.Result.Data.LastPrice); @@ -75,11 +77,18 @@ _prices.Add("Coinbase", coinbaseTask.Result.Data.LastPrice ?? 0); if (coinexTask.Result.Success) - _prices.Add("CoinEx", coinexTask.Result.Data.Ticker.LastPrice); + _prices.Add("CoinEx", coinexTask.Result.Data.Single().LastPrice); if (cryptocomTask.Result.Success) _prices.Add("CryptoCom", cryptocomTask.Result.Data.First().LastPrice ?? 0); + if (deepCoinTask.Result.Success) + { + // DeepCoin API doesn't offer an endpoint to filter for a specific ticker, so we have to filter client side + var tickers = deepCoinTask.Result.Data; + _prices.Add("DeepCoin", tickers.Single(x => x.Symbol == "BTC-USDT").LastPrice ?? 0); + } + if (gateioTask.Result.Success) _prices.Add("GateIo", gateioTask.Result.Data.First().LastPrice); diff --git a/Examples/BlazorClient/Pages/LiveData.razor b/Examples/BlazorClient/Pages/LiveData.razor index a33b666..665c5ed 100644 --- a/Examples/BlazorClient/Pages/LiveData.razor +++ b/Examples/BlazorClient/Pages/LiveData.razor @@ -9,6 +9,7 @@ @inject ICoinbaseSocketClient coinbaseSocketClient @inject ICoinExSocketClient coinExSocketClient @inject ICryptoComSocketClient cryptocomSocketClient +@inject IDeepCoinSocketClient deepCoinSocketClient @inject IGateIoSocketClient gateioSocketClient @inject IHTXSocketClient htxSocketClient @inject IHyperLiquidSocketClient hyperLiquidSocketClient @@ -47,6 +48,7 @@ coinExSocketClient.SpotApiV2.SubscribeToTickerUpdatesAsync(["ETHBTC"], data => UpdateData("CoinEx", data.Data.First().LastPrice)), coinbaseSocketClient.AdvancedTradeApi.SubscribeToTickerUpdatesAsync("ETH-BTC", data => UpdateData("Coinbase", data.Data.LastPrice ?? 0)), cryptocomSocketClient.ExchangeApi.SubscribeToTickerUpdatesAsync("ETH_BTC", data => UpdateData("CryptoCom", data.Data.LastPrice ?? 0)), + deepCoinSocketClient.ExchangeApi.SubscribeToSymbolUpdatesAsync("ETH-BTC", data => UpdateData("DeepCoin", data.Data.LastPrice ?? 0)), gateioSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETH_BTC", data => UpdateData("GateIo", data.Data.LastPrice)), htxSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ethbtc", data => UpdateData("HTX", data.Data.ClosePrice ?? 0)), // HyperLiquid doesn't support the ETH/BTC pair diff --git a/Examples/BlazorClient/Pages/OrderBooks.razor b/Examples/BlazorClient/Pages/OrderBooks.razor index 27ad3ca..c7b2234 100644 --- a/Examples/BlazorClient/Pages/OrderBooks.razor +++ b/Examples/BlazorClient/Pages/OrderBooks.razor @@ -12,6 +12,7 @@ @using Coinbase.Net.Interfaces @using CryptoExchange.Net.Interfaces @using CryptoCom.Net.Interfaces +@using DeepCoin.Net.Interfaces @using GateIo.Net.Interfaces @using HTX.Net.Interfaces @using HyperLiquid.Net.Interfaces @@ -31,6 +32,7 @@ @inject ICoinbaseOrderBookFactory coinbaseFactory @inject ICoinExOrderBookFactory coinExFactory @inject ICryptoComOrderBookFactory cryptocomFactory +@inject IDeepCoinOrderBookFactory deepCoinFactory @inject IGateIoOrderBookFactory gateioFactory @inject IHTXOrderBookFactory htxFactory @inject IHyperLiquidOrderBookFactory hyperLiquidFactory @@ -83,6 +85,7 @@ { "CoinEx", coinExFactory.CreateSpot("ETHBTC") }, { "CryptoCom", cryptocomFactory.Create("ETH_BTC") }, { "GateIo", gateioFactory.CreateSpot("ETH_BTC") }, + { "DeepCoin", deepCoinFactory.Create("ETH-BTC") }, { "HTX", htxFactory.CreateSpot("ethbtc") }, // HyperLiquid does not support the ETH/BTC pair //{ "HyperLiquid", hyperLiquidFactory.Create("ETH/BTC") }, diff --git a/Examples/BlazorClient/Pages/SpotClient.razor b/Examples/BlazorClient/Pages/SpotClient.razor index a39d7e0..f3935d9 100644 --- a/Examples/BlazorClient/Pages/SpotClient.razor +++ b/Examples/BlazorClient/Pages/SpotClient.razor @@ -1,5 +1,6 @@ @page "/SpotClient" @using CryptoExchange.Net.SharedApis +@using System.Diagnostics @inject IEnumerable restClients

ETH-BTC prices:

@@ -20,6 +21,8 @@ { if (ticker.Success) _prices.Add(ticker.Exchange, ticker.Data.LastPrice); + else + Debug.WriteLine($"{ticker.Exchange} failed: {ticker.Error}"); } } diff --git a/Examples/BlazorClient/Pages/Trackers.razor b/Examples/BlazorClient/Pages/Trackers.razor index 7a18086..d5f6ccb 100644 --- a/Examples/BlazorClient/Pages/Trackers.razor +++ b/Examples/BlazorClient/Pages/Trackers.razor @@ -14,6 +14,7 @@ @using CryptoCom.Net.Interfaces @using CryptoExchange.Net.SharedApis @using CryptoExchange.Net.Trackers.Trades +@using DeepCoin.Net.Interfaces @using GateIo.Net.Interfaces @using HTX.Net.Interfaces @using HyperLiquid.Net.Interfaces @@ -33,6 +34,7 @@ @inject ICoinbaseTrackerFactory coinbaseFactory @inject ICoinExTrackerFactory coinExFactory @inject ICryptoComTrackerFactory cryptocomFactory +@inject IDeepCoinTrackerFactory deepCoinFactory @inject IGateIoTrackerFactory gateioFactory @inject IHTXTrackerFactory htxFactory @inject IHyperLiquidTrackerFactory hyperLiquidFactory @@ -77,6 +79,7 @@ { coinbaseFactory.CreateTradeTracker(usdtSymbol, period: TimeSpan.FromMinutes(5)) }, { coinExFactory.CreateTradeTracker(usdtSymbol, period: TimeSpan.FromMinutes(5)) }, { cryptocomFactory.CreateTradeTracker(usdtSymbol, period: TimeSpan.FromMinutes(5)) }, + { deepCoinFactory.CreateTradeTracker(usdtSymbol, period: TimeSpan.FromMinutes(5)) }, { gateioFactory.CreateTradeTracker(usdtSymbol, period: TimeSpan.FromMinutes(5)) }, { htxFactory.CreateTradeTracker(usdtSymbol, period: TimeSpan.FromMinutes(5)) }, // HyperLiquid doesn't support spot pair, but does have a futures BTC/USDC pair diff --git a/Examples/BlazorClient/Startup.cs b/Examples/BlazorClient/Startup.cs index 92c9332..da7d9d4 100644 --- a/Examples/BlazorClient/Startup.cs +++ b/Examples/BlazorClient/Startup.cs @@ -45,6 +45,7 @@ namespace BlazorClient services.AddCoinbase(); services.AddCoinEx(); services.AddCryptoCom(); + services.AddDeepCoin(); services.AddGateIo(); services.AddHyperLiquid(); services.AddHTX(); diff --git a/Examples/BlazorClient/_Imports.razor b/Examples/BlazorClient/_Imports.razor index 36579df..3dc0bc3 100644 --- a/Examples/BlazorClient/_Imports.razor +++ b/Examples/BlazorClient/_Imports.razor @@ -18,6 +18,7 @@ @using Coinbase.Net.Interfaces.Clients; @using CoinEx.Net.Interfaces.Clients; @using CryptoCom.Net.Interfaces.Clients; +@using DeepCoin.Net.Interfaces.Clients; @using GateIo.Net.Interfaces.Clients; @using HTX.Net.Interfaces.Clients; @using HyperLiquid.Net.Interfaces.Clients; diff --git a/README.md b/README.md index 47b7498..1882476 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ The following API's are directly supported. Note that there are 3rd party implem |CoinEx|[JKorf/CoinEx.Net](https://github.com/JKorf/CoinEx.Net)|[![Nuget version](https://img.shields.io/nuget/v/CoinEx.net.svg?style=flat-square)](https://www.nuget.org/packages/CoinEx.Net)| |CoinGecko|[JKorf/CoinGecko.Net](https://github.com/JKorf/CoinGecko.Net)|[![Nuget version](https://img.shields.io/nuget/v/CoinGecko.net.svg?style=flat-square)](https://www.nuget.org/packages/CoinGecko.Net)| |Crypto.com|[JKorf/CryptoCom.Net](https://github.com/JKorf/CryptoCom.Net)|[![Nuget version](https://img.shields.io/nuget/v/CryptoCom.net.svg?style=flat-square)](https://www.nuget.org/packages/CryptoCom.Net)| +|DeepCoin|[JKorf/DeepCoin.Net](https://github.com/JKorf/DeepCoin.Net)|[![Nuget version](https://img.shields.io/nuget/v/DeepCoin.net.svg?style=flat-square)](https://www.nuget.org/packages/DeepCoin.Net)| |Gate.io|[JKorf/GateIo.Net](https://github.com/JKorf/GateIo.Net)|[![Nuget version](https://img.shields.io/nuget/v/GateIo.net.svg?style=flat-square)](https://www.nuget.org/packages/GateIo.Net)| |HTX|[JKorf/HTX.Net](https://github.com/JKorf/HTX.Net)|[![Nuget version](https://img.shields.io/nuget/v/JKorf.HTX.net.svg?style=flat-square)](https://www.nuget.org/packages/JKorf.HTX.Net)| |HyperLiquid|[JKorf/HyperLiquid.Net](https://github.com/JKorf/HyperLiquid.Net)|[![Nuget version](https://img.shields.io/nuget/v/HyperLiquid.Net.svg?style=flat-square)](https://www.nuget.org/packages/HyperLiquid.Net)| @@ -51,6 +52,7 @@ When creating an account on new exchanges please consider using a referral link |Coinbase|[https://advanced.coinbase.com/join/T6H54H8](https://advanced.coinbase.com/join/T6H54H8)| |CoinEx|[https://www.coinex.com/register?refer_code=hd6gn](https://www.coinex.com/register?refer_code=hd6gn)| |Crypto.com|[https://crypto.com/exch/26ge92xbkn](https://crypto.com/exch/26ge92xbkn)| +|DeepCoin|[https://s.deepcoin.com/jddhfca)| |HTX|[https://www.htx.com/invite/en-us/1f?invite_code=fxp9](https://www.htx.com/invite/en-us/1f?invite_code=fxp9)| |HyperLiquid|[https://app.hyperliquid.xyz/join/JKORF](https://app.hyperliquid.xyz/join/JKORF)| |Kucoin|[https://www.kucoin.com/r/rf/QBS4FPED](https://www.kucoin.com/r/rf/QBS4FPED)| diff --git a/docs/index.html b/docs/index.html index e0a8abd..0f92f20 100644 --- a/docs/index.html +++ b/docs/index.html @@ -157,6 +157,7 @@ CoinExJKorf/CoinEx.Net CoinGeckoJKorf/CoinGecko.Net Crypto.comJKorf/CryptoCom.Net + DeepCoinJKorf/DeepCoin.Net Gate.ioJKorf/GateIo.Net HTXJKorf/HTX.Net HyperLiquidJKorf/HyperLiquid.Net