@gala-chain/launchpad-mcp-server 2.0.1 → 2.0.2-beta.2
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/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 -5
- 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 +1 -1
- 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,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* DEX Pool Quote Local Tool
|
|
4
|
-
*
|
|
5
|
-
* Calculate DEX pool swap quotes using LOCAL/offline bonding curve formulas.
|
|
6
|
-
* Provides instant client-side calculation without network call to GalaChain.
|
|
7
|
-
* Requires composite pool data to be fetched first.
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.calculateDexPoolQuoteLocalTool = 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.calculateDexPoolQuoteLocalTool = {
|
|
32
|
-
name: 'gala_launchpad_calculate_dex_pool_quote_local',
|
|
33
|
-
description: 'Calculate DEX pool swap quotes using LOCAL offline formulas (no network call). Instant client-side calculation. Requires fetching composite pool data first with token0, token1, and fee tier.',
|
|
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 LOCAL method (instant, offline)
|
|
54
|
-
const quote = await sdk.calculateDexPoolQuoteExactAmountLocal({
|
|
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: 'local',
|
|
80
|
-
message: `LOCAL quote: Swapping ${inputAmount} ${args.fromToken.split('|')[2] || args.fromToken} will yield ${outputAmount} ${args.toToken.split('|')[2] || args.toToken} (instant, offline calculation)`,
|
|
81
|
-
});
|
|
82
|
-
}),
|
|
83
|
-
};
|
|
84
|
-
//# sourceMappingURL=pool-quote-local.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-quote-local.js","sourceRoot":"","sources":["../../../src/tools/dex/pool-quote-local.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Swap Position Direct Tool
|
|
3
|
-
*
|
|
4
|
-
* Fetch LP position details by position ID with direct data access.
|
|
5
|
-
* Useful for portfolio management when you know the specific position ID.
|
|
6
|
-
*/
|
|
7
|
-
import type { MCPTool } from '../../types/mcp.js';
|
|
8
|
-
export declare const fetchSwapPositionByIdTool: MCPTool;
|
|
9
|
-
//# sourceMappingURL=position-direct.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"position-direct.d.ts","sourceRoot":"","sources":["../../../src/tools/dex/position-direct.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAYlD,eAAO,MAAM,yBAAyB,EAAE,OA+CvC,CAAC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Swap Position Direct Tool
|
|
4
|
-
*
|
|
5
|
-
* Fetch LP position details by position ID with direct data access.
|
|
6
|
-
* Useful for portfolio management when you know the specific position ID.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.fetchSwapPositionByIdTool = 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
|
-
// Position ID schema
|
|
14
|
-
const POSITION_ID_SCHEMA = {
|
|
15
|
-
type: 'string',
|
|
16
|
-
minLength: 1,
|
|
17
|
-
description: 'Unique position identifier (e.g., "pos-abc123" or position ID from getSwapLiquidityPositions)',
|
|
18
|
-
};
|
|
19
|
-
exports.fetchSwapPositionByIdTool = {
|
|
20
|
-
name: 'gala_launchpad_fetch_swap_position_by_id',
|
|
21
|
-
description: 'Fetch LP position details by position ID (alternative to compound key lookup). Retrieves specific liquidity position by its unique identifier. Useful when you have the position ID from getSwapLiquidityPositions.',
|
|
22
|
-
inputSchema: {
|
|
23
|
-
type: 'object',
|
|
24
|
-
properties: {
|
|
25
|
-
positionId: POSITION_ID_SCHEMA,
|
|
26
|
-
ownerAddress: {
|
|
27
|
-
...common_schemas_js_1.ADDRESS_SCHEMA,
|
|
28
|
-
description: 'Wallet address that owns the position (e.g., "eth|0x123..." or "0x123...")',
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
required: ['positionId', 'ownerAddress'],
|
|
32
|
-
},
|
|
33
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
34
|
-
// Get position by ID
|
|
35
|
-
const position = await sdk.getSwapLiquidityPositionById(args.ownerAddress, args.positionId);
|
|
36
|
-
if (!position) {
|
|
37
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
38
|
-
positionId: args.positionId,
|
|
39
|
-
ownerAddress: args.ownerAddress,
|
|
40
|
-
found: false,
|
|
41
|
-
message: `Position ${args.positionId} not found for owner ${args.ownerAddress}`,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
// Format position details for display
|
|
45
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
46
|
-
positionId: args.positionId,
|
|
47
|
-
ownerAddress: args.ownerAddress,
|
|
48
|
-
found: true,
|
|
49
|
-
position: {
|
|
50
|
-
token0: position.token0,
|
|
51
|
-
token1: position.token1,
|
|
52
|
-
feeTier: position.feeTier,
|
|
53
|
-
tickLower: position.tickLower,
|
|
54
|
-
tickUpper: position.tickUpper,
|
|
55
|
-
liquidity: position.liquidity,
|
|
56
|
-
amount0: position.amount0,
|
|
57
|
-
amount1: position.amount1,
|
|
58
|
-
feeAmount0: position.feeAmount0,
|
|
59
|
-
feeAmount1: position.feeAmount1,
|
|
60
|
-
},
|
|
61
|
-
message: `Position ${args.positionId} found: ${position.token0}/${position.token1} (fee: ${position.feeTier}, liquidity: ${position.liquidity})`,
|
|
62
|
-
});
|
|
63
|
-
}),
|
|
64
|
-
};
|
|
65
|
-
//# sourceMappingURL=position-direct.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"position-direct.js","sourceRoot":"","sources":["../../../src/tools/dex/position-direct.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,6EAAkE;AAClE,mEAAiE;AACjE,uEAAiE;AAEjE,qBAAqB;AACrB,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,+FAA+F;CAC7G,CAAC;AAEW,QAAA,yBAAyB,GAAY;IAChD,IAAI,EAAE,0CAA0C;IAChD,WAAW,EAAE,qNAAqN;IAClO,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE,kBAAkB;YAC9B,YAAY,EAAE;gBACZ,GAAG,kCAAc;gBACjB,WAAW,EAAE,4EAA4E;aAC1F;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;KACzC;IACD,OAAO,EAAE,IAAA,oCAAiB,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7C,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5F,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAA,qCAAa,EAAC;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,YAAY,IAAI,CAAC,UAAU,wBAAwB,IAAI,CAAC,YAAY,EAAE;aAChF,CAAC,CAAC;QACL,CAAC;QAED,sCAAsC;QACtC,OAAO,IAAA,qCAAa,EAAC;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE;gBACR,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC;YACD,OAAO,EAAE,YAAY,IAAI,CAAC,UAAU,WAAW,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,UAAU,QAAQ,CAAC,OAAO,gBAAgB,QAAQ,CAAC,SAAS,GAAG;SACjJ,CAAC,CAAC;IACL,CAAC,CAAC;CACH,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Composite Pool Data Tool
|
|
3
|
-
*
|
|
4
|
-
* Fetches complete DEX pool state including tick data for offline quote calculations.
|
|
5
|
-
* Returns pool liquidity, tick map, and token balances for local price simulations.
|
|
6
|
-
*/
|
|
7
|
-
import type { MCPTool } from '../../types/mcp.js';
|
|
8
|
-
export declare const fetchCompositePoolDataTool: MCPTool;
|
|
9
|
-
//# sourceMappingURL=composite-pool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"composite-pool.d.ts","sourceRoot":"","sources":["../../../src/tools/pools/composite-pool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAkBlD,eAAO,MAAM,0BAA0B,EAAE,OA8CxC,CAAC"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Composite Pool Data Tool
|
|
4
|
-
*
|
|
5
|
-
* Fetches complete DEX pool state including tick data for offline quote calculations.
|
|
6
|
-
* Returns pool liquidity, tick map, and token balances for local price simulations.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.fetchCompositePoolDataTool = 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 DEX operations
|
|
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
|
-
exports.fetchCompositePoolDataTool = {
|
|
25
|
-
name: 'gala_launchpad_fetch_composite_pool_data',
|
|
26
|
-
description: 'Fetch complete DEX pool state for offline quote calculations. Returns pool liquidity, tick data, and token balances required for local price simulations.',
|
|
27
|
-
inputSchema: {
|
|
28
|
-
type: 'object',
|
|
29
|
-
properties: {
|
|
30
|
-
token0: TOKEN_SCHEMA,
|
|
31
|
-
token1: TOKEN_SCHEMA,
|
|
32
|
-
fee: FEE_TIER_SCHEMA,
|
|
33
|
-
gatewayBaseUrl: {
|
|
34
|
-
type: 'string',
|
|
35
|
-
description: 'Optional custom gateway URL (defaults to mainnet)',
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
required: ['token0', 'token1', 'fee'],
|
|
39
|
-
},
|
|
40
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
41
|
-
// Fetch composite pool data using SDK method
|
|
42
|
-
const compositeData = await sdk.fetchCompositePoolData({
|
|
43
|
-
token0: args.token0,
|
|
44
|
-
token1: args.token1,
|
|
45
|
-
fee: args.fee,
|
|
46
|
-
gatewayBaseUrl: args.gatewayBaseUrl,
|
|
47
|
-
});
|
|
48
|
-
// Extract key pool metrics
|
|
49
|
-
const poolMetrics = {
|
|
50
|
-
liquidity: compositeData.pool.liquidity,
|
|
51
|
-
sqrtPrice: compositeData.pool.sqrtPrice,
|
|
52
|
-
tick: compositeData.pool.tick,
|
|
53
|
-
feeRate: compositeData.pool.fee,
|
|
54
|
-
token0Balance: compositeData.token0Balance.getQuantityTotal().toString(),
|
|
55
|
-
token1Balance: compositeData.token1Balance.getQuantityTotal().toString(),
|
|
56
|
-
token0Decimals: compositeData.token0Decimals,
|
|
57
|
-
token1Decimals: compositeData.token1Decimals,
|
|
58
|
-
tickCount: Object.keys(compositeData.tickDataMap).length,
|
|
59
|
-
};
|
|
60
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
61
|
-
poolId: `${args.token0}-${args.token1}-${args.fee}`,
|
|
62
|
-
pool: poolMetrics,
|
|
63
|
-
hasLiquidity: Number(poolMetrics.liquidity) > 0,
|
|
64
|
-
tickDataAvailable: poolMetrics.tickCount > 0,
|
|
65
|
-
message: `Composite pool data fetched successfully. Pool has ${poolMetrics.tickCount} active ticks with ${poolMetrics.liquidity} total liquidity.`,
|
|
66
|
-
});
|
|
67
|
-
}),
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=composite-pool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"composite-pool.js","sourceRoot":"","sources":["../../../src/tools/pools/composite-pool.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,6EAAkE;AAClE,mEAAiE;AAEjE,yCAAyC;AACzC,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,gFAAgF;CAC9F,CAAC;AAEF,kBAAkB;AAClB,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;IACxB,WAAW,EAAE,oEAAoE;CAClF,CAAC;AAEW,QAAA,0BAA0B,GAAY;IACjD,IAAI,EAAE,0CAA0C;IAChD,WAAW,EAAE,2JAA2J;IACxK,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,YAAY;YACpB,GAAG,EAAE,eAAe;YACpB,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;aACjE;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;KACtC;IACD,OAAO,EAAE,IAAA,oCAAiB,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7C,6CAA6C;QAC7C,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,sBAAsB,CAAC;YACrD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,WAAW,GAAG;YAClB,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;YACvC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;YACvC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI;YAC7B,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG;YAC/B,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE;YACxE,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE;YACxE,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,MAAM;SACzD,CAAC;QAEF,OAAO,IAAA,qCAAa,EAAC;YACnB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;YACnD,IAAI,EAAE,WAAW;YACjB,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;YAC/C,iBAAiB,EAAE,WAAW,CAAC,SAAS,GAAG,CAAC;YAC5C,OAAO,EAAE,sDAAsD,WAAW,CAAC,SAAS,sBAAsB,WAAW,CAAC,SAAS,mBAAmB;SACnJ,CAAC,CAAC;IACL,CAAC,CAAC;CACH,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fetch All Latest Prices Tool
|
|
3
|
-
*
|
|
4
|
-
* Queries all latest token prices from MySQL database with automatic pagination.
|
|
5
|
-
* Requires MYSQL_CONNECTION_STRING environment variable to be configured.
|
|
6
|
-
*/
|
|
7
|
-
import type { MCPTool } from '../../types/mcp.js';
|
|
8
|
-
export declare const fetchAllPricesTool: MCPTool;
|
|
9
|
-
//# sourceMappingURL=fetchAllPrices.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchAllPrices.d.ts","sourceRoot":"","sources":["../../../src/tools/pools/fetchAllPrices.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIlD,eAAO,MAAM,kBAAkB,EAAE,OA2BhC,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Fetch All Latest Prices Tool
|
|
4
|
-
*
|
|
5
|
-
* Queries all latest token prices from MySQL database with automatic pagination.
|
|
6
|
-
* Requires MYSQL_CONNECTION_STRING environment variable to be configured.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.fetchAllPricesTool = 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
|
-
exports.fetchAllPricesTool = {
|
|
13
|
-
name: 'gala_launchpad_fetch_all_prices',
|
|
14
|
-
description: `Fetch latest price for all DEX tokens with automatic pagination.
|
|
15
|
-
|
|
16
|
-
**Requirements:**
|
|
17
|
-
- MySQL connection string must be configured (MYSQL_CONNECTION_STRING env var)
|
|
18
|
-
- Node.js environment only (not available in browser)
|
|
19
|
-
- Returns most recent price snapshot per unique token
|
|
20
|
-
|
|
21
|
-
**Use Cases:**
|
|
22
|
-
- Complete market data export
|
|
23
|
-
- Bulk price analysis
|
|
24
|
-
- Full token price catalog
|
|
25
|
-
- Market-wide snapshot
|
|
26
|
-
|
|
27
|
-
**Performance:** Single optimized query using window functions, automatically handles pagination to retrieve all tokens.`,
|
|
28
|
-
inputSchema: {
|
|
29
|
-
type: 'object',
|
|
30
|
-
properties: {},
|
|
31
|
-
required: [],
|
|
32
|
-
},
|
|
33
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk) => {
|
|
34
|
-
const result = await sdk.fetchAllPrices();
|
|
35
|
-
return (0, response_formatter_js_1.formatSuccess)(result);
|
|
36
|
-
}),
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=fetchAllPrices.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchAllPrices.js","sourceRoot":"","sources":["../../../src/tools/pools/fetchAllPrices.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,6EAAkE;AAClE,mEAAiE;AAEpD,QAAA,kBAAkB,GAAY;IACzC,IAAI,EAAE,iCAAiC;IACvC,WAAW,EAAE;;;;;;;;;;;;;yHAa0G;IAEvH,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;IAED,OAAO,EAAE,IAAA,oCAAiB,EAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QAC1C,OAAO,IAAA,qCAAa,EAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC;CACH,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fetch Latest Prices Tool
|
|
3
|
-
*
|
|
4
|
-
* Queries latest token prices from MySQL database with pagination.
|
|
5
|
-
* Requires MYSQL_CONNECTION_STRING environment variable to be configured.
|
|
6
|
-
*/
|
|
7
|
-
import type { MCPTool } from '../../types/mcp.js';
|
|
8
|
-
export declare const fetchPricesTool: MCPTool;
|
|
9
|
-
//# sourceMappingURL=fetchPrices.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchPrices.d.ts","sourceRoot":"","sources":["../../../src/tools/pools/fetchPrices.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAKlD,eAAO,MAAM,eAAe,EAAE,OAuC7B,CAAC"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Fetch Latest Prices Tool
|
|
4
|
-
*
|
|
5
|
-
* Queries latest token prices from MySQL database with pagination.
|
|
6
|
-
* Requires MYSQL_CONNECTION_STRING environment variable to be configured.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.fetchPricesTool = 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
|
-
exports.fetchPricesTool = {
|
|
14
|
-
name: 'gala_launchpad_fetch_prices',
|
|
15
|
-
description: `Fetch latest price for all DEX tokens with pagination.
|
|
16
|
-
|
|
17
|
-
**Requirements:**
|
|
18
|
-
- MySQL connection string must be configured (MYSQL_CONNECTION_STRING env var)
|
|
19
|
-
- Node.js environment only (not available in browser)
|
|
20
|
-
- Returns most recent price snapshot per unique token
|
|
21
|
-
|
|
22
|
-
**Use Cases:**
|
|
23
|
-
- Market overview dashboards
|
|
24
|
-
- Bulk price comparisons
|
|
25
|
-
- Token catalog with current prices
|
|
26
|
-
- Price monitoring and alerts
|
|
27
|
-
|
|
28
|
-
**Performance:** Single optimized query using window functions, returns latest price per token with pagination.`,
|
|
29
|
-
inputSchema: {
|
|
30
|
-
type: 'object',
|
|
31
|
-
properties: {
|
|
32
|
-
page: common_schemas_js_1.PAGE_SCHEMA,
|
|
33
|
-
limit: (0, common_schemas_js_1.createLimitSchema)('pool', 10),
|
|
34
|
-
sortByType: {
|
|
35
|
-
type: 'string',
|
|
36
|
-
enum: ['ASC', 'DESC'],
|
|
37
|
-
description: 'Sort tokens alphabetically by type (optional)',
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
required: [],
|
|
41
|
-
},
|
|
42
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
43
|
-
const result = await sdk.fetchPrices({
|
|
44
|
-
page: args.page,
|
|
45
|
-
limit: args.limit,
|
|
46
|
-
sortByType: args.sortByType,
|
|
47
|
-
});
|
|
48
|
-
return (0, response_formatter_js_1.formatSuccess)(result);
|
|
49
|
-
}),
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=fetchPrices.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchPrices.js","sourceRoot":"","sources":["../../../src/tools/pools/fetchPrices.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,6EAAkE;AAClE,mEAAiE;AACjE,uEAAiF;AAEpE,QAAA,eAAe,GAAY;IACtC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE;;;;;;;;;;;;;gHAaiG;IAE9G,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,+BAAW;YACjB,KAAK,EAAE,IAAA,qCAAiB,EAAC,MAAM,EAAE,EAAE,CAAC;YACpC,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;gBACrB,WAAW,EAAE,+CAA+C;aAC7D;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IAED,OAAO,EAAE,IAAA,oCAAiB,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,OAAO,IAAA,qCAAa,EAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC;CACH,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Faucet Tool
|
|
3
|
-
*
|
|
4
|
-
* Test utility to retrieve GALA tokens from faucet.
|
|
5
|
-
* Only works in development/testing environments (production blocked).
|
|
6
|
-
* Backend provides a fixed amount (5 GALA).
|
|
7
|
-
*/
|
|
8
|
-
import type { MCPTool } from '../../types/mcp.js';
|
|
9
|
-
export declare const retrieveFromFaucetTool: MCPTool;
|
|
10
|
-
//# sourceMappingURL=faucet.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"faucet.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/faucet.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,eAAO,MAAM,sBAAsB,EAAE,OAyCpC,CAAC"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Faucet Tool
|
|
4
|
-
*
|
|
5
|
-
* Test utility to retrieve GALA tokens from faucet.
|
|
6
|
-
* Only works in development/testing environments (production blocked).
|
|
7
|
-
* Backend provides a fixed amount (5 GALA).
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.retrieveFromFaucetTool = void 0;
|
|
11
|
-
const error_handler_js_1 = require("../../utils/error-handler.js");
|
|
12
|
-
const response_formatter_js_1 = require("../../utils/response-formatter.js");
|
|
13
|
-
const common_schemas_js_1 = require("../../schemas/common-schemas.js");
|
|
14
|
-
exports.retrieveFromFaucetTool = {
|
|
15
|
-
name: 'gala_launchpad_retrieve_from_faucet',
|
|
16
|
-
description: 'Test utility to retrieve GALA tokens from faucet (dev/test environments only). Backend provides fixed amount of 5 GALA. Production environment will reject this request.',
|
|
17
|
-
inputSchema: {
|
|
18
|
-
type: 'object',
|
|
19
|
-
properties: {
|
|
20
|
-
recipientAddress: {
|
|
21
|
-
...common_schemas_js_1.ADDRESS_SCHEMA,
|
|
22
|
-
description: 'Wallet address to receive faucet tokens (defaults to SDK authenticated wallet if not provided)',
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
handler: (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
|
|
27
|
-
const recipientAddress = args?.recipientAddress;
|
|
28
|
-
try {
|
|
29
|
-
// Call SDK faucet method (defaults to SDK wallet if no address provided)
|
|
30
|
-
await sdk.retrieveGalaFromFaucet(recipientAddress);
|
|
31
|
-
const finalAddress = recipientAddress || sdk.getAddress();
|
|
32
|
-
return (0, response_formatter_js_1.formatSuccess)({
|
|
33
|
-
success: true,
|
|
34
|
-
recipientAddress: finalAddress,
|
|
35
|
-
amount: '5',
|
|
36
|
-
token: 'GALA',
|
|
37
|
-
message: `Successfully retrieved 5 GALA from faucet to ${finalAddress}`,
|
|
38
|
-
warning: 'This only works in development/testing environments',
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
// Enhanced error message for production environment
|
|
43
|
-
if (error instanceof Error && error.message.includes('production')) {
|
|
44
|
-
throw new Error('Faucet is only available in development/testing environments. Production environment does not support faucet operations.');
|
|
45
|
-
}
|
|
46
|
-
// Re-throw other errors
|
|
47
|
-
throw error;
|
|
48
|
-
}
|
|
49
|
-
}),
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=faucet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"faucet.js","sourceRoot":"","sources":["../../../src/tools/utils/faucet.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,mEAAiE;AACjE,6EAAkE;AAClE,uEAAiE;AAGpD,QAAA,sBAAsB,GAAY;IAC7C,IAAI,EAAE,qCAAqC;IAC3C,WAAW,EAAE,0KAA0K;IACvL,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,gBAAgB,EAAE;gBAChB,GAAG,kCAAc;gBACjB,WAAW,EAAE,gGAAgG;aAC9G;SACF;KACF;IACD,OAAO,EAAE,IAAA,oCAAiB,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7C,MAAM,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,CAAC;QAEhD,IAAI,CAAC;YACH,yEAAyE;YACzE,MAAM,GAAG,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YAEnD,MAAM,YAAY,GAAG,gBAAgB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAE1D,OAAO,IAAA,qCAAa,EAAC;gBACnB,OAAO,EAAE,IAAI;gBACb,gBAAgB,EAAE,YAAY;gBAC9B,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,gDAAgD,YAAY,EAAE;gBACvE,OAAO,EAAE,qDAAqD;aAC/D,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oDAAoD;YACpD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnE,MAAM,IAAI,KAAK,CACb,0HAA0H,CAC3H,CAAC;YACJ,CAAC;YAED,wBAAwB;YACxB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;CACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/validation.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Validation Utilities Tests
|
|
4
|
-
*
|
|
5
|
-
* Tests for input validation functions
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
const validation_1 = require("../validation");
|
|
9
|
-
describe('Validation Utilities', () => {
|
|
10
|
-
describe('validateTokenName()', () => {
|
|
11
|
-
it('should accept valid token names', () => {
|
|
12
|
-
expect(() => (0, validation_1.validateTokenName)('anime')).not.toThrow();
|
|
13
|
-
expect(() => (0, validation_1.validateTokenName)('test123')).not.toThrow();
|
|
14
|
-
expect(() => (0, validation_1.validateTokenName)('my-token')).not.toThrow();
|
|
15
|
-
expect(() => (0, validation_1.validateTokenName)('my_token')).not.toThrow();
|
|
16
|
-
expect(() => (0, validation_1.validateTokenName)('TEST-123')).not.toThrow();
|
|
17
|
-
});
|
|
18
|
-
it('should reject invalid token names', () => {
|
|
19
|
-
expect(() => (0, validation_1.validateTokenName)('')).toThrow(validation_1.ValidationError);
|
|
20
|
-
expect(() => (0, validation_1.validateTokenName)('a')).toThrow(validation_1.ValidationError);
|
|
21
|
-
expect(() => (0, validation_1.validateTokenName)('verylongtokennamethatexceedstwentycharacters')).toThrow(validation_1.ValidationError);
|
|
22
|
-
expect(() => (0, validation_1.validateTokenName)('token@#$')).toThrow(validation_1.ValidationError);
|
|
23
|
-
expect(() => (0, validation_1.validateTokenName)('token with spaces')).toThrow(validation_1.ValidationError);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe('validateNumericAmount()', () => {
|
|
27
|
-
it('should accept valid numeric amounts', () => {
|
|
28
|
-
expect(() => (0, validation_1.validateNumericAmount)('100', 'amount')).not.toThrow();
|
|
29
|
-
expect(() => (0, validation_1.validateNumericAmount)('0.5', 'amount')).not.toThrow();
|
|
30
|
-
expect(() => (0, validation_1.validateNumericAmount)('99999.99', 'amount')).not.toThrow();
|
|
31
|
-
expect(() => (0, validation_1.validateNumericAmount)(100, 'amount')).not.toThrow();
|
|
32
|
-
});
|
|
33
|
-
it('should reject invalid numeric amounts', () => {
|
|
34
|
-
expect(() => (0, validation_1.validateNumericAmount)('', 'amount')).toThrow(validation_1.ValidationError);
|
|
35
|
-
expect(() => (0, validation_1.validateNumericAmount)('abc', 'amount')).toThrow(validation_1.ValidationError);
|
|
36
|
-
expect(() => (0, validation_1.validateNumericAmount)('-5', 'amount')).toThrow(validation_1.ValidationError);
|
|
37
|
-
expect(() => (0, validation_1.validateNumericAmount)('0', 'amount')).toThrow(validation_1.ValidationError);
|
|
38
|
-
expect(() => (0, validation_1.validateNumericAmount)(Infinity, 'amount')).toThrow(validation_1.ValidationError);
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
describe('validateSlippage()', () => {
|
|
42
|
-
it('should accept valid slippage values', () => {
|
|
43
|
-
expect(() => (0, validation_1.validateSlippage)('1')).not.toThrow();
|
|
44
|
-
expect(() => (0, validation_1.validateSlippage)('0.5')).not.toThrow();
|
|
45
|
-
expect(() => (0, validation_1.validateSlippage)('50')).not.toThrow();
|
|
46
|
-
expect(() => (0, validation_1.validateSlippage)('0.01')).not.toThrow();
|
|
47
|
-
expect(() => (0, validation_1.validateSlippage)('100')).not.toThrow();
|
|
48
|
-
});
|
|
49
|
-
it('should reject invalid slippage values', () => {
|
|
50
|
-
expect(() => (0, validation_1.validateSlippage)('0')).toThrow(validation_1.ValidationError);
|
|
51
|
-
expect(() => (0, validation_1.validateSlippage)('0.005')).toThrow(validation_1.ValidationError);
|
|
52
|
-
expect(() => (0, validation_1.validateSlippage)('101')).toThrow(validation_1.ValidationError);
|
|
53
|
-
expect(() => (0, validation_1.validateSlippage)('-1')).toThrow(validation_1.ValidationError);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
describe('validateAddress()', () => {
|
|
57
|
-
it('should accept valid addresses', () => {
|
|
58
|
-
expect(() => (0, validation_1.validateAddress)('eth|0x1234567890abcdef1234567890abcdef12345678')).not.toThrow();
|
|
59
|
-
expect(() => (0, validation_1.validateAddress)('0x1234567890abcdef1234567890abcdef12345678')).not.toThrow();
|
|
60
|
-
expect(() => (0, validation_1.validateAddress)('0xABCDEF1234567890abcdef1234567890ABCDEF12')).not.toThrow();
|
|
61
|
-
});
|
|
62
|
-
it('should reject invalid addresses', () => {
|
|
63
|
-
expect(() => (0, validation_1.validateAddress)('')).toThrow(validation_1.ValidationError);
|
|
64
|
-
expect(() => (0, validation_1.validateAddress)('invalid')).toThrow(validation_1.ValidationError);
|
|
65
|
-
expect(() => (0, validation_1.validateAddress)('0x123')).toThrow(validation_1.ValidationError);
|
|
66
|
-
expect(() => (0, validation_1.validateAddress)('eth|123')).toThrow(validation_1.ValidationError);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
describe('validateTokenSymbol()', () => {
|
|
70
|
-
it('should accept valid symbols', () => {
|
|
71
|
-
expect(() => (0, validation_1.validateTokenSymbol)('GALA')).not.toThrow();
|
|
72
|
-
expect(() => (0, validation_1.validateTokenSymbol)('TEST')).not.toThrow();
|
|
73
|
-
expect(() => (0, validation_1.validateTokenSymbol)('A')).not.toThrow();
|
|
74
|
-
expect(() => (0, validation_1.validateTokenSymbol)('ABCDEFGH')).not.toThrow();
|
|
75
|
-
});
|
|
76
|
-
it('should reject invalid symbols', () => {
|
|
77
|
-
expect(() => (0, validation_1.validateTokenSymbol)('')).toThrow(validation_1.ValidationError);
|
|
78
|
-
expect(() => (0, validation_1.validateTokenSymbol)('test')).toThrow(validation_1.ValidationError);
|
|
79
|
-
expect(() => (0, validation_1.validateTokenSymbol)('TOOLONG123')).toThrow(validation_1.ValidationError);
|
|
80
|
-
expect(() => (0, validation_1.validateTokenSymbol)('TEST123')).toThrow(validation_1.ValidationError);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
describe('validatePaginationLimit()', () => {
|
|
84
|
-
it('should accept valid limits', () => {
|
|
85
|
-
expect(() => (0, validation_1.validatePaginationLimit)('1')).not.toThrow();
|
|
86
|
-
expect(() => (0, validation_1.validatePaginationLimit)('20')).not.toThrow();
|
|
87
|
-
expect(() => (0, validation_1.validatePaginationLimit)('100')).not.toThrow();
|
|
88
|
-
expect(() => (0, validation_1.validatePaginationLimit)(50)).not.toThrow();
|
|
89
|
-
});
|
|
90
|
-
it('should reject invalid limits', () => {
|
|
91
|
-
expect(() => (0, validation_1.validatePaginationLimit)('0')).toThrow(validation_1.ValidationError);
|
|
92
|
-
expect(() => (0, validation_1.validatePaginationLimit)('101')).toThrow(validation_1.ValidationError);
|
|
93
|
-
expect(() => (0, validation_1.validatePaginationLimit)('-1')).toThrow(validation_1.ValidationError);
|
|
94
|
-
expect(() => (0, validation_1.validatePaginationLimit)('abc')).toThrow(validation_1.ValidationError);
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
describe('validateTokenList()', () => {
|
|
98
|
-
it('should accept valid token lists', () => {
|
|
99
|
-
const result1 = (0, validation_1.validateTokenList)('anime,test,dragon');
|
|
100
|
-
expect(result1).toEqual(['anime', 'test', 'dragon']);
|
|
101
|
-
const result2 = (0, validation_1.validateTokenList)('token1');
|
|
102
|
-
expect(result2).toEqual(['token1']);
|
|
103
|
-
});
|
|
104
|
-
it('should reject invalid token lists', () => {
|
|
105
|
-
expect(() => (0, validation_1.validateTokenList)('')).toThrow(validation_1.ValidationError);
|
|
106
|
-
expect(() => (0, validation_1.validateTokenList)('token1,invalid@#$')).toThrow(validation_1.ValidationError);
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
describe('safeValidate()', () => {
|
|
110
|
-
it('should return success for valid input', () => {
|
|
111
|
-
const result = (0, validation_1.safeValidate)(() => (0, validation_1.validateTokenName)('anime'));
|
|
112
|
-
expect(result.success).toBe(true);
|
|
113
|
-
expect(result.error).toBeUndefined();
|
|
114
|
-
});
|
|
115
|
-
it('should return error for invalid input', () => {
|
|
116
|
-
const result = (0, validation_1.safeValidate)(() => (0, validation_1.validateTokenName)('invalid@#$'));
|
|
117
|
-
expect(result.success).toBe(false);
|
|
118
|
-
expect(result.error).toBeDefined();
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
//# sourceMappingURL=validation.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/validation.test.ts"],"names":[],"mappings":"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"}
|