1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-07-23 09:55:48 +00:00

Updated documentation and examples

This commit is contained in:
Jkorf 2024-10-22 16:20:27 +02:00
parent b40f72b1b0
commit ce35e30688
11 changed files with 238 additions and 36 deletions

View File

@ -5,20 +5,21 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Binance.Net" Version="10.5.0" /> <PackageReference Include="Binance.Net" Version="10.7.0" />
<PackageReference Include="Bitfinex.Net" Version="7.8.0" /> <PackageReference Include="Bitfinex.Net" Version="7.8.2" />
<PackageReference Include="BitMart.Net" Version="1.2.0" /> <PackageReference Include="BitMart.Net" Version="1.4.0" />
<PackageReference Include="Bybit.Net" Version="3.14.0" /> <PackageReference Include="Bybit.Net" Version="3.14.3" />
<PackageReference Include="CoinEx.Net" Version="7.7.0" /> <PackageReference Include="CoinEx.Net" Version="7.7.2" />
<PackageReference Include="GateIo.Net" Version="1.6.0" /> <PackageReference Include="CryptoCom.Net" Version="1.0.1" />
<PackageReference Include="JK.BingX.Net" Version="1.11.0" /> <PackageReference Include="GateIo.Net" Version="1.9.0" />
<PackageReference Include="JK.Bitget.Net" Version="1.10.0" /> <PackageReference Include="JK.BingX.Net" Version="1.11.2" />
<PackageReference Include="JK.Mexc.Net" Version="1.8.0" /> <PackageReference Include="JK.Bitget.Net" Version="1.10.4" />
<PackageReference Include="JK.OKX.Net" Version="2.4.0" /> <PackageReference Include="JK.Mexc.Net" Version="1.9.0" />
<PackageReference Include="JKorf.Coinbase.Net" Version="1.0.0" /> <PackageReference Include="JK.OKX.Net" Version="2.6.0" />
<PackageReference Include="JKorf.HTX.Net" Version="6.1.0" /> <PackageReference Include="JKorf.Coinbase.Net" Version="1.1.2" />
<PackageReference Include="KrakenExchange.Net" Version="4.12.0" /> <PackageReference Include="JKorf.HTX.Net" Version="6.2.0" />
<PackageReference Include="Kucoin.Net" Version="5.14.0" /> <PackageReference Include="KrakenExchange.Net" Version="5.0.2" />
<PackageReference Include="Kucoin.Net" Version="5.16.0" />
<PackageReference Include="Serilog.AspNetCore" Version="8.0.2" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.2" />
</ItemGroup> </ItemGroup>

View File

@ -7,6 +7,7 @@
@inject IBybitRestClient bybitClient @inject IBybitRestClient bybitClient
@inject ICoinbaseRestClient coinbaseClient @inject ICoinbaseRestClient coinbaseClient
@inject ICoinExRestClient coinexClient @inject ICoinExRestClient coinexClient
@inject ICryptoComRestClient cryptocomClient
@inject IGateIoRestClient gateioClient @inject IGateIoRestClient gateioClient
@inject IHTXRestClient huobiClient @inject IHTXRestClient huobiClient
@inject IKrakenRestClient krakenClient @inject IKrakenRestClient krakenClient
@ -33,6 +34,7 @@
var bybitTask = bybitClient.V5Api.ExchangeData.GetSpotTickersAsync("BTCUSDT"); var bybitTask = bybitClient.V5Api.ExchangeData.GetSpotTickersAsync("BTCUSDT");
var coinbaseTask = coinbaseClient.AdvancedTradeApi.ExchangeData.GetSymbolAsync("BTC-USDT"); var coinbaseTask = coinbaseClient.AdvancedTradeApi.ExchangeData.GetSymbolAsync("BTC-USDT");
var coinexTask = coinexClient.SpotApi.ExchangeData.GetTickerAsync("BTCUSDT"); var coinexTask = coinexClient.SpotApi.ExchangeData.GetTickerAsync("BTCUSDT");
var cryptocomTask = cryptocomClient.ExchangeApi.ExchangeData.GetTickersAsync("BTC_USDT");
var gateioTask = gateioClient.SpotApi.ExchangeData.GetTickersAsync("BTC_USDT"); var gateioTask = gateioClient.SpotApi.ExchangeData.GetTickersAsync("BTC_USDT");
var htxTask = huobiClient.SpotApi.ExchangeData.GetTickerAsync("btcusdt"); var htxTask = huobiClient.SpotApi.ExchangeData.GetTickerAsync("btcusdt");
var krakenTask = krakenClient.SpotApi.ExchangeData.GetTickerAsync("XBTUSD"); var krakenTask = krakenClient.SpotApi.ExchangeData.GetTickerAsync("XBTUSD");
@ -66,6 +68,9 @@
if (coinexTask.Result.Success) if (coinexTask.Result.Success)
_prices.Add("CoinEx", coinexTask.Result.Data.Ticker.LastPrice); _prices.Add("CoinEx", coinexTask.Result.Data.Ticker.LastPrice);
if (cryptocomTask.Result.Success)
_prices.Add("CryptoCom", cryptocomTask.Result.Data.First().LastPrice ?? 0);
if (gateioTask.Result.Success) if (gateioTask.Result.Success)
_prices.Add("GateIo", gateioTask.Result.Data.First().LastPrice); _prices.Add("GateIo", gateioTask.Result.Data.First().LastPrice);

View File

@ -7,6 +7,7 @@
@inject IBybitSocketClient bybitSocketClient @inject IBybitSocketClient bybitSocketClient
@inject ICoinbaseSocketClient coinbaseSocketClient @inject ICoinbaseSocketClient coinbaseSocketClient
@inject ICoinExSocketClient coinExSocketClient @inject ICoinExSocketClient coinExSocketClient
@inject ICryptoComSocketClient cryptocomSocketClient
@inject IGateIoSocketClient gateioSocketClient @inject IGateIoSocketClient gateioSocketClient
@inject IHTXSocketClient htxSocketClient @inject IHTXSocketClient htxSocketClient
@inject IKrakenSocketClient krakenSocketClient @inject IKrakenSocketClient krakenSocketClient
@ -41,9 +42,10 @@
bybitSocketClient.V5SpotApi.SubscribeToTickerUpdatesAsync("ETHBTC", data => UpdateData("Bybit", data.Data.LastPrice)), bybitSocketClient.V5SpotApi.SubscribeToTickerUpdatesAsync("ETHBTC", data => UpdateData("Bybit", data.Data.LastPrice)),
coinExSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETHBTC", data => UpdateData("CoinEx", data.Data.LastPrice)), coinExSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETHBTC", data => UpdateData("CoinEx", data.Data.LastPrice)),
coinbaseSocketClient.AdvancedTradeApi.SubscribeToTickerUpdatesAsync("ETH-BTC", data => UpdateData("Coinbase", data.Data.LastPrice)), coinbaseSocketClient.AdvancedTradeApi.SubscribeToTickerUpdatesAsync("ETH-BTC", data => UpdateData("Coinbase", data.Data.LastPrice)),
cryptocomSocketClient.ExchangeApi.SubscribeToTickerUpdatesAsync("ETH_BTC", data => UpdateData("CryptoCom", data.Data.LastPrice ?? 0)),
gateioSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETH_BTC", data => UpdateData("GateIo", data.Data.LastPrice)), gateioSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETH_BTC", data => UpdateData("GateIo", data.Data.LastPrice)),
htxSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ethbtc", data => UpdateData("HTX", data.Data.ClosePrice ?? 0)), htxSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ethbtc", data => UpdateData("HTX", data.Data.ClosePrice ?? 0)),
krakenSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETH/XBT", data => UpdateData("Kraken", data.Data.LastTrade.Price)), krakenSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETH/XBT", data => UpdateData("Kraken", data.Data.LastPrice)),
kucoinSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETH-BTC", data => UpdateData("Kucoin", data.Data.LastPrice ?? 0)), kucoinSocketClient.SpotApi.SubscribeToTickerUpdatesAsync("ETH-BTC", data => UpdateData("Kucoin", data.Data.LastPrice ?? 0)),
mexcSocketClient.SpotApi.SubscribeToMiniTickerUpdatesAsync("ETHBTC", data => UpdateData("Mexc", data.Data.LastPrice)), mexcSocketClient.SpotApi.SubscribeToMiniTickerUpdatesAsync("ETHBTC", data => UpdateData("Mexc", data.Data.LastPrice)),
okxSocketClient.UnifiedApi.ExchangeData.SubscribeToTickerUpdatesAsync("ETH-BTC", data => UpdateData("OKX", data.Data.LastPrice ?? 0)), okxSocketClient.UnifiedApi.ExchangeData.SubscribeToTickerUpdatesAsync("ETH-BTC", data => UpdateData("OKX", data.Data.LastPrice ?? 0)),

