mirror of
https://github.com/GMGNAI/gmgn-skills.git
synced 2026-08-18 10:38:06 +00:00
feat(chains): support robinhood on kol, smartmoney, signal and cooking
- Remove the robinhood-rejection guards in kol, smartmoney, signal and cooking create-token so the CLI matches the backend, which now accepts robinhood on these endpoints - Update --chain / --dex / --raised-token help text and error messages - cooking: robinhood launchpad uses trench / pons DEXes, native raised token only - Sync SKILL.md files, cli-usage.md and both Readmes with the new chain support Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
97df79b9f6
commit
e68e889c3c
@@ -22,8 +22,8 @@ export function registerCookingCommands(program: Command): void {
|
||||
cooking
|
||||
.command("create")
|
||||
.description("Create a token on a launchpad platform (requires private key)")
|
||||
.requiredOption("--chain <chain>", "Chain: sol / bsc / base")
|
||||
.requiredOption("--dex <dex>", "Launchpad: pump / bonk / bags (sol) / fourmeme / flap (bsc) / klik / clanker (base)")
|
||||
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / robinhood")
|
||||
.requiredOption("--dex <dex>", "Launchpad: pump / bonk / bags (sol) / fourmeme / flap (bsc) / klik / clanker (base) / trench / pons (robinhood)")
|
||||
.requiredOption("--from <address>", "Wallet address (must match API Key binding)")
|
||||
.requiredOption("--name <name>", "Token name")
|
||||
.requiredOption("--symbol <symbol>", "Token symbol")
|
||||
@@ -44,7 +44,7 @@ export function registerCookingCommands(program: Command): void {
|
||||
.option("--max-priority-fee-per-gas <amount>", "Max priority fee per gas in wei (EVM only)")
|
||||
.option("--anti-mev", "Enable anti-MEV protection (SOL only)")
|
||||
.option("--anti-mev-mode <mode>", "Anti-MEV mode: off / normal / secure (SOL only)")
|
||||
.option("--raised-token <symbol>", "Raise token symbol: pump→USDC; bonk→USD1; fourmeme→USDT/USD1; leave empty for native")
|
||||
.option("--raised-token <symbol>", "Raise token symbol: pump→USDC; bonk→USD1; fourmeme→USDT/USD1; base/robinhood→native only; leave empty for native")
|
||||
.option("--dev-wallet-bps <n>", "Dev wallet fee in basis points (100 = 1%)", parseInt)
|
||||
.option("--dev-gas <amount>", "Dev gas amount")
|
||||
.option("--dev-priority <amount>", "Dev priority fee")
|
||||
@@ -84,10 +84,6 @@ export function registerCookingCommands(program: Command): void {
|
||||
process.exit(1);
|
||||
}
|
||||
validateChain(opts.chain);
|
||||
if (opts.chain === "robinhood") {
|
||||
console.error(`[gmgn-cli] cooking create does not support robinhood, got "${opts.chain}"`);
|
||||
process.exit(1);
|
||||
}
|
||||
// Validate/clean all free-text and link metadata before publishing. This
|
||||
// prevents the CLI from being used to mint tokens whose metadata carries a
|
||||
// prompt-injection payload aimed at other users' AI agents.
|
||||
|
||||
@@ -157,7 +157,7 @@ export function registerMarketCommands(program: Command): void {
|
||||
market
|
||||
.command("signal")
|
||||
.description("Query token signals (price spikes, smart money buys, large buys, etc.) — max 50 results per group")
|
||||
.requiredOption("--chain <chain>", "Chain: sol / bsc")
|
||||
.requiredOption("--chain <chain>", "Chain: sol / bsc / robinhood")
|
||||
.option("--signal-type <n...>", "Signal type(s), repeatable: 1–18 (default: all types)", (v: string, acc: number[]) => { acc.push(parseInt(v, 10)); return acc; }, [] as number[])
|
||||
.option("--mc-min <usd>", "Min market cap at trigger time (USD)", parseFloat)
|
||||
.option("--mc-max <usd>", "Max market cap at trigger time (USD)", parseFloat)
|
||||
@@ -171,8 +171,8 @@ export function registerMarketCommands(program: Command): void {
|
||||
.option("--raw", "Output raw JSON")
|
||||
.action(async (opts: Record<string, unknown>) => {
|
||||
validateChain(opts["chain"] as string);
|
||||
if (!["sol", "bsc"].includes(opts["chain"] as string)) {
|
||||
console.error(`[gmgn-cli] market signal only supports sol and bsc, got "${opts["chain"]}"`);
|
||||
if (!["sol", "bsc", "robinhood"].includes(opts["chain"] as string)) {
|
||||
console.error(`[gmgn-cli] market signal only supports sol, bsc and robinhood, got "${opts["chain"]}"`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
||||
+2
-10
@@ -76,16 +76,12 @@ export function registerTrackCommands(program: Command): void {
|
||||
track
|
||||
.command("kol")
|
||||
.description("Get KOL trade records")
|
||||
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth")
|
||||
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / robinhood")
|
||||
.option("--limit <n>", "Page size (1–200, default 100)", parseInt)
|
||||
.option("--side <side>", "Filter by trade direction: buy / sell (client-side filter)")
|
||||
.option("--raw", "Output raw JSON")
|
||||
.action(async (opts) => {
|
||||
if (opts.chain) validateChain(opts.chain);
|
||||
if (opts.chain === "robinhood") {
|
||||
console.error(`[gmgn-cli] track kol does not support robinhood, got "${opts.chain}"`);
|
||||
process.exit(1);
|
||||
}
|
||||
const client = new OpenApiClient(getConfig());
|
||||
const data = await client.getKol(opts.chain, opts.limit).catch(exitOnError) as { list?: { side: string }[] };
|
||||
if (opts.side && data?.list) {
|
||||
@@ -97,16 +93,12 @@ export function registerTrackCommands(program: Command): void {
|
||||
track
|
||||
.command("smartmoney")
|
||||
.description("Get Smart Money trade records")
|
||||
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth")
|
||||
.requiredOption("--chain <chain>", "Chain: sol / bsc / base / eth / robinhood")
|
||||
.option("--limit <n>", "Page size (1–200, default 100)", parseInt)
|
||||
.option("--side <side>", "Filter by trade direction: buy / sell (client-side filter)")
|
||||
.option("--raw", "Output raw JSON")
|
||||
.action(async (opts) => {
|
||||
if (opts.chain) validateChain(opts.chain);
|
||||
if (opts.chain === "robinhood") {
|
||||
console.error(`[gmgn-cli] track smartmoney does not support robinhood, got "${opts.chain}"`);
|
||||
process.exit(1);
|
||||
}
|
||||
const client = new OpenApiClient(getConfig());
|
||||
const data = await client.getSmartMoney(opts.chain, opts.limit).catch(exitOnError) as { list?: { side: string }[] };
|
||||
if (opts.side && data?.list) {
|
||||
|
||||
Reference in New Issue
Block a user