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 }