From be84c20647d4c6fb0223db31dad85f3fb490d2cb Mon Sep 17 00:00:00 2001 From: Julien Eluard Date: Wed, 14 Feb 2024 21:36:22 +0100 Subject: [PATCH 1/3] feat: make start command default for prover CLI --- packages/prover/README.md | 2 +- packages/prover/src/cli/cli.ts | 5 ++++- packages/prover/src/cli/cmds/index.ts | 1 + packages/prover/src/cli/cmds/start/index.ts | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/prover/README.md b/packages/prover/README.md index 290766219e79..0489756a066a 100644 --- a/packages/prover/README.md +++ b/packages/prover/README.md @@ -39,7 +39,7 @@ You can also invoke the package as binary. ```bash npm -i g @lodestar/prover -lodestar-prover start \ +lodestar-prover proxy \ --network sepolia \ --execution-rpc https://lodestar-sepoliarpc.chainsafe.io \ --mode rest \ diff --git a/packages/prover/src/cli/cli.ts b/packages/prover/src/cli/cli.ts index 8ef53e781a40..279d9015c799 100644 --- a/packages/prover/src/cli/cli.ts +++ b/packages/prover/src/cli/cli.ts @@ -3,7 +3,7 @@ import yargs from "yargs"; import {hideBin} from "yargs/helpers"; import {registerCommandToYargs} from "../utils/command.js"; import {getVersionData} from "../utils/version.js"; -import {cmds} from "./cmds/index.js"; +import {cmds, proverProxyStartCommand} from "./cmds/index.js"; import {globalOptions} from "./options.js"; const {version} = getVersionData(); @@ -48,6 +48,9 @@ export function getLodestarProverCli(): yargs.Argv { registerCommandToYargs(prover, cmd); } + // Register the proxy command as the default one + registerCommandToYargs(prover, {...proverProxyStartCommand, command: '*'}); + // throw an error if we see an unrecognized cmd prover.recommendCommands().strict(); diff --git a/packages/prover/src/cli/cmds/index.ts b/packages/prover/src/cli/cmds/index.ts index 3b888ab41d83..ecd2dae1da99 100644 --- a/packages/prover/src/cli/cmds/index.ts +++ b/packages/prover/src/cli/cmds/index.ts @@ -1,5 +1,6 @@ import {CliCommand} from "../../utils/command.js"; import {GlobalArgs} from "../options.js"; import {proverProxyStartCommand} from "./start/index.js"; +export {proverProxyStartCommand} from "./start/index.js"; export const cmds: Required>>["subcommands"] = [proverProxyStartCommand]; diff --git a/packages/prover/src/cli/cmds/start/index.ts b/packages/prover/src/cli/cmds/start/index.ts index 76ad1bb3f260..2b49a6466a61 100644 --- a/packages/prover/src/cli/cmds/start/index.ts +++ b/packages/prover/src/cli/cmds/start/index.ts @@ -4,7 +4,7 @@ import {proverProxyStartHandler} from "./handler.js"; import {StartArgs, startOptions} from "./options.js"; export const proverProxyStartCommand: CliCommand = { - command: "start", + command: "proxy", describe: "Start proxy server", examples: [ { From bd4d9b7493f0cfabf97a0d176e8a5d7387c7f5eb Mon Sep 17 00:00:00 2001 From: Julien Eluard Date: Thu, 15 Feb 2024 21:09:33 +0100 Subject: [PATCH 2/3] chore: fix tests --- packages/prover/test/e2e/cli/cmds/start.test.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/prover/test/e2e/cli/cmds/start.test.ts b/packages/prover/test/e2e/cli/cmds/start.test.ts index 97790ce98c6e..a5ac299612e7 100644 --- a/packages/prover/test/e2e/cli/cmds/start.test.ts +++ b/packages/prover/test/e2e/cli/cmds/start.test.ts @@ -11,15 +11,15 @@ import {rpcUrl, beaconUrl, proxyPort, proxyUrl, chainId, waitForCapellaFork, con const cli = getLodestarProverCli(); -describe("prover/start", () => { +describe("prover/proxy", () => { it("should show help", async () => { - const output = await runCliCommand(cli, ["start", "--help"]); + const output = await runCliCommand(cli, ["proxy", "--help"]); expect(output).toEqual(expect.stringContaining("Show help")); }); it("should fail when --executionRpcUrl is missing", async () => { - await expect(runCliCommand(cli, ["start", "--port", "8088"])).rejects.toThrow( + await expect(runCliCommand(cli, ["proxy", "--port", "8088"])).rejects.toThrow( "Missing required argument: executionRpcUrl" ); }); @@ -27,7 +27,7 @@ describe("prover/start", () => { it("should fail when --beaconUrls and --beaconBootnodes are provided together", async () => { await expect( runCliCommand(cli, [ - "start", + "proxy", "--beaconUrls", "http://localhost:4000", "--beaconBootnodes", @@ -38,7 +38,7 @@ describe("prover/start", () => { it("should fail when both of --beaconUrls and --beaconBootnodes are not provided", async () => { await expect( - runCliCommand(cli, ["start", "--port", "8088", "--executionRpcUrl", "http://localhost:3000"]) + runCliCommand(cli, ["proxy", "--port", "8088", "--executionRpcUrl", "http://localhost:3000"]) ).rejects.toThrow("Either --beaconUrls or --beaconBootnodes must be provided"); }); @@ -55,7 +55,7 @@ describe("prover/start", () => { proc = await spawnCliCommand( "packages/prover/bin/lodestar-prover.js", [ - "start", + "proxy", "--port", String(proxyPort as number), "--executionRpcUrl", From 33e22c6b64173671ba2da3568b90823556be5e47 Mon Sep 17 00:00:00 2001 From: Julien Eluard Date: Thu, 15 Feb 2024 23:11:59 +0100 Subject: [PATCH 3/3] chore: fix lint --- packages/prover/src/cli/cli.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/prover/src/cli/cli.ts b/packages/prover/src/cli/cli.ts index 279d9015c799..2d1475f3d39d 100644 --- a/packages/prover/src/cli/cli.ts +++ b/packages/prover/src/cli/cli.ts @@ -49,7 +49,7 @@ export function getLodestarProverCli(): yargs.Argv { } // Register the proxy command as the default one - registerCommandToYargs(prover, {...proverProxyStartCommand, command: '*'}); + registerCommandToYargs(prover, {...proverProxyStartCommand, command: "*"}); // throw an error if we see an unrecognized cmd prover.recommendCommands().strict();