void ValidateExchangeParams(BrokerExchangeParams model) { if (!string.IsNullOrWhiteSpace(model.FiatCurrency)) { if (model.BuyFiatAmount <= 0 && model.SellFiatAmount <= 0) { throw new ApiException(ErrorCode.FiatAmountEmpty); } if (model.SellFiatAmount > 0 && model.BuyFiatAmount > 0) { throw new ApiException(ErrorCode.OnlyOneAmountAllowed); } if (model.SellAmount > 0 || model.BuyAmount > 0) { throw new ApiException(ErrorCode.OnlyOneAmountAllowed); } } else { if (model.SellAmount > 0 && model.BuyAmount > 0) { throw new ApiException(ErrorCode.OnlyOneAmountAllowed); } if (model.SellAmount <= 0 && model.BuyAmount <= 0) { throw new ApiException(ErrorCode.InvalidAmount); } } if (string.IsNullOrWhiteSpace(model.SellCurrency)) { throw new ApiException(ErrorCode.SellCurrencyEmpty); } if (!_rateCache.IsSupported(model.SellCurrency)) { throw new ApiException(ErrorCode.SellCurrencyNotSupported, model.SellCurrency); } if (string.IsNullOrWhiteSpace(model.BuyCurrency)) { throw new ApiException(ErrorCode.BuyCurrencyEmpty); } if (!((model.BuyCurrency == "GRFT" && model.SellCurrency == "BTC") || (model.BuyCurrency == "GRFT" && model.SellCurrency == "ETH") || (model.BuyCurrency == "USDT" && model.SellCurrency == "GRFT"))) { throw new ApiException(ErrorCode.CurrencyPairNotSupported, $"{model.SellCurrency}->{model.BuyCurrency}"); } if (string.IsNullOrWhiteSpace(model.WalletAddress)) { throw new ApiException(ErrorCode.WalletEmpty); } }
void ValidateSaleParams(BrokerSaleParams model) { if (model.SaleAmount <= 0) { throw new ApiException(ErrorCode.InvalidAmount); } if (string.IsNullOrWhiteSpace(model.SaleCurrency)) { throw new ApiException(ErrorCode.SaleCurrencyEmpty); } if (model.SaleCurrency != "USD") { throw new ApiException(ErrorCode.SaleCurrencyNotSupported, model.SaleCurrency); } if (string.IsNullOrWhiteSpace(model.PayCurrency)) { throw new ApiException(ErrorCode.PayCurrencyEmpty); } if (!_rateCache.IsSupported(model.PayCurrency)) { throw new ApiException(ErrorCode.PayCurrencyNotSupported, model.PayCurrency); } if (model.ServiceProviderFee < 0 || model.ServiceProviderFee > _settings.MaxServiceProviderFee) { throw new ApiException(ErrorCode.InvalidServiceProviderFee); } if (model.ServiceProviderFee > 0 && string.IsNullOrWhiteSpace(model.ServiceProviderWallet)) { throw new ApiException(ErrorCode.ServiceProviderWalletEmpty); } if (string.IsNullOrWhiteSpace(model.MerchantWallet)) { throw new ApiException(ErrorCode.MerchantWalletEmpty); } }