View File

@ -10,6 +10,7 @@
@using CoinEx.Net.Interfaces @using CoinEx.Net.Interfaces
@using Coinbase.Net.Interfaces @using Coinbase.Net.Interfaces
@using CryptoExchange.Net.Interfaces @using CryptoExchange.Net.Interfaces
@using CryptoCom.Net.Interfaces
@using GateIo.Net.Interfaces @using GateIo.Net.Interfaces
@using HTX.Net.Interfaces @using HTX.Net.Interfaces
@using Kraken.Net.Interfaces @using Kraken.Net.Interfaces
@ -25,6 +26,7 @@
@inject IBybitOrderBookFactory bybitFactory @inject IBybitOrderBookFactory bybitFactory
@inject ICoinbaseOrderBookFactory coinbaseFactory @inject ICoinbaseOrderBookFactory coinbaseFactory
@inject ICoinExOrderBookFactory coinExFactory @inject ICoinExOrderBookFactory coinExFactory
@inject ICryptoComOrderBookFactory cryptocomFactory
@inject IGateIoOrderBookFactory gateioFactory @inject IGateIoOrderBookFactory gateioFactory
@inject IHTXOrderBookFactory htxFactory @inject IHTXOrderBookFactory htxFactory
@inject IKrakenOrderBookFactory krakenFactory @inject IKrakenOrderBookFactory krakenFactory
@ -72,6 +74,7 @@
{ "Bybit", bybitFactory.Create("ETHBTC", Bybit.Net.Enums.Category.Spot) }, { "Bybit", bybitFactory.Create("ETHBTC", Bybit.Net.Enums.Category.Spot) },
{ "Coinbase", coinbaseFactory.Create("ETH-BTC", null) }, { "Coinbase", coinbaseFactory.Create("ETH-BTC", null) },
{ "CoinEx", coinExFactory.CreateSpot("ETHBTC") }, { "CoinEx", coinExFactory.CreateSpot("ETHBTC") },
{ "CryptoCom", cryptocomFactory.CreateExchange("ETH_BTC") },
{ "GateIo", gateioFactory.CreateSpot("ETH_BTC") }, { "GateIo", gateioFactory.CreateSpot("ETH_BTC") },
{ "HTX", htxFactory.CreateSpot("ethbtc") }, { "HTX", htxFactory.CreateSpot("ethbtc") },
{ "Kraken", krakenFactory.CreateSpot("ETH/XBT") }, { "Kraken", krakenFactory.CreateSpot("ETH/XBT") },

View File

@ -14,7 +14,7 @@
</li> </li>
<li class="nav-item px-3"> <li class="nav-item px-3">
<NavLink class="nav-link" href="SpotClient"> <NavLink class="nav-link" href="SpotClient">
Get data ISpotClient Get data SharedClient
</NavLink> </NavLink>
</li> </li>
<li class="nav-item px-3"> <li class="nav-item px-3">

View File

@ -43,6 +43,7 @@ namespace BlazorClient
services.AddBybit(); services.AddBybit();
services.AddCoinbase(); services.AddCoinbase();
services.AddCoinEx(); services.AddCoinEx();
services.AddCryptoCom();
services.AddGateIo(); services.AddGateIo();
services.AddHTX(); services.AddHTX();
services.AddKraken(); services.AddKraken();

View File

@ -16,6 +16,7 @@
@using Bybit.Net.Interfaces.Clients; @using Bybit.Net.Interfaces.Clients;
@using Coinbase.Net.Interfaces.Clients; @using Coinbase.Net.Interfaces.Clients;
@using CoinEx.Net.Interfaces.Clients; @using CoinEx.Net.Interfaces.Clients;
@using CryptoCom.Net.Interfaces.Clients;
@using GateIo.Net.Interfaces.Clients; @using GateIo.Net.Interfaces.Clients;
@using HTX.Net.Interfaces.Clients; @using HTX.Net.Interfaces.Clients;
@using Kraken.Net.Interfaces.Clients; @using Kraken.Net.Interfaces.Clients;

View File

@ -6,19 +6,20 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Binance.Net" Version="10.5.0" /> <PackageReference Include="Binance.Net" Version="10.7.0" />
<PackageReference Include="Bitfinex.Net" Version="7.8.0" /> <PackageReference Include="Bitfinex.Net" Version="7.8.2" />
<PackageReference Include="BitMart.Net" Version="1.2.0" /> <PackageReference Include="BitMart.Net" Version="1.4.0" />
<PackageReference Include="Bybit.Net" Version="3.14.0" /> <PackageReference Include="Bybit.Net" Version="3.14.3" />
<PackageReference Include="CoinEx.Net" Version="7.7.0" /> <PackageReference Include="CoinEx.Net" Version="7.7.2" />
<PackageReference Include="GateIo.Net" Version="1.6.0" /> <PackageReference Include="CryptoCom.Net" Version="1.0.1" />
<PackageReference Include="JK.Bitget.Net" Version="1.10.0" /> <PackageReference Include="GateIo.Net" Version="1.9.0" />
<PackageReference Include="JK.Mexc.Net" Version="1.8.0" /> <PackageReference Include="JK.Bitget.Net" Version="1.10.4" />
<PackageReference Include="JK.OKX.Net" Version="2.4.0" /> <PackageReference Include="JK.Mexc.Net" Version="1.9.0" />
<PackageReference Include="JKorf.Coinbase.Net" Version="1.0.0" /> <PackageReference Include="JK.OKX.Net" Version="2.6.0" />
<PackageReference Include="JKorf.HTX.Net" Version="6.1.0" /> <PackageReference Include="JKorf.Coinbase.Net" Version="1.1.2" />
<PackageReference Include="KrakenExchange.Net" Version="4.12.0" /> <PackageReference Include="JKorf.HTX.Net" Version="6.2.0" />
<PackageReference Include="Kucoin.Net" Version="5.14.0" /> <PackageReference Include="KrakenExchange.Net" Version="5.0.2" />
<PackageReference Include="Kucoin.Net" Version="5.16.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -27,7 +27,7 @@ namespace ConsoleClient.Exchanges
{ {
using var client = new BybitRestClient(); using var client = new BybitRestClient();
var result = await client.V5Api.Account.GetBalancesAsync(Bybit.Net.Enums.AccountType.Spot); var result = await client.V5Api.Account.GetBalancesAsync(Bybit.Net.Enums.AccountType.Spot);
return result.Data.List.First().Assets.ToDictionary(d => d.Asset, d => d.WalletBalance); return result.Data.List.First().Assets.ToDictionary(d => d.Asset, d => d.WalletBalance ?? 0);
} }
public async Task<IEnumerable<OpenOrder>> GetOpenOrders() public async Task<IEnumerable<OpenOrder>> GetOpenOrders()

