github.com/prysmaticlabs/prysm@v1.4.4/cmd/validator/wallet/wallet.go (about)

     1  package wallet
     2  
     3  import (
     4  	"github.com/prysmaticlabs/prysm/cmd/validator/flags"
     5  	"github.com/prysmaticlabs/prysm/shared/cmd"
     6  	"github.com/prysmaticlabs/prysm/shared/featureconfig"
     7  	"github.com/prysmaticlabs/prysm/shared/tos"
     8  	"github.com/prysmaticlabs/prysm/validator/accounts"
     9  	"github.com/sirupsen/logrus"
    10  	"github.com/urfave/cli/v2"
    11  )
    12  
    13  var log = logrus.WithField("prefix", "wallet")
    14  
    15  // Commands for wallets for Prysm validators.
    16  var Commands = &cli.Command{
    17  	Name:     "wallet",
    18  	Category: "wallet",
    19  	Usage:    "defines commands for interacting with Ethereum validator wallets",
    20  	Subcommands: []*cli.Command{
    21  		{
    22  			Name: "create",
    23  			Usage: "creates a new wallet with a desired type of keymanager: " +
    24  				"either on-disk (imported), derived, or using remote credentials",
    25  			Flags: cmd.WrapFlags([]cli.Flag{
    26  				flags.WalletDirFlag,
    27  				flags.KeymanagerKindFlag,
    28  				flags.GrpcRemoteAddressFlag,
    29  				flags.DisableRemoteSignerTlsFlag,
    30  				flags.RemoteSignerCertPathFlag,
    31  				flags.RemoteSignerKeyPathFlag,
    32  				flags.RemoteSignerCACertPathFlag,
    33  				flags.WalletPasswordFileFlag,
    34  				flags.Mnemonic25thWordFileFlag,
    35  				flags.SkipMnemonic25thWordCheckFlag,
    36  				featureconfig.Mainnet,
    37  				featureconfig.PyrmontTestnet,
    38  				featureconfig.ToledoTestnet,
    39  				featureconfig.PraterTestnet,
    40  				cmd.AcceptTosFlag,
    41  			}),
    42  			Before: func(cliCtx *cli.Context) error {
    43  				if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil {
    44  					return err
    45  				}
    46  				return tos.VerifyTosAcceptedOrPrompt(cliCtx)
    47  			},
    48  			Action: func(cliCtx *cli.Context) error {
    49  				featureconfig.ConfigureValidator(cliCtx)
    50  				if _, err := accounts.CreateAndSaveWalletCli(cliCtx); err != nil {
    51  					log.Fatalf("Could not create a wallet: %v", err)
    52  				}
    53  				return nil
    54  			},
    55  		},
    56  		{
    57  			Name:  "edit-config",
    58  			Usage: "edits a wallet configuration options, such as gRPC connection credentials and TLS certificates",
    59  			Flags: cmd.WrapFlags([]cli.Flag{
    60  				flags.WalletDirFlag,
    61  				flags.WalletPasswordFileFlag,
    62  				flags.GrpcRemoteAddressFlag,
    63  				flags.DisableRemoteSignerTlsFlag,
    64  				flags.RemoteSignerCertPathFlag,
    65  				flags.RemoteSignerKeyPathFlag,
    66  				flags.RemoteSignerCACertPathFlag,
    67  				featureconfig.Mainnet,
    68  				featureconfig.PyrmontTestnet,
    69  				featureconfig.ToledoTestnet,
    70  				featureconfig.PraterTestnet,
    71  				cmd.AcceptTosFlag,
    72  			}),
    73  			Before: func(cliCtx *cli.Context) error {
    74  				if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil {
    75  					return err
    76  				}
    77  				return tos.VerifyTosAcceptedOrPrompt(cliCtx)
    78  			},
    79  			Action: func(cliCtx *cli.Context) error {
    80  				featureconfig.ConfigureValidator(cliCtx)
    81  				if err := accounts.EditWalletConfigurationCli(cliCtx); err != nil {
    82  					log.Fatalf("Could not edit wallet configuration: %v", err)
    83  				}
    84  				return nil
    85  			},
    86  		},
    87  		{
    88  			Name:  "recover",
    89  			Usage: "uses a derived wallet seed recovery phase to recreate an existing HD wallet",
    90  			Flags: cmd.WrapFlags([]cli.Flag{
    91  				flags.WalletDirFlag,
    92  				flags.MnemonicFileFlag,
    93  				flags.WalletPasswordFileFlag,
    94  				flags.NumAccountsFlag,
    95  				flags.Mnemonic25thWordFileFlag,
    96  				flags.SkipMnemonic25thWordCheckFlag,
    97  				featureconfig.Mainnet,
    98  				featureconfig.PyrmontTestnet,
    99  				featureconfig.ToledoTestnet,
   100  				featureconfig.PraterTestnet,
   101  				cmd.AcceptTosFlag,
   102  			}),
   103  			Before: func(cliCtx *cli.Context) error {
   104  				if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil {
   105  					return err
   106  				}
   107  				return tos.VerifyTosAcceptedOrPrompt(cliCtx)
   108  			},
   109  			Action: func(cliCtx *cli.Context) error {
   110  				featureconfig.ConfigureValidator(cliCtx)
   111  				if err := accounts.RecoverWalletCli(cliCtx); err != nil {
   112  					log.Fatalf("Could not recover wallet: %v", err)
   113  				}
   114  				return nil
   115  			},
   116  		},
   117  	},
   118  }