UNPKG

@gala-chain/launchpad-mcp-server

Version:

MCP server for Gala Launchpad SDK with 55 tools + 14 slash commands - Production-grade AI agent integration with comprehensive validation, optimized performance, and 80%+ test coverage

177 lines 5.87 kB
"use strict"; /** * Default Value Utilities * * Centralized default values for tool parameters to eliminate magic numbers * and ensure consistency across 47 MCP tools. * * @see Phase 2.2 of refactoring plan */ Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultValues = exports.RESOLUTION_MAP = exports.DEFAULT_VOLUME_RESOLUTION = exports.DEFAULT_SORT_ORDER = exports.DEFAULT_POOL_TYPE = exports.DEFAULT_RBC_FEE_SLIPPAGE = exports.DEFAULT_SLIPPAGE_TOLERANCE = exports.MAX_LIMITS = exports.DEFAULT_LIMITS = exports.DEFAULT_PAGINATION = void 0; exports.applyPaginationDefaults = applyPaginationDefaults; exports.applyOperationPaginationDefaults = applyOperationPaginationDefaults; exports.applySlippageDefaults = applySlippageDefaults; exports.resolutionToSeconds = resolutionToSeconds; exports.dateToUnixTimestamp = dateToUnixTimestamp; const constraints_js_1 = require("./constraints.js"); // ============================================================================= // Pagination Defaults // ============================================================================= /** * Default pagination configuration */ exports.DEFAULT_PAGINATION = { page: 1, limit: 20, }; /** * Operation-specific default limits */ exports.DEFAULT_LIMITS = { trade: 20, user: 20, pool: 20, comment: 20, }; /** * Maximum limits per operation type (from MCP_CONSTRAINTS) */ exports.MAX_LIMITS = { trade: constraints_js_1.MCP_CONSTRAINTS.TRADE_LIMIT, // 20 user: constraints_js_1.MCP_CONSTRAINTS.USER_LIMIT, // 20 pool: constraints_js_1.MCP_CONSTRAINTS.POOL_LIMIT, // 100 comment: constraints_js_1.MCP_CONSTRAINTS.COMMENT_LIMIT, // 50 }; // ============================================================================= // Trading Defaults // ============================================================================= /** * Default slippage tolerance (1%) */ exports.DEFAULT_SLIPPAGE_TOLERANCE = 0.01; /** * Default reverse bonding curve fee slippage tolerance (1%) */ exports.DEFAULT_RBC_FEE_SLIPPAGE = 0.01; /** * Default pool type for fetchPools */ exports.DEFAULT_POOL_TYPE = 'recent'; /** * Default sort order */ exports.DEFAULT_SORT_ORDER = 'DESC'; // ============================================================================= // Volume Data Defaults // ============================================================================= /** * Default resolution for volume data (1 hour) */ exports.DEFAULT_VOLUME_RESOLUTION = '1h'; /** * Resolution mapping (string to seconds) */ exports.RESOLUTION_MAP = { '1m': 60, '5m': 300, '15m': 900, '1h': 3600, '4h': 14400, '1d': 86400, }; // ============================================================================= // Utility Functions // ============================================================================= /** * Applies default pagination values to args object * * @example * ```typescript * const params = applyPaginationDefaults(args); * // { page: 1, limit: 20, ...otherArgs } * ``` */ function applyPaginationDefaults(args, defaults = exports.DEFAULT_PAGINATION) { return { ...args, page: args.page ?? defaults.page ?? exports.DEFAULT_PAGINATION.page, limit: args.limit ?? defaults.limit ?? exports.DEFAULT_PAGINATION.limit, }; } /** * Applies operation-specific pagination defaults * * @example * ```typescript * const params = applyOperationPaginationDefaults(args, 'pool'); * // Uses default limit of 20 for pool operations * ``` */ function applyOperationPaginationDefaults(args, operationType) { return applyPaginationDefaults(args, { page: exports.DEFAULT_PAGINATION.page, limit: exports.DEFAULT_LIMITS[operationType], }); } /** * Applies default slippage values to trading args * * @example * ```typescript * const params = applySlippageDefaults(args); * // { slippageToleranceFactor: 0.01, maxAcceptableReverseBondingCurveFeeSlippageFactor: 0.01, ...args } * ``` */ function applySlippageDefaults(args, defaults = {}) { return { ...args, slippageToleranceFactor: args.slippageToleranceFactor ?? defaults.slippageToleranceFactor ?? exports.DEFAULT_SLIPPAGE_TOLERANCE, maxAcceptableReverseBondingCurveFeeSlippageFactor: args.maxAcceptableReverseBondingCurveFeeSlippageFactor ?? defaults.maxAcceptableReverseBondingCurveFeeSlippageFactor ?? exports.DEFAULT_RBC_FEE_SLIPPAGE, }; } /** * Converts volume resolution string to seconds * * @example * ```typescript * const seconds = resolutionToSeconds('1h', '1h'); * // 3600 * ``` */ function resolutionToSeconds(resolution, defaultResolution = exports.DEFAULT_VOLUME_RESOLUTION) { return exports.RESOLUTION_MAP[resolution ?? defaultResolution] ?? exports.RESOLUTION_MAP[defaultResolution]; } /** * Converts ISO 8601 date string to Unix timestamp (seconds) * * @example * ```typescript * const timestamp = dateToUnixTimestamp('2024-01-15T14:30:25Z'); * // 1705329025 * ``` */ function dateToUnixTimestamp(isoDate) { if (!isoDate) return undefined; return Math.floor(new Date(isoDate).getTime() / 1000); } // ============================================================================= // Export All // ============================================================================= exports.defaultValues = { pagination: exports.DEFAULT_PAGINATION, limits: exports.DEFAULT_LIMITS, maxLimits: exports.MAX_LIMITS, slippageTolerance: exports.DEFAULT_SLIPPAGE_TOLERANCE, rbcFeeSlippage: exports.DEFAULT_RBC_FEE_SLIPPAGE, poolType: exports.DEFAULT_POOL_TYPE, sortOrder: exports.DEFAULT_SORT_ORDER, volumeResolution: exports.DEFAULT_VOLUME_RESOLUTION, resolutionMap: exports.RESOLUTION_MAP, }; //# sourceMappingURL=default-values.js.map