gmgn-cli 1.1.8 → 1.1.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.
@@ -6,6 +6,28 @@
6
6
  * Critical (swap/order): normal auth + X-Signature (private key signature)
7
7
  */
8
8
  import { buildAuthQuery, buildMessage, detectAlgorithm, sign } from "./signer.js";
9
+ const RATE_LIMIT_RETRY_BUFFER_MS = 1000;
10
+ const DEFAULT_RATE_LIMIT_AUTO_RETRY_MAX_WAIT_MS = 5000;
11
+ class OpenApiError extends Error {
12
+ method;
13
+ path;
14
+ status;
15
+ apiCode;
16
+ apiError;
17
+ apiMessage;
18
+ resetAtUnix;
19
+ constructor(params) {
20
+ super(buildOpenApiErrorMessage(params));
21
+ this.name = "OpenApiError";
22
+ this.method = params.method;
23
+ this.path = params.path;
24
+ this.status = params.status;
25
+ this.apiCode = params.apiCode;
26
+ this.apiError = params.apiError;
27
+ this.apiMessage = params.apiMessage;
28
+ this.resetAtUnix = params.resetAtUnix;
29
+ }
30
+ }
9
31
  export class OpenApiClient {
10
32
  apiKey;
11
33
  privateKeyPem;
@@ -65,8 +87,8 @@ export class OpenApiClient {
65
87
  async getWalletTokenBalance(chain, walletAddress, tokenAddress) {
66
88
  return this.normalRequest("GET", "/v1/user/wallet_token_balance", { chain, wallet_address: walletAddress, token_address: tokenAddress });
67
89
  }
68
- async getTrenches(chain, types, platforms, limit) {
69
- const body = buildTrenchesBody(chain, types, platforms, limit);
90
+ async getTrenches(chain, types, platforms, limit, filters) {
91
+ const body = buildTrenchesBody(chain, types, platforms, limit, filters);
70
92
  return this.normalRequest("POST", "/v1/trenches", { chain }, body);
71
93
  }
72
94
  // ---- Market trending endpoints (normal auth) ----
@@ -108,38 +130,90 @@ export class OpenApiClient {
108
130
  async queryOrder(orderId, chain) {
109
131
  return this.criticalRequest("GET", "/v1/trade/query_order", { order_id: orderId, chain }, null);
110
132
  }
133
+ // ---- Strategy order endpoints ----
134
+ async createStrategyOrder(params) {
135
+ return this.criticalRequest("POST", "/v1/trade/strategy/create", {}, params);
136
+ }
137
+ async getStrategyOrders(chain, extra = {}) {
138
+ return this.normalRequest("GET", "/v1/trade/strategy/orders", { chain, ...extra });
139
+ }
140
+ async cancelStrategyOrder(params) {
141
+ return this.criticalRequest("POST", "/v1/trade/strategy/cancel", {}, params);
142
+ }
143
+ // ---- Cooking endpoints ----
144
+ async getCookingStatistics() {
145
+ return this.normalRequest("GET", "/v1/cooking/statistics", {});
146
+ }
147
+ async createToken(params) {
148
+ return this.criticalRequest("POST", "/v1/cooking/create_token", {}, params);
149
+ }
111
150
  // ---- Internal methods ----
112
151
  async normalRequest(method, subPath, queryExtra, body = null) {
113
- const { timestamp, client_id } = buildAuthQuery();
114
- const query = { ...queryExtra, timestamp, client_id };
115
- const url = buildUrl(`${this.host}${subPath}`, query);
116
- const headers = {
117
- "X-APIKEY": this.apiKey,
118
- "Content-Type": "application/json",
119
- };
120
- const bodyStr = body !== null ? JSON.stringify(body) : null;
121
- const curlStr = formatCurl(method, url, headers, bodyStr);
122
- const res = await this.doFetch(method, subPath, url, headers, bodyStr, curlStr);
123
- return this.parseResponse(method, subPath, res, curlStr);
152
+ return this.executePreparedRequest(() => {
153
+ const { timestamp, client_id } = buildAuthQuery();
154
+ const query = { ...queryExtra, timestamp, client_id };
155
+ const url = buildUrl(`${this.host}${subPath}`, query);
156
+ const headers = {
157
+ "X-APIKEY": this.apiKey,
158
+ "Content-Type": "application/json",
159
+ };
160
+ const bodyStr = body !== null ? JSON.stringify(body) : null;
161
+ return {
162
+ method,
163
+ subPath,
164
+ url,
165
+ headers,
166
+ body: bodyStr,
167
+ curlStr: formatCurl(method, url, headers, bodyStr),
168
+ };
169
+ }, true);
124
170
  }
125
171
  async criticalRequest(method, subPath, queryExtra, body) {
126
172
  if (!this.privateKeyPem) {
127
173
  throw new Error("GMGN_PRIVATE_KEY is required for swap/order commands");
128
174
  }
129
- const { timestamp, client_id } = buildAuthQuery();
130
- const query = { ...queryExtra, timestamp, client_id };
131
- const bodyStr = body !== null ? JSON.stringify(body) : "";
132
- const message = buildMessage(subPath, query, bodyStr, timestamp);
133
- const signature = sign(message, this.privateKeyPem, detectAlgorithm(this.privateKeyPem));
134
- const url = buildUrl(`${this.host}${subPath}`, query);
135
- const headers = {
136
- "X-APIKEY": this.apiKey,
137
- "X-Signature": signature,
138
- "Content-Type": "application/json",
139
- };
140
- const curlStr = formatCurl(method, url, headers, bodyStr || null);
141
- const res = await this.doFetch(method, subPath, url, headers, bodyStr || null, curlStr);
142
- return this.parseResponse(method, subPath, res, curlStr);
175
+ return this.executePreparedRequest(() => {
176
+ const { timestamp, client_id } = buildAuthQuery();
177
+ const query = { ...queryExtra, timestamp, client_id };
178
+ const bodyStr = body !== null ? JSON.stringify(body) : "";
179
+ const message = buildMessage(subPath, query, bodyStr, timestamp);
180
+ const signature = sign(message, this.privateKeyPem, detectAlgorithm(this.privateKeyPem));
181
+ const url = buildUrl(`${this.host}${subPath}`, query);
182
+ const headers = {
183
+ "X-APIKEY": this.apiKey,
184
+ "X-Signature": signature,
185
+ "Content-Type": "application/json",
186
+ };
187
+ return {
188
+ method,
189
+ subPath,
190
+ url,
191
+ headers,
192
+ body: bodyStr || null,
193
+ curlStr: formatCurl(method, url, headers, bodyStr || null),
194
+ };
195
+ }, method !== "POST");
196
+ }
197
+ async executePreparedRequest(prepare, autoRetryOnRateLimit) {
198
+ const maxAttempts = autoRetryOnRateLimit ? 2 : 1;
199
+ for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
200
+ const request = prepare();
201
+ const res = await this.doFetch(request.method, request.subPath, request.url, request.headers, request.body, request.curlStr);
202
+ try {
203
+ return this.parseResponse(request.method, request.subPath, res, request.curlStr);
204
+ }
205
+ catch (err) {
206
+ const retryDelayMs = getRateLimitRetryDelayMs(err, attempt, maxAttempts, autoRetryOnRateLimit);
207
+ if (retryDelayMs == null) {
208
+ throw err;
209
+ }
210
+ if (process.env.GMGN_DEBUG) {
211
+ console.error(`[gmgn-cli] ${request.method} ${request.subPath} hit rate limit, retrying once in ${Math.ceil(retryDelayMs / 1000)}s`);
212
+ }
213
+ await sleep(retryDelayMs);
214
+ }
215
+ }
216
+ throw new Error("Unexpected retry loop exit");
143
217
  }
144
218
  async doFetch(method, subPath, url, headers, body, curlStr) {
145
219
  try {
@@ -165,6 +239,7 @@ export class OpenApiClient {
165
239
  }
166
240
  throw new Error(msg);
167
241
  };
242
+ const resetAtUnix = parseRateLimitReset(res.headers.get("x-ratelimit-reset"));
168
243
  let text;
169
244
  try {
170
245
  text = await res.text();
@@ -180,11 +255,98 @@ export class OpenApiClient {
180
255
  fail(`${method} ${path} failed: HTTP ${res.status} (non-JSON response)`, text);
181
256
  }
182
257
  if (json.code !== 0) {
183
- fail(`${method} ${path} failed: HTTP ${res.status} code=${json.code} error=${json.error ?? ""} message=${json.message ?? ""}`, text);
258
+ if (process.env.GMGN_DEBUG) {
259
+ console.error(`${curlStr}\n${formatResponse(res, text)}`);
260
+ }
261
+ throw new OpenApiError({
262
+ method,
263
+ path,
264
+ status: res.status,
265
+ apiCode: json.code,
266
+ apiError: json.error,
267
+ apiMessage: json.message,
268
+ resetAtUnix,
269
+ });
184
270
  }
185
271
  return json.data;
186
272
  }
187
273
  }
274
+ function getRateLimitRetryDelayMs(err, attempt, maxAttempts, autoRetryOnRateLimit) {
275
+ if (!autoRetryOnRateLimit || attempt >= maxAttempts) {
276
+ return null;
277
+ }
278
+ if (!(err instanceof OpenApiError)) {
279
+ return null;
280
+ }
281
+ if (err.apiError !== "RATE_LIMIT_EXCEEDED" && err.apiError !== "RATE_LIMIT_BANNED") {
282
+ return null;
283
+ }
284
+ if (err.resetAtUnix == null) {
285
+ return null;
286
+ }
287
+ const waitMs = Math.max(err.resetAtUnix * 1000 - Date.now(), 0) + RATE_LIMIT_RETRY_BUFFER_MS;
288
+ return waitMs <= getAutoRetryMaxWaitMs() ? waitMs : null;
289
+ }
290
+ function parseRateLimitReset(raw) {
291
+ if (raw == null || raw.trim() === "") {
292
+ return undefined;
293
+ }
294
+ const parsed = Number.parseInt(raw, 10);
295
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;
296
+ }
297
+ function getAutoRetryMaxWaitMs() {
298
+ const raw = process.env.GMGN_RATE_LIMIT_AUTO_RETRY_MAX_WAIT_MS;
299
+ if (!raw) {
300
+ return DEFAULT_RATE_LIMIT_AUTO_RETRY_MAX_WAIT_MS;
301
+ }
302
+ const parsed = Number.parseInt(raw, 10);
303
+ return Number.isFinite(parsed) && parsed >= 0 ? parsed : DEFAULT_RATE_LIMIT_AUTO_RETRY_MAX_WAIT_MS;
304
+ }
305
+ function buildOpenApiErrorMessage(params) {
306
+ const parts = [`${params.method} ${params.path} failed: HTTP ${params.status}`];
307
+ if (params.apiCode != null)
308
+ parts.push(`code=${params.apiCode}`);
309
+ if (params.apiError)
310
+ parts.push(`error=${params.apiError}`);
311
+ if (params.apiMessage)
312
+ parts.push(`message=${params.apiMessage}`);
313
+ let message = parts.join(" ");
314
+ if (params.status !== 429) {
315
+ return message;
316
+ }
317
+ const resetText = params.resetAtUnix != null
318
+ ? formatRateLimitReset(params.resetAtUnix)
319
+ : "an unknown time";
320
+ if (params.apiError === "ERROR_RATE_LIMIT_BLOCKED") {
321
+ return `${message}. Repeated business errors triggered a temporary block until ${resetText}. Fix the underlying request before retrying.`;
322
+ }
323
+ if (params.apiError === "RATE_LIMIT_EXCEEDED" || params.apiError === "RATE_LIMIT_BANNED") {
324
+ return `${message}. Rate limit resets at ${resetText}. Stop sending requests before then; repeated requests can extend the ban by 5s up to 5 minutes.`;
325
+ }
326
+ return `${message}. Received HTTP 429; retry after ${resetText}.`;
327
+ }
328
+ function formatRateLimitReset(resetAtUnix) {
329
+ const resetAt = new Date(resetAtUnix * 1000);
330
+ const remainingSeconds = Math.max(Math.ceil((resetAt.getTime() - Date.now()) / 1000), 0);
331
+ return `${formatLocalTimestamp(resetAt)} (~${remainingSeconds}s remaining)`;
332
+ }
333
+ function formatLocalTimestamp(date) {
334
+ const year = date.getFullYear();
335
+ const month = String(date.getMonth() + 1).padStart(2, "0");
336
+ const day = String(date.getDate()).padStart(2, "0");
337
+ const hours = String(date.getHours()).padStart(2, "0");
338
+ const minutes = String(date.getMinutes()).padStart(2, "0");
339
+ const seconds = String(date.getSeconds()).padStart(2, "0");
340
+ const offsetMinutes = -date.getTimezoneOffset();
341
+ const sign = offsetMinutes >= 0 ? "+" : "-";
342
+ const absOffsetMinutes = Math.abs(offsetMinutes);
343
+ const offsetHours = String(Math.floor(absOffsetMinutes / 60)).padStart(2, "0");
344
+ const offsetMins = String(absOffsetMinutes % 60).padStart(2, "0");
345
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds} GMT${sign}${offsetHours}:${offsetMins}`;
346
+ }
347
+ function sleep(ms) {
348
+ return new Promise((resolve) => setTimeout(resolve, ms));
349
+ }
188
350
  function formatResponse(res, body) {
189
351
  const headerLines = [...res.headers.entries()].map(([k, v]) => ` ${k}: ${v}`).join("\n");
190
352
  return `[response] HTTP ${res.status}\n${headerLines}\n\n${body ?? "(no body)"}`;
@@ -219,7 +381,7 @@ const TRENCHES_QUOTE_ADDRESS_TYPES = {
219
381
  bsc: [6, 7, 1, 16, 8, 3, 9, 10, 2, 17, 18, 0],
220
382
  base: [11, 3, 12, 13, 0],
221
383
  };
222
- function buildTrenchesBody(chain, types, platforms, limit) {
384
+ function buildTrenchesBody(chain, types, platforms, limit, filters) {
223
385
  const selectedTypes = types?.length ? types : ["new_creation", "near_completion", "completed"];
224
386
  const launchpad_platform = platforms?.length ? platforms : (TRENCHES_PLATFORMS[chain] ?? []);
225
387
  const quote_address_type = TRENCHES_QUOTE_ADDRESS_TYPES[chain] ?? [];
@@ -230,6 +392,7 @@ function buildTrenchesBody(chain, types, platforms, limit) {
230
392
  quote_address_type,
231
393
  launchpad_platform_v2: true,
232
394
  limit: actualLimit,
395
+ ...filters,
233
396
  };
234
397
  const body = { version: "v2" };
235
398
  for (const type of selectedTypes) {
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiClient.js","sourceRoot":"","sources":["../../src/client/OpenApiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenApiClient.js","sourceRoot":"","sources":["../../src/client/OpenApiClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerCookingCommands(program: Command): void;
3
+ //# sourceMappingURL=cooking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cooking.d.ts","sourceRoot":"","sources":["../../src/commands/cooking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmE9D"}
@@ -0,0 +1,82 @@
1
+ import { OpenApiClient } from "../client/OpenApiClient.js";
2
+ import { getConfig } from "../config.js";
3
+ import { exitOnError, printResult } from "../output.js";
4
+ import { validateChain } from "../validate.js";
5
+ export function registerCookingCommands(program) {
6
+ const cooking = program.command("cooking").description("Token creation and launchpad commands");
7
+ cooking
8
+ .command("stats")
9
+ .description("Get token creation statistics by launchpad (normal auth)")
10
+ .option("--raw", "Output raw JSON")
11
+ .action(async (opts) => {
12
+ const client = new OpenApiClient(getConfig());
13
+ const data = await client.getCookingStatistics().catch(exitOnError);
14
+ printResult(data, opts.raw);
15
+ });
16
+ cooking
17
+ .command("create")
18
+ .description("Create a token on a launchpad platform (requires private key)")
19
+ .requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / ton")
20
+ .requiredOption("--dex <dex>", "Launchpad: pump / raydium / pancakeswap / flap / fourmeme / bonk / bags / ...")
21
+ .requiredOption("--from <address>", "Wallet address (must match API Key binding)")
22
+ .requiredOption("--name <name>", "Token name")
23
+ .requiredOption("--symbol <symbol>", "Token symbol")
24
+ .requiredOption("--buy-amt <amount>", "Initial buy amount in native token (e.g. 0.01 SOL)")
25
+ .option("--image <base64>", "Token logo as base64-encoded data (max 2MB decoded)")
26
+ .option("--image-url <url>", "Token logo URL")
27
+ .option("--website <url>", "Website URL")
28
+ .option("--twitter <url>", "Twitter link")
29
+ .option("--telegram <url>", "Telegram link")
30
+ .option("--slippage <n>", "Slippage tolerance (e.g. 0.01 = 1%)", parseFloat)
31
+ .option("--auto-slippage", "Enable automatic slippage")
32
+ .option("--priority-fee <sol>", "Priority fee in SOL (SOL only)")
33
+ .option("--tip-fee <amount>", "Tip fee")
34
+ .option("--gas-price <amount>", "Gas price in wei (EVM chains)")
35
+ .option("--anti-mev", "Enable anti-MEV protection")
36
+ .option("--raw", "Output raw JSON")
37
+ .action(async (opts) => {
38
+ if (!opts.image && !opts.imageUrl) {
39
+ console.error("[gmgn-cli] Either --image or --image-url must be provided");
40
+ process.exit(1);
41
+ }
42
+ if (!opts.slippage && !opts.autoSlippage) {
43
+ console.error("[gmgn-cli] Either --slippage or --auto-slippage must be provided");
44
+ process.exit(1);
45
+ }
46
+ validateChain(opts.chain);
47
+ const params = {
48
+ chain: opts.chain,
49
+ dex: opts.dex,
50
+ from_address: opts.from,
51
+ name: opts.name,
52
+ symbol: opts.symbol,
53
+ buy_amt: opts.buyAmt,
54
+ };
55
+ if (opts.image)
56
+ params.image = opts.image;
57
+ if (opts.imageUrl)
58
+ params.image_url = opts.imageUrl;
59
+ if (opts.website)
60
+ params.website = opts.website;
61
+ if (opts.twitter)
62
+ params.twitter = opts.twitter;
63
+ if (opts.telegram)
64
+ params.telegram = opts.telegram;
65
+ if (opts.slippage != null)
66
+ params.slippage = opts.slippage;
67
+ if (opts.autoSlippage)
68
+ params.auto_slippage = true;
69
+ if (opts.priorityFee)
70
+ params.priority_fee = opts.priorityFee;
71
+ if (opts.tipFee)
72
+ params.tip_fee = opts.tipFee;
73
+ if (opts.gasPrice)
74
+ params.gas_price = opts.gasPrice;
75
+ if (opts.antiMev)
76
+ params.is_anti_mev = true;
77
+ const client = new OpenApiClient(getConfig(true));
78
+ const data = await client.createToken(params).catch(exitOnError);
79
+ printResult(data, opts.raw);
80
+ });
81
+ }
82
+ //# sourceMappingURL=cooking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cooking.js","sourceRoot":"","sources":["../../src/commands/cooking.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../src/commands/market.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmE7D"}
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../src/commands/market.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G7D"}
@@ -50,19 +50,181 @@ export function registerMarketCommands(program) {
50
50
  const data = await client.getTrendingSwaps(opts.chain, opts.interval, extra).catch(exitOnError);
51
51
  printResult(data, opts.raw);
52
52
  });
53
- market
53
+ const trenchesCmd = market
54
54
  .command("trenches")
55
55
  .description("Get Trenches token data (new creation, near completion, completed)")
56
56
  .requiredOption("--chain <chain>", "Chain: sol / bsc / base")
57
57
  .option("--type <type...>", "Categories to query, repeatable: new_creation / near_completion / completed (default: all three)")
58
58
  .option("--launchpad-platform <platform...>", "Launchpad platform filter, repeatable (default: all platforms for the chain)")
59
59
  .option("--limit <n>", "Max results per category, max 80 (default: 80)", parseInt)
60
- .option("--raw", "Output raw JSON")
61
- .action(async (opts) => {
60
+ .option("--filter-preset <preset>", "Apply a named filter preset: safe / smart-money / strict")
61
+ .option("--sort-by <field>", "Client-side sort per category: smart_degen_count / renowned_count / volume_24h / volume_1h / swaps_24h / swaps_1h / rug_ratio / holder_count / usd_market_cap / created_timestamp")
62
+ .option("--direction <dir>", "Sort direction: asc / desc (default: desc; asc for rug_ratio)")
63
+ .option("--raw", "Output raw JSON");
64
+ // Dynamically register all server-side filter flags
65
+ for (const def of TRENCHES_FILTER_FIELDS) {
66
+ const flag = def.api.replace(/_/g, '-');
67
+ if (def.type === "int") {
68
+ trenchesCmd.option(`--${flag} <${def.type}>`, def.desc, parseInt);
69
+ }
70
+ else if (def.type === "float") {
71
+ trenchesCmd.option(`--${flag} <${def.type}>`, def.desc, parseFloat);
72
+ }
73
+ else {
74
+ trenchesCmd.option(`--${flag} <value>`, def.desc);
75
+ }
76
+ }
77
+ trenchesCmd.action(async (opts) => {
62
78
  validateChain(opts.chain);
63
79
  const client = new OpenApiClient(getConfig());
64
- const data = await client.getTrenches(opts.chain, opts.type, opts.launchpadPlatform, opts.limit).catch(exitOnError);
65
- printResult(data, opts.raw);
80
+ // Build server-side filter object
81
+ const filters = {};
82
+ // Apply preset values first
83
+ if (opts.filterPreset != null) {
84
+ const preset = TRENCHES_FILTER_PRESETS[opts.filterPreset];
85
+ if (!preset) {
86
+ console.error(`Unknown --filter-preset "${opts.filterPreset}". Valid options: ${Object.keys(TRENCHES_FILTER_PRESETS).join(", ")}`);
87
+ process.exit(1);
88
+ }
89
+ Object.assign(filters, preset);
90
+ }
91
+ // Apply individual filter flags (override preset values)
92
+ const optsMap = opts;
93
+ for (const def of TRENCHES_FILTER_FIELDS) {
94
+ const key = apiFieldToCliKey(def.api);
95
+ const val = optsMap[key];
96
+ if (val != null)
97
+ filters[def.api] = val;
98
+ }
99
+ const data = await client
100
+ .getTrenches(opts.chain, opts.type, opts.launchpadPlatform, opts.limit, Object.keys(filters).length ? filters : undefined)
101
+ .catch(exitOnError);
102
+ const result = opts.sortBy
103
+ ? sortTrenchesResult(data, opts.sortBy, opts.direction ?? "")
104
+ : data;
105
+ printResult(result, opts.raw);
66
106
  });
67
107
  }
108
+ // All server-side filter fields for market trenches
109
+ // API field names map to CLI flags by replacing _ with - (e.g. min_volume_24h → --min-volume-24h)
110
+ const TRENCHES_FILTER_FIELDS = [
111
+ // Trading activity (24h)
112
+ { api: "min_volume_24h", type: "float", desc: "Min 24h trading volume (USD)" },
113
+ { api: "max_volume_24h", type: "float", desc: "Max 24h trading volume (USD)" },
114
+ { api: "min_net_buy_24h", type: "float", desc: "Min 24h net buy volume (USD)" },
115
+ { api: "max_net_buy_24h", type: "float", desc: "Max 24h net buy volume (USD)" },
116
+ { api: "min_swaps_24h", type: "int", desc: "Min 24h total swap count" },
117
+ { api: "max_swaps_24h", type: "int", desc: "Max 24h total swap count" },
118
+ { api: "min_buys_24h", type: "int", desc: "Min 24h buy count" },
119
+ { api: "max_buys_24h", type: "int", desc: "Max 24h buy count" },
120
+ { api: "min_sells_24h", type: "int", desc: "Min 24h sell count" },
121
+ { api: "max_sells_24h", type: "int", desc: "Max 24h sell count" },
122
+ { api: "min_visiting_count", type: "int", desc: "Min visitor count" },
123
+ { api: "max_visiting_count", type: "int", desc: "Max visitor count" },
124
+ // Market & liquidity
125
+ { api: "min_progress", type: "float", desc: "Min bonding curve progress (0–1)" },
126
+ { api: "max_progress", type: "float", desc: "Max bonding curve progress (0–1, 1 = completed)" },
127
+ { api: "min_marketcap", type: "float", desc: "Min market cap (USD)" },
128
+ { api: "max_marketcap", type: "float", desc: "Max market cap (USD)" },
129
+ { api: "min_liquidity", type: "float", desc: "Min liquidity (USD)" },
130
+ { api: "max_liquidity", type: "float", desc: "Max liquidity (USD)" },
131
+ // Token age
132
+ { api: "min_created", type: "string", desc: "Min token age (e.g. 1m / 5m / 30m / 1h / 6h / 24h)" },
133
+ { api: "max_created", type: "string", desc: "Max token age (e.g. 1m / 5m / 30m / 1h / 6h / 24h)" },
134
+ // Holders
135
+ { api: "min_holder_count", type: "int", desc: "Min holder count" },
136
+ { api: "max_holder_count", type: "int", desc: "Max holder count" },
137
+ { api: "min_top_holder_rate", type: "float", desc: "Min top-10 holder concentration (0–1)" },
138
+ { api: "max_top_holder_rate", type: "float", desc: "Max top-10 holder concentration (0–1)" },
139
+ // Risk signals
140
+ { api: "min_rug_ratio", type: "float", desc: "Min rug pull risk score (0–1)" },
141
+ { api: "max_rug_ratio", type: "float", desc: "Max rug pull risk score (0–1, e.g. 0.3 to exclude rugs)" },
142
+ { api: "min_bundler_rate", type: "float", desc: "Min bundle-bot trading ratio (0–1)" },
143
+ { api: "max_bundler_rate", type: "float", desc: "Max bundle-bot trading ratio (0–1)" },
144
+ { api: "min_insider_ratio", type: "float", desc: "Min insider trading ratio (0–1)" },
145
+ { api: "max_insider_ratio", type: "float", desc: "Max insider trading ratio (0–1)" },
146
+ { api: "min_entrapment_ratio", type: "float", desc: "Min entrapment trading ratio (0–1)" },
147
+ { api: "max_entrapment_ratio", type: "float", desc: "Max entrapment trading ratio (0–1)" },
148
+ { api: "min_private_vault_hold_rate", type: "float", desc: "Min private vault holding ratio (0–1)" },
149
+ { api: "max_private_vault_hold_rate", type: "float", desc: "Max private vault holding ratio (0–1)" },
150
+ { api: "min_top70_sniper_hold_rate", type: "float", desc: "Min top-70 sniper holding ratio (0–1)" },
151
+ { api: "max_top70_sniper_hold_rate", type: "float", desc: "Max top-70 sniper holding ratio (0–1)" },
152
+ { api: "min_bot_count", type: "int", desc: "Min bot wallet count" },
153
+ { api: "max_bot_count", type: "int", desc: "Max bot wallet count" },
154
+ { api: "min_bot_degen_rate", type: "float", desc: "Min bot-degen wallet ratio (0–1)" },
155
+ { api: "max_bot_degen_rate", type: "float", desc: "Max bot-degen wallet ratio (0–1)" },
156
+ { api: "min_fresh_wallet_rate", type: "float", desc: "Min fresh wallet ratio (0–1)" },
157
+ { api: "max_fresh_wallet_rate", type: "float", desc: "Max fresh wallet ratio (0–1)" },
158
+ { api: "min_total_fee", type: "float", desc: "Min total fee" },
159
+ { api: "max_total_fee", type: "float", desc: "Max total fee" },
160
+ // Smart money
161
+ { api: "min_smart_degen_count", type: "int", desc: "Min smart-money holder count" },
162
+ { api: "max_smart_degen_count", type: "int", desc: "Max smart-money holder count" },
163
+ { api: "min_renowned_count", type: "int", desc: "Min KOL / renowned wallet count" },
164
+ { api: "max_renowned_count", type: "int", desc: "Max KOL / renowned wallet count" },
165
+ // Dev / creator
166
+ { api: "min_creator_balance_rate", type: "float", desc: "Min creator holding ratio (0–1)" },
167
+ { api: "max_creator_balance_rate", type: "float", desc: "Max creator holding ratio (0–1)" },
168
+ { api: "min_creator_created_count", type: "int", desc: "Min creator total token creation count" },
169
+ { api: "max_creator_created_count", type: "int", desc: "Max creator total token creation count" },
170
+ { api: "min_creator_created_open_count", type: "int", desc: "Min creator graduated token count" },
171
+ { api: "max_creator_created_open_count", type: "int", desc: "Max creator graduated token count" },
172
+ { api: "min_creator_created_open_ratio", type: "float", desc: "Min creator graduation ratio (0–1)" },
173
+ { api: "max_creator_created_open_ratio", type: "float", desc: "Max creator graduation ratio (0–1)" },
174
+ // Social
175
+ { api: "min_x_follower", type: "int", desc: "Min Twitter / X follower count" },
176
+ { api: "max_x_follower", type: "int", desc: "Max Twitter / X follower count" },
177
+ { api: "min_twitter_rename_count", type: "int", desc: "Min Twitter rename count (high = suspicious)" },
178
+ { api: "max_twitter_rename_count", type: "int", desc: "Max Twitter rename count" },
179
+ { api: "min_tg_call_count", type: "int", desc: "Min Telegram call count" },
180
+ { api: "max_tg_call_count", type: "int", desc: "Max Telegram call count" },
181
+ ];
182
+ // Named filter presets using actual server-side API field names
183
+ const TRENCHES_FILTER_PRESETS = {
184
+ safe: {
185
+ max_rug_ratio: 0.3,
186
+ max_bundler_rate: 0.3,
187
+ max_insider_ratio: 0.3,
188
+ },
189
+ "smart-money": {
190
+ min_smart_degen_count: 1,
191
+ },
192
+ strict: {
193
+ max_rug_ratio: 0.3,
194
+ max_bundler_rate: 0.3,
195
+ max_insider_ratio: 0.3,
196
+ min_smart_degen_count: 1,
197
+ min_volume_24h: 1000,
198
+ },
199
+ };
200
+ // Convert API snake_case field to Commander.js opts key
201
+ // Commander.js camelCase: only converts -[a-z] patterns, digits stay as-is
202
+ // e.g. min_volume_24h → min-volume-24h → minVolume-24h (digit prefix -24 is NOT converted)
203
+ // e.g. min_smart_degen_count → min-smart-degen-count → minSmartDegenCount (all letters, converts fully)
204
+ function apiFieldToCliKey(apiField) {
205
+ return apiField
206
+ .replace(/_/g, '-')
207
+ .replace(/-([a-z])/g, (_, c) => c.toUpperCase());
208
+ }
209
+ const TRENCHES_SORT_ASC_DEFAULTS = new Set(["rug_ratio"]);
210
+ const TRENCHES_STRING_NUMERIC_FIELDS = new Set(["usd_market_cap", "liquidity", "volume_1h", "volume_24h"]);
211
+ function sortTrenchesCategory(items, sortBy, direction) {
212
+ const dir = direction || (TRENCHES_SORT_ASC_DEFAULTS.has(sortBy) ? "asc" : "desc");
213
+ return [...items].sort((a, b) => {
214
+ const aVal = TRENCHES_STRING_NUMERIC_FIELDS.has(sortBy)
215
+ ? parseFloat(String(a[sortBy] ?? 0))
216
+ : Number(a[sortBy] ?? 0);
217
+ const bVal = TRENCHES_STRING_NUMERIC_FIELDS.has(sortBy)
218
+ ? parseFloat(String(b[sortBy] ?? 0))
219
+ : Number(b[sortBy] ?? 0);
220
+ return dir === "asc" ? aVal - bVal : bVal - aVal;
221
+ });
222
+ }
223
+ function sortTrenchesResult(data, sortBy, direction) {
224
+ const result = {};
225
+ for (const [key, val] of Object.entries(data)) {
226
+ result[key] = Array.isArray(val) ? sortTrenchesCategory(val, sortBy, direction) : val;
227
+ }
228
+ return result;
229
+ }
68
230
  //# sourceMappingURL=market.js.map