/// <summary>
        /// Adds a rate limiter to the client. There are 2 choices, the <see cref="RateLimiterTotal"/> and the <see cref="RateLimiterPerEndpoint"/>.
        /// </summary>
        /// <param name="limiter">The limiter to add</param>
        public void AddRateLimiter(IRateLimiter limiter)
        {
            var rateLimiters = RateLimiters.ToList();

            rateLimiters.Add(limiter);
            RateLimiters = rateLimiters;
        }
 public KunaApiClientOptions(bool isPro = false, bool newVersion = true) : base(newVersion ? "https://api.kuna.io/v3/" : "https://kuna.io/api/v2/")
 {
     IsProAccount = isPro;
     if (newVersion)
     {
         RateLimiters.Add(new RateLimiter().AddTotalRateLimit(isPro ? 1200 : 600, TimeSpan.FromMinutes(1)));
     }
 }
        /// <summary>
        /// Adds a rate limiter to the client. There are 2 choices, the <see cref="RateLimiterTotal"/> and the <see cref="RateLimiterPerEndpoint"/>.
        /// </summary>
        /// <param name="limiter">The limiter to add</param>
        public void AddRateLimiter(IRateLimiter limiter)
        {
            if (limiter == null)
            {
                throw new ArgumentNullException(nameof(limiter));
            }

            var rateLimiters = RateLimiters.ToList();

            rateLimiters.Add(limiter);
            RateLimiters = rateLimiters;
        }
 public P2pClientOptions(string baseAddress = "https://api.p2pb2b.io/api") : base(baseAddress)
 {
     RateLimiters.Add(new RateLimiterTotal(5, TimeSpan.FromSeconds(1)));
     RateLimiters.Add(new RateLimiterTotal(100, TimeSpan.FromMinutes(1)));
     RateLimiters.Add(new RateLimiterPerEndpoint(10, TimeSpan.FromSeconds(1)));
 }