mirror of
https://github.com/JKorf/CryptoExchange.Net.git
synced 2026-10-04 02:11:11 +00:00
Updated examples
This commit is contained in:
@@ -5,37 +5,36 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Binance.Net" Version="13.5.0" />
|
||||
<PackageReference Include="Bitfinex.Net" Version="11.4.0" />
|
||||
<PackageReference Include="BitMart.Net" Version="4.4.0" />
|
||||
<PackageReference Include="BloFin.Net" Version="3.4.0" />
|
||||
<PackageReference Include="Bybit.Net" Version="7.5.0" />
|
||||
<PackageReference Include="CoinEx.Net" Version="11.4.0" />
|
||||
<PackageReference Include="CoinW.Net" Version="3.4.0" />
|
||||
<PackageReference Include="CryptoCom.Net" Version="4.4.0" />
|
||||
<PackageReference Include="DeepCoin.Net" Version="4.4.0" />
|
||||
<PackageReference Include="GateIo.Net" Version="4.6.0" />
|
||||
<PackageReference Include="HyperLiquid.Net" Version="5.7.0" />
|
||||
<PackageReference Include="JK.BingX.Net" Version="4.5.0" />
|
||||
<PackageReference Include="JK.Bitget.Net" Version="4.5.0" />
|
||||
<PackageReference Include="JK.Mexc.Net" Version="6.6.0" />
|
||||
<PackageReference Include="JK.OKX.Net" Version="5.4.0" />
|
||||
<PackageReference Include="Jkorf.Aster.Net" Version="4.4.0" />
|
||||
<PackageReference Include="JKorf.BitMEX.Net" Version="4.4.0" />
|
||||
<PackageReference Include="JKorf.Coinbase.Net" Version="4.5.0" />
|
||||
<PackageReference Include="JKorf.HTX.Net" Version="9.5.0" />
|
||||
<PackageReference Include="JKorf.Lighter.Net" Version="1.5.0" />
|
||||
<PackageReference Include="JKorf.Upbit.Net" Version="3.4.0" />
|
||||
<PackageReference Include="KrakenExchange.Net" Version="8.4.0" />
|
||||
<PackageReference Include="Kucoin.Net" Version="9.5.0" />
|
||||
<PackageReference Include="LBank.Net" Version="1.1.0" />
|
||||
<PackageReference Include="Pionex.Net" Version="1.2.0" />
|
||||
<PackageReference Include="Binance.Net" Version="13.6.0" />
|
||||
<PackageReference Include="Bitfinex.Net" Version="11.6.0" />
|
||||
<PackageReference Include="BitMart.Net" Version="4.5.0" />
|
||||
<PackageReference Include="BloFin.Net" Version="3.5.0" />
|
||||
<PackageReference Include="Bybit.Net" Version="7.6.0" />
|
||||
<PackageReference Include="CoinEx.Net" Version="11.5.0" />
|
||||
<PackageReference Include="CoinW.Net" Version="3.5.0" />
|
||||
<PackageReference Include="CryptoCom.Net" Version="4.5.0" />
|
||||
<PackageReference Include="DeepCoin.Net" Version="4.5.0" />
|
||||
<PackageReference Include="GateIo.Net" Version="4.7.0" />
|
||||
<PackageReference Include="HyperLiquid.Net" Version="5.8.0" />
|
||||
<PackageReference Include="JK.BingX.Net" Version="4.6.0" />
|
||||
<PackageReference Include="JK.Bitget.Net" Version="4.6.0" />
|
||||
<PackageReference Include="JK.Mexc.Net" Version="6.7.0" />
|
||||
<PackageReference Include="JK.OKX.Net" Version="5.5.0" />
|
||||
<PackageReference Include="Jkorf.Aster.Net" Version="4.5.0" />
|
||||
<PackageReference Include="JKorf.Coinbase.Net" Version="4.6.0" />
|
||||
<PackageReference Include="JKorf.HTX.Net" Version="9.6.0" />
|
||||
<PackageReference Include="JKorf.Lighter.Net" Version="1.6.0" />
|
||||
<PackageReference Include="JKorf.Upbit.Net" Version="3.5.0" />
|
||||
<PackageReference Include="KrakenExchange.Net" Version="8.5.0" />
|
||||
<PackageReference Include="Kucoin.Net" Version="9.6.0" />
|
||||
<PackageReference Include="LBank.Net" Version="1.2.0" />
|
||||
<PackageReference Include="Pionex.Net" Version="1.3.0" />
|
||||
<PackageReference Include="Serilog.AspNetCore" Version="10.0.0" />
|
||||
<PackageReference Include="Tapbit.Net" Version="1.0.0" />
|
||||
<PackageReference Include="Toobit.Net" Version="4.4.0" />
|
||||
<PackageReference Include="Weex.Net" Version="2.4.0" />
|
||||
<PackageReference Include="WhiteBit.Net" Version="4.4.0" />
|
||||
<PackageReference Include="XT.Net" Version="4.5.0" />
|
||||
<PackageReference Include="Tapbit.Net" Version="1.1.0" />
|
||||
<PackageReference Include="Toobit.Net" Version="4.5.0" />
|
||||
<PackageReference Include="Weex.Net" Version="2.5.0" />
|
||||
<PackageReference Include="WhiteBit.Net" Version="4.5.0" />
|
||||
<PackageReference Include="XT.Net" Version="4.6.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
@inject IBitfinexRestClient bitfinexClient
|
||||
@inject IBitgetRestClient bitgetClient
|
||||
@inject IBitMartRestClient bitmartClient
|
||||
@inject IBitMEXRestClient bitmexClient
|
||||
@inject IBloFinRestClient bloFinClient
|
||||
@inject IBybitRestClient bybitClient
|
||||
@inject ICoinbaseRestClient coinbaseClient
|
||||
@@ -47,7 +46,6 @@
|
||||
var bitfinexTask = bitfinexClient.ExchangeApi.ExchangeData.GetTickerAsync("tBTCUSD");
|
||||
var bitgetTask = bitgetClient.SpotApiV2.ExchangeData.GetTickersAsync("BTCUSDT");
|
||||
var bitmartTask = bitmartClient.SpotApi.ExchangeData.GetTickerAsync("BTC_USDT");
|
||||
var bitmexTask = bitmexClient.ExchangeApi.ExchangeData.GetSymbolsAsync("XBT_USDT");
|
||||
var bloFinTask = bloFinClient.FuturesApi.ExchangeData.GetTickersAsync("BTC-USDT");
|
||||
var bybitTask = bybitClient.V5Api.ExchangeData.GetSpotTickersAsync("BTCUSDT");
|
||||
var coinbaseTask = coinbaseClient.AdvancedTradeApi.ExchangeData.GetSymbolAsync("BTC-USDT");
|
||||
@@ -71,7 +69,7 @@
|
||||
var whitebitTask = whitebitClient.V4Api.ExchangeData.GetTickersAsync();
|
||||
var xtTask = xtClient.SpotApi.ExchangeData.GetTickersAsync("btc_usdt");
|
||||
|
||||
await Task.WhenAll(asterTask, binanceTask, bingXTask, bitfinexTask, bitgetTask, bitmartTask, bloFinTask, bitmexTask, bybitTask, coinexTask, coinWTask, deepCoinTask, gateioTask,
|
||||
await Task.WhenAll(asterTask, binanceTask, bingXTask, bitfinexTask, bitgetTask, bitmartTask, bloFinTask, bybitTask, coinexTask, coinWTask, deepCoinTask, gateioTask,
|
||||
htxTask, krakenTask, kucoinTask, lBankTask, mexcTask, okxTask, pionexTask, toobitTask, upbitTask, weexTask, whitebitTask, xtTask);
|
||||
|
||||
if (asterTask.Result.Success)
|
||||
@@ -92,9 +90,6 @@
|
||||
if (bitmartTask.Result.Success)
|
||||
_prices.Add("BitMart", bitmartTask.Result.Data.LastPrice);
|
||||
|
||||
if (bitmexTask.Result.Success)
|
||||
_prices.Add("BitMEX", bitmexTask.Result.Data.First().LastPrice);
|
||||
|
||||
if (bloFinTask.Result.Success)
|
||||
_prices.Add("BloFin", bloFinTask.Result.Data.First().LastPrice);
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
@inject IBitfinexSocketClient bitfinexSocketClient
|
||||
@inject IBitgetSocketClient bitgetSocketClient
|
||||
@inject IBitMartSocketClient bitmartSocketClient
|
||||
@inject IBitMEXSocketClient bitmexSocketClient
|
||||
@inject IBloFinSocketClient bloFinSocketClient
|
||||
@inject IBybitSocketClient bybitSocketClient
|
||||
@inject ICoinbaseSocketClient coinbaseSocketClient
|
||||
@@ -56,7 +55,6 @@
|
||||
bitfinexSocketClient.ExchangeApi.SubscribeToTickerUpdatesAsync("tETHBTC", data => UpdateData("Bitfinex", data.Data.LastPrice)),
|
||||
bitgetSocketClient.SpotApiV2.SubscribeToTickerUpdatesAsync("ETHBTC", data => UpdateData("Bitget", data.Data.First().LastPrice)),
|
||||
bitmartSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETH_BTC", data => UpdateData("BitMart", data.Data.LastPrice)),
|
||||
bitmexSocketClient.ExchangeApi.SubscribeToSymbolUpdatesAsync("ETH_XBT", data => UpdateData("BitMEX", data.Data.LastPrice ?? 0)),
|
||||
// BloFin doesn't support the ETH/BTC pair
|
||||
//bloFinSocketClient.FuturesApi.SubscribeToTickerUpdatesAsync("ETH-BTC", data => UpdateData("BloFin", data.Data.LastPrice)),
|
||||
bybitSocketClient.V5SpotApi.SubscribeToTickerUpdatesAsync("ETHBTC", data => UpdateData("Bybit", data.Data.LastPrice)),
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
@using Bitfinex.Net.Interfaces
|
||||
@using Bitget.Net.Interfaces;
|
||||
@using BitMart.Net.Interfaces;
|
||||
@using BitMEX.Net.Interfaces;
|
||||
@using BloFin.Net.Interfaces;
|
||||
@using Bybit.Net.Interfaces
|
||||
@using CoinEx.Net.Interfaces
|
||||
@@ -40,7 +39,6 @@
|
||||
@inject IBitfinexOrderBookFactory bitfinexFactory
|
||||
@inject IBitgetOrderBookFactory bitgetFactory
|
||||
@inject IBitMartOrderBookFactory bitmartFactory
|
||||
@inject IBitMEXOrderBookFactory bitmexFactory
|
||||
@inject IBloFinOrderBookFactory bloFinFactory
|
||||
@inject IBybitOrderBookFactory bybitFactory
|
||||
@inject ICoinbaseOrderBookFactory coinbaseFactory
|
||||
@@ -103,7 +101,6 @@
|
||||
{ "Bitfinex", bitfinexFactory.Create("tETHBTC") },
|
||||
{ "Bitget", bitgetFactory.CreateSpot("ETHBTC") },
|
||||
{ "BitMart", bitmartFactory.CreateSpot("ETH_BTC", null) },
|
||||
{ "BitMEX", bitmexFactory.Create("ETH_XBT") },
|
||||
{ "BloFin", bloFinFactory.CreateFutures("ETH-USDT") },
|
||||
{ "Bybit", bybitFactory.Create("ETHBTC", Bybit.Net.Enums.Category.Spot) },
|
||||
{ "Coinbase", coinbaseFactory.Create("ETH-BTC", null) },
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@page "/SpotClient"
|
||||
@using CryptoExchange.Net.SharedApis
|
||||
@using System.Diagnostics
|
||||
@inject IEnumerable<ISpotTickerRestClient> restClients
|
||||
@inject IEnumerable<IGetTicker> restClients
|
||||
|
||||
<h3>ETH-BTC prices:</h3>
|
||||
@foreach(var price in _prices.OrderBy(p => p.Key))
|
||||
@@ -15,7 +15,7 @@
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var symbol = new SharedSymbol(TradingMode.Spot, "ETH", "BTC");
|
||||
var tasks = restClients.Select(x => x.GetSpotTickerAsync(new GetTickerRequest(symbol)));
|
||||
var tasks = restClients.Where(x => x.SupportedTradingModes.Contains(TradingMode.Spot)).Select(x => x.GetTickerAsync(new GetTickerRequest(symbol)));
|
||||
await foreach (var ticker in ParallelEnumerateAsync(tasks))
|
||||
{
|
||||
if (ticker.Success)
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
@using BingX.Net.Interfaces
|
||||
@using Bitfinex.Net.Interfaces
|
||||
@using Bitget.Net.Interfaces;
|
||||
@using BitMEX.Net.Interfaces;
|
||||
@using BitMart.Net.Interfaces;
|
||||
@using BloFin.Net.Interfaces
|
||||
@using Bybit.Net.Interfaces
|
||||
@@ -40,7 +39,6 @@
|
||||
@inject IBitfinexTrackerFactory bitfinexFactory
|
||||
@inject IBitgetTrackerFactory bitgetFactory
|
||||
@inject IBitMartTrackerFactory bitmartFactory
|
||||
@inject IBitMEXTrackerFactory bitmexFactory
|
||||
@inject IBloFinTrackerFactory bloFinFactory
|
||||
@inject IBybitTrackerFactory bybitFactory
|
||||
@inject ICoinbaseTrackerFactory coinbaseFactory
|
||||
@@ -96,7 +94,6 @@
|
||||
{ bitfinexFactory.CreateTradeTracker(symbol, period: TimeSpan.FromMinutes(5)) },
|
||||
{ bitgetFactory.CreateTradeTracker(symbol, period: TimeSpan.FromMinutes(5)) },
|
||||
{ bitmartFactory.CreateTradeTracker(symbol, period: TimeSpan.FromMinutes(5)) },
|
||||
{ bitmexFactory.CreateTradeTracker(symbol, period: TimeSpan.FromMinutes(5)) },
|
||||
{ bloFinFactory.CreateTradeTracker(futuresSymbol, period: TimeSpan.FromMinutes(5)) },
|
||||
{ bybitFactory.CreateTradeTracker(symbol, period: TimeSpan.FromMinutes(5)) },
|
||||
{ coinbaseFactory.CreateTradeTracker(symbol, period: TimeSpan.FromMinutes(5)) },
|
||||
|
||||
@@ -39,7 +39,6 @@ namespace BlazorClient
|
||||
services.AddBitfinex();
|
||||
services.AddBitget();
|
||||
services.AddBitMart();
|
||||
services.AddBitMEX();
|
||||
services.AddBloFin();
|
||||
services.AddBybit();
|
||||
services.AddCoinbase();
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
@using Bitfinex.Net.Interfaces.Clients;
|
||||
@using Bitget.Net.Interfaces.Clients;
|
||||
@using BitMart.Net.Interfaces.Clients;
|
||||
@using BitMEX.Net.Interfaces.Clients;
|
||||
@using BloFin.Net.Interfaces.Clients;
|
||||
@using Bybit.Net.Interfaces.Clients;
|
||||
@using Coinbase.Net.Interfaces.Clients;
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Binance.Net" Version="12.13.0" />
|
||||
<PackageReference Include="Bybit.Net" Version="6.13.0" />
|
||||
<PackageReference Include="Binance.Net" Version="13.6.0" />
|
||||
<PackageReference Include="Bybit.Net" Version="7.6.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -25,18 +25,22 @@ var exchanges = new Dictionary<string, ExchangeClients>(StringComparer.OrdinalIg
|
||||
{
|
||||
["binance"] = new ExchangeClients(
|
||||
"Binance",
|
||||
binanceRest.SpotApi.SharedClient,
|
||||
binanceRest.SpotApi.SharedClient,
|
||||
binanceRest.SpotApi.SharedClient,
|
||||
binanceRest.SpotApi.SharedClient,
|
||||
binanceSocket.SpotApi.SharedClient),
|
||||
binanceRest.SpotApi.SharedApi,
|
||||
binanceRest.SpotApi.SharedApi,
|
||||
binanceRest.SpotApi.SharedApi,
|
||||
binanceRest.SpotApi.SharedApi,
|
||||
binanceRest.SpotApi.SharedApi,
|
||||
binanceRest.SpotApi.SharedApi,
|
||||
binanceSocket.SpotApi.SharedApi),
|
||||
["bybit"] = new ExchangeClients(
|
||||
"Bybit",
|
||||
bybitRest.V5Api.SharedClient,
|
||||
bybitRest.V5Api.SharedClient,
|
||||
bybitRest.V5Api.SharedClient,
|
||||
bybitRest.V5Api.SharedClient,
|
||||
bybitSocket.V5SpotApi.SharedClient)
|
||||
bybitRest.V5Api.SharedApi,
|
||||
bybitRest.V5Api.SharedApi,
|
||||
bybitRest.V5Api.SharedApi,
|
||||
bybitRest.V5Api.SharedApi,
|
||||
bybitRest.V5Api.SharedApi,
|
||||
bybitRest.V5Api.SharedApi,
|
||||
bybitSocket.V5SpotApi.SharedApi)
|
||||
};
|
||||
|
||||
PrintHelp();
|
||||
@@ -98,7 +102,7 @@ async Task PrintPricesAsync(string[] args)
|
||||
var symbol = GetSymbol(args, 1);
|
||||
var tasks = exchanges.Values.Select(async exchange =>
|
||||
{
|
||||
var result = await exchange.TickerRest.GetSpotTickerAsync(new GetTickerRequest(symbol));
|
||||
var result = await exchange.TickerRest.GetTickerAsync(new GetTickerRequest(symbol));
|
||||
if (!result.Success)
|
||||
{
|
||||
Console.WriteLine($"{exchange.Name,-8} error: {result.Error}");
|
||||
@@ -171,7 +175,7 @@ async Task PrintOpenOrdersAsync(string[] args)
|
||||
var exchange = GetExchange(args, 1);
|
||||
var symbol = GetSymbol(args, 2);
|
||||
|
||||
var result = await exchange.OrderRest.GetOpenSpotOrdersAsync(new GetOpenOrdersRequest(symbol));
|
||||
var result = await exchange.GetOpenOrdersRest.GetOpenSpotOrdersAsync(new GetOpenOrdersRequest(symbol));
|
||||
if (!result.Success)
|
||||
{
|
||||
Console.WriteLine($"Open orders request failed: {result.Error}");
|
||||
@@ -203,23 +207,9 @@ async Task PlaceLimitOrderAsync(string[] args)
|
||||
SharedQuantity.Base(quantity),
|
||||
price,
|
||||
SharedTimeInForce.GoodTillCanceled,
|
||||
exchange.OrderRest.GenerateClientOrderId());
|
||||
exchange.PlaceOrderRest.GenerateClientOrderId());
|
||||
|
||||
var validationError = exchange.OrderRest.PlaceSpotOrderOptions.ValidateRequest(
|
||||
exchange.Name,
|
||||
request,
|
||||
TradingMode.Spot,
|
||||
exchange.OrderRest.SupportedTradingModes,
|
||||
exchange.OrderRest.SpotSupportedOrderTypes,
|
||||
exchange.OrderRest.SpotSupportedTimeInForce,
|
||||
exchange.OrderRest.SpotSupportedOrderQuantity);
|
||||
if (validationError != null)
|
||||
{
|
||||
Console.WriteLine($"Order request is not valid for {exchange.Name}: {validationError}");
|
||||
return;
|
||||
}
|
||||
|
||||
var result = await exchange.OrderRest.PlaceSpotOrderAsync(request);
|
||||
var result = await exchange.PlaceOrderRest.PlaceSpotOrderAsync(request);
|
||||
Console.WriteLine(result.Success
|
||||
? $"Order placed. Id: {result.Data.Id}"
|
||||
: $"Order failed: {result.Error}");
|
||||
@@ -233,7 +223,7 @@ async Task CancelOrderAsync(string[] args)
|
||||
if (string.IsNullOrWhiteSpace(orderId))
|
||||
throw new ArgumentException("Missing order id. Example: cancel-order binance BTC USDT 123456");
|
||||
|
||||
var result = await exchange.OrderRest.CancelSpotOrderAsync(new CancelOrderRequest(symbol, orderId));
|
||||
var result = await exchange.CancelOrderRest.CancelSpotOrderAsync(new CancelOrderRequest(symbol, orderId));
|
||||
Console.WriteLine(result.Success
|
||||
? $"Order canceled. Id: {result.Data.Id}"
|
||||
: $"Cancel failed: {result.Error}");
|
||||
@@ -296,8 +286,10 @@ static void PrintHelp()
|
||||
|
||||
internal record ExchangeClients(
|
||||
string Name,
|
||||
ISpotTickerRestClient TickerRest,
|
||||
IOrderBookRestClient OrderBookRest,
|
||||
IBalanceRestClient BalanceRest,
|
||||
ISpotOrderRestClient OrderRest,
|
||||
ITickerSocketClient TickerSocket);
|
||||
IGetTickerRest TickerRest,
|
||||
IGetOrderBookRest OrderBookRest,
|
||||
IGetBalancesRest BalanceRest,
|
||||
IPlaceSpotOrderRest PlaceOrderRest,
|
||||
IGetOpenSpotOrdersRest GetOpenOrdersRest,
|
||||
ICancelSpotOrderRest CancelOrderRest,
|
||||
ISubscribeTickerSocket TickerSocket);
|
||||
|
||||
@@ -5,13 +5,13 @@ using CryptoExchange.Net.SharedApis;
|
||||
using OKX.Net.Clients;
|
||||
|
||||
var symbol = new SharedSymbol(TradingMode.Spot, "ETH", "USDT");
|
||||
var binanceSpotRestClient = new BinanceRestClient().SpotApi.SharedClient;
|
||||
var okxSpotRestClient = new OKXRestClient().UnifiedApi.SharedClient;
|
||||
var bitmartSpotRestClient = new BitMartRestClient().SpotApi.SharedClient;
|
||||
var binanceSpotRestClient = new BinanceRestClient().SpotApi.SharedApi;
|
||||
var okxSpotRestClient = new OKXRestClient().UnifiedApi.SharedApi;
|
||||
var bitmartSpotRestClient = new BitMartRestClient().SpotApi.SharedApi;
|
||||
|
||||
var binanceSpotSocketClient = new BinanceSocketClient().SpotApi.SharedClient;
|
||||
var okxSpotSocketClient = new OKXSocketClient().UnifiedApi.SharedClient;
|
||||
var bitmartSpotSocketClient = new BitMartSocketClient().SpotApi.SharedClient;
|
||||
var binanceSpotSocketClient = new BinanceSocketClient().SpotApi.SharedApi;
|
||||
var okxSpotSocketClient = new OKXSocketClient().UnifiedApi.SharedApi;
|
||||
var bitmartSpotSocketClient = new BitMartSocketClient().SpotApi.SharedApi;
|
||||
|
||||
await GetLastTradePriceAsync(binanceSpotRestClient, symbol);
|
||||
await GetLastTradePriceAsync(okxSpotRestClient, symbol);
|
||||
@@ -31,9 +31,9 @@ Console.ReadLine();
|
||||
foreach (var subscription in subscriptions)
|
||||
await subscription.CloseAsync();
|
||||
|
||||
async Task GetLastTradePriceAsync(ISpotTickerRestClient client, SharedSymbol symbol)
|
||||
async Task GetLastTradePriceAsync(IGetTickerRest client, SharedSymbol symbol)
|
||||
{
|
||||
var result = await client.GetSpotTickerAsync(new GetTickerRequest(symbol));
|
||||
var result = await client.GetTickerAsync(new GetTickerRequest(symbol));
|
||||
if (!result.Success)
|
||||
{
|
||||
Console.WriteLine($"Failed to get ticker: {result.Error}");
|
||||
@@ -43,7 +43,7 @@ async Task GetLastTradePriceAsync(ISpotTickerRestClient client, SharedSymbol sym
|
||||
Console.WriteLine($"{client.Exchange} {result.Data.Symbol}: {result.Data.LastPrice}");
|
||||
}
|
||||
|
||||
async Task SubscribeTickerUpdatesAsync(ITickerSocketClient client, SharedSymbol symbol, ICollection<UpdateSubscription> subscriptions)
|
||||
async Task SubscribeTickerUpdatesAsync(ISubscribeTickerSocket client, SharedSymbol symbol, ICollection<UpdateSubscription> subscriptions)
|
||||
{
|
||||
var result = await client.SubscribeToTickerUpdatesAsync(new SubscribeTickerRequest(symbol), update =>
|
||||
{
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Binance.Net" Version="12.13.0" />
|
||||
<PackageReference Include="BitMart.Net" Version="3.11.2" />
|
||||
<PackageReference Include="JK.OKX.Net" Version="4.14.0" />
|
||||
<PackageReference Include="Binance.Net" Version="13.6.0" />
|
||||
<PackageReference Include="BitMart.Net" Version="4.5.0" />
|
||||
<PackageReference Include="JK.OKX.Net" Version="5.5.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user