View File

@ -8,9 +8,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Binance.Net" Version="10.5.0" /> <PackageReference Include="Binance.Net" Version="10.7.0" />
<PackageReference Include="BitMart.Net" Version="1.2.0" /> <PackageReference Include="BitMart.Net" Version="1.4.0" />
<PackageReference Include="JK.OKX.Net" Version="2.4.0" /> <PackageReference Include="JK.OKX.Net" Version="2.6.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -154,6 +154,7 @@
<tr><td>Coinbase</td><td><a href="https://github.com/JKorf/Coinbase.Net">JKorf/Coinbase.Net</a></td><td><a href="https://www.nuget.org/packages/JKorf.Coinbase.Net" target="_blank"><img src="https://img.shields.io/nuget/v/JKorf.Coinbase.net.svg?style=flat-square" /></a></td></tr> <tr><td>Coinbase</td><td><a href="https://github.com/JKorf/Coinbase.Net">JKorf/Coinbase.Net</a></td><td><a href="https://www.nuget.org/packages/JKorf.Coinbase.Net" target="_blank"><img src="https://img.shields.io/nuget/v/JKorf.Coinbase.net.svg?style=flat-square" /></a></td></tr>
<tr><td>CoinEx</td><td><a href="https://github.com/JKorf/CoinEx.Net">JKorf/CoinEx.Net</a></td><td><a href="https://www.nuget.org/packages/CoinEx.Net" target="_blank"><img src="https://img.shields.io/nuget/v/CoinEx.net.svg?style=flat-square" /></a></td></tr> <tr><td>CoinEx</td><td><a href="https://github.com/JKorf/CoinEx.Net">JKorf/CoinEx.Net</a></td><td><a href="https://www.nuget.org/packages/CoinEx.Net" target="_blank"><img src="https://img.shields.io/nuget/v/CoinEx.net.svg?style=flat-square" /></a></td></tr>
<tr><td>CoinGecko</td><td><a href="https://github.com/JKorf/CoinGecko.Net">JKorf/CoinGecko.Net</a></td><td><a href="https://www.nuget.org/packages/CoinGecko.Net" target="_blank"><img src="https://img.shields.io/nuget/v/CoinGecko.net.svg?style=flat-square" /></a></td></tr> <tr><td>CoinGecko</td><td><a href="https://github.com/JKorf/CoinGecko.Net">JKorf/CoinGecko.Net</a></td><td><a href="https://www.nuget.org/packages/CoinGecko.Net" target="_blank"><img src="https://img.shields.io/nuget/v/CoinGecko.net.svg?style=flat-square" /></a></td></tr>
<tr><td>Crypto.com</td><td><a href="https://github.com/JKorf/CryptoCom.Net">JKorf/CryptoCom.Net</a></td><td><a href="https://www.nuget.org/packages/CryptoCom.Net" target="_blank"><img src="https://img.shields.io/nuget/v/CryptoCom.net.svg?style=flat-square" /></a></td></tr>
<tr><td>Gate.io</td><td><a href="https://github.com/JKorf/GateIo.Net">JKorf/GateIo.Net</a></td><td><a href="https://www.nuget.org/packages/GateIo.Net" target="_blank"><img src="https://img.shields.io/nuget/v/GateIo.net.svg?style=flat-square" /></a></td></tr> <tr><td>Gate.io</td><td><a href="https://github.com/JKorf/GateIo.Net">JKorf/GateIo.Net</a></td><td><a href="https://www.nuget.org/packages/GateIo.Net" target="_blank"><img src="https://img.shields.io/nuget/v/GateIo.net.svg?style=flat-square" /></a></td></tr>
<tr><td>HTX</td><td><a href="https://github.com/JKorf/HTX.Net">JKorf/HTX.Net</a></td><td><a href="https://www.nuget.org/packages/JKorf.HTX.Net" target="_blank"><img src="https://img.shields.io/nuget/v/JKorf.HTX.net.svg?style=flat-square" /></a></td></tr> <tr><td>HTX</td><td><a href="https://github.com/JKorf/HTX.Net">JKorf/HTX.Net</a></td><td><a href="https://www.nuget.org/packages/JKorf.HTX.Net" target="_blank"><img src="https://img.shields.io/nuget/v/JKorf.HTX.net.svg?style=flat-square" /></a></td></tr>
<tr><td>Kraken</td><td><a href="https://github.com/JKorf/Kraken.Net">JKorf/Kraken.Net</a></td><td><a href="https://www.nuget.org/packages/KrakenExchange.Net" target="_blank"><img src="https://img.shields.io/nuget/v/KrakenExchange.net.svg?style=flat-square" /></a></td></tr> <tr><td>Kraken</td><td><a href="https://github.com/JKorf/Kraken.Net">JKorf/Kraken.Net</a></td><td><a href="https://www.nuget.org/packages/KrakenExchange.Net" target="_blank"><img src="https://img.shields.io/nuget/v/KrakenExchange.net.svg?style=flat-square" /></a></td></tr>
@ -251,6 +252,9 @@
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="install-coingecko-tab" data-toggle="tab" href="#install-coingecko" role="tab" aria-controls="install-coingecko" aria-selected="false">CoinGecko</a> <a class="nav-link" id="install-coingecko-tab" data-toggle="tab" href="#install-coingecko" role="tab" aria-controls="install-coingecko" aria-selected="false">CoinGecko</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="install-cryptocom-tab" data-toggle="tab" href="#install-cryptocom" role="tab" aria-controls="install-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="install-gateio-tab" data-toggle="tab" href="#install-gateio" role="tab" aria-controls="install-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="install-gateio-tab" data-toggle="tab" href="#install-gateio" role="tab" aria-controls="install-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -307,6 +311,9 @@
<pre><code>dotnet add package CoinEx.Net</code></pre> <pre><code>dotnet add package CoinEx.Net</code></pre>
<img src="assets/images/CoinExInstall.png" /> <img src="assets/images/CoinExInstall.png" />
</div> </div>
<div class="tab-pane fade" id="install-cryptocom" role="tabpanel" aria-labelledby="install-cryptocom-tab">
<pre><code>dotnet add package CryptoCom.Net</code></pre>
</div>
<div class="tab-pane fade" id="install-gateio" role="tabpanel" aria-labelledby="install-gateio-tab"> <div class="tab-pane fade" id="install-gateio" role="tabpanel" aria-labelledby="install-gateio-tab">
<pre><code>dotnet add package GateIo.Net</code></pre> <pre><code>dotnet add package GateIo.Net</code></pre>
</div> </div>
@ -373,6 +380,9 @@
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="di-coinex-tab" data-toggle="tab" href="#di-coinex" role="tab" aria-controls="di-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="di-coinex-tab" data-toggle="tab" href="#di-coinex" role="tab" aria-controls="di-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="di-cryptocom-tab" data-toggle="tab" href="#di-cryptocom" role="tab" aria-controls="di-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="di-gateio-tab" data-toggle="tab" href="#di-gateio" role="tab" aria-controls="di-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="di-gateio-tab" data-toggle="tab" href="#di-gateio" role="tab" aria-controls="di-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -422,6 +432,9 @@
</div> </div>
<div class="tab-pane fade" id="di-coinex" role="tabpanel" aria-labelledby="di-coinex-tab"> <div class="tab-pane fade" id="di-coinex" role="tabpanel" aria-labelledby="di-coinex-tab">
<pre><code>builder.Services.AddCoinEx();</code></pre> <pre><code>builder.Services.AddCoinEx();</code></pre>
</div>
<div class="tab-pane fade" id="di-cryptocom" role="tabpanel" aria-labelledby="di-cryptocom-tab">
<pre><code>builder.Services.AddCryptoCom();</code></pre>
</div> </div>
<div class="tab-pane fade" id="di-gateio" role="tabpanel" aria-labelledby="di-gateio-tab"> <div class="tab-pane fade" id="di-gateio" role="tabpanel" aria-labelledby="di-gateio-tab">
<pre><code>builder.Services.AddGateIo();</code></pre> <pre><code>builder.Services.AddGateIo();</code></pre>
@ -477,6 +490,9 @@
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="interfaces-coinex-tab" data-toggle="tab" href="#interfaces-coinex" role="tab" aria-controls="interfaces-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="interfaces-coinex-tab" data-toggle="tab" href="#interfaces-coinex" role="tab" aria-controls="interfaces-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="interfaces-cryptocom-tab" data-toggle="tab" href="#interfaces-cryptocom" role="tab" aria-controls="interfaces-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="interfaces-gateio-tab" data-toggle="tab" href="#interfaces-gateio" role="tab" aria-controls="interfaces-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="interfaces-gateio-tab" data-toggle="tab" href="#interfaces-gateio" role="tab" aria-controls="interfaces-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -775,6 +791,35 @@
</tr> </tr>
</table> </table>
</div> </div>
<div class="tab-pane fade" id="interfaces-cryptocom" role="tabpanel" aria-labelledby="interfaces-cryptocom-tab">
<table class="table table-bordered">
<tr><th>Interface</th><th>Description</th></tr>
<tr>
<td><code>ICryptoComRestClient</code></td>
<td>The client for accessing the Crypto.com REST API</td>
</tr>
<tr>
<td><code>ICryptoComSocketClient</code></td>
<td>The client for accessing the Crypto.com Websocket API</td>
</tr>
<tr>
<td><code>ICryptoComOrderBookFactory</code></td>
<td>A factory for creating SymbolOrderBook instances for the Crypto.com API</td>
</tr>
<tr>
<td><code>ICryptoRestClient</code></td>
<td>An aggregating client from which multiple different library REST clients can be accessed</td>
</tr>
<tr>
<td><code>ICryptoSocketClient</code></td>
<td>An aggregating client from which multiple different library Websocket clients can be accessed</td>
</tr>
<tr>
<td><code>ISharedClient</code></td>
<td>Various interfaces deriving from ISharedClient which can be used for common functionality</td>
</tr>
</table>
</div>
<div class="tab-pane fade" id="interfaces-gateio" role="tabpanel" aria-labelledby="interfaces-gateio-tab"> <div class="tab-pane fade" id="interfaces-gateio" role="tabpanel" aria-labelledby="interfaces-gateio-tab">
<table class="table table-bordered"> <table class="table table-bordered">
<tr><th>Interface</th><th>Description</th></tr> <tr><th>Interface</th><th>Description</th></tr>
@ -1004,6 +1049,9 @@
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="rest-coinex-tab" data-toggle="tab" href="#rest-coinex" role="tab" aria-controls="rest-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="rest-coinex-tab" data-toggle="tab" href="#rest-coinex" role="tab" aria-controls="rest-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="rest-cryptocom-tab" data-toggle="tab" href="#rest-cryptocom" role="tab" aria-controls="rest-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="rest-gateio-tab" data-toggle="tab" href="#rest-gateio" role="tab" aria-controls="rest-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="rest-gateio-tab" data-toggle="tab" href="#rest-gateio" role="tab" aria-controls="rest-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -1140,6 +1188,18 @@ if (!tickersResult.Success)
// Handle error, tickersResult.Error contains more information // Handle error, tickersResult.Error contains more information
} }
else else
{
// Handle data, tickersResult.Data will contain the actual data
}</code></pre>
</div>
<div class="tab-pane fade" id="rest-cryptocom" role="tabpanel" aria-labelledby="rest-cryptocom-tab">
<pre><code>var client = new CryptoComRestClient();
var tickersResult = await client.ExchangeApi.ExchangeData.GetTickersAsync();
if (!tickersResult.Success)
{
// Handle error, tickersResult.Error contains more information
}
else
{ {
// Handle data, tickersResult.Data will contain the actual data // Handle data, tickersResult.Data will contain the actual data
}</code></pre> }</code></pre>
@ -1317,6 +1377,9 @@ else
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="socket-coinex-tab" data-toggle="tab" href="#socket-coinex" role="tab" aria-controls="socket-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="socket-coinex-tab" data-toggle="tab" href="#socket-coinex" role="tab" aria-controls="socket-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="socket-cryptocom-tab" data-toggle="tab" href="#socket-cryptocom" role="tab" aria-controls="socket-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="socket-gateio-tab" data-toggle="tab" href="#socket-gateio" role="tab" aria-controls="socket-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="socket-gateio-tab" data-toggle="tab" href="#socket-gateio" role="tab" aria-controls="socket-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -1434,6 +1497,17 @@ if (!subscribeResult.Success)
{ {
// Handle error, subscribeResult.Error contains more information on why the subscription failed // Handle error, subscribeResult.Error contains more information on why the subscription failed
} }
// Subscribing was successfull, the data will now be streamed into the data handler</code></pre>
</div>
<div class="tab-pane fade" id="socket-cryptocom" role="tabpanel" aria-labelledby="socket-cryptocom-tab">
<pre><code>var client = new CryptoComSocketClient();
var subscribeResult = await client.ExchangeApi.SubscribeToTickerUpdatesAsync("ETH_USD", update => {
// Handle the data update, update.Data will contain the actual data
});
if (!subscribeResult.Success)
{
// Handle error, subscribeResult.Error contains more information on why the subscription failed
}
// Subscribing was successfull, the data will now be streamed into the data handler</code></pre> // Subscribing was successfull, the data will now be streamed into the data handler</code></pre>
</div> </div>
<div class="tab-pane fade" id="socket-gateio" role="tabpanel" aria-labelledby="socket-gateio-tab"> <div class="tab-pane fade" id="socket-gateio" role="tabpanel" aria-labelledby="socket-gateio-tab">
@ -1681,6 +1755,9 @@ var binanceTriggered = CheckForTrigger(lastBinanceTicker);</code></pre>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="shared-gateio-tab" data-toggle="tab" href="#shared-gateio" role="tab" aria-controls="shared-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="shared-gateio-tab" data-toggle="tab" href="#shared-gateio" role="tab" aria-controls="shared-gateio" aria-selected="false">GateIo</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="shared-cryptocom-tab" data-toggle="tab" href="#shared-cryptocom" role="tab" aria-controls="shared-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="shared-htx-tab" data-toggle="tab" href="#shared-htx" role="tab" aria-controls="shared-htx" aria-selected="false">HTX</a> <a class="nav-link" id="shared-htx-tab" data-toggle="tab" href="#shared-htx" role="tab" aria-controls="shared-htx" aria-selected="false">HTX</a>
</li> </li>
@ -1798,7 +1875,14 @@ var usdFuturesSharedRestClient = coinExRestClient.FuturesApi.SharedClient;
// Futures API common functionality socket client // Futures API common functionality socket client
var usdFuturesSharedSocketClient = coinExSocketClient.FuturesApi.SharedClient;</code></pre> var usdFuturesSharedSocketClient = coinExSocketClient.FuturesApi.SharedClient;</code></pre>
</div> </div>
<div class="tab-pane fade" id="shared-cryptocom" role="tabpanel" aria-labelledby="shared-cryptocom-tab">
<pre><code>// Spot/Futures API common functionality rest client
var sharedRestClients = cryptoComRestClient.ExchangeApi.SharedClient;
// Spot/Futures API common functionality socket client
var sharedSocketClient = cryptoComSocketClient.ExchangeApi.SharedClient;</code></pre>
</div>
<div class="tab-pane fade" id="shared-gateio" role="tabpanel" aria-labelledby="shared-gateio-tab"> <div class="tab-pane fade" id="shared-gateio" role="tabpanel" aria-labelledby="shared-gateio-tab">
<pre><code>// Spot API common functionality rest client <pre><code>// Spot API common functionality rest client
var spotSharedRestClients = gateioRestClient.SpotApi.SharedClient; var spotSharedRestClients = gateioRestClient.SpotApi.SharedClient;
@ -2127,6 +2211,9 @@ options.ApiCredentials = new ApiCredentials("YOUR PUBLIC KEY", "YOUR PRIVATE KEY
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="options-coinex-tab" data-toggle="tab" href="#options-coinex" role="tab" aria-controls="options-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="options-coinex-tab" data-toggle="tab" href="#options-coinex" role="tab" aria-controls="options-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="options-cryptocom-tab" data-toggle="tab" href="#options-cryptocom" role="tab" aria-controls="options-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="options-gateio-tab" data-toggle="tab" href="#options-gateio" role="tab" aria-controls="options-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="options-gateio-tab" data-toggle="tab" href="#options-gateio" role="tab" aria-controls="options-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -2227,6 +2314,15 @@ options.ApiCredentials = new ApiCredentials("YOUR PUBLIC KEY", "YOUR PRIVATE KEY
</div> </div>
<div class="tab-pane fade" id="options-coinex" role="tabpanel" aria-labelledby="options-coinex-tab"> <div class="tab-pane fade" id="options-coinex" role="tabpanel" aria-labelledby="options-coinex-tab">
<pre><code>builder.Services.AddCoinEx( <pre><code>builder.Services.AddCoinEx(
restOptions => {
restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
},
socketOptions => {
socketOptions.RequestTimeout = TimeSpan.FromSeconds(10);
});</code></pre>
</div>
<div class="tab-pane fade" id="options-cryptocom" role="tabpanel" aria-labelledby="options-cryptocom-tab">
<pre><code>builder.Services.AddCryptoCom(
restOptions => { restOptions => {
restOptions.RequestTimeout = TimeSpan.FromSeconds(30); restOptions.RequestTimeout = TimeSpan.FromSeconds(30);
}, },
@ -2325,6 +2421,9 @@ options.ApiCredentials = new ApiCredentials("YOUR PUBLIC KEY", "YOUR PRIVATE KEY
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="options-coinex-tab" data-toggle="tab" href="#options-constr-coinex" role="tab" aria-controls="options-constr-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="options-coinex-tab" data-toggle="tab" href="#options-constr-coinex" role="tab" aria-controls="options-constr-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="options-cryptocom-tab" data-toggle="tab" href="#options-constr-cryptocom" role="tab" aria-controls="options-constr-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="options-gateio-tab" data-toggle="tab" href="#options-constr-gateio" role="tab" aria-controls="options-constr-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="options-gateio-tab" data-toggle="tab" href="#options-constr-gateio" role="tab" aria-controls="options-constr-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -2401,6 +2500,12 @@ options.ApiCredentials = new ApiCredentials("YOUR PUBLIC KEY", "YOUR PRIVATE KEY
</div> </div>
<div class="tab-pane fade" id="options-constr-coinex" role="tabpanel" aria-labelledby="options-coinex-tab"> <div class="tab-pane fade" id="options-constr-coinex" role="tabpanel" aria-labelledby="options-coinex-tab">
<pre><code>var client = new CoinExRestClient(opts => <pre><code>var client = new CoinExRestClient(opts =>
{
opts.RequestTimeout = TimeSpan.FromSeconds(30);
});</code></pre>
</div>
<div class="tab-pane fade" id="options-constr-cryptocom" role="tabpanel" aria-labelledby="options-cryptocom-tab">
<pre><code>var client = new CryptoComRestClient(opts =>
{ {
opts.RequestTimeout = TimeSpan.FromSeconds(30); opts.RequestTimeout = TimeSpan.FromSeconds(30);
});</code></pre> });</code></pre>
@ -2475,6 +2580,9 @@ options.ApiCredentials = new ApiCredentials("YOUR PUBLIC KEY", "YOUR PRIVATE KEY
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="options-coinex-tab" data-toggle="tab" href="#options-default-coinex" role="tab" aria-controls="options-default-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="options-coinex-tab" data-toggle="tab" href="#options-default-coinex" role="tab" aria-controls="options-default-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="options-cryptocom-tab" data-toggle="tab" href="#options-default-cryptocom" role="tab" aria-controls="options-default-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="options-gateio-tab" data-toggle="tab" href="#options-default-gateio" role="tab" aria-controls="options-default-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="options-gateio-tab" data-toggle="tab" href="#options-default-gateio" role="tab" aria-controls="options-default-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -2557,6 +2665,13 @@ var client = new CoinGeckoRestClient();</code></pre>
options.RequestTimeout = TimeSpan.FromSeconds(30); options.RequestTimeout = TimeSpan.FromSeconds(30);
}); });
var client = new CoinExRestClient();</code></pre> var client = new CoinExRestClient();</code></pre>
</div>
<div class="tab-pane fade" id="options-default-cryptocom" role="tabpanel" aria-labelledby="options-cryptocom-tab">
<pre><code>CryptoComRestClient.SetDefaultOptions(options =>
{
options.RequestTimeout = TimeSpan.FromSeconds(30);
});
var client = new CryptoComRestClient();</code></pre>
</div> </div>
<div class="tab-pane fade" id="options-default-gateio" role="tabpanel" aria-labelledby="options-gateio-tab"> <div class="tab-pane fade" id="options-default-gateio" role="tabpanel" aria-labelledby="options-gateio-tab">
<pre><code>GateIoRestClient.SetDefaultOptions(options => <pre><code>GateIoRestClient.SetDefaultOptions(options =>
@ -2810,6 +2925,9 @@ var client = new OKXRestClient();</code></pre>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="book-coinex-tab" data-toggle="tab" href="#book-coinex" role="tab" aria-controls="book-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="book-coinex-tab" data-toggle="tab" href="#book-coinex" role="tab" aria-controls="book-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="book-cryptocom-tab" data-toggle="tab" href="#book-cryptocom" role="tab" aria-controls="book-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="book-gateio-tab" data-toggle="tab" href="#book-gateio" role="tab" aria-controls="book-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="book-gateio-tab" data-toggle="tab" href="#book-gateio" role="tab" aria-controls="book-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -2957,6 +3075,19 @@ if (!startResult.Success)
} }
// Book has successfully started and synchronized // Book has successfully started and synchronized
// Once no longer needed you can stop the live sync functionality by calling StopAsync()
await book.StopAsync();
</code></pre>
</div>
<div class="tab-pane fade" id="book-cryptocom" role="tabpanel" aria-labelledby="book-cryptocom-tab">
<pre><code>var book = new CryptoComSpotSymbolOrderBook("ETH_USDT");
var startResult = await book.StartAsync();
if (!startResult.Success)
{
// Handle error, error info available in startResult.Error
}
// Book has successfully started and synchronized
// Once no longer needed you can stop the live sync functionality by calling StopAsync() // Once no longer needed you can stop the live sync functionality by calling StopAsync()
await book.StopAsync(); await book.StopAsync();
</code></pre> </code></pre>
@ -3204,6 +3335,9 @@ var binanceClient = new BinanceRestClient(new HttpClient(), logFactory, options
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="limit-coinbase-tab" data-toggle="tab" href="#limit-coinbase" role="tab" aria-controls="limit-coinbase" aria-selected="false">Coinbase</a> <a class="nav-link" id="limit-coinbase-tab" data-toggle="tab" href="#limit-coinbase" role="tab" aria-controls="limit-coinbase" aria-selected="false">Coinbase</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="limit-cryptocom-tab" data-toggle="tab" href="#limit-cryptocom" role="tab" aria-controls="limit-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="limit-gateio-tab" data-toggle="tab" href="#limit-gateio" role="tab" aria-controls="limit-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="limit-gateio-tab" data-toggle="tab" href="#limit-gateio" role="tab" aria-controls="limit-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -3304,6 +3438,20 @@ var binanceClient = new BinanceRestClient(new HttpClient(), logFactory, options
<p>To be notified of when a rate limit is hit the static <code>CoinbaseExchange.RateLimiter</code> exposes an event which triggers when a rate limit is reached</p> <p>To be notified of when a rate limit is hit the static <code>CoinbaseExchange.RateLimiter</code> exposes an event which triggers when a rate limit is reached</p>
<pre><code>CoinbaseExchange.RateLimiter.RateLimitTriggered += (rateLimitEvent) => Console.WriteLine("Limit triggered: " + rateLimitEvent); <pre><code>CoinbaseExchange.RateLimiter.RateLimitTriggered += (rateLimitEvent) => Console.WriteLine("Limit triggered: " + rateLimitEvent);
</code></pre>
</div>
<div class="tab-pane fade" id="limit-cryptocom" role="tabpanel" aria-labelledby="limit-cryptocom-tab">
<pre><code>services.AddCryptoCom(x =>
x.RatelimiterEnabled = true;
x.RateLimitingBehaviour = RateLimitingBehaviour.Wait;
}, x =>
{
x.RatelimiterEnabled = true;
x.RateLimitingBehaviour = RateLimitingBehaviour.Wait;
});</code></pre>
<p>To be notified of when a rate limit is hit the static <code>CryptoComExchange.RateLimiter</code> exposes an event which triggers when a rate limit is reached</p>
<pre><code>CryptoComExchange.RateLimiter.RateLimitTriggered += (rateLimitEvent) => Console.WriteLine("Limit triggered: " + rateLimitEvent);
</code></pre> </code></pre>
</div> </div>
<div class="tab-pane fade" id="limit-gateio" role="tabpanel" aria-labelledby="limit-gateio-tab"> <div class="tab-pane fade" id="limit-gateio" role="tabpanel" aria-labelledby="limit-gateio-tab">
@ -3472,6 +3620,9 @@ var responseSource = result.DataSource;</code></pre>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-symbols-coinex-tab" data-toggle="tab" href="#example-symbols-coinex" role="tab" aria-controls="example-symbols-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="example-symbols-coinex-tab" data-toggle="tab" href="#example-symbols-coinex" role="tab" aria-controls="example-symbols-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="example-symbols-cryptocom-tab" data-toggle="tab" href="#example-symbols-cryptocom" role="tab" aria-controls="example-symbols-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-symbols-gateio-tab" data-toggle="tab" href="#example-symbols-gateio" role="tab" aria-controls="example-symbols-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="example-symbols-gateio-tab" data-toggle="tab" href="#example-symbols-gateio" role="tab" aria-controls="example-symbols-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -3519,6 +3670,9 @@ await exchangeRestClient.Binance.SpotApi.ExchangeData.GetExchangeInfoAsync();</c
</div> </div>
<div class="tab-pane fade" id="example-symbols-coinex" role="tabpanel" aria-labelledby="example-symbols-coinex-tab"> <div class="tab-pane fade" id="example-symbols-coinex" role="tabpanel" aria-labelledby="example-symbols-coinex-tab">
<pre><code>await coinExClient.SpotApiV2.ExchangeData.GetSymbolsAsync();</code></pre> <pre><code>await coinExClient.SpotApiV2.ExchangeData.GetSymbolsAsync();</code></pre>
</div>
<div class="tab-pane fade" id="example-symbols-cryptocom" role="tabpanel" aria-labelledby="example-symbols-cryptocom-tab">
<pre><code>await cryptoComClient.ExchangeApi.ExchangeData.GetSymbolsAsync();</code></pre>
</div> </div>
<div class="tab-pane fade" id="example-symbols-gateio" role="tabpanel" aria-labelledby="example-symbols-gateio-tab"> <div class="tab-pane fade" id="example-symbols-gateio" role="tabpanel" aria-labelledby="example-symbols-gateio-tab">
<pre><code>await gateIoClient.SpotApi.ExchangeData.GetSymbolsAsync();</code></pre> <pre><code>await gateIoClient.SpotApi.ExchangeData.GetSymbolsAsync();</code></pre>
@ -3583,6 +3737,9 @@ await exchangeRestClient.Binance.SpotApi.ExchangeData.GetExchangeInfoAsync();</c
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-ticker-coinex-tab" data-toggle="tab" href="#example-ticker-coinex" role="tab" aria-controls="example-ticker-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="example-ticker-coinex-tab" data-toggle="tab" href="#example-ticker-coinex" role="tab" aria-controls="example-ticker-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="example-ticker-cryptocom-tab" data-toggle="tab" href="#example-ticker-cryptocom" role="tab" aria-controls="example-ticker-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-ticker-gateio-tab" data-toggle="tab" href="#example-ticker-gateio" role="tab" aria-controls="example-ticker-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="example-ticker-gateio-tab" data-toggle="tab" href="#example-ticker-gateio" role="tab" aria-controls="example-ticker-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -3631,6 +3788,9 @@ await coinbaseClient.AdvancedTradeApi.ExchangeData.GetSymbolAsync("BTC-USDT");</
</div> </div>
<div class="tab-pane fade" id="example-ticker-coinex" role="tabpanel" aria-labelledby="example-ticker-coinex-tab"> <div class="tab-pane fade" id="example-ticker-coinex" role="tabpanel" aria-labelledby="example-ticker-coinex-tab">
<pre><code>await coinExClient.SpotApiV2.ExchangeData.GetTickersAsync(new[] { "BTCUSDT" });</code></pre> <pre><code>await coinExClient.SpotApiV2.ExchangeData.GetTickersAsync(new[] { "BTCUSDT" });</code></pre>
</div>
<div class="tab-pane fade" id="example-ticker-cryptocom" role="tabpanel" aria-labelledby="example-ticker-cryptocom-tab">
<pre><code>await cryptoComClient.ExchangeApi.ExchangeData.GetTickersAsync("BTC_USDT");</code></pre>
</div> </div>
<div class="tab-pane fade" id="example-ticker-gateio" role="tabpanel" aria-labelledby="example-ticker-gateio-tab"> <div class="tab-pane fade" id="example-ticker-gateio" role="tabpanel" aria-labelledby="example-ticker-gateio-tab">
<pre><code>await gateioClient.SpotApi.ExchangeData.GetTickersAsync("BTC_USDT");</code></pre> <pre><code>await gateioClient.SpotApi.ExchangeData.GetTickersAsync("BTC_USDT");</code></pre>
@ -3695,6 +3855,9 @@ await coinbaseClient.AdvancedTradeApi.ExchangeData.GetSymbolAsync("BTC-USDT");</
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-balances-coinex-tab" data-toggle="tab" href="#example-balances-coinex" role="tab" aria-controls="example-balances-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="example-balances-coinex-tab" data-toggle="tab" href="#example-balances-coinex" role="tab" aria-controls="example-balances-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="example-balances-cryptocom-tab" data-toggle="tab" href="#example-balances-cryptocom" role="tab" aria-controls="example-balances-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-balances-gateio-tab" data-toggle="tab" href="#example-balances-gateio" role="tab" aria-controls="example-balances-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="example-balances-gateio-tab" data-toggle="tab" href="#example-balances-gateio" role="tab" aria-controls="example-balances-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -3742,6 +3905,9 @@ await exchangeRestClient.Binance.SpotApi.Account.GetBalancesAsync();</code></pre
</div> </div>
<div class="tab-pane fade" id="example-balances-coinex" role="tabpanel" aria-labelledby="example-balances-coinex-tab"> <div class="tab-pane fade" id="example-balances-coinex" role="tabpanel" aria-labelledby="example-balances-coinex-tab">
<pre><code>await coinExClient.SpotApiV2.Account.GetBalancesAsync();</code></pre> <pre><code>await coinExClient.SpotApiV2.Account.GetBalancesAsync();</code></pre>
</div>
<div class="tab-pane fade" id="example-balances-cryptocom" role="tabpanel" aria-labelledby="example-balances-cryptocom-tab">
<pre><code>await cryptoComClient.ExchangeApi.Account.GetBalancesAsync();</code></pre>
</div> </div>
<div class="tab-pane fade" id="example-balances-gateio" role="tabpanel" aria-labelledby="example-balances-gateio-tab"> <div class="tab-pane fade" id="example-balances-gateio" role="tabpanel" aria-labelledby="example-balances-gateio-tab">
<pre><code>await gateioClient.SpotApi.Account.GetBalancesAsync();</code></pre> <pre><code>await gateioClient.SpotApi.Account.GetBalancesAsync();</code></pre>
@ -3810,6 +3976,9 @@ var result = await htxClient.SpotApi.Account.GetBalancesAsync();</code></pre>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-place-coinex-tab" data-toggle="tab" href="#example-place-coinex" role="tab" aria-controls="example-place-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="example-place-coinex-tab" data-toggle="tab" href="#example-place-coinex" role="tab" aria-controls="example-place-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="example-place-cryptocom-tab" data-toggle="tab" href="#example-place-cryptocom" role="tab" aria-controls="example-place-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-place-gateio-tab" data-toggle="tab" href="#example-place-gateio" role="tab" aria-controls="example-place-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="example-place-gateio-tab" data-toggle="tab" href="#example-place-gateio" role="tab" aria-controls="example-place-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -3857,6 +4026,9 @@ await exchangeRestClient.Binance.SpotApi.Trading.PlaceOrderAsync("BTCUSDT", Orde
</div> </div>
<div class="tab-pane fade" id="example-place-coinex" role="tabpanel" aria-labelledby="example-place-coinex-tab"> <div class="tab-pane fade" id="example-place-coinex" role="tabpanel" aria-labelledby="example-place-coinex-tab">
<pre><code>await coinExClient.SpotApiV2.Trading.PlaceOrderAsync("BTCUSDT", AccountType.Spot, OrderSide.Buy, OrderTypeV2.Limit, 0.1m, 50000);</code></pre> <pre><code>await coinExClient.SpotApiV2.Trading.PlaceOrderAsync("BTCUSDT", AccountType.Spot, OrderSide.Buy, OrderTypeV2.Limit, 0.1m, 50000);</code></pre>
</div>
<div class="tab-pane fade" id="example-place-cryptocom" role="tabpanel" aria-labelledby="example-place-cryptocom-tab">
<pre><code>await cryptoComClient.ExchangeApi.Trading.PlaceOrderAsync("BTC_USDT", OrderSide.Buy, OrderType.Limit, 0.1m, price: 50000, timeInForce: TimeInForce.GoodTillCancel);</code></pre>
</div> </div>
<div class="tab-pane fade" id="example-place-gateio" role="tabpanel" aria-labelledby="example-place-gateio-tab"> <div class="tab-pane fade" id="example-place-gateio" role="tabpanel" aria-labelledby="example-place-gateio-tab">
<pre><code>await gateIoClient.SpotApi.Trading.PlaceOrderAsync("BTC_USDT", OrderSide.Buy, NewOrderType.Limit, 0.1m, 50000, timeInForce: TimeInForce.GoodTillCancel);</code></pre> <pre><code>await gateIoClient.SpotApi.Trading.PlaceOrderAsync("BTC_USDT", OrderSide.Buy, NewOrderType.Limit, 0.1m, 50000, timeInForce: TimeInForce.GoodTillCancel);</code></pre>
@ -3925,6 +4097,9 @@ var result = await htxClient.SpotApi.Trading.PlaceOrderAsync(account.Id, "BTCUSD
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-stream-ticker-coinex-tab" data-toggle="tab" href="#example-stream-ticker-coinex" role="tab" aria-controls="example-stream-ticker-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="example-stream-ticker-coinex-tab" data-toggle="tab" href="#example-stream-ticker-coinex" role="tab" aria-controls="example-stream-ticker-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="example-stream-ticker-cryptocom-tab" data-toggle="tab" href="#example-stream-ticker-cryptocom" role="tab" aria-controls="example-stream-ticker-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-stream-ticker-gateio-tab" data-toggle="tab" href="#example-stream-ticker-gateio" role="tab" aria-controls="example-stream-ticker-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="example-stream-ticker-gateio-tab" data-toggle="tab" href="#example-stream-ticker-gateio" role="tab" aria-controls="example-stream-ticker-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -3989,6 +4164,11 @@ await exchangeSocketClient.Binance.SpotApi.ExchangeData.SubscribeToTickerUpdates
<div class="tab-pane fade" id="example-stream-ticker-coinex" role="tabpanel" aria-labelledby="example-stream-ticker-coinex-tab"> <div class="tab-pane fade" id="example-stream-ticker-coinex" role="tabpanel" aria-labelledby="example-stream-ticker-coinex-tab">
<pre><code>await coinExSocketClient.SpotApiV2.SubscribeToTickerUpdatesAsync(new[] { "ETHUSDT" }, data => { <pre><code>await coinExSocketClient.SpotApiV2.SubscribeToTickerUpdatesAsync(new[] { "ETHUSDT" }, data => {
// Handle update // Handle update
});</code></pre>
</div>
<div class="tab-pane fade" id="example-stream-ticker-cryptocom" role="tabpanel" aria-labelledby="example-stream-ticker-cryptocom-tab">
<pre><code>await cryptoComSocketClient.ExchangeApi.SubscribeToTickerUpdatesAsync("ETH_USDT", data => {
// Handle update
});</code></pre> });</code></pre>
</div> </div>
<div class="tab-pane fade" id="example-stream-ticker-gateio" role="tabpanel" aria-labelledby="example-stream-ticker-gateio-tab"> <div class="tab-pane fade" id="example-stream-ticker-gateio" role="tabpanel" aria-labelledby="example-stream-ticker-gateio-tab">
@ -4044,7 +4224,7 @@ await exchangeSocketClient.Binance.SpotApi.ExchangeData.SubscribeToTickerUpdates
<a class="nav-link active" id="example-stream-order-cc-tab" data-toggle="tab" href="#example-stream-order-cc" role="tab" aria-controls="example-stream-order-cc" aria-selected="true">CryptoClients</a> <a class="nav-link active" id="example-stream-order-cc-tab" data-toggle="tab" href="#example-stream-order-cc" role="tab" aria-controls="example-stream-order-cc" aria-selected="true">CryptoClients</a>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-stream-order-binance-tab" data-toggle="tab" href="#example-stream-order-binance" role="tab" aria-controls="example-stream-order-binance" aria-selected="true">Binance</a> <a class="nav-link" id="example-stream-order-binance-tab" data-toggle="tab" href="#example-stream-order-binance" role="tab" aria-controls="example-stream-order-binance" aria-selected="false">Binance</a>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-stream-order-bitfinex-tab" data-toggle="tab" href="#example-stream-order-bingx" role="tab" aria-controls="example-stream-order-bingx" aria-selected="false">BingX</a> <a class="nav-link" id="example-stream-order-bitfinex-tab" data-toggle="tab" href="#example-stream-order-bingx" role="tab" aria-controls="example-stream-order-bingx" aria-selected="false">BingX</a>
@ -4067,6 +4247,9 @@ await exchangeSocketClient.Binance.SpotApi.ExchangeData.SubscribeToTickerUpdates
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-stream-order-coinex-tab" data-toggle="tab" href="#example-stream-order-coinex" role="tab" aria-controls="example-stream-order-coinex" aria-selected="false">Coinex</a> <a class="nav-link" id="example-stream-order-coinex-tab" data-toggle="tab" href="#example-stream-order-coinex" role="tab" aria-controls="example-stream-order-coinex" aria-selected="false">Coinex</a>
</li> </li>
<li class="nav-item" role="presentation">
<a class="nav-link" id="example-stream-order-cryptocom-tab" data-toggle="tab" href="#example-stream-order-cryptocom" role="tab" aria-controls="example-stream-order-cryptocom" aria-selected="false">Crypto.com</a>
</li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a class="nav-link" id="example-stream-order-gateio-tab" data-toggle="tab" href="#example-stream-order-gateio" role="tab" aria-controls="example-stream-order-gateio" aria-selected="false">GateIo</a> <a class="nav-link" id="example-stream-order-gateio-tab" data-toggle="tab" href="#example-stream-order-gateio" role="tab" aria-controls="example-stream-order-gateio" aria-selected="false">GateIo</a>
</li> </li>
@ -4108,7 +4291,7 @@ _ = Task.Run(async () => {
} }
});</code></pre> });</code></pre>
</div> </div>
<div class="tab-pane fade show active" id="example-stream-order-binance" role="tabpanel" aria-labelledby="example-stream-order-binance-tab"> <div class="tab-pane fade" id="example-stream-order-binance" role="tabpanel" aria-labelledby="example-stream-order-binance-tab">
<pre><code>// Retrieve the listen key <pre><code>// Retrieve the listen key
var listenKey = await binanceClient.SpotApi.Account.StartUserStreamAsync(); var listenKey = await binanceClient.SpotApi.Account.StartUserStreamAsync();
@ -4174,6 +4357,11 @@ _ = Task.Run(async () => {
<div class="tab-pane fade" id="example-stream-order-coinex" role="tabpanel" aria-labelledby="example-stream-order-coinex-tab"> <div class="tab-pane fade" id="example-stream-order-coinex" role="tabpanel" aria-labelledby="example-stream-order-coinex-tab">
<pre><code>await coinExSocketClient.SpotApiV2.SubscribeToOrderUpdatesAsync(data => { <pre><code>await coinExSocketClient.SpotApiV2.SubscribeToOrderUpdatesAsync(data => {
// Handle update // Handle update
});</code></pre>
</div>
<div class="tab-pane fade" id="example-stream-order-cryptocom" role="tabpanel" aria-labelledby="example-stream-order-cryptocom-tab">
<pre><code>await cryptoComSocketClient.ExchangeApi.SubscribeToOrderUpdatesAsync(data => {
// Handle update
});</code></pre> });</code></pre>
</div> </div>
<div class="tab-pane fade" id="example-stream-order-gateio" role="tabpanel" aria-labelledby="example-stream-order-gateio-tab"> <div class="tab-pane fade" id="example-stream-order-gateio" role="tabpanel" aria-labelledby="example-stream-order-gateio-tab">