@dbotx/conditional-order-mcp-server
Version:
Conditional Order MCP Server - Supports creating and managing conditional orders, automatically executing trades based on specific conditions
111 lines • 6.21 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetOrdersRequestSchema = exports.ToggleOrderRequestSchema = exports.UpdateDevOrderRequestSchema = exports.UpdateMigrateOrderRequestSchema = exports.CreateDevOrderRequestSchema = exports.CreateMigrateOrderRequestSchema = exports.TradeTypeSchema = exports.PairTypeSchema = exports.ChainSchema = void 0;
const zod_1 = require("zod");
// Helper function to get default values from environment variables
function getEnvDefault(envKey, defaultValue, transform) {
const envValue = process.env[envKey];
if (envValue === undefined) {
return defaultValue;
}
if (transform) {
try {
return transform(envValue);
}
catch (e) {
console.warn(`Warning: Invalid value for ${envKey}, using default value`);
return defaultValue;
}
}
return envValue;
}
// Base type definitions
exports.ChainSchema = zod_1.z.enum(['solana']);
exports.PairTypeSchema = zod_1.z.enum(['pump', 'raydium_amm']);
exports.TradeTypeSchema = zod_1.z.enum(['sell']);
// Request to create a sell-on-open order
exports.CreateMigrateOrderRequestSchema = zod_1.z.object({
chain: exports.ChainSchema.default(getEnvDefault('DBOT_CHAIN', 'solana')),
pairType: exports.PairTypeSchema.default('pump'),
pair: zod_1.z.string().min(1),
walletId: zod_1.z.string().min(1),
tradeType: exports.TradeTypeSchema.default('sell'),
amountOrPercent: zod_1.z.number().min(0).max(1),
customFeeAndTip: zod_1.z.boolean().default(getEnvDefault('DBOT_CUSTOM_FEE_AND_TIP', false, (v) => v === 'true')),
priorityFee: zod_1.z.string().default(getEnvDefault('DBOT_PRIORITY_FEE', '')),
jitoEnabled: zod_1.z.boolean().default(getEnvDefault('DBOT_JITO_ENABLED', true, (v) => v === 'true')),
jitoTip: zod_1.z.number().min(0).default(getEnvDefault('DBOT_JITO_TIP', 0.001, Number)),
expireDelta: zod_1.z.number().int().min(0).max(432000000).default(getEnvDefault('DBOT_EXPIRE_DELTA', 360000000, Number)),
maxSlippage: zod_1.z.number().min(0).max(1).default(getEnvDefault('DBOT_MAX_SLIPPAGE', 0.1, Number)),
concurrentNodes: zod_1.z.number().int().min(1).max(3).default(getEnvDefault('DBOT_CONCURRENT_NODES', 2, Number)),
retries: zod_1.z.number().int().min(0).max(10).default(getEnvDefault('DBOT_RETRIES', 1, Number)),
});
// Request to create a follow-dev-sell order
exports.CreateDevOrderRequestSchema = zod_1.z.object({
chain: exports.ChainSchema.default(getEnvDefault('DBOT_CHAIN', 'solana')),
pairType: exports.PairTypeSchema.default('pump'),
pair: zod_1.z.string().min(1),
walletId: zod_1.z.string().min(1),
tradeType: exports.TradeTypeSchema.default('sell'),
minDevSellPercent: zod_1.z.number().min(0).max(1).default(getEnvDefault('DBOT_MIN_DEV_SELL_PERCENT', 0.5, Number)),
amountOrPercent: zod_1.z.number().min(0).max(1),
customFeeAndTip: zod_1.z.boolean().default(getEnvDefault('DBOT_CUSTOM_FEE_AND_TIP', false, (v) => v === 'true')),
priorityFee: zod_1.z.string().default(getEnvDefault('DBOT_PRIORITY_FEE', '')),
jitoEnabled: zod_1.z.boolean().default(getEnvDefault('DBOT_JITO_ENABLED', true, (v) => v === 'true')),
jitoTip: zod_1.z.number().min(0).default(getEnvDefault('DBOT_JITO_TIP', 0.001, Number)),
expireDelta: zod_1.z.number().int().min(0).max(432000000).default(getEnvDefault('DBOT_EXPIRE_DELTA', 360000000, Number)),
maxSlippage: zod_1.z.number().min(0).max(1).default(getEnvDefault('DBOT_MAX_SLIPPAGE', 0.1, Number)),
concurrentNodes: zod_1.z.number().int().min(1).max(3).default(getEnvDefault('DBOT_CONCURRENT_NODES', 2, Number)),
retries: zod_1.z.number().int().min(0).max(10).default(getEnvDefault('DBOT_RETRIES', 1, Number)),
});
// Request to update a sell-on-open order
exports.UpdateMigrateOrderRequestSchema = zod_1.z.object({
id: zod_1.z.string().min(1),
chain: exports.ChainSchema.default('solana'),
pairType: exports.PairTypeSchema.default('pump'),
pair: zod_1.z.string().min(1),
walletId: zod_1.z.string().min(1),
tradeType: exports.TradeTypeSchema.default('sell'),
amountOrPercent: zod_1.z.number().min(0).max(1),
customFeeAndTip: zod_1.z.boolean().default(false),
priorityFee: zod_1.z.string().default(''),
jitoEnabled: zod_1.z.boolean().default(true),
jitoTip: zod_1.z.number().min(0).default(0.001),
expireDelta: zod_1.z.number().int().min(0).max(432000000).default(360000000),
maxSlippage: zod_1.z.number().min(0).max(1).default(0.1),
concurrentNodes: zod_1.z.number().int().min(1).max(3).default(2),
retries: zod_1.z.number().int().min(0).max(10).default(1),
});
// Request to update a follow-dev-sell order
exports.UpdateDevOrderRequestSchema = zod_1.z.object({
id: zod_1.z.string().min(1),
chain: exports.ChainSchema.default('solana'),
pairType: exports.PairTypeSchema.default('pump'),
pair: zod_1.z.string().min(1),
walletId: zod_1.z.string().min(1),
tradeType: exports.TradeTypeSchema.default('sell'),
minDevSellPercent: zod_1.z.number().min(0).max(1).default(0.5),
amountOrPercent: zod_1.z.number().min(0).max(1),
customFeeAndTip: zod_1.z.boolean().default(false),
priorityFee: zod_1.z.string().default(''),
jitoEnabled: zod_1.z.boolean().default(true),
jitoTip: zod_1.z.number().min(0).default(0.001),
expireDelta: zod_1.z.number().int().min(0).max(432000000).default(360000000),
maxSlippage: zod_1.z.number().min(0).max(1).default(0.1),
concurrentNodes: zod_1.z.number().int().min(1).max(3).default(2),
retries: zod_1.z.number().int().min(0).max(10).default(1),
});
// Request to toggle an order
exports.ToggleOrderRequestSchema = zod_1.z.object({
id: zod_1.z.string().min(1),
enabled: zod_1.z.boolean(),
});
// Task list query parameters
exports.GetOrdersRequestSchema = zod_1.z.object({
page: zod_1.z.number().int().min(0).default(0),
size: zod_1.z.number().int().min(1).max(100).default(20),
chain: exports.ChainSchema.default('solana'),
state: zod_1.z.enum(['init', 'processing', 'done', 'fail', 'expired']).optional(),
source: zod_1.z.string().optional(),
});
//# sourceMappingURL=types.js.map