diff --git a/cmd/validator/accounts/accounts.go b/cmd/validator/accounts/accounts.go index d6add8f797..7f9ee3aa28 100644 --- a/cmd/validator/accounts/accounts.go +++ b/cmd/validator/accounts/accounts.go @@ -1,6 +1,8 @@ package accounts import ( + "os" + "github.com/prysmaticlabs/prysm/v3/cmd" "github.com/prysmaticlabs/prysm/v3/cmd/validator/flags" "github.com/prysmaticlabs/prysm/v3/config/features" @@ -148,5 +150,47 @@ var Commands = &cli.Command{ return nil }, }, + { + Name: "voluntary-exit", + Description: "Performs a voluntary exit on selected accounts", + Flags: cmd.WrapFlags([]cli.Flag{ + flags.WalletDirFlag, + flags.WalletPasswordFileFlag, + flags.AccountPasswordFileFlag, + flags.VoluntaryExitPublicKeysFlag, + flags.BeaconRPCProviderFlag, + flags.Web3SignerURLFlag, + flags.Web3SignerPublicValidatorKeysFlag, + flags.InteropNumValidators, + flags.InteropStartIndex, + cmd.GrpcMaxCallRecvMsgSizeFlag, + flags.CertFlag, + flags.GrpcHeadersFlag, + flags.GrpcRetriesFlag, + flags.GrpcRetryDelayFlag, + flags.ExitAllFlag, + features.Mainnet, + features.PraterTestnet, + features.RopstenTestnet, + features.SepoliaTestnet, + cmd.AcceptTosFlag, + }), + Before: func(cliCtx *cli.Context) error { + if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { + return err + } + if err := tos.VerifyTosAcceptedOrPrompt(cliCtx); err != nil { + return err + } + return features.ConfigureValidator(cliCtx) + }, + Action: func(cliCtx *cli.Context) error { + log.Info("This command will be deprecated in the future in favor of `prysmctl sign validator-exit`") + if err := AccountsExit(cliCtx, os.Stdin); err != nil { + log.WithError(err).Fatal("Could not perform voluntary exit") + } + return nil + }, + }, }, }