@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
JavaScript
;
/**
* 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