using CryptoExchange.Net.Authentication; using CryptoExchange.Net.Objects; using CryptoExchange.Net.Objects.Options; using CryptoExchange.Net.SharedApis; using System; namespace CryptoExchange.Net.Interfaces { /// /// Base api client /// public interface IBaseApiClient { /// /// Base address /// string BaseAddress { get; } /// /// Whether or not API credentials have been configured for this client. Does not check the credentials are actually valid. /// bool Authenticated { get; } /// /// Format a base and quote asset to an exchange accepted symbol /// /// The base asset /// The quote asset /// The trading mode /// The deliver date for a delivery futures symbol /// string FormatSymbol(string baseAsset, string quoteAsset, TradingMode tradingMode, DateTime? deliverDate = null); /// /// Set the API credentials for this API client /// /// /// void SetApiCredentials(T credentials) where T : ApiCredentials; /// /// Set new options. Note that when using a proxy this should be provided in the options even when already set before or it will be reset. /// /// Api credentials type /// Options to set void SetOptions(UpdateOptions options) where T : ApiCredentials; } }