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.
- package/Readme.md +131 -29
- package/Readme.zh.md +73 -35
- package/dist/client/OpenApiClient.d.ts +70 -1
- package/dist/client/OpenApiClient.d.ts.map +1 -1
- package/dist/client/OpenApiClient.js +192 -29
- package/dist/client/OpenApiClient.js.map +1 -1
- package/dist/commands/cooking.d.ts +3 -0
- package/dist/commands/cooking.d.ts.map +1 -0
- package/dist/commands/cooking.js +82 -0
- package/dist/commands/cooking.js.map +1 -0
- package/dist/commands/market.d.ts.map +1 -1
- package/dist/commands/market.js +167 -5
- package/dist/commands/market.js.map +1 -1
- package/dist/commands/swap.d.ts.map +1 -1
- package/dist/commands/swap.js +135 -0
- package/dist/commands/swap.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/gmgn-cooking/SKILL.md +363 -0
- package/skills/gmgn-market/SKILL.md +158 -3
- package/skills/gmgn-portfolio/SKILL.md +36 -3
- package/skills/gmgn-swap/SKILL.md +136 -5
- package/skills/gmgn-token/SKILL.md +36 -3
- package/skills/gmgn-track/SKILL.md +39 -4
|
@@ -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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
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 @@
|
|
|
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,
|
|
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"}
|
package/dist/commands/market.js
CHANGED
|
@@ -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("--
|
|
61
|
-
.
|
|
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
|
-
|
|
65
|
-
|
|
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
|