UNPKG

genlayer

Version:
95 lines (84 loc) 3.21 kB
import { Command } from "commander"; import { ValidatorsAction } from "./validators"; export function initializeValidatorCommands(program: Command) { const validatorsAction = new ValidatorsAction(); const validatorsCommand = program .command("validators") .description("Manage validator operations"); validatorsCommand .command("get") .description("Retrieve details of a specific validator or all validators") .option("--address <validatorAddress>", "The address of the validator to retrieve (omit to retrieve all validators)") .action(async (options) => { await validatorsAction.getValidator({ address: options.address }); }); validatorsCommand .command("delete") .description("Delete a specific validator or all validators") .option("--address <validatorAddress>", "The address of the validator to delete (omit to delete all validators)") .action(async (options) => { await validatorsAction.deleteValidator({ address: options.address }); }); validatorsCommand .command("count") .description("Count all validators") .action(async () => { await validatorsAction.countValidators(); }); validatorsCommand .command("update <validatorAddress>") .description("Update a validator's details") .option("--stake <stake>", "New stake for the validator") .option("--provider <provider>", "New provider for the validator") .option("--model <model>", "New model for the validator") .option("--config <config>", "New JSON config for the validator") .action(async (validatorAddress, options) => { await validatorsAction.updateValidator({ address: validatorAddress, stake: options.stake, provider: options.provider, model: options.model, config: options.config, }); }); validatorsCommand .command("create-random") .description("Create random validators") .option("--count <count>", "Number of validators to create", "1") // Default to "1" .option( "--providers <providers...>", "Space-separated list of provider names (e.g., openai ollama)", [] ) .option( "--models <models...>", "Space-separated list of model names (e.g., gpt-4 gpt-4o)", [] ) .action(async (options) => { await validatorsAction.createRandomValidators({ count: options.count, providers: options.providers, models: options.models, }); }); validatorsCommand .command("create") .description("Create a new validator") .option("--stake <stake>", "Stake amount for the validator (default: 1)", "1") .option( "--config <config>", 'Optional JSON configuration for the validator (e.g., \'{"max_tokens": 500, "temperature": 0.75}\')' ) .option("--provider <provider>", "Specify the provider for the validator") .option("--model <model>", "Specify the model for the validator") .action(async (options) => { await validatorsAction.createValidator({ stake: options.stake, config: options.config, provider: options.provider, model: options.model, }); }); return program; }