diff --git a/CryptoExchange.Net.UnitTests/CryptoExchange.Net.UnitTests.csproj b/CryptoExchange.Net.UnitTests/CryptoExchange.Net.UnitTests.csproj index 3072a08..f463766 100644 --- a/CryptoExchange.Net.UnitTests/CryptoExchange.Net.UnitTests.csproj +++ b/CryptoExchange.Net.UnitTests/CryptoExchange.Net.UnitTests.csproj @@ -6,10 +6,10 @@ - + - - + + diff --git a/CryptoExchange.Net/CryptoExchange.Net.csproj b/CryptoExchange.Net/CryptoExchange.Net.csproj index d40d470..597af1d 100644 --- a/CryptoExchange.Net/CryptoExchange.Net.csproj +++ b/CryptoExchange.Net/CryptoExchange.Net.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;netstandard2.1;net8.0;net9.0 @@ -51,11 +51,11 @@ - - + + - - + + \ No newline at end of file diff --git a/Examples/BlazorClient/BlazorClient.csproj b/Examples/BlazorClient/BlazorClient.csproj index 989d7a8..1b8b490 100644 --- a/Examples/BlazorClient/BlazorClient.csproj +++ b/Examples/BlazorClient/BlazorClient.csproj @@ -5,31 +5,32 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + diff --git a/Examples/BlazorClient/Pages/Index.razor b/Examples/BlazorClient/Pages/Index.razor index cb094b8..c0b15ef 100644 --- a/Examples/BlazorClient/Pages/Index.razor +++ b/Examples/BlazorClient/Pages/Index.razor @@ -21,6 +21,7 @@ @inject IMexcRestClient mexcClient @inject IOKXRestClient okxClient @inject IToobitRestClient toobitClient +@inject IUpbitRestClient upbitClient @inject IWhiteBitRestClient whitebitClient @inject IXTRestClient xtClient @@ -57,6 +58,7 @@ var mexcTask = mexcClient.SpotApi.ExchangeData.GetTickerAsync("BTCUSDT"); var okxTask = okxClient.UnifiedApi.ExchangeData.GetTickerAsync("BTC-USDT"); var toobitTask = toobitClient.SpotApi.ExchangeData.GetTickersAsync("BTCUSDT"); + var upbitTask = upbitClient.SpotApi.ExchangeData.GetTickerAsync("USDT-BTC"); var whitebitTask = whitebitClient.V4Api.ExchangeData.GetTickersAsync(); var xtTask = xtClient.SpotApi.ExchangeData.GetTickersAsync("btc_usdt"); @@ -136,6 +138,9 @@ if (toobitTask.Result.Success) _prices.Add("Toobit", toobitTask.Result.Data.Single().LastPrice ?? 0); + if (upbitTask.Result.Success) + _prices.Add("Upbit", upbitTask.Result.Data.LastPrice); + if (whitebitTask.Result.Success){ // WhiteBit API doesn't offer an endpoint to filter for a specific ticker, so we have to filter client side var tickers = whitebitTask.Result.Data; diff --git a/Examples/BlazorClient/Pages/LiveData.razor b/Examples/BlazorClient/Pages/LiveData.razor index b0d477d..41ed49c 100644 --- a/Examples/BlazorClient/Pages/LiveData.razor +++ b/Examples/BlazorClient/Pages/LiveData.razor @@ -21,6 +21,7 @@ @inject IMexcSocketClient mexcSocketClient @inject IOKXSocketClient okxSocketClient @inject IToobitSocketClient toobitSocketClient +@inject IUpbitSocketClient upbitSocketClient @inject IWhiteBitSocketClient whitebitSocketClient @inject IXTSocketClient xtSocketClient @using System.Collections.Concurrent @@ -72,6 +73,7 @@ okxSocketClient.UnifiedApi.ExchangeData.SubscribeToTickerUpdatesAsync("ETH-BTC", data => UpdateData("OKX", data.Data.LastPrice ?? 0)), // Toobit doesn't support the ETH/BTC pair //toobitSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETHBTC", data => UpdateData("Toobit", data.Data.LastPrice ?? 0)), + upbitSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("BTC-ETH", data => UpdateData("Upbit", data.Data.LastPrice)), whitebitSocketClient.V4Api.SubscribeToTickerUpdatesAsync("ETH_BTC", data => UpdateData("WhiteBit", data.Data.Ticker.LastPrice)), }; diff --git a/Examples/BlazorClient/Pages/OrderBooks.razor b/Examples/BlazorClient/Pages/OrderBooks.razor index d556103..3538b4c 100644 --- a/Examples/BlazorClient/Pages/OrderBooks.razor +++ b/Examples/BlazorClient/Pages/OrderBooks.razor @@ -25,6 +25,7 @@ @using Kucoin.Net.Interfaces @using Mexc.Net.Interfaces @using OKX.Net.Interfaces; +@using Upbit.Net.Interfaces; @using Toobit.Net.Interfaces; @using WhiteBit.Net.Interfaces @using XT.Net.Interfaces @@ -50,6 +51,7 @@ @inject IMexcOrderBookFactory mexcFactory @inject IOKXOrderBookFactory okxFactory @inject IToobitOrderBookFactory toobitFactory +@inject IUpbitOrderBookFactory upbitFactory @inject IWhiteBitOrderBookFactory whitebitFactory @inject IXTOrderBookFactory xtFactory @implements IDisposable @@ -107,6 +109,7 @@ { "Mexc", mexcFactory.CreateSpot("ETHBTC") }, { "OKX", okxFactory.Create("ETH-BTC") }, { "Toobit", toobitFactory.CreateSpot("ETHUSDT") }, + { "Upbit", upbitFactory.CreateSpot("BTC-ETH") }, { "WhiteBit", whitebitFactory.CreateV4("ETH_BTC") }, { "XT", xtFactory.CreateSpot("eth_btc") }, }; diff --git a/Examples/BlazorClient/Pages/Trackers.razor b/Examples/BlazorClient/Pages/Trackers.razor index 68cd088..fd369ed 100644 --- a/Examples/BlazorClient/Pages/Trackers.razor +++ b/Examples/BlazorClient/Pages/Trackers.razor @@ -26,6 +26,7 @@ @using Kucoin.Net.Interfaces @using Mexc.Net.Interfaces @using OKX.Net.Interfaces; +@using Upbit.Net.Interfaces; @using Toobit.Net.Interfaces; @using WhiteBit.Net.Interfaces @using XT.Net.Interfaces @@ -51,11 +52,12 @@ @inject IMexcTrackerFactory mexcFactory @inject IOKXTrackerFactory okxFactory @inject IToobitTrackerFactory toobitFactory +@inject IUpbitTrackerFactory upbitFactory @inject IWhiteBitTrackerFactory whitebitFactory @inject IXTTrackerFactory xtFactory @implements IDisposable -

ETH-BTC trade Trackers, live updates:

+

Trade Trackers, live updates:

@foreach (var tracker in _trackers.OrderBy(p => p.Exchange)) { @@ -103,11 +105,12 @@ { mexcFactory.CreateTradeTracker(usdtSpotSymbol, period: TimeSpan.FromMinutes(5)) }, { okxFactory.CreateTradeTracker(usdtSpotSymbol, period: TimeSpan.FromMinutes(5)) }, { toobitFactory.CreateTradeTracker(usdtSpotSymbol, period: TimeSpan.FromMinutes(5)) }, + { upbitFactory.CreateTradeTracker(usdtSpotSymbol, period: TimeSpan.FromMinutes(5)) }, { whitebitFactory.CreateTradeTracker(usdtSpotSymbol, period: TimeSpan.FromMinutes(5)) }, { xtFactory.CreateTradeTracker(usdtSpotSymbol, period: TimeSpan.FromMinutes(5)) }, }; - await Task.WhenAll(_trackers.Select(b => b.StartAsync())); + await Task.WhenAll(_trackers.Select(b => b.StartAsync(false))); // Use a manual update timer so the page isn't refreshed too often _timer = new Timer(500); diff --git a/Examples/BlazorClient/Startup.cs b/Examples/BlazorClient/Startup.cs index 6c9bdab..bc3c10b 100644 --- a/Examples/BlazorClient/Startup.cs +++ b/Examples/BlazorClient/Startup.cs @@ -54,6 +54,7 @@ namespace BlazorClient services.AddMexc(); services.AddOKX(); services.AddToobit(); + services.AddUpbit(); services.AddWhiteBit(); services.AddXT(); } diff --git a/Examples/BlazorClient/_Imports.razor b/Examples/BlazorClient/_Imports.razor index 17dfdf7..96c5d55 100644 --- a/Examples/BlazorClient/_Imports.razor +++ b/Examples/BlazorClient/_Imports.razor @@ -29,6 +29,7 @@ @using Kucoin.Net.Interfaces.Clients; @using Mexc.Net.Interfaces.Clients; @using OKX.Net.Interfaces.Clients; +@using Upbit.Net.Interfaces.Clients; @using Toobit.Net.Interfaces.Clients; @using WhiteBit.Net.Interfaces.Clients @using XT.Net.Interfaces.Clients diff --git a/Examples/ConsoleClient/ConsoleClient.csproj b/Examples/ConsoleClient/ConsoleClient.csproj index 5f7c65d..3288420 100644 --- a/Examples/ConsoleClient/ConsoleClient.csproj +++ b/Examples/ConsoleClient/ConsoleClient.csproj @@ -6,20 +6,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/Examples/SharedClients/SharedClients.csproj b/Examples/SharedClients/SharedClients.csproj index bf1b035..943f401 100644 --- a/Examples/SharedClients/SharedClients.csproj +++ b/Examples/SharedClients/SharedClients.csproj @@ -8,9 +8,9 @@ - - - + + +