Skip to content

Releases: JKorf/CryptoExchange.Net

CryptoExchange.Net Version 11.1.1

10 Apr 08:05

Choose a tag to compare

Added Reset functionality to rate limiter implementation
Added reset of rate limit per connection when connection is disconnected

CryptoExchange.Net Version 11.1.0

09 Apr 08:41

Choose a tag to compare

Updated WebSocket message routing improving performance for scenarios with multiple different subscriptions and topics
Added AddCommaSeparated helper for Enum value arrays to ParameterCollection
Added SharedRestRequestValidator for testing Shared interface implementations
Improved EnumConverter performance and removed string allocation for happy path
Fixed concurrency issue when using rate limit guard for multiple gates
Fixed CreateParamString extension method for ArrayParametersSerialization.Json
Fixed Shared GetOrderBookOptions and GetRecentTradeOptions base validations not being called
Fixed CallResult returning success result in AsDataless even if Error is set

CryptoExchange.Net Version 11.0.3

30 Mar 09:58

Choose a tag to compare

Updated Enum converter to only warn once per type for null/empty value for non-nullable enum property

CryptoExchange.Net Version 11.0.2

26 Mar 12:01

Choose a tag to compare

Updated SetOptions logic to allow calling on client without credentials

CryptoExchange.Net Version 11.0.1

24 Mar 13:38

Choose a tag to compare

Fixed CreateParamString method for arrays of value types

CryptoExchange.Net Version 11.0.0

23 Mar 13:37

Choose a tag to compare

Updated API credential logic, exchange implementation are expected to provide their own credentials implementation with ApiCredentials as base class
Removed ApiCredentials implementation used by most exchanges
Removed ApiCredentialsType Enum
Added CredentialSet base class and implementations for defining different API credentials
Added optional type param to AuthenticationProvider for the specific API credential type to improve type safety
Moved AuthenticationProvider/ApiCredentials from BaseApiClient to RestApiClient/SocketApiClient base classes
Added optional type params to RestApiClient/SocketApiClient base class to specify the AuthenticationProvider type and credentials type to improve type safety
Moved SetOptions/SetApiCredentials from BaseApiClient to RestApiClient/SocketApiClient
Extracted LibraryOptions<TRestOptions, TSocketOptions, TEnvironment> without TApiCredentials for libraries without API credentials
Removed ApiCredentials from ApiOptions, credentials can only be configured at library, rest or socket level
Added EnvironmentName property to RestApiClient/SocketApiClient
Added Unknown enum value to Shared interfaces SharedOrderStatus, SharedTransferStatus and SharedTriggerOrderStatus enums
Updated Enum converter to map value to an undefined Enum value instead of the first Enum value
Added support for checking for missing fields on RestIntegrationTest
Added Web3 signing utilities
Added BytesToHexString and HexToBytesString to ExchangeHelpers static class
Fixed bug where WebSocket connections are not reconnected when configuring Proxy with SetUpdates
Removed legacy CryptoBaseClient, CryptoRestClient and CryptoSocketClient

CryptoExchange.Net Version 10.8.0

06 Mar 08:26

Choose a tag to compare

Added RequestBodyContentEncoding and OmitContentTypeHeaderWithoutContent config to RestApiClient
Added ForcePathEndWithSlash setting to RequestDefinition
Added encoding parameter to SetContent on REST Request

CryptoExchange.Net Version 10.7.2

02 Mar 09:53

Choose a tag to compare

Added small overlap in UserDataTracker polling logic to account for API endpoints not immediately having the data available

CryptoExchange.Net Version 10.7.1

25 Feb 10:00

Choose a tag to compare

Fixed deadlock scenario in websocket connection when subscribe and handling message concurrently

CryptoExchange.Net Version 10.7.0

24 Feb 10:51

Choose a tag to compare

Added parsing of REST response data up to 128 characters for error responses
Added check for invalid json in JsonSocketMessageHandler
Added virtual GetTypeIdentifierNonJson for handling non-json messages in JsonSocketMessageHandler
Added additional options to Rest client options for configuring HttpClient
Updated INextPageToken parameter on Shared interfaces to PageRequest type, functionality unchanged
Added SupportsAscending and SupportsDescending properties to PaginatedEndpointOptions to expose supported data directions
Added MaxAge property to PaginatedEndpointOptions to expose the max age of data that can be requested
Added Direction property to Shared interfaces paginated requests to configure pagination data direction
Removed PaginationSupport property from PaginatedEndpointOptions, replaced by above new properties
Updated Shared GetTradeHistoryRequest EndTime property to be optional
Updated I(Futures/Spot)OrderRestClient.GetClosed(Futures/Spot)OrdersOptions from PaginatedEndpointOptions to GetClosedOrdersOptions
Updated I(Futures/Spot)OrderRestClient.Get(Futures/Spot)UserTradesOptions from PaginatedEndpointOptions to GetUserTradesOptions
Updated rate limiting PathStartFilter to ignore added or missing slash before the path
Updated internal lock for subscription to ReaderWriterLockSlim on SocketConnection
Removed check for OnlyTrackProvidedSymbols in combination with empty TrackedSymbols list
Fixed KlineTracker throwing exception if there is no data in the initial snapshot