@gala-chain/launchpad-mcp-server 2.0.1 → 2.0.2-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +68 -8
- package/CHANGELOG.md +10 -10
- package/README.md +24 -22
- package/dist/constants/mcpToolNames.d.ts +21 -2
- package/dist/constants/mcpToolNames.d.ts.map +1 -1
- package/dist/constants/mcpToolNames.js +17 -3
- package/dist/constants/mcpToolNames.js.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.d.ts.map +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/generated/version.js.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/prompts/advanced-pools.d.ts.map +1 -1
- package/dist/prompts/advanced-pools.js.map +1 -1
- package/dist/prompts/dex-leaderboard.d.ts +40 -0
- package/dist/prompts/dex-leaderboard.d.ts.map +1 -0
- package/dist/prompts/dex-leaderboard.js +239 -0
- package/dist/prompts/dex-leaderboard.js.map +1 -0
- package/dist/prompts/dex-volume.d.ts +19 -0
- package/dist/prompts/dex-volume.d.ts.map +1 -0
- package/dist/prompts/dex-volume.js +74 -0
- package/dist/prompts/dex-volume.js.map +1 -0
- package/dist/prompts/index.d.ts +5 -2
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +11 -2
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/locks.d.ts +16 -0
- package/dist/prompts/locks.d.ts.map +1 -0
- package/dist/prompts/locks.js +114 -0
- package/dist/prompts/locks.js.map +1 -0
- package/dist/prompts/monitoring.js.map +1 -1
- package/dist/prompts/pools.js +3 -3
- package/dist/prompts/pools.js.map +1 -1
- package/dist/schemas/common-schemas.d.ts +18 -16
- package/dist/schemas/common-schemas.d.ts.map +1 -1
- package/dist/schemas/common-schemas.js +8 -0
- package/dist/schemas/common-schemas.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/balance/index.js.map +1 -1
- package/dist/tools/creation/index.d.ts.map +1 -1
- package/dist/tools/creation/index.js +11 -8
- package/dist/tools/creation/index.js.map +1 -1
- package/dist/tools/dex/fetchAllDexPools.d.ts.map +1 -1
- package/dist/tools/dex/fetchAllDexPools.js +10 -6
- package/dist/tools/dex/fetchAllDexPools.js.map +1 -1
- package/dist/tools/dex/fetchDexPools.js.map +1 -1
- package/dist/tools/dex/index.d.ts +5 -0
- package/dist/tools/dex/index.d.ts.map +1 -1
- package/dist/tools/dex/index.js +238 -2
- package/dist/tools/dex/index.js.map +1 -1
- package/dist/tools/dex/leaderboard.d.ts +38 -0
- package/dist/tools/dex/leaderboard.d.ts.map +1 -0
- package/dist/tools/dex/leaderboard.js +153 -0
- package/dist/tools/dex/leaderboard.js.map +1 -0
- package/dist/tools/dex/liquidity-positions.d.ts.map +1 -1
- package/dist/tools/dex/liquidity-positions.js +13 -4
- package/dist/tools/dex/liquidity-positions.js.map +1 -1
- package/dist/tools/dex/volume.d.ts +19 -0
- package/dist/tools/dex/volume.d.ts.map +1 -0
- package/dist/tools/dex/volume.js +53 -0
- package/dist/tools/dex/volume.js.map +1 -0
- package/dist/tools/index.d.ts +6 -5
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +15 -8
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/locks/index.d.ts +8 -0
- package/dist/tools/locks/index.d.ts.map +1 -0
- package/dist/tools/locks/index.js +79 -0
- package/dist/tools/locks/index.js.map +1 -0
- package/dist/tools/pools/fetchAllPools.d.ts.map +1 -1
- package/dist/tools/pools/fetchAllPools.js +8 -12
- package/dist/tools/pools/fetchAllPools.js.map +1 -1
- package/dist/tools/pools/fetchAllPriceHistory.js +1 -1
- package/dist/tools/pools/fetchAllPriceHistory.js.map +1 -1
- package/dist/tools/pools/fetchPoolDetails.js.map +1 -1
- package/dist/tools/pools/fetchPools.js.map +1 -1
- package/dist/tools/pools/fetchPriceHistory.js +1 -1
- package/dist/tools/pools/fetchPriceHistory.js.map +1 -1
- package/dist/tools/pools/fetchTokenDetails.js +1 -1
- package/dist/tools/pools/fetchTokenDetails.js.map +1 -1
- package/dist/tools/pools/index.js +1 -1
- package/dist/tools/pools/index.js.map +1 -1
- package/dist/tools/pools/onDexPoolCreation.d.ts.map +1 -1
- package/dist/tools/pools/onDexPoolCreation.js +1 -0
- package/dist/tools/pools/onDexPoolCreation.js.map +1 -1
- package/dist/tools/pools/onLaunchpadTokenCreation.d.ts.map +1 -1
- package/dist/tools/pools/onLaunchpadTokenCreation.js +1 -0
- package/dist/tools/pools/onLaunchpadTokenCreation.js.map +1 -1
- package/dist/tools/social/index.js.map +1 -1
- package/dist/tools/trading/index.js +2 -2
- package/dist/tools/trading/index.js.map +1 -1
- package/dist/tools/transfers/index.js.map +1 -1
- package/dist/tools/utils/cleanup.d.ts +2 -2
- package/dist/tools/utils/cleanup.d.ts.map +1 -1
- package/dist/tools/utils/cleanup.js +8 -35
- package/dist/tools/utils/cleanup.js.map +1 -1
- package/dist/tools/utils/clearCache.js.map +1 -1
- package/dist/tools/utils/explainSdkUsage.d.ts +10 -0
- package/dist/tools/utils/explainSdkUsage.d.ts.map +1 -1
- package/dist/tools/utils/explainSdkUsage.js +896 -10
- package/dist/tools/utils/explainSdkUsage.js.map +1 -1
- package/dist/tools/utils/index.d.ts.map +1 -1
- package/dist/tools/utils/index.js +4 -0
- package/dist/tools/utils/index.js.map +1 -1
- package/dist/tools/utils/retrieveFromFaucet.d.ts +9 -0
- package/dist/tools/utils/retrieveFromFaucet.d.ts.map +1 -0
- package/dist/tools/utils/retrieveFromFaucet.js +36 -0
- package/dist/tools/utils/retrieveFromFaucet.js.map +1 -0
- package/dist/types/mcp.d.ts +2 -2
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/utils/default-values.d.ts.map +1 -1
- package/dist/utils/default-values.js +3 -0
- package/dist/utils/default-values.js.map +1 -1
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +1 -0
- package/dist/utils/response-formatter.js.map +1 -1
- package/dist/utils/tool-factory.d.ts.map +1 -1
- package/dist/utils/tool-factory.js +1 -0
- package/dist/utils/tool-factory.js.map +1 -1
- package/eslint.config.js.bak +113 -0
- package/package.json +5 -4
- package/dist/prompts/__tests__/promptStructure.test.d.ts +0 -7
- package/dist/prompts/__tests__/promptStructure.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/promptStructure.test.js +0 -106
- package/dist/prompts/__tests__/promptStructure.test.js.map +0 -1
- package/dist/prompts/__tests__/registry.test.d.ts +0 -7
- package/dist/prompts/__tests__/registry.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/registry.test.js +0 -119
- package/dist/prompts/__tests__/registry.test.js.map +0 -1
- package/dist/scripts/test-all-prompts.d.ts +0 -6
- package/dist/scripts/test-all-prompts.d.ts.map +0 -1
- package/dist/scripts/test-all-prompts.js +0 -158
- package/dist/scripts/test-all-prompts.js.map +0 -1
- package/dist/tools/balance/all-assets.d.ts +0 -9
- package/dist/tools/balance/all-assets.d.ts.map +0 -1
- package/dist/tools/balance/all-assets.js +0 -104
- package/dist/tools/balance/all-assets.js.map +0 -1
- package/dist/tools/dex/advanced-dex.d.ts +0 -15
- package/dist/tools/dex/advanced-dex.d.ts.map +0 -1
- package/dist/tools/dex/advanced-dex.js +0 -239
- package/dist/tools/dex/advanced-dex.js.map +0 -1
- package/dist/tools/dex/pool-price.d.ts +0 -9
- package/dist/tools/dex/pool-price.d.ts.map +0 -1
- package/dist/tools/dex/pool-price.js +0 -78
- package/dist/tools/dex/pool-price.js.map +0 -1
- package/dist/tools/dex/pool-quote-calculation.d.ts +0 -9
- package/dist/tools/dex/pool-quote-calculation.d.ts.map +0 -1
- package/dist/tools/dex/pool-quote-calculation.js +0 -99
- package/dist/tools/dex/pool-quote-calculation.js.map +0 -1
- package/dist/tools/dex/pool-quote-external.d.ts +0 -10
- package/dist/tools/dex/pool-quote-external.d.ts.map +0 -1
- package/dist/tools/dex/pool-quote-external.js +0 -84
- package/dist/tools/dex/pool-quote-external.js.map +0 -1
- package/dist/tools/dex/pool-quote-local.d.ts +0 -10
- package/dist/tools/dex/pool-quote-local.d.ts.map +0 -1
- package/dist/tools/dex/pool-quote-local.js +0 -84
- package/dist/tools/dex/pool-quote-local.js.map +0 -1
- package/dist/tools/dex/position-direct.d.ts +0 -9
- package/dist/tools/dex/position-direct.d.ts.map +0 -1
- package/dist/tools/dex/position-direct.js +0 -65
- package/dist/tools/dex/position-direct.js.map +0 -1
- package/dist/tools/pools/composite-pool.d.ts +0 -9
- package/dist/tools/pools/composite-pool.d.ts.map +0 -1
- package/dist/tools/pools/composite-pool.js +0 -69
- package/dist/tools/pools/composite-pool.js.map +0 -1
- package/dist/tools/pools/fetchAllPrices.d.ts +0 -9
- package/dist/tools/pools/fetchAllPrices.d.ts.map +0 -1
- package/dist/tools/pools/fetchAllPrices.js +0 -38
- package/dist/tools/pools/fetchAllPrices.js.map +0 -1
- package/dist/tools/pools/fetchPrices.d.ts +0 -9
- package/dist/tools/pools/fetchPrices.d.ts.map +0 -1
- package/dist/tools/pools/fetchPrices.js +0 -51
- package/dist/tools/pools/fetchPrices.js.map +0 -1
- package/dist/tools/utils/faucet.d.ts +0 -10
- package/dist/tools/utils/faucet.d.ts.map +0 -1
- package/dist/tools/utils/faucet.js +0 -51
- package/dist/tools/utils/faucet.js.map +0 -1
- package/dist/utils/__tests__/validation.test.d.ts +0 -7
- package/dist/utils/__tests__/validation.test.d.ts.map +0 -1
- package/dist/utils/__tests__/validation.test.js +0 -122
- package/dist/utils/__tests__/validation.test.js.map +0 -1
- package/test-mcp.js +0 -89
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Advanced DEX/GalaSwap Analytics Tools
|
|
4
|
-
*
|
|
5
|
-
* Tools for advanced pool analytics, position optimization, and price-tick conversions.
|
|
6
|
-
* These tools provide deep insights into pool state, optimal liquidity parameters, and validation.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.advancedDexTools = exports.calculatePriceForTicksTool = exports.calculateTicksForPriceTool = exports.validatePositionParametersTool = exports.calculateOptimalPositionSizeTool = exports.calculateDexPoolSpotPriceTool = exports.getPoolDataTool = void 0;
|
|
10
|
-
const response_formatter_js_1 = require("../../utils/response-formatter.js");
|
|
11
|
-
const error_handler_js_1 = require("../../utils/error-handler.js");
|
|
12
|
-
const common_schemas_js_1 = require("../../schemas/common-schemas.js");
|
|
13
|
-
// Token symbol for DEX trading
|
|
14
|
-
const TOKEN_SYMBOL_SCHEMA = {
|
|
15
|
-
type: 'string',
|
|
16
|
-
minLength: 1,
|
|
17
|
-
maxLength: 20,
|
|
18
|
-
description: 'Token symbol (e.g., "GALA", "GUSDC")',
|
|
19
|
-
};
|
|
20
|
-
// Fee tier for GalaSwap (in basis points)
|
|
21
|
-
const FEE_TIER_SCHEMA = {
|
|
22
|
-
type: 'number',
|
|
23
|
-
enum: [500, 3000, 10000],
|
|
24
|
-
description: 'Fee tier in basis points: 500 (0.05%), 3000 (0.30%), 10000 (1.00%)',
|
|
25
|
-
};
|
|
26
|
-
// Price value schema
|
|
27
|
-
const PRICE_SCHEMA = {
|
|
28
|
-
type: 'string',
|
|
29
|
-
pattern: '^\\d+(\\.\\d+)?$',
|
|
30
|
-
description: 'Price as decimal string (e.g., "0.95", "1.05")',
|
|
31
|
-
};
|
|
32
|
-
// Tick value schema
|
|
33
|
-
const TICK_SCHEMA = {
|
|
34
|
-
type: 'number',
|
|
35
|
-
description: 'Tick boundary (integer)',
|
|
36
|
-
};
|
|
37
|
-
// 1. Get Pool Data
|
|
38
|
-
exports.getPoolDataTool = {
|
|
39
|
-
name: 'gala_launchpad_get_pool_data',
|
|
40
|
-
description: 'Get real-time pool state data including liquidity depth and current price for pre-trade analysis',
|
|
41
|
-
inputSchema: {
|
|
42
|
-
type: 'object',
|
|
43
|
-
properties: {
|
|
44
|
-
tokenA: TOKEN_SYMBOL_SCHEMA,
|
|
45
|
-
tokenB: TOKEN_SYMBOL_SCHEMA,
|
|
46
|
-
feeTier: FEE_TIER_SCHEMA,
|
|
47
|
-
},
|
|
48
|
-
required: ['tokenA', 'tokenB', 'feeTier'],
|
|
49
|
-
},
|
|
50
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
51
|
-
const poolData = await sdk.getPoolData(args.tokenA, args.tokenB, args.feeTier);
|
|
52
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
53
|
-
tokenA: poolData.tokenA,
|
|
54
|
-
tokenB: poolData.tokenB,
|
|
55
|
-
feeTier: poolData.feeTier,
|
|
56
|
-
liquidity: poolData.liquidity,
|
|
57
|
-
sqrtPriceX96: poolData.sqrtPriceX96,
|
|
58
|
-
tick: poolData.tick,
|
|
59
|
-
feeGrowthGlobal0X128: poolData.feeGrowthGlobal0X128,
|
|
60
|
-
feeGrowthGlobal1X128: poolData.feeGrowthGlobal1X128,
|
|
61
|
-
currentPrice: poolData.currentPrice,
|
|
62
|
-
message: `Pool ${args.tokenA}/${args.tokenB} (fee: ${args.feeTier / 100}%) - Price: ${poolData.currentPrice}, Liquidity: ${poolData.liquidity}`,
|
|
63
|
-
});
|
|
64
|
-
}),
|
|
65
|
-
};
|
|
66
|
-
// 2. Calculate Spot Price
|
|
67
|
-
exports.calculateDexPoolSpotPriceTool = {
|
|
68
|
-
name: 'gala_launchpad_calculate_dex_pool_spot_price',
|
|
69
|
-
description: 'Calculate current DEX pool market price without executing a trade. Returns price, tick, and liquidity data.',
|
|
70
|
-
inputSchema: {
|
|
71
|
-
type: 'object',
|
|
72
|
-
properties: {
|
|
73
|
-
tokenA: TOKEN_SYMBOL_SCHEMA,
|
|
74
|
-
tokenB: TOKEN_SYMBOL_SCHEMA,
|
|
75
|
-
feeTier: FEE_TIER_SCHEMA,
|
|
76
|
-
},
|
|
77
|
-
required: ['tokenA', 'tokenB', 'feeTier'],
|
|
78
|
-
},
|
|
79
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
80
|
-
const spotPrice = await sdk.calculateDexPoolSpotPrice(args.tokenA, args.tokenB, args.feeTier);
|
|
81
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
82
|
-
tokenA: spotPrice.tokenA,
|
|
83
|
-
tokenB: spotPrice.tokenB,
|
|
84
|
-
feeTier: spotPrice.feeTier,
|
|
85
|
-
price: spotPrice.price,
|
|
86
|
-
invertedPrice: spotPrice.invertedPrice,
|
|
87
|
-
tick: spotPrice.tick,
|
|
88
|
-
liquidity: spotPrice.liquidity,
|
|
89
|
-
message: `1 ${spotPrice.tokenA} = ${spotPrice.price} ${spotPrice.tokenB}`,
|
|
90
|
-
});
|
|
91
|
-
}),
|
|
92
|
-
};
|
|
93
|
-
// 3. Calculate Optimal Position Size
|
|
94
|
-
exports.calculateOptimalPositionSizeTool = {
|
|
95
|
-
name: 'gala_launchpad_calculate_optimal_position_size',
|
|
96
|
-
description: 'Calculate optimal token amounts for concentrated liquidity at given tick boundaries',
|
|
97
|
-
inputSchema: {
|
|
98
|
-
type: 'object',
|
|
99
|
-
properties: {
|
|
100
|
-
tokenA: TOKEN_SYMBOL_SCHEMA,
|
|
101
|
-
tokenB: TOKEN_SYMBOL_SCHEMA,
|
|
102
|
-
feeTier: FEE_TIER_SCHEMA,
|
|
103
|
-
desiredAmount0: {
|
|
104
|
-
...common_schemas_js_1.DECIMAL_AMOUNT_SCHEMA,
|
|
105
|
-
description: 'Desired amount of token0 (tokenA)',
|
|
106
|
-
},
|
|
107
|
-
desiredAmount1: {
|
|
108
|
-
...common_schemas_js_1.DECIMAL_AMOUNT_SCHEMA,
|
|
109
|
-
description: 'Desired amount of token1 (tokenB)',
|
|
110
|
-
},
|
|
111
|
-
tickLower: TICK_SCHEMA,
|
|
112
|
-
tickUpper: TICK_SCHEMA,
|
|
113
|
-
},
|
|
114
|
-
required: ['tokenA', 'tokenB', 'feeTier', 'desiredAmount0', 'desiredAmount1', 'tickLower', 'tickUpper'],
|
|
115
|
-
},
|
|
116
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
117
|
-
const optimal = await sdk.calculateOptimalPositionSize(args.tokenA, args.tokenB, args.feeTier, args.desiredAmount0, args.desiredAmount1, args.tickLower, args.tickUpper);
|
|
118
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
119
|
-
amount0: optimal.amount0,
|
|
120
|
-
amount1: optimal.amount1,
|
|
121
|
-
liquidity: optimal.liquidity,
|
|
122
|
-
ratio: optimal.ratio,
|
|
123
|
-
utilizationPercent: optimal.utilizationPercent,
|
|
124
|
-
message: `Optimal: ${optimal.amount0} ${args.tokenA} + ${optimal.amount1} ${args.tokenB} (Liquidity: ${optimal.liquidity})`,
|
|
125
|
-
});
|
|
126
|
-
}),
|
|
127
|
-
};
|
|
128
|
-
// 4. Validate Position Parameters
|
|
129
|
-
exports.validatePositionParametersTool = {
|
|
130
|
-
name: 'gala_launchpad_validate_position_parameters',
|
|
131
|
-
description: 'Validate position parameters before execution. Checks tick spacing, pool state, and amount constraints.',
|
|
132
|
-
inputSchema: {
|
|
133
|
-
type: 'object',
|
|
134
|
-
properties: {
|
|
135
|
-
tokenA: TOKEN_SYMBOL_SCHEMA,
|
|
136
|
-
tokenB: TOKEN_SYMBOL_SCHEMA,
|
|
137
|
-
feeTier: FEE_TIER_SCHEMA,
|
|
138
|
-
tickLower: TICK_SCHEMA,
|
|
139
|
-
tickUpper: TICK_SCHEMA,
|
|
140
|
-
amount0: {
|
|
141
|
-
...common_schemas_js_1.DECIMAL_AMOUNT_SCHEMA,
|
|
142
|
-
description: 'Amount of token0 to validate',
|
|
143
|
-
},
|
|
144
|
-
amount1: {
|
|
145
|
-
...common_schemas_js_1.DECIMAL_AMOUNT_SCHEMA,
|
|
146
|
-
description: 'Amount of token1 to validate',
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
required: ['tokenA', 'tokenB', 'feeTier', 'tickLower', 'tickUpper', 'amount0', 'amount1'],
|
|
150
|
-
},
|
|
151
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
152
|
-
const validation = await sdk.validatePositionParameters(args.tokenA, args.tokenB, args.feeTier, args.tickLower, args.tickUpper, args.amount0, args.amount1);
|
|
153
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
154
|
-
valid: validation.valid,
|
|
155
|
-
errors: validation.errors,
|
|
156
|
-
warnings: validation.warnings,
|
|
157
|
-
gasEstimate: validation.gasEstimate,
|
|
158
|
-
tickSpacing: validation.tickSpacing,
|
|
159
|
-
currentTick: validation.currentTick,
|
|
160
|
-
poolLiquidity: validation.poolLiquidity,
|
|
161
|
-
message: validation.valid
|
|
162
|
-
? `Position parameters validated successfully (Gas: ~${validation.gasEstimate} units)`
|
|
163
|
-
: `Position validation failed: ${validation.errors.join(', ')}`,
|
|
164
|
-
});
|
|
165
|
-
}),
|
|
166
|
-
};
|
|
167
|
-
// 5. Calculate Ticks for Price
|
|
168
|
-
exports.calculateTicksForPriceTool = {
|
|
169
|
-
name: 'gala_launchpad_calculate_ticks_for_price',
|
|
170
|
-
description: 'Convert human-readable price range into tick boundaries for liquidity positions',
|
|
171
|
-
inputSchema: {
|
|
172
|
-
type: 'object',
|
|
173
|
-
properties: {
|
|
174
|
-
tokenA: TOKEN_SYMBOL_SCHEMA,
|
|
175
|
-
tokenB: TOKEN_SYMBOL_SCHEMA,
|
|
176
|
-
minPrice: PRICE_SCHEMA,
|
|
177
|
-
maxPrice: PRICE_SCHEMA,
|
|
178
|
-
feeTier: FEE_TIER_SCHEMA,
|
|
179
|
-
},
|
|
180
|
-
required: ['tokenA', 'tokenB', 'minPrice', 'maxPrice', 'feeTier'],
|
|
181
|
-
},
|
|
182
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
183
|
-
const tickCalc = await sdk.calculateTicksForPrice(args.tokenA, args.tokenB, args.minPrice, args.maxPrice, args.feeTier);
|
|
184
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
185
|
-
tokenA: tickCalc.tokenA,
|
|
186
|
-
tokenB: tickCalc.tokenB,
|
|
187
|
-
feeTier: tickCalc.feeTier,
|
|
188
|
-
tickLower: tickCalc.tickLower,
|
|
189
|
-
tickUpper: tickCalc.tickUpper,
|
|
190
|
-
tickSpacing: tickCalc.tickSpacing,
|
|
191
|
-
requestedMinPrice: tickCalc.requestedMinPrice,
|
|
192
|
-
requestedMaxPrice: tickCalc.requestedMaxPrice,
|
|
193
|
-
actualMinPrice: tickCalc.actualMinPrice,
|
|
194
|
-
actualMaxPrice: tickCalc.actualMaxPrice,
|
|
195
|
-
priceDeviation: tickCalc.priceDeviation,
|
|
196
|
-
message: `Price range ${tickCalc.requestedMinPrice}-${tickCalc.requestedMaxPrice} → Ticks ${tickCalc.tickLower}-${tickCalc.tickUpper}`,
|
|
197
|
-
});
|
|
198
|
-
}),
|
|
199
|
-
};
|
|
200
|
-
// 6. Calculate Price for Ticks
|
|
201
|
-
exports.calculatePriceForTicksTool = {
|
|
202
|
-
name: 'gala_launchpad_calculate_price_for_ticks',
|
|
203
|
-
description: 'Convert tick boundaries back into human-readable price range for position analysis',
|
|
204
|
-
inputSchema: {
|
|
205
|
-
type: 'object',
|
|
206
|
-
properties: {
|
|
207
|
-
tokenA: TOKEN_SYMBOL_SCHEMA,
|
|
208
|
-
tokenB: TOKEN_SYMBOL_SCHEMA,
|
|
209
|
-
tickLower: TICK_SCHEMA,
|
|
210
|
-
tickUpper: TICK_SCHEMA,
|
|
211
|
-
},
|
|
212
|
-
required: ['tokenA', 'tokenB', 'tickLower', 'tickUpper'],
|
|
213
|
-
},
|
|
214
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
215
|
-
const priceCalc = await sdk.calculatePriceForTicks(args.tokenA, args.tokenB, args.tickLower, args.tickUpper);
|
|
216
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
217
|
-
tokenA: priceCalc.tokenA,
|
|
218
|
-
tokenB: priceCalc.tokenB,
|
|
219
|
-
tickLower: priceCalc.tickLower,
|
|
220
|
-
tickUpper: priceCalc.tickUpper,
|
|
221
|
-
minPrice: priceCalc.minPrice,
|
|
222
|
-
maxPrice: priceCalc.maxPrice,
|
|
223
|
-
currentPrice: priceCalc.currentPrice,
|
|
224
|
-
priceRange: priceCalc.priceRange,
|
|
225
|
-
tickSpread: priceCalc.tickSpread,
|
|
226
|
-
message: `Ticks ${priceCalc.tickLower}-${priceCalc.tickUpper} → Price range ${priceCalc.minPrice}-${priceCalc.maxPrice}`,
|
|
227
|
-
});
|
|
228
|
-
}),
|
|
229
|
-
};
|
|
230
|
-
// Export all advanced DEX tools (6 tools)
|
|
231
|
-
exports.advancedDexTools = [
|
|
232
|
-
exports.getPoolDataTool,
|
|
233
|
-
exports.calculateDexPoolSpotPriceTool,
|
|
234
|
-
exports.calculateOptimalPositionSizeTool,
|
|
235
|
-
exports.validatePositionParametersTool,
|
|
236
|
-
exports.calculateTicksForPriceTool,
|
|
237
|
-
exports.calculatePriceForTicksTool,
|
|
238
|
-
];
|
|
239
|
-
//# sourceMappingURL=advanced-dex.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"advanced-dex.js","sourceRoot":"","sources":["../../../src/tools/dex/advanced-dex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Swap Pool Price Tool
|
|
3
|
-
*
|
|
4
|
-
* Gets the current price for a token pair in the DEX pool.
|
|
5
|
-
* Returns spot price, sqrtPrice, tick, and liquidity information.
|
|
6
|
-
*/
|
|
7
|
-
import type { MCPTool } from '../../types/mcp.js';
|
|
8
|
-
export declare const getSwapPoolPriceTool: MCPTool;
|
|
9
|
-
//# sourceMappingURL=pool-price.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-price.d.ts","sourceRoot":"","sources":["../../../src/tools/dex/pool-price.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAmBlD,eAAO,MAAM,oBAAoB,EAAE,OAuDlC,CAAC"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Swap Pool Price Tool
|
|
4
|
-
*
|
|
5
|
-
* Gets the current price for a token pair in the DEX pool.
|
|
6
|
-
* Returns spot price, sqrtPrice, tick, and liquidity information.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.getSwapPoolPriceTool = void 0;
|
|
10
|
-
const response_formatter_js_1 = require("../../utils/response-formatter.js");
|
|
11
|
-
const error_handler_js_1 = require("../../utils/error-handler.js");
|
|
12
|
-
// Token symbol schema for price queries
|
|
13
|
-
const PRICE_TOKEN_SCHEMA = {
|
|
14
|
-
type: 'string',
|
|
15
|
-
minLength: 1,
|
|
16
|
-
maxLength: 20,
|
|
17
|
-
description: 'Token symbol (e.g., "GALA", "GUSDC")',
|
|
18
|
-
};
|
|
19
|
-
// Fee tier schema
|
|
20
|
-
const FEE_TIER_SCHEMA = {
|
|
21
|
-
type: 'number',
|
|
22
|
-
enum: [500, 3000, 10000],
|
|
23
|
-
description: 'Fee tier in basis points: 500 (0.05%), 3000 (0.30%), 10000 (1.00%)',
|
|
24
|
-
};
|
|
25
|
-
exports.getSwapPoolPriceTool = {
|
|
26
|
-
name: 'gala_launchpad_get_swap_pool_price',
|
|
27
|
-
description: 'Get the current price and state for a DEX pool. Returns spot price (token1 per token0), sqrtPrice, tick, and liquidity information.',
|
|
28
|
-
inputSchema: {
|
|
29
|
-
type: 'object',
|
|
30
|
-
properties: {
|
|
31
|
-
token0: PRICE_TOKEN_SCHEMA,
|
|
32
|
-
token1: PRICE_TOKEN_SCHEMA,
|
|
33
|
-
fee: FEE_TIER_SCHEMA,
|
|
34
|
-
},
|
|
35
|
-
required: ['token0', 'token1', 'fee'],
|
|
36
|
-
},
|
|
37
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
38
|
-
try {
|
|
39
|
-
// Get current pool price using SDK method (requires all 3 params)
|
|
40
|
-
const priceData = await sdk.getSwapPoolPrice(args.token0, args.token1, args.fee);
|
|
41
|
-
// Calculate human-readable price from sqrtPrice
|
|
42
|
-
const sqrtPrice = Number(priceData.sqrtPrice);
|
|
43
|
-
const price = (sqrtPrice / (2 ** 96)) ** 2;
|
|
44
|
-
// Price is already adjusted in the SDK
|
|
45
|
-
const adjustedPrice = price;
|
|
46
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
47
|
-
poolId: `${args.token0}-${args.token1}-${args.fee}`,
|
|
48
|
-
price: adjustedPrice.toString(),
|
|
49
|
-
priceFormatted: `1 ${args.token0} = ${adjustedPrice.toFixed(6)} ${args.token1}`,
|
|
50
|
-
inversePrice: adjustedPrice !== 0 ? (1 / adjustedPrice).toString() : null,
|
|
51
|
-
inversePriceFormatted: adjustedPrice !== 0
|
|
52
|
-
? `1 ${args.token1} = ${(1 / adjustedPrice).toFixed(6)} ${args.token0}`
|
|
53
|
-
: null,
|
|
54
|
-
poolState: {
|
|
55
|
-
sqrtPrice: priceData.sqrtPrice,
|
|
56
|
-
tick: priceData.tick,
|
|
57
|
-
liquidity: priceData.liquidity,
|
|
58
|
-
},
|
|
59
|
-
poolExists: true,
|
|
60
|
-
message: `Current price: 1 ${args.token0} = ${adjustedPrice.toFixed(6)} ${args.token1} (tick: ${priceData.tick})`,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
// Handle case where pool doesn't exist
|
|
65
|
-
if (error instanceof Error && (error.message.includes('pool') || error.message.includes('not found'))) {
|
|
66
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
67
|
-
poolId: `${args.token0}-${args.token1}-${args.fee}`,
|
|
68
|
-
poolExists: false,
|
|
69
|
-
price: null,
|
|
70
|
-
message: `No active pool found for ${args.token0}/${args.token1} with ${args.fee} fee tier. The pool may not exist or tokens may not be graduated to DEX yet.`,
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
// Re-throw other errors to be handled by withErrorHandling
|
|
74
|
-
throw error;
|
|
75
|
-
}
|
|
76
|
-
}),
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=pool-price.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-price.js","sourceRoot":"","sources":["../../../src/tools/dex/pool-price.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DEX Pool Quote Calculation Tool
|
|
3
|
-
*
|
|
4
|
-
* Calculates swap quotes for DEX pools using either local or external calculation modes.
|
|
5
|
-
* Requires fetching composite pool data first, then calculating quotes locally or via GalaChain.
|
|
6
|
-
*/
|
|
7
|
-
import type { MCPTool } from '../../types/mcp.js';
|
|
8
|
-
export declare const calculateDexPoolQuoteTool: MCPTool;
|
|
9
|
-
//# sourceMappingURL=pool-quote-calculation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-quote-calculation.d.ts","sourceRoot":"","sources":["../../../src/tools/dex/pool-quote-calculation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAgClD,eAAO,MAAM,yBAAyB,EAAE,OAmEvC,CAAC"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* DEX Pool Quote Calculation Tool
|
|
4
|
-
*
|
|
5
|
-
* Calculates swap quotes for DEX pools using either local or external calculation modes.
|
|
6
|
-
* Requires fetching composite pool data first, then calculating quotes locally or via GalaChain.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.calculateDexPoolQuoteTool = void 0;
|
|
10
|
-
const response_formatter_js_1 = require("../../utils/response-formatter.js");
|
|
11
|
-
const error_handler_js_1 = require("../../utils/error-handler.js");
|
|
12
|
-
// Token schema for quote calculations
|
|
13
|
-
const TOKEN_SCHEMA = {
|
|
14
|
-
type: 'string',
|
|
15
|
-
minLength: 1,
|
|
16
|
-
description: 'Token identifier (e.g., "GALA|Unit|none|none" or "Token|Unit|GUSDC|eth:0x...")',
|
|
17
|
-
};
|
|
18
|
-
// Fee tier schema
|
|
19
|
-
const FEE_TIER_SCHEMA = {
|
|
20
|
-
type: 'number',
|
|
21
|
-
enum: [500, 3000, 10000],
|
|
22
|
-
description: 'Fee tier in basis points: 500 (0.05%), 3000 (0.30%), 10000 (1.00%)',
|
|
23
|
-
};
|
|
24
|
-
// Amount schema
|
|
25
|
-
const AMOUNT_SCHEMA = {
|
|
26
|
-
type: 'string',
|
|
27
|
-
pattern: '^\\d+(\\.\\d+)?$',
|
|
28
|
-
description: 'Amount to swap (as decimal string, e.g., "10.5")',
|
|
29
|
-
};
|
|
30
|
-
// Calculation mode schema
|
|
31
|
-
const MODE_SCHEMA = {
|
|
32
|
-
type: 'string',
|
|
33
|
-
enum: ['local', 'external'],
|
|
34
|
-
description: 'Calculation mode: "local" for offline quotes, "external" for GalaChain quotes (default: "local")',
|
|
35
|
-
};
|
|
36
|
-
exports.calculateDexPoolQuoteTool = {
|
|
37
|
-
name: 'gala_launchpad_calculate_dex_pool_quote',
|
|
38
|
-
description: 'Calculate DEX pool swap quotes. Specify token pair, fee tier, and amount to get estimated output. Use "local" mode for instant offline quotes or "external" for live GalaChain quotes.',
|
|
39
|
-
inputSchema: {
|
|
40
|
-
type: 'object',
|
|
41
|
-
properties: {
|
|
42
|
-
token0: TOKEN_SCHEMA,
|
|
43
|
-
token1: TOKEN_SCHEMA,
|
|
44
|
-
fee: FEE_TIER_SCHEMA,
|
|
45
|
-
fromToken: TOKEN_SCHEMA,
|
|
46
|
-
toToken: TOKEN_SCHEMA,
|
|
47
|
-
amount: AMOUNT_SCHEMA,
|
|
48
|
-
mode: MODE_SCHEMA,
|
|
49
|
-
},
|
|
50
|
-
required: ['token0', 'token1', 'fee', 'fromToken', 'toToken', 'amount'],
|
|
51
|
-
},
|
|
52
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
53
|
-
// Default mode to 'local' if not provided
|
|
54
|
-
const calculationMode = args.mode || 'local';
|
|
55
|
-
// First fetch composite pool data
|
|
56
|
-
const compositeData = await sdk.fetchCompositePoolData({
|
|
57
|
-
token0: args.token0,
|
|
58
|
-
token1: args.token1,
|
|
59
|
-
fee: args.fee,
|
|
60
|
-
});
|
|
61
|
-
// Calculate quote using the appropriate method
|
|
62
|
-
const quote = calculationMode === 'external'
|
|
63
|
-
? await sdk.calculateDexPoolQuoteExactAmountExternal({
|
|
64
|
-
compositePoolData: compositeData,
|
|
65
|
-
fromToken: args.fromToken,
|
|
66
|
-
toToken: args.toToken,
|
|
67
|
-
amount: args.amount,
|
|
68
|
-
})
|
|
69
|
-
: await sdk.calculateDexPoolQuoteExactAmountLocal({
|
|
70
|
-
compositePoolData: compositeData,
|
|
71
|
-
fromToken: args.fromToken,
|
|
72
|
-
toToken: args.toToken,
|
|
73
|
-
amount: args.amount,
|
|
74
|
-
});
|
|
75
|
-
// Determine swap direction
|
|
76
|
-
const isToken0ToToken1 = args.fromToken === args.token0;
|
|
77
|
-
const inputAmount = args.amount;
|
|
78
|
-
const outputAmount = isToken0ToToken1 ? quote.amount1 : quote.amount0;
|
|
79
|
-
// Calculate price impact if provided
|
|
80
|
-
const priceImpact = quote.priceImpact || 'N/A';
|
|
81
|
-
const executionPrice = quote.executionPrice || 'N/A';
|
|
82
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
83
|
-
poolId: `${args.token0}-${args.token1}-${args.fee}`,
|
|
84
|
-
fromToken: args.fromToken,
|
|
85
|
-
toToken: args.toToken,
|
|
86
|
-
inputAmount: inputAmount,
|
|
87
|
-
outputAmount: outputAmount,
|
|
88
|
-
prices: {
|
|
89
|
-
currentSqrtPrice: quote.currentSqrtPrice,
|
|
90
|
-
newSqrtPrice: quote.newSqrtPrice,
|
|
91
|
-
executionPrice: executionPrice,
|
|
92
|
-
priceImpact: priceImpact,
|
|
93
|
-
},
|
|
94
|
-
calculationMode: calculationMode,
|
|
95
|
-
message: `Swapping ${inputAmount} ${args.fromToken.split('|')[2] || args.fromToken} will yield ${outputAmount} ${args.toToken.split('|')[2] || args.toToken}`,
|
|
96
|
-
});
|
|
97
|
-
}),
|
|
98
|
-
};
|
|
99
|
-
//# sourceMappingURL=pool-quote-calculation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-quote-calculation.js","sourceRoot":"","sources":["../../../src/tools/dex/pool-quote-calculation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DEX Pool Quote External Tool
|
|
3
|
-
*
|
|
4
|
-
* Calculate DEX pool swap quotes using EXTERNAL GalaChain network (real-time pricing).
|
|
5
|
-
* Provides real-time on-chain quotes directly from the blockchain.
|
|
6
|
-
* Slower than local calculation but always reflects current pool state.
|
|
7
|
-
*/
|
|
8
|
-
import type { MCPTool } from '../../types/mcp.js';
|
|
9
|
-
export declare const calculateDexPoolQuoteExternalTool: MCPTool;
|
|
10
|
-
//# sourceMappingURL=pool-quote-external.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-quote-external.d.ts","sourceRoot":"","sources":["../../../src/tools/dex/pool-quote-external.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAyBlD,eAAO,MAAM,iCAAiC,EAAE,OAwD/C,CAAC"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* DEX Pool Quote External Tool
|
|
4
|
-
*
|
|
5
|
-
* Calculate DEX pool swap quotes using EXTERNAL GalaChain network (real-time pricing).
|
|
6
|
-
* Provides real-time on-chain quotes directly from the blockchain.
|
|
7
|
-
* Slower than local calculation but always reflects current pool state.
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.calculateDexPoolQuoteExternalTool = void 0;
|
|
11
|
-
const response_formatter_js_1 = require("../../utils/response-formatter.js");
|
|
12
|
-
const error_handler_js_1 = require("../../utils/error-handler.js");
|
|
13
|
-
// Token schema for quote calculations
|
|
14
|
-
const TOKEN_SCHEMA = {
|
|
15
|
-
type: 'string',
|
|
16
|
-
minLength: 1,
|
|
17
|
-
description: 'Token identifier in delimited format (e.g., "GALA|Unit|none|none" or "Token|Unit|GUSDC|eth:0x...")',
|
|
18
|
-
};
|
|
19
|
-
// Fee tier schema
|
|
20
|
-
const FEE_TIER_SCHEMA = {
|
|
21
|
-
type: 'number',
|
|
22
|
-
enum: [500, 3000, 10000],
|
|
23
|
-
description: 'Fee tier in basis points: 500 (0.05%), 3000 (0.30%), 10000 (1.00%)',
|
|
24
|
-
};
|
|
25
|
-
// Amount schema
|
|
26
|
-
const AMOUNT_SCHEMA = {
|
|
27
|
-
type: 'string',
|
|
28
|
-
pattern: '^\\d+(\\.\\d+)?$',
|
|
29
|
-
description: 'Amount to swap (as decimal string, e.g., "10.5")',
|
|
30
|
-
};
|
|
31
|
-
exports.calculateDexPoolQuoteExternalTool = {
|
|
32
|
-
name: 'gala_launchpad_calculate_dex_pool_quote_external',
|
|
33
|
-
description: 'Calculate DEX pool swap quotes using EXTERNAL GalaChain network (real-time on-chain pricing). Network-dependent, provides current blockchain pricing. Requires fetching composite pool data first.',
|
|
34
|
-
inputSchema: {
|
|
35
|
-
type: 'object',
|
|
36
|
-
properties: {
|
|
37
|
-
token0: TOKEN_SCHEMA,
|
|
38
|
-
token1: TOKEN_SCHEMA,
|
|
39
|
-
fee: FEE_TIER_SCHEMA,
|
|
40
|
-
fromToken: TOKEN_SCHEMA,
|
|
41
|
-
toToken: TOKEN_SCHEMA,
|
|
42
|
-
amount: AMOUNT_SCHEMA,
|
|
43
|
-
},
|
|
44
|
-
required: ['token0', 'token1', 'fee', 'fromToken', 'toToken', 'amount'],
|
|
45
|
-
},
|
|
46
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
47
|
-
// First fetch composite pool data
|
|
48
|
-
const compositeData = await sdk.fetchCompositePoolData({
|
|
49
|
-
token0: args.token0,
|
|
50
|
-
token1: args.token1,
|
|
51
|
-
fee: args.fee,
|
|
52
|
-
});
|
|
53
|
-
// Calculate quote using EXTERNAL method (real-time, on-chain)
|
|
54
|
-
const quote = await sdk.calculateDexPoolQuoteExactAmountExternal({
|
|
55
|
-
compositePoolData: compositeData,
|
|
56
|
-
fromToken: args.fromToken,
|
|
57
|
-
toToken: args.toToken,
|
|
58
|
-
amount: args.amount,
|
|
59
|
-
});
|
|
60
|
-
// Determine swap direction
|
|
61
|
-
const isToken0ToToken1 = args.fromToken === args.token0;
|
|
62
|
-
const inputAmount = args.amount;
|
|
63
|
-
const outputAmount = isToken0ToToken1 ? quote.amount1 : quote.amount0;
|
|
64
|
-
// Calculate price impact if provided
|
|
65
|
-
const priceImpact = quote.priceImpact || 'N/A';
|
|
66
|
-
const executionPrice = quote.executionPrice || 'N/A';
|
|
67
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
68
|
-
poolId: `${args.token0}-${args.token1}-${args.fee}`,
|
|
69
|
-
fromToken: args.fromToken,
|
|
70
|
-
toToken: args.toToken,
|
|
71
|
-
inputAmount: inputAmount,
|
|
72
|
-
outputAmount: outputAmount,
|
|
73
|
-
prices: {
|
|
74
|
-
currentSqrtPrice: quote.currentSqrtPrice,
|
|
75
|
-
newSqrtPrice: quote.newSqrtPrice,
|
|
76
|
-
executionPrice: executionPrice,
|
|
77
|
-
priceImpact: priceImpact,
|
|
78
|
-
},
|
|
79
|
-
calculationMode: 'external',
|
|
80
|
-
message: `EXTERNAL quote: Swapping ${inputAmount} ${args.fromToken.split('|')[2] || args.fromToken} will yield ${outputAmount} ${args.toToken.split('|')[2] || args.toToken} (real-time GalaChain network data)`,
|
|
81
|
-
});
|
|
82
|
-
}),
|
|
83
|
-
};
|
|
84
|
-
//# sourceMappingURL=pool-quote-external.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-quote-external.js","sourceRoot":"","sources":["../../../src/tools/dex/pool-quote-external.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DEX Pool Quote Local Tool
|
|
3
|
-
*
|
|
4
|
-
* Calculate DEX pool swap quotes using LOCAL/offline bonding curve formulas.
|
|
5
|
-
* Provides instant client-side calculation without network call to GalaChain.
|
|
6
|
-
* Requires composite pool data to be fetched first.
|
|
7
|
-
*/
|
|
8
|
-
import type { MCPTool } from '../../types/mcp.js';
|
|
9
|
-
export declare const calculateDexPoolQuoteLocalTool: MCPTool;
|
|
10
|
-
//# sourceMappingURL=pool-quote-local.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-quote-local.d.ts","sourceRoot":"","sources":["../../../src/tools/dex/pool-quote-local.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAyBlD,eAAO,MAAM,8BAA8B,EAAE,OAwD5C,CAAC"}
|