@mcpfun/mcp-server-ccxt
Version:
High-performance CCXT MCP server for cryptocurrency exchange integration
99 lines (98 loc) • 3 kB
TypeScript
/**
* Adaptive rate limiter that adjusts based on API responses
*
* 根据API响应进行调整的自适应速率限制器
*/
export declare class AdaptiveRateLimiter {
private defaultMinInterval;
private defaultConcurrency;
private lastResponse;
private successiveErrors;
private minInterval;
private queues;
/**
* Create a new rate limiter
* @param defaultMinInterval Default minimum interval between requests (ms)
* @param defaultConcurrency Default maximum concurrent requests
*
* 创建新的速率限制器
* @param defaultMinInterval 请求之间的默认最小间隔(毫秒)
* @param defaultConcurrency 默认最大并发请求数
*/
constructor(defaultMinInterval?: number, defaultConcurrency?: number);
/**
* Get or create a queue for an exchange
* @param exchange Exchange ID
* @returns Queue instance
*
* 获取或创建交易所队列
* @param exchange 交易所ID
* @returns 队列实例
*/
private getQueue;
/**
* Execute a function with rate limiting
* @param exchange Exchange ID
* @param fn Function to execute
* @returns Result of the function
*
* 执行带速率限制的函数
* @param exchange 交易所ID
* @param fn 要执行的函数
* @returns 函数的结果
*/
execute<T>(exchange: string, fn: () => Promise<T>): Promise<any>;
/**
* Wait for permission to make a request
* @param exchange Exchange ID
*
* 等待获得请求许可
* @param exchange 交易所ID
*/
private acquirePermission;
/**
* Record a successful request
* @param exchange Exchange ID
*
* 记录成功请求
* @param exchange 交易所ID
*/
private recordSuccess;
/**
* Record a failed request and increase backoff
* @param exchange Exchange ID
*
* 记录失败请求并增加退避
* @param exchange 交易所ID
*/
private recordError;
/**
* Set the minimum interval for an exchange
* @param exchange Exchange ID
* @param interval New minimum interval in ms
*
* 设置交易所的最小间隔
* @param exchange 交易所ID
* @param interval 新的最小间隔(毫秒)
*/
setMinInterval(exchange: string, interval: number): void;
/**
* Set concurrency for a specific exchange
* @param exchange Exchange ID
* @param concurrency Number of concurrent requests
*
* 设置特定交易所的并发度
* @param exchange 交易所ID
* @param concurrency 并发请求数
*/
setConcurrency(exchange: string, concurrency: number): void;
/**
* Get statistics for all exchange queues
* @returns Statistics object
*
* 获取所有交易所队列的统计信息
* @returns 统计对象
*/
getStats(): Record<string, any>;
}
export declare const rateLimiter: AdaptiveRateLimiter;