From fde8d6353b890622e406184d410baa8e1d5ac190 Mon Sep 17 00:00:00 2001 From: JKorf Date: Tue, 7 May 2024 09:43:37 +0200 Subject: [PATCH] Fixed SetApiCredentials not correctly being used by rate limiter causing exception --- CryptoExchange.Net/Authentication/AuthenticationProvider.cs | 2 +- CryptoExchange.Net/Clients/RestApiClient.cs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CryptoExchange.Net/Authentication/AuthenticationProvider.cs b/CryptoExchange.Net/Authentication/AuthenticationProvider.cs index 4d75476..e13e0fb 100644 --- a/CryptoExchange.Net/Authentication/AuthenticationProvider.cs +++ b/CryptoExchange.Net/Authentication/AuthenticationProvider.cs @@ -21,7 +21,7 @@ namespace CryptoExchange.Net.Authentication /// /// Provided credentials /// - protected readonly ApiCredentials _credentials; + protected internal readonly ApiCredentials _credentials; /// /// Byte representation of the secret diff --git a/CryptoExchange.Net/Clients/RestApiClient.cs b/CryptoExchange.Net/Clients/RestApiClient.cs index 7ef595b..1b0ab6c 100644 --- a/CryptoExchange.Net/Clients/RestApiClient.cs +++ b/CryptoExchange.Net/Clients/RestApiClient.cs @@ -235,7 +235,7 @@ namespace CryptoExchange.Net.Clients if (ClientOptions.RateLimiterEnabled) { - var limitResult = await definition.RateLimitGate.ProcessAsync(_logger, requestId, RateLimitItemType.Request, definition, baseAddress, ApiOptions.ApiCredentials?.Key ?? ClientOptions.ApiCredentials?.Key, requestWeight, ClientOptions.RateLimitingBehaviour, cancellationToken).ConfigureAwait(false); + var limitResult = await definition.RateLimitGate.ProcessAsync(_logger, requestId, RateLimitItemType.Request, definition, baseAddress, AuthenticationProvider?._credentials.Key, requestWeight, ClientOptions.RateLimitingBehaviour, cancellationToken).ConfigureAwait(false); if (!limitResult) return new CallResult(limitResult.Error!); } @@ -249,7 +249,7 @@ namespace CryptoExchange.Net.Clients if (ClientOptions.RateLimiterEnabled) { - var limitResult = await definition.RateLimitGate.ProcessSingleAsync(_logger, requestId, RateLimitItemType.Request, definition, baseAddress, ApiOptions.ApiCredentials?.Key ?? ClientOptions.ApiCredentials?.Key, requestWeight, ClientOptions.RateLimitingBehaviour, cancellationToken).ConfigureAwait(false); + var limitResult = await definition.RateLimitGate.ProcessSingleAsync(_logger, requestId, RateLimitItemType.Request, definition, baseAddress, AuthenticationProvider?._credentials.Key, requestWeight, ClientOptions.RateLimitingBehaviour, cancellationToken).ConfigureAwait(false); if (!limitResult) return new CallResult(limitResult.Error!); } @@ -513,7 +513,7 @@ namespace CryptoExchange.Net.Clients if (ClientOptions.RateLimiterEnabled) { - var limitResult = await gate.ProcessAsync(_logger, requestId, RateLimitItemType.Request, new RequestDefinition(uri.AbsolutePath.TrimStart('/'), method) { Authenticated = signed }, uri.Host, ApiOptions.ApiCredentials?.Key ?? ClientOptions.ApiCredentials?.Key, requestWeight, ClientOptions.RateLimitingBehaviour, cancellationToken).ConfigureAwait(false); + var limitResult = await gate.ProcessAsync(_logger, requestId, RateLimitItemType.Request, new RequestDefinition(uri.AbsolutePath.TrimStart('/'), method) { Authenticated = signed }, uri.Host, AuthenticationProvider?._credentials.Key, requestWeight, ClientOptions.RateLimitingBehaviour, cancellationToken).ConfigureAwait(false); if (!limitResult) return new CallResult(limitResult.Error!); }