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