diff --git a/CryptoExchange.Net/ExtensionMethods.cs b/CryptoExchange.Net/ExtensionMethods.cs index cd2b30a7..857a0f94 100644 --- a/CryptoExchange.Net/ExtensionMethods.cs +++ b/CryptoExchange.Net/ExtensionMethods.cs @@ -388,15 +388,14 @@ namespace CryptoExchange.Net services.AddTransient(x => (ITradeHistoryRestClient)client(x)!); if (typeof(IWithdrawalRestClient).IsAssignableFrom(typeof(T))) services.AddTransient(x => (IWithdrawalRestClient)client(x)!); - if (typeof(IWithdrawRest).IsAssignableFrom(typeof(T))) - services.AddTransient(x => (IWithdrawRest)client(x)!); + if (typeof(IWithdrawRestClient).IsAssignableFrom(typeof(T))) + services.AddTransient(x => (IWithdrawRestClient)client(x)!); if (typeof(IFeeRestClient).IsAssignableFrom(typeof(T))) services.AddTransient(x => (IFeeRestClient)client(x)!); if (typeof(IBookTickerRestClient).IsAssignableFrom(typeof(T))) services.AddTransient(x => (IBookTickerRestClient)client(x)!); - if (typeof(ITransferRest).IsAssignableFrom(typeof(T))) - services.AddTransient(x => (ITransferRest)client(x)!); - + if (typeof(ITransferRestClient).IsAssignableFrom(typeof(T))) + services.AddTransient(x => (ITransferRestClient)client(x)!); if (typeof(ISpotOrderRestClient).IsAssignableFrom(typeof(T))) services.AddTransient(x => (ISpotOrderRestClient)client(x)!); if (typeof(ISpotSymbolRestClient).IsAssignableFrom(typeof(T))) diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Operations/PlaceSpotOrderSocketOptions.cs b/CryptoExchange.Net/SharedApis/Models/Options/Operations/PlaceSpotOrderSocketOptions.cs index d0c4ef40..e0ce3e7b 100644 --- a/CryptoExchange.Net/SharedApis/Models/Options/Operations/PlaceSpotOrderSocketOptions.cs +++ b/CryptoExchange.Net/SharedApis/Models/Options/Operations/PlaceSpotOrderSocketOptions.cs @@ -7,7 +7,7 @@ namespace CryptoExchange.Net.SharedApis /// /// Options for placing a new spot order /// - public class PlaceSpotOrderSocketOptions : CapabilityOptions + public class PlaceSpotOrderSocketOptions : PlaceSpotOrderOptions { /// public override string Description => "Place a new spot order over a socket connection"; @@ -16,34 +16,8 @@ namespace CryptoExchange.Net.SharedApis /// /// ctor /// - public PlaceSpotOrderSocketOptions(string exchange) : base(exchange, true, nameof(IPlaceSpotOrderSocket.PlaceSpotOrderAsync)) + public PlaceSpotOrderSocketOptions(string exchange) : base(exchange) { } - - /// - /// Validate a request - /// - public override Error? ValidateRequest( - PlaceSpotOrderRequest request, - IPlaceSpotOrderSocket client) - { - if (request.Symbol!.TradingMode != TradingMode.Spot) - return ArgumentError.Invalid("TradingMode", $"TradingMode.{request.Symbol!.TradingMode} is not supported, should be Spot"); - - if (request.OrderType == SharedOrderType.Other) - throw new ArgumentException("OrderType can't be `Other`", nameof(request.OrderType)); - - if (!client.SpotSupportedOrderTypes.Contains(request.OrderType)) - return ArgumentError.Invalid(nameof(PlaceSpotOrderRequest.OrderType), "Order type not supported"); - - if (request.TimeInForce != null && !client.SpotSupportedTimeInForce.Contains(request.TimeInForce.Value)) - return ArgumentError.Invalid(nameof(PlaceSpotOrderRequest.TimeInForce), "Order time in force not supported"); - - var quantityError = client.SpotSupportedOrderQuantity.Validate(request.Side, request.OrderType, request.Quantity); - if (quantityError != null) - return quantityError; - - return base.ValidateRequest(request, client); - } } }