UNPKG

@gala-chain/launchpad-mcp-server

Version:

MCP server for Gala Launchpad - 102 tools (pool management, event watchers, GSwap DEX trading, price history, token creation, wallet management, DEX pool discovery, liquidity positions, token locks, locked token queries, composite pool data, cross-chain b

114 lines 4.15 kB
"use strict"; /** * Token Lock/Unlock Prompts * * Slash commands for locking and unlocking tokens (staking, escrow, vesting) */ Object.defineProperty(exports, "__esModule", { value: true }); exports.lockPrompts = exports.unlockTokenPrompt = exports.lockTokenPrompt = void 0; const mcpToolNames_js_1 = require("../constants/mcpToolNames.js"); const validation_js_1 = require("../utils/validation.js"); const handlerHelpers_js_1 = require("./utils/handlerHelpers.js"); const textTemplates_js_1 = require("./utils/textTemplates.js"); /** * Lock Token - Lock tokens on GalaChain */ exports.lockTokenPrompt = { name: 'galachain-launchpad:lock-token', description: 'Lock tokens on GalaChain (for staking, escrow, vesting)', arguments: [ { name: 'tokenName', description: 'Token name (e.g., anime)', required: true, }, { name: 'amount', description: 'Amount of tokens to lock', required: true, }, { name: 'lockAuthority', description: 'Address that can unlock (defaults to caller)', required: false, }, { name: 'expires', description: 'Expiration timestamp in ms (optional auto-release)', required: false, }, { name: 'name', description: 'Lock name/identifier for matching during unlock', required: false, }, ], handler: (args) => { (0, validation_js_1.validateTokenName)(args.tokenName, 'tokenName'); (0, validation_js_1.validateNumericAmount)(args.amount, 'amount'); const parameters = { token: `Token: ${args.tokenName}`, amount: `Amount: ${args.amount}`, }; if (args.lockAuthority) { parameters.lockAuthority = `Lock Authority: ${args.lockAuthority}`; } if (args.expires) { parameters.expires = `Expires: ${new Date(Number(args.expires)).toISOString()}`; } if (args.name) { parameters.lockName = `Lock Name: ${args.name}`; } return (0, handlerHelpers_js_1.createPromptResponse)((0, textTemplates_js_1.createSimpleOperationText)({ operation: 'Lock tokens on GalaChain.', parameters, toolName: mcpToolNames_js_1.MCP_TOOLS.LOCK_TOKEN, actionDescription: 'execute the lock operation', displayFormat: 'Display the transaction details and confirmation.', })); }, }; /** * Unlock Token - Unlock previously locked tokens */ exports.unlockTokenPrompt = { name: 'galachain-launchpad:unlock-token', description: 'Unlock previously locked tokens on GalaChain', arguments: [ { name: 'tokenName', description: 'Token name (e.g., anime)', required: true, }, { name: 'amount', description: 'Amount of tokens to unlock', required: true, }, { name: 'name', description: 'Lock name to match (if used during lock)', required: false, }, ], handler: (args) => { (0, validation_js_1.validateTokenName)(args.tokenName, 'tokenName'); (0, validation_js_1.validateNumericAmount)(args.amount, 'amount'); const parameters = { token: `Token: ${args.tokenName}`, amount: `Amount: ${args.amount}`, }; if (args.name) { parameters.lockName = `Lock Name: ${args.name}`; } return (0, handlerHelpers_js_1.createPromptResponse)((0, textTemplates_js_1.createSimpleOperationText)({ operation: 'Unlock previously locked tokens on GalaChain.', parameters, toolName: mcpToolNames_js_1.MCP_TOOLS.UNLOCK_TOKEN, actionDescription: 'execute the unlock operation', displayFormat: 'Display the transaction details and confirmation.', })); }, }; exports.lockPrompts = [exports.lockTokenPrompt, exports.unlockTokenPrompt]; //# sourceMappingURL=locks.js.map