@dbotx/limit-order-mcp-server
Version:
Limit Order MCP Server - Supporting multi-chain limit orders, precise price triggers, and flexible order management. A professional cross-chain MCP trading service supporting DEX trading on multiple chains including Solana, Ethereum, BSC and more.
464 lines • 15.6 kB
TypeScript
import { z } from 'zod';
export declare const ChainSchema: z.ZodEnum<["solana", "ethereum", "base", "bsc", "tron"]>;
export declare const TradeTypeSchema: z.ZodEnum<["buy", "sell"]>;
export declare const TriggerDirectionSchema: z.ZodEnum<["up", "down"]>;
export type Chain = z.infer<typeof ChainSchema>;
export type TradeType = z.infer<typeof TradeTypeSchema>;
export type TriggerDirection = z.infer<typeof TriggerDirectionSchema>;
export declare const LimitOrderSettingSchema: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
tradeType: z.ZodEnum<["buy", "sell"]>;
triggerPriceUsd: z.ZodString;
triggerDirection: z.ZodEnum<["up", "down"]>;
currencyAmountUI: z.ZodNumber;
customFeeAndTip: z.ZodDefault<z.ZodBoolean>;
priorityFee: z.ZodDefault<z.ZodString>;
gasFeeDelta: z.ZodDefault<z.ZodNumber>;
maxFeePerGas: z.ZodDefault<z.ZodNumber>;
jitoEnabled: z.ZodDefault<z.ZodBoolean>;
jitoTip: z.ZodDefault<z.ZodNumber>;
expireDelta: z.ZodDefault<z.ZodNumber>;
expireExecute: z.ZodDefault<z.ZodBoolean>;
useMidPrice: z.ZodDefault<z.ZodBoolean>;
maxSlippage: z.ZodDefault<z.ZodNumber>;
concurrentNodes: z.ZodDefault<z.ZodNumber>;
retries: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
tradeType: "buy" | "sell";
triggerPriceUsd: string;
triggerDirection: "up" | "down";
currencyAmountUI: number;
customFeeAndTip: boolean;
priorityFee: string;
gasFeeDelta: number;
maxFeePerGas: number;
jitoEnabled: boolean;
jitoTip: number;
expireDelta: number;
expireExecute: boolean;
useMidPrice: boolean;
maxSlippage: number;
concurrentNodes: number;
retries: number;
}, {
tradeType: "buy" | "sell";
triggerPriceUsd: string;
triggerDirection: "up" | "down";
currencyAmountUI: number;
enabled?: boolean | undefined;
customFeeAndTip?: boolean | undefined;
priorityFee?: string | undefined;
gasFeeDelta?: number | undefined;
maxFeePerGas?: number | undefined;
jitoEnabled?: boolean | undefined;
jitoTip?: number | undefined;
expireDelta?: number | undefined;
expireExecute?: boolean | undefined;
useMidPrice?: boolean | undefined;
maxSlippage?: number | undefined;
concurrentNodes?: number | undefined;
retries?: number | undefined;
}>;
export type LimitOrderSetting = z.infer<typeof LimitOrderSettingSchema>;
export declare const CreateLimitOrderRequestSchema: z.ZodObject<{
chain: z.ZodDefault<z.ZodEnum<["solana", "ethereum", "base", "bsc", "tron"]>>;
pair: z.ZodString;
walletId: z.ZodOptional<z.ZodString>;
groupId: z.ZodOptional<z.ZodString>;
settings: z.ZodArray<z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
tradeType: z.ZodEnum<["buy", "sell"]>;
triggerPriceUsd: z.ZodString;
triggerDirection: z.ZodEnum<["up", "down"]>;
currencyAmountUI: z.ZodNumber;
customFeeAndTip: z.ZodDefault<z.ZodBoolean>;
priorityFee: z.ZodDefault<z.ZodString>;
gasFeeDelta: z.ZodDefault<z.ZodNumber>;
maxFeePerGas: z.ZodDefault<z.ZodNumber>;
jitoEnabled: z.ZodDefault<z.ZodBoolean>;
jitoTip: z.ZodDefault<z.ZodNumber>;
expireDelta: z.ZodDefault<z.ZodNumber>;
expireExecute: z.ZodDefault<z.ZodBoolean>;
useMidPrice: z.ZodDefault<z.ZodBoolean>;
maxSlippage: z.ZodDefault<z.ZodNumber>;
concurrentNodes: z.ZodDefault<z.ZodNumber>;
retries: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
tradeType: "buy" | "sell";
triggerPriceUsd: string;
triggerDirection: "up" | "down";
currencyAmountUI: number;
customFeeAndTip: boolean;
priorityFee: string;
gasFeeDelta: number;
maxFeePerGas: number;
jitoEnabled: boolean;
jitoTip: number;
expireDelta: number;
expireExecute: boolean;
useMidPrice: boolean;
maxSlippage: number;
concurrentNodes: number;
retries: number;
}, {
tradeType: "buy" | "sell";
triggerPriceUsd: string;
triggerDirection: "up" | "down";
currencyAmountUI: number;
enabled?: boolean | undefined;
customFeeAndTip?: boolean | undefined;
priorityFee?: string | undefined;
gasFeeDelta?: number | undefined;
maxFeePerGas?: number | undefined;
jitoEnabled?: boolean | undefined;
jitoTip?: number | undefined;
expireDelta?: number | undefined;
expireExecute?: boolean | undefined;
useMidPrice?: boolean | undefined;
maxSlippage?: number | undefined;
concurrentNodes?: number | undefined;
retries?: number | undefined;
}>, "many">;
}, "strip", z.ZodTypeAny, {
chain: "solana" | "ethereum" | "base" | "bsc" | "tron";
pair: string;
settings: {
enabled: boolean;
tradeType: "buy" | "sell";
triggerPriceUsd: string;
triggerDirection: "up" | "down";
currencyAmountUI: number;
customFeeAndTip: boolean;
priorityFee: string;
gasFeeDelta: number;
maxFeePerGas: number;
jitoEnabled: boolean;
jitoTip: number;
expireDelta: number;
expireExecute: boolean;
useMidPrice: boolean;
maxSlippage: number;
concurrentNodes: number;
retries: number;
}[];
walletId?: string | undefined;
groupId?: string | undefined;
}, {
pair: string;
settings: {
tradeType: "buy" | "sell";
triggerPriceUsd: string;
triggerDirection: "up" | "down";
currencyAmountUI: number;
enabled?: boolean | undefined;
customFeeAndTip?: boolean | undefined;
priorityFee?: string | undefined;
gasFeeDelta?: number | undefined;
maxFeePerGas?: number | undefined;
jitoEnabled?: boolean | undefined;
jitoTip?: number | undefined;
expireDelta?: number | undefined;
expireExecute?: boolean | undefined;
useMidPrice?: boolean | undefined;
maxSlippage?: number | undefined;
concurrentNodes?: number | undefined;
retries?: number | undefined;
}[];
chain?: "solana" | "ethereum" | "base" | "bsc" | "tron" | undefined;
walletId?: string | undefined;
groupId?: string | undefined;
}>;
export type CreateLimitOrderRequest = z.infer<typeof CreateLimitOrderRequestSchema>;
export declare const EditLimitOrderRequestSchema: z.ZodObject<{
id: z.ZodString;
enabled: z.ZodOptional<z.ZodBoolean>;
groupId: z.ZodOptional<z.ZodString>;
triggerPriceUsd: z.ZodOptional<z.ZodString>;
triggerDirection: z.ZodOptional<z.ZodEnum<["up", "down"]>>;
currencyAmountUI: z.ZodOptional<z.ZodNumber>;
customFeeAndTip: z.ZodOptional<z.ZodBoolean>;
priorityFee: z.ZodOptional<z.ZodString>;
gasFeeDelta: z.ZodOptional<z.ZodNumber>;
maxFeePerGas: z.ZodOptional<z.ZodNumber>;
jitoEnabled: z.ZodOptional<z.ZodBoolean>;
jitoTip: z.ZodOptional<z.ZodNumber>;
expireDelta: z.ZodOptional<z.ZodNumber>;
expireExecute: z.ZodOptional<z.ZodBoolean>;
useMidPrice: z.ZodOptional<z.ZodBoolean>;
maxSlippage: z.ZodOptional<z.ZodNumber>;
concurrentNodes: z.ZodOptional<z.ZodNumber>;
retries: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
id: string;
enabled?: boolean | undefined;
triggerPriceUsd?: string | undefined;
triggerDirection?: "up" | "down" | undefined;
currencyAmountUI?: number | undefined;
customFeeAndTip?: boolean | undefined;
priorityFee?: string | undefined;
gasFeeDelta?: number | undefined;
maxFeePerGas?: number | undefined;
jitoEnabled?: boolean | undefined;
jitoTip?: number | undefined;
expireDelta?: number | undefined;
expireExecute?: boolean | undefined;
useMidPrice?: boolean | undefined;
maxSlippage?: number | undefined;
concurrentNodes?: number | undefined;
retries?: number | undefined;
groupId?: string | undefined;
}, {
id: string;
enabled?: boolean | undefined;
triggerPriceUsd?: string | undefined;
triggerDirection?: "up" | "down" | undefined;
currencyAmountUI?: number | undefined;
customFeeAndTip?: boolean | undefined;
priorityFee?: string | undefined;
gasFeeDelta?: number | undefined;
maxFeePerGas?: number | undefined;
jitoEnabled?: boolean | undefined;
jitoTip?: number | undefined;
expireDelta?: number | undefined;
expireExecute?: boolean | undefined;
useMidPrice?: boolean | undefined;
maxSlippage?: number | undefined;
concurrentNodes?: number | undefined;
retries?: number | undefined;
groupId?: string | undefined;
}>;
export type EditLimitOrderRequest = z.infer<typeof EditLimitOrderRequestSchema>;
export declare const SwitchLimitOrderRequestSchema: z.ZodObject<{
id: z.ZodString;
enabled: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
id: string;
}, {
enabled: boolean;
id: string;
}>;
export type SwitchLimitOrderRequest = z.infer<typeof SwitchLimitOrderRequestSchema>;
export declare const DeleteLimitOrderRequestSchema: z.ZodObject<{
id: z.ZodString;
}, "strip", z.ZodTypeAny, {
id: string;
}, {
id: string;
}>;
export type DeleteLimitOrderRequest = z.infer<typeof DeleteLimitOrderRequestSchema>;
export declare const DeleteLimitOrdersRequestSchema: z.ZodObject<{
ids: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
ids: string[];
}, {
ids: string[];
}>;
export type DeleteLimitOrdersRequest = z.infer<typeof DeleteLimitOrdersRequestSchema>;
export declare const DeleteAllLimitOrderRequestSchema: z.ZodObject<{
source: z.ZodEnum<["normal", "pnl_for_follow", "pnl_for_swap"]>;
}, "strip", z.ZodTypeAny, {
source: "normal" | "pnl_for_follow" | "pnl_for_swap";
}, {
source: "normal" | "pnl_for_follow" | "pnl_for_swap";
}>;
export type DeleteAllLimitOrderRequest = z.infer<typeof DeleteAllLimitOrderRequestSchema>;
export declare const LimitOrdersRequestSchema: z.ZodObject<{
page: z.ZodDefault<z.ZodNumber>;
size: z.ZodDefault<z.ZodNumber>;
chain: z.ZodOptional<z.ZodEnum<["solana", "ethereum", "base", "bsc", "tron"]>>;
pair: z.ZodOptional<z.ZodString>;
state: z.ZodDefault<z.ZodOptional<z.ZodEnum<["init", "done", "expired", "canceled"]>>>;
enabled: z.ZodOptional<z.ZodBoolean>;
groupId: z.ZodOptional<z.ZodString>;
token: z.ZodOptional<z.ZodString>;
sortBy: z.ZodOptional<z.ZodString>;
sort: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, "strip", z.ZodTypeAny, {
sort: number;
page: number;
size: number;
state: "init" | "done" | "expired" | "canceled";
enabled?: boolean | undefined;
chain?: "solana" | "ethereum" | "base" | "bsc" | "tron" | undefined;
pair?: string | undefined;
groupId?: string | undefined;
token?: string | undefined;
sortBy?: string | undefined;
}, {
sort?: number | undefined;
enabled?: boolean | undefined;
chain?: "solana" | "ethereum" | "base" | "bsc" | "tron" | undefined;
pair?: string | undefined;
groupId?: string | undefined;
page?: number | undefined;
size?: number | undefined;
state?: "init" | "done" | "expired" | "canceled" | undefined;
token?: string | undefined;
sortBy?: string | undefined;
}>;
export type LimitOrdersRequest = z.infer<typeof LimitOrdersRequestSchema>;
export interface ApiResponse<T = any> {
err: boolean;
res: T;
docs: string;
}
export interface CurrencyInfo {
contract: string;
name: string;
symbol: string;
decimals: number;
totalSupply: string | null;
icon: string;
createAt: number | null;
}
export interface TokenInfo {
contract: string;
createAt: number;
name: string;
symbol: string;
decimals: number;
totalSupply: string;
icon: string;
freezeAuthority: string | null;
mintAuthority: string | null;
}
export interface Links {
etherscan: string;
dexscreener: string;
uniswap: string;
}
export interface LimitOrder {
accountId: string;
id: string;
enabled: boolean;
groupId: string;
state: 'init' | 'done' | 'expired' | 'canceled';
chain: string;
tradeType: string;
triggerDirection: string;
triggerPriceUsd: number;
currencyAmountUI: number;
pair: string;
pairType: string;
walletId: string;
walletType: string;
walletAddress: string;
walletName: string;
customFeeAndTip: boolean;
priorityFee: number | null;
gasFeeDelta: number;
maxFeePerGas: number;
jitoEnabled: boolean;
jitoTip: number;
maxSlippage: number;
expireAt: number;
expireDelta: number;
expireExecute: boolean;
useMidPrice: boolean;
concurrentNodes: number;
retries: number;
errorCode: string;
errorMessage: string;
currencyInfo: CurrencyInfo;
tokenInfo: TokenInfo;
links: Links;
}
export declare const WalletQueryRequestSchema: z.ZodObject<{
type: z.ZodOptional<z.ZodEnum<["solana", "evm"]>>;
page: z.ZodDefault<z.ZodNumber>;
size: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
page: number;
size: number;
type?: "solana" | "evm" | undefined;
}, {
type?: "solana" | "evm" | undefined;
page?: number | undefined;
size?: number | undefined;
}>;
export type WalletQueryRequest = z.infer<typeof WalletQueryRequestSchema>;
export interface WalletInfo {
id: string;
name: string;
type: 'solana' | 'evm';
address: string;
}
export interface WalletQueryParams {
type?: 'solana' | 'evm';
page?: number;
size?: number;
}
export interface TokenSecurityInfo {
type: string;
pair: string;
tokenReserve: string;
currencyReserve: string;
tokenPriceUsd: number;
currencyPriceUsd: number;
exchange: string;
tokenInfo: {
contract: string;
name: string;
symbol: string;
decimals: number;
icon: string;
priceUsd: number;
};
currencyInfo: {
contract: string;
name: string;
symbol: string;
decimals: number;
icon: string;
priceUsd: number;
};
poolSafetyInfo: {
type: string;
canMint: boolean;
canFrozen: boolean;
totalSupply: string;
totalSupplyUI: string;
transferFeePercent: number | null;
isDelegated: boolean | null;
tokenReserve: string;
tokenReserveUI: string;
currencyReserve: string;
currencyReserveUI: string;
lpReserve: string | null;
lpReserveUI: string | null;
burnedOrLockedLp: string | null;
burnedOrLockedLpUI: string | null;
burnedOrLockedLpPercent: number | null;
top10Percent: number;
};
liquidityUsd: number;
tokenMcUsd: number;
tokenCreateAt: number;
poolCreator: string;
poolCreatorName: string | null;
progress: number | null;
priceImpact: number | null;
devHoldPercent: number | null;
poolCreateAt: number;
links: {
website: string | null;
twitter: string | null;
telegram: string | null;
};
}
export interface TokenSecurityQueryParams {
chain?: string;
pair: string;
}
/**
* Get wallet ID based on chain
*/
export declare function getWalletIdByChain(chain: Chain): string;
/**
* Check if at least one wallet ID is configured
*/
export declare function validateWalletIdConfig(): void;
//# sourceMappingURL=types.d.ts.map