Releases: JKorf/CryptoExchange.Net
CryptoExchange.Net Version 11.1.1
Added Reset functionality to rate limiter implementation
Added reset of rate limit per connection when connection is disconnected
CryptoExchange.Net Version 11.1.0
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
Updated Enum converter to only warn once per type for null/empty value for non-nullable enum property
CryptoExchange.Net Version 11.0.2
Updated SetOptions logic to allow calling on client without credentials
CryptoExchange.Net Version 11.0.1
Fixed CreateParamString method for arrays of value types
CryptoExchange.Net Version 11.0.0
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
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
Added small overlap in UserDataTracker polling logic to account for API endpoints not immediately having the data available
CryptoExchange.Net Version 10.7.1
Fixed deadlock scenario in websocket connection when subscribe and handling message concurrently
CryptoExchange.Net Version 10.7.0
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