1
0
mirror of https://github.com/JKorf/CryptoExchange.Net.git synced 2026-10-19 09:31:43 +00:00

Compare commits

..

3 Commits

Author SHA1 Message Date
Jkorf f1ad4e9920 Updated to version 13.2.1 2026-10-19 08:52:09 +02:00
Jkorf ee53dfe139 Fixed subscription without any predefined routes failing to subscribe 2026-10-19 08:39:39 +02:00
Jkorf 186f30d4b5 Fix test validation failing with empty body string 2026-10-19 08:39:18 +02:00
6 changed files with 21 additions and 7 deletions
+3 -3
View File
@@ -6,9 +6,9 @@
<PackageId>CryptoExchange.Net</PackageId>
<Authors>JKorf</Authors>
<Description>CryptoExchange.Net is a base library which is used to implement different cryptocurrency (exchange) API's. It provides a standardized way of implementing different API's, which results in a very similar experience for users of the API implementations.</Description>
<PackageVersion>13.2.0</PackageVersion>
<AssemblyVersion>13.2.0</AssemblyVersion>
<FileVersion>13.2.0</FileVersion>
<PackageVersion>13.2.1</PackageVersion>
<AssemblyVersion>13.2.1</AssemblyVersion>
<FileVersion>13.2.1</FileVersion>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageTags>OKX;OKX.Net;Mexc;Mexc.Net;Kucoin;Kucoin.Net;Kraken;Kraken.Net;Huobi;Huobi.Net;CoinEx;CoinEx.Net;Bybit;Bybit.Net;Bitget;Bitget.Net;Bitfinex;Bitfinex.Net;Binance;Binance.Net;CryptoCurrency;CryptoCurrency Exchange;CryptoExchange.Net</PackageTags>
<RepositoryType>git</RepositoryType>
@@ -1083,6 +1083,10 @@ namespace CryptoExchange.Net.Sockets.Default
/// </summary>
protected bool IsCoveredByEarlierSubscription(Subscription subscription)
{
if (subscription.MessageRouter.Routes.Length == 0)
// Can be subscription which only knows what to listen to after receiving the subscribe response, for example Bitfinex
return false;
foreach (var other in _listeners.OfType<Subscription>())
{
if (other == subscription)
@@ -168,12 +168,18 @@ namespace CryptoExchange.Net.Testing
{
// Validate request body
Dictionary<string, object> bodyParameters;
if (result.RequestBody!.StartsWith("{") || result.RequestBody.StartsWith("["))
if (string.IsNullOrEmpty(result.RequestBody))
{
bodyParameters = new Dictionary<string, object>();
}
else if (result.RequestBody!.StartsWith("{") || result.RequestBody.StartsWith("["))
{
// Json
bodyParameters = JsonSerializer.Deserialize<Dictionary<string, object>>(result.RequestBody!)!;
}
else
{
// Form data
var splitKvp = result.RequestBody.Split('&');
bodyParameters = splitKvp.Select(x => x.Split('=')).ToDictionary(x => x[0], x => (object)x[1]);
}
+4
View File
@@ -127,6 +127,10 @@ Various:
* PlatformInfo now required support environment names in the constructor
## Release notes
* Version 13.2.1 - 19 Oct 2026
* Fixed subscription without any predefined routes failing to subscribe
* Fixed test validation failing with empty body string
* Version 13.2.0 - 13 Oct 2026
* Added Shared API ISubscribeFundingInfoSocket
* Added DelayAfterConnect to SocketApiOptions
+2 -2
View File
@@ -1,8 +1,8 @@
# CryptoExchange.Net — full AI context
Library: CryptoExchange.Net
Library version: 13.2.0
CryptoExchange.Net package version: 13.2.0
Library version: 13.2.1
CryptoExchange.Net package version: 13.2.1
Language: C#/.NET
Targets: netstandard2.0, netstandard2.1, net8.0, net9.0, net10.0
+1 -1
View File
@@ -2,7 +2,7 @@
> Base C#/.NET library used by 28+ cryptocurrency exchange clients. It standardizes REST, WebSocket, authentication, rate limiting, results, and exchange-agnostic Shared APIs.
CryptoExchange.Net is not an exchange client by itself. Install exchange-specific packages such as Binance.Net, Bybit.Net, JK.OKX.Net, Kraken.Net, or Coinbase.Net, or install `CryptoClients.Net` for the bundle. Current release: 13.2.0. Targets netstandard2.0, netstandard2.1, net8.0, net9.0, and net10.0; Native AOT is supported.
CryptoExchange.Net is not an exchange client by itself. Install exchange-specific packages such as Binance.Net, Bybit.Net, JK.OKX.Net, Kraken.Net, or Coinbase.Net, or install `CryptoClients.Net` for the bundle. Current release: 13.2.1. Targets netstandard2.0, netstandard2.1, net8.0, net9.0, and net10.0; Native AOT is supported.
## Shared API V2