Rename imported keymanager to local. (#10155)

* imported -> local

* reverting to the state of the PR at eb1e3c3d1

* use changes from develop

* del

* rem patch

* patch

* rename to local

* gazelle

* add back build

* imported rename

* gaz

* local

* merge fix + remove proto changes

* comment revert

* build

* gofmt and one new reference

* gofmt pt2

* Update validator/accounts/wallet_edit.go

Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>

* Update validator/rpc/accounts.go

* rename

* gaz

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
This commit is contained in:
Michael Neuder
2022-02-01 14:54:19 -05:00
committed by GitHub
parent 59be30e9f4
commit 8b2b109939
49 changed files with 214 additions and 211 deletions

View File

@@ -168,7 +168,7 @@ service Auth {
} }
} }
// Type of key manager for the wallet, either direct, derived, or remote. // Type of key manager for the wallet, either derived, imported, or remote.
enum KeymanagerKind { enum KeymanagerKind {
DERIVED = 0; DERIVED = 0;
IMPORTED = 1; IMPORTED = 1;

View File

@@ -11,7 +11,7 @@ go_library(
"//validator/accounts/wallet:go_default_library", "//validator/accounts/wallet:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library", "//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"@com_github_tyler_smith_go_bip39//:go_default_library", "@com_github_tyler_smith_go_bip39//:go_default_library",
"@com_github_wealdtech_go_eth2_util//:go_default_library", "@com_github_wealdtech_go_eth2_util//:go_default_library",
], ],
@@ -31,6 +31,6 @@ go_test(
"//testing/require:go_default_library", "//testing/require:go_default_library",
"//validator/accounts/wallet:go_default_library", "//validator/accounts/wallet:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
], ],
) )

View File

@@ -24,7 +24,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived" "github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/tyler-smith/go-bip39" "github.com/tyler-smith/go-bip39"
util "github.com/wealdtech/go-eth2-util" util "github.com/wealdtech/go-eth2-util"
) )
@@ -62,7 +62,7 @@ func main() {
} }
keysPerWallet := len(privKeys) / *numberOfWalletsFlag keysPerWallet := len(privKeys) / *numberOfWalletsFlag
if err := spreadKeysAcrossImportedWallets( if err := spreadKeysAcrossLocalWallets(
pubKeys, pubKeys,
privKeys, privKeys,
*numberOfWalletsFlag, *numberOfWalletsFlag,
@@ -113,7 +113,7 @@ func generateKeysFromMnemonicList(mnemonicListFile *bufio.Scanner, keysPerMnemon
return return
} }
func spreadKeysAcrossImportedWallets( func spreadKeysAcrossLocalWallets(
pubKeys, pubKeys,
privKeys [][]byte, privKeys [][]byte,
numWallets, numWallets,
@@ -125,10 +125,10 @@ func spreadKeysAcrossImportedWallets(
for i := 0; i < numWallets; i++ { for i := 0; i < numWallets; i++ {
w := wallet.New(&wallet.Config{ w := wallet.New(&wallet.Config{
WalletDir: path.Join(walletOutputDir, fmt.Sprintf("wallet_%d", i)), WalletDir: path.Join(walletOutputDir, fmt.Sprintf("wallet_%d", i)),
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: walletPassword, WalletPassword: walletPassword,
}) })
km, err := imported.NewKeymanager(ctx, &imported.SetupConfig{ km, err := local.NewKeymanager(ctx, &local.SetupConfig{
Wallet: w, Wallet: w,
}) })
if err != nil { if err != nil {

View File

@@ -13,7 +13,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require" "github.com/prysmaticlabs/prysm/testing/require"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
) )
const testMnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about" const testMnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
@@ -64,7 +64,7 @@ func Test_spreadKeysAcrossImportedWallets(t *testing.T) {
// key per wallet stored on disk. // key per wallet stored on disk.
numWallets := 5 numWallets := 5
keysPerWallet := 1 keysPerWallet := 1
err := spreadKeysAcrossImportedWallets( err := spreadKeysAcrossLocalWallets(
testPubKeys, testPubKeys,
testPrivKeys, testPrivKeys,
numWallets, numWallets,
@@ -77,11 +77,11 @@ func Test_spreadKeysAcrossImportedWallets(t *testing.T) {
for i := 0; i < numWallets; i++ { for i := 0; i < numWallets; i++ {
w, err := wallet.OpenWallet(ctx, &wallet.Config{ w, err := wallet.OpenWallet(ctx, &wallet.Config{
WalletDir: filepath.Join(tmpDir, fmt.Sprintf("wallet_%d", i)), WalletDir: filepath.Join(tmpDir, fmt.Sprintf("wallet_%d", i)),
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: walletPassword, WalletPassword: walletPassword,
}) })
require.NoError(t, err) require.NoError(t, err)
km, err := imported.NewKeymanager(ctx, &imported.SetupConfig{ km, err := local.NewKeymanager(ctx, &local.SetupConfig{
Wallet: w, Wallet: w,
}) })
require.NoError(t, err) require.NoError(t, err)

View File

@@ -42,7 +42,7 @@ go_library(
"//validator/client:go_default_library", "//validator/client:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library", "//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library", "//validator/keymanager/remote:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library", "//validator/keymanager/remote-web3signer:go_default_library",
"@com_github_ethereum_go_ethereum//common/hexutil:go_default_library", "@com_github_ethereum_go_ethereum//common/hexutil:go_default_library",
@@ -92,7 +92,7 @@ go_test(
"//validator/accounts/wallet:go_default_library", "//validator/accounts/wallet:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library", "//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library", "//validator/keymanager/remote:go_default_library",
"//validator/testing:go_default_library", "//validator/testing:go_default_library",
"@com_github_golang_mock//gomock:go_default_library", "@com_github_golang_mock//gomock:go_default_library",

View File

@@ -24,7 +24,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived" "github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
) )
@@ -96,14 +96,14 @@ func BackupAccountsCli(cliCtx *cli.Context) error {
var keystoresToBackup []*keymanager.Keystore var keystoresToBackup []*keymanager.Keystore
switch w.KeymanagerKind() { switch w.KeymanagerKind() {
case keymanager.Imported: case keymanager.Local:
km, ok := km.(*imported.Keymanager) km, ok := km.(*local.Keymanager)
if !ok { if !ok {
return errors.New("could not assert keymanager interface to concrete type") return errors.New("could not assert keymanager interface to concrete type")
} }
keystoresToBackup, err = km.ExtractKeystores(cliCtx.Context, filteredPubKeys, backupsPassword) keystoresToBackup, err = km.ExtractKeystores(cliCtx.Context, filteredPubKeys, backupsPassword)
if err != nil { if err != nil {
return errors.Wrap(err, "could not backup accounts for imported keymanager") return errors.Wrap(err, "could not backup accounts for local keymanager")
} }
case keymanager.Derived: case keymanager.Derived:
km, ok := km.(*derived.Keymanager) km, ok := km.(*derived.Keymanager)

View File

@@ -159,7 +159,7 @@ func TestBackupAccounts_Noninteractive_Imported(t *testing.T) {
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
// Wallet configuration flags. // Wallet configuration flags.
walletDir: walletDir, walletDir: walletDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
// Flags required for ImportAccounts to work. // Flags required for ImportAccounts to work.
@@ -172,7 +172,7 @@ func TestBackupAccounts_Noninteractive_Imported(t *testing.T) {
_, err = CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ _, err = CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })

View File

@@ -13,7 +13,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require" "github.com/prysmaticlabs/prysm/testing/require"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
) )
func TestDeleteAccounts_Noninteractive(t *testing.T) { func TestDeleteAccounts_Noninteractive(t *testing.T) {
@@ -33,11 +33,11 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
// Only delete keys 0 and 1. // Only delete keys 0 and 1.
deletePublicKeys := strings.Join(generatedPubKeys[0:2], ",") deletePublicKeys := strings.Join(generatedPubKeys[0:2], ",")
// We initialize a wallet with a imported keymanager. // We initialize a wallet with a local keymanager.
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
// Wallet configuration flags. // Wallet configuration flags.
walletDir: walletDir, walletDir: walletDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
// Flags required for ImportAccounts to work. // Flags required for ImportAccounts to work.
@@ -48,7 +48,7 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })
@@ -60,9 +60,9 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
// We attempt to delete the accounts specified. // We attempt to delete the accounts specified.
require.NoError(t, DeleteAccountCli(cliCtx)) require.NoError(t, DeleteAccountCli(cliCtx))
keymanager, err := imported.NewKeymanager( keymanager, err := local.NewKeymanager(
cliCtx.Context, cliCtx.Context,
&imported.SetupConfig{ &local.SetupConfig{
Wallet: w, Wallet: w,
ListenForChanges: false, ListenForChanges: false,
}, },

View File

@@ -17,7 +17,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require" "github.com/prysmaticlabs/prysm/testing/require"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/sirupsen/logrus/hooks/test" "github.com/sirupsen/logrus/hooks/test"
"google.golang.org/grpc/metadata" "google.golang.org/grpc/metadata"
"google.golang.org/protobuf/types/known/timestamppb" "google.golang.org/protobuf/types/known/timestamppb"
@@ -59,11 +59,11 @@ func TestExitAccountsCli_OK(t *testing.T) {
keystore, _ := createKeystore(t, keysDir) keystore, _ := createKeystore(t, keysDir)
time.Sleep(time.Second) time.Sleep(time.Second)
// We initialize a wallet with a imported keymanager. // We initialize a wallet with a local keymanager.
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
// Wallet configuration flags. // Wallet configuration flags.
walletDir: walletDir, walletDir: walletDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
// Flag required for ImportAccounts to work. // Flag required for ImportAccounts to work.
@@ -74,7 +74,7 @@ func TestExitAccountsCli_OK(t *testing.T) {
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ _, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })
@@ -154,11 +154,11 @@ func TestExitAccountsCli_OK_AllPublicKeys(t *testing.T) {
keystore2, _ := createKeystore(t, keysDir) keystore2, _ := createKeystore(t, keysDir)
time.Sleep(time.Second) time.Sleep(time.Second)
// We initialize a wallet with a imported keymanager. // We initialize a wallet with a local keymanager.
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
// Wallet configuration flags. // Wallet configuration flags.
walletDir: walletDir, walletDir: walletDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
// Flag required for ImportAccounts to work. // Flag required for ImportAccounts to work.
@@ -169,7 +169,7 @@ func TestExitAccountsCli_OK_AllPublicKeys(t *testing.T) {
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ _, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })
@@ -211,18 +211,18 @@ func TestExitAccountsCli_OK_AllPublicKeys(t *testing.T) {
} }
func TestPrepareWallet_EmptyWalletReturnsError(t *testing.T) { func TestPrepareWallet_EmptyWalletReturnsError(t *testing.T) {
imported.ResetCaches() local.ResetCaches()
walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t) walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t)
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir, walletDir: walletDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
}) })
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ _, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })
@@ -232,11 +232,11 @@ func TestPrepareWallet_EmptyWalletReturnsError(t *testing.T) {
} }
func TestPrepareClients_AddsGRPCHeaders(t *testing.T) { func TestPrepareClients_AddsGRPCHeaders(t *testing.T) {
imported.ResetCaches() local.ResetCaches()
walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t) walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t)
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir, walletDir: walletDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
grpcHeaders: "Authorization=Basic some-token,Some-Other-Header=some-value", grpcHeaders: "Authorization=Basic some-token,Some-Other-Header=some-value",
@@ -244,7 +244,7 @@ func TestPrepareClients_AddsGRPCHeaders(t *testing.T) {
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ _, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })

View File

@@ -115,7 +115,7 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
}) })
} }
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Imported) cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Local)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -124,7 +124,7 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
WalletDir: cfg.WalletCfg.WalletDir, WalletDir: cfg.WalletCfg.WalletDir,
WalletPassword: cfg.WalletCfg.WalletPassword, WalletPassword: cfg.WalletCfg.WalletPassword,
}) })
if err = createImportedKeymanagerWallet(cliCtx.Context, w); err != nil { if err = createLocalKeymanagerWallet(cliCtx.Context, w); err != nil {
return nil, errors.Wrap(err, "could not create keymanager") return nil, errors.Wrap(err, "could not create keymanager")
} }
log.WithField("wallet-path", cfg.WalletCfg.WalletDir).Info( log.WithField("wallet-path", cfg.WalletCfg.WalletDir).Info(

View File

@@ -22,12 +22,12 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/iface" "github.com/prysmaticlabs/prysm/validator/accounts/iface"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
) )
func TestImport_Noninteractive(t *testing.T) { func TestImport_Noninteractive(t *testing.T) {
imported.ResetCaches() local.ResetCaches()
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t) walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
keysDir := filepath.Join(t.TempDir(), "keysDir") keysDir := filepath.Join(t.TempDir(), "keysDir")
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm)) require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
@@ -36,21 +36,21 @@ func TestImport_Noninteractive(t *testing.T) {
walletDir: walletDir, walletDir: walletDir,
passwordsDir: passwordsDir, passwordsDir: passwordsDir,
keysDir: keysDir, keysDir: keysDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
}) })
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })
require.NoError(t, err) require.NoError(t, err)
keymanager, err := imported.NewKeymanager( keymanager, err := local.NewKeymanager(
cliCtx.Context, cliCtx.Context,
&imported.SetupConfig{ &local.SetupConfig{
Wallet: w, Wallet: w,
ListenForChanges: false, ListenForChanges: false,
}, },
@@ -84,7 +84,7 @@ func TestImport_Noninteractive(t *testing.T) {
// TestImport_DuplicateKeys is a regression test that ensures correction function if duplicate keys are being imported // TestImport_DuplicateKeys is a regression test that ensures correction function if duplicate keys are being imported
func TestImport_DuplicateKeys(t *testing.T) { func TestImport_DuplicateKeys(t *testing.T) {
imported.ResetCaches() local.ResetCaches()
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t) walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
keysDir := filepath.Join(t.TempDir(), "keysDir") keysDir := filepath.Join(t.TempDir(), "keysDir")
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm)) require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
@@ -93,14 +93,14 @@ func TestImport_DuplicateKeys(t *testing.T) {
walletDir: walletDir, walletDir: walletDir,
passwordsDir: passwordsDir, passwordsDir: passwordsDir,
keysDir: keysDir, keysDir: keysDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
}) })
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })
@@ -132,7 +132,7 @@ func TestImport_DuplicateKeys(t *testing.T) {
} }
func TestImport_Noninteractive_RandomName(t *testing.T) { func TestImport_Noninteractive_RandomName(t *testing.T) {
imported.ResetCaches() local.ResetCaches()
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t) walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
keysDir := filepath.Join(t.TempDir(), "keysDir") keysDir := filepath.Join(t.TempDir(), "keysDir")
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm)) require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
@@ -141,21 +141,21 @@ func TestImport_Noninteractive_RandomName(t *testing.T) {
walletDir: walletDir, walletDir: walletDir,
passwordsDir: passwordsDir, passwordsDir: passwordsDir,
keysDir: keysDir, keysDir: keysDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
}) })
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })
require.NoError(t, err) require.NoError(t, err)
keymanager, err := imported.NewKeymanager( keymanager, err := local.NewKeymanager(
cliCtx.Context, cliCtx.Context,
&imported.SetupConfig{ &local.SetupConfig{
Wallet: w, Wallet: w,
ListenForChanges: false, ListenForChanges: false,
}, },
@@ -188,7 +188,7 @@ func TestImport_Noninteractive_RandomName(t *testing.T) {
} }
func TestImport_Noninteractive_Filepath(t *testing.T) { func TestImport_Noninteractive_Filepath(t *testing.T) {
imported.ResetCaches() local.ResetCaches()
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t) walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
keysDir := filepath.Join(t.TempDir(), "keysDir") keysDir := filepath.Join(t.TempDir(), "keysDir")
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm)) require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
@@ -198,21 +198,21 @@ func TestImport_Noninteractive_Filepath(t *testing.T) {
walletDir: walletDir, walletDir: walletDir,
passwordsDir: passwordsDir, passwordsDir: passwordsDir,
keysDir: keystorePath, keysDir: keystorePath,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath, accountPasswordFile: passwordFilePath,
}) })
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: password, WalletPassword: password,
}, },
}) })
require.NoError(t, err) require.NoError(t, err)
keymanager, err := imported.NewKeymanager( keymanager, err := local.NewKeymanager(
cliCtx.Context, cliCtx.Context,
&imported.SetupConfig{ &local.SetupConfig{
Wallet: w, Wallet: w,
ListenForChanges: false, ListenForChanges: false,
}, },
@@ -240,7 +240,7 @@ func TestImport_Noninteractive_Filepath(t *testing.T) {
} }
func TestImport_SortByDerivationPath(t *testing.T) { func TestImport_SortByDerivationPath(t *testing.T) {
imported.ResetCaches() local.ResetCaches()
type test struct { type test struct {
name string name string
input []string input []string
@@ -319,7 +319,7 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
// We instantiate a new wallet from a cli context. // We instantiate a new wallet from a cli context.
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir, walletDir: walletDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath, walletPasswordFile: passwordFilePath,
privateKeyFile: privKeyFileName, privateKeyFile: privKeyFileName,
}) })
@@ -327,14 +327,14 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
wallet, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ wallet, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: walletPass, WalletPassword: walletPass,
}, },
}) })
require.NoError(t, err) require.NoError(t, err)
keymanager, err := imported.NewKeymanager( keymanager, err := local.NewKeymanager(
cliCtx.Context, cliCtx.Context,
&imported.SetupConfig{ &local.SetupConfig{
Wallet: wallet, Wallet: wallet,
ListenForChanges: false, ListenForChanges: false,
}, },
@@ -343,9 +343,9 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
assert.NoError(t, importPrivateKeyAsAccount(cliCtx, wallet, keymanager)) assert.NoError(t, importPrivateKeyAsAccount(cliCtx, wallet, keymanager))
// We re-instantiate the keymanager and check we now have 1 public key. // We re-instantiate the keymanager and check we now have 1 public key.
keymanager, err = imported.NewKeymanager( keymanager, err = local.NewKeymanager(
cliCtx.Context, cliCtx.Context,
&imported.SetupConfig{ &local.SetupConfig{
Wallet: wallet, Wallet: wallet,
ListenForChanges: false, ListenForChanges: false,
}, },
@@ -377,7 +377,7 @@ func createKeystore(t *testing.T, path string) (*keymanager.Keystore, string) {
require.NoError(t, err) require.NoError(t, err)
// Write the encoded keystore to disk with the timestamp appended // Write the encoded keystore to disk with the timestamp appended
createdAt := prysmTime.Now().Unix() createdAt := prysmTime.Now().Unix()
fullPath := filepath.Join(path, fmt.Sprintf(imported.KeystoreFileNameFormat, createdAt)) fullPath := filepath.Join(path, fmt.Sprintf(local.KeystoreFileNameFormat, createdAt))
require.NoError(t, ioutil.WriteFile(fullPath, encoded, os.ModePerm)) require.NoError(t, ioutil.WriteFile(fullPath, encoded, os.ModePerm))
return keystoreFile, fullPath return keystoreFile, fullPath
} }

View File

@@ -16,7 +16,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived" "github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote" "github.com/prysmaticlabs/prysm/validator/keymanager/remote"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer" remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
@@ -52,13 +52,13 @@ func ListAccountsCli(cliCtx *cli.Context) error {
} }
switch w.KeymanagerKind() { switch w.KeymanagerKind() {
case keymanager.Imported: case keymanager.Local:
km, ok := km.(*imported.Keymanager) km, ok := km.(*local.Keymanager)
if !ok { if !ok {
return errors.New("could not assert keymanager interface to concrete type") return errors.New("could not assert keymanager interface to concrete type")
} }
if err := listImportedKeymanagerAccounts(cliCtx.Context, showDepositData, showPrivateKeys, km); err != nil { if err := listLocalKeymanagerAccounts(cliCtx.Context, showDepositData, showPrivateKeys, km); err != nil {
return errors.Wrap(err, "could not list validator accounts with imported keymanager") return errors.Wrap(err, "could not list validator accounts with local keymanager")
} }
case keymanager.Derived: case keymanager.Derived:
km, ok := km.(*derived.Keymanager) km, ok := km.(*derived.Keymanager)
@@ -91,11 +91,11 @@ func ListAccountsCli(cliCtx *cli.Context) error {
return nil return nil
} }
func listImportedKeymanagerAccounts( func listLocalKeymanagerAccounts(
ctx context.Context, ctx context.Context,
showDepositData, showDepositData,
showPrivateKeys bool, showPrivateKeys bool,
keymanager *imported.Keymanager, keymanager *local.Keymanager,
) error { ) error {
// We initialize the wallet's keymanager. // We initialize the wallet's keymanager.
accountNames, err := keymanager.ValidatingAccountNames() accountNames, err := keymanager.ValidatingAccountNames()
@@ -103,7 +103,7 @@ func listImportedKeymanagerAccounts(
return errors.Wrap(err, "could not fetch account names") return errors.Wrap(err, "could not fetch account names")
} }
numAccounts := au.BrightYellow(len(accountNames)) numAccounts := au.BrightYellow(len(accountNames))
fmt.Printf("(keymanager kind) %s\n", au.BrightGreen("imported wallet").Bold()) fmt.Printf("(keymanager kind) %s\n", au.BrightGreen("local wallet").Bold())
fmt.Println("") fmt.Println("")
if len(accountNames) == 1 { if len(accountNames) == 1 {
fmt.Printf("Showing %d validator account\n", numAccounts) fmt.Printf("Showing %d validator account\n", numAccounts)

View File

@@ -26,7 +26,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived" "github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote" "github.com/prysmaticlabs/prysm/validator/keymanager/remote"
constant "github.com/prysmaticlabs/prysm/validator/testing" constant "github.com/prysmaticlabs/prysm/validator/testing"
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
@@ -67,25 +67,25 @@ func createRandomKeystore(t testing.TB, password string) *keymanager.Keystore {
} }
} }
func TestListAccounts_ImportedKeymanager(t *testing.T) { func TestListAccounts_LocalKeymanager(t *testing.T) {
walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t) walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t)
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir, walletDir: walletDir,
passwordsDir: passwordsDir, passwordsDir: passwordsDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: walletPasswordFile, walletPasswordFile: walletPasswordFile,
}) })
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{ w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: "Passwordz0320$", WalletPassword: "Passwordz0320$",
}, },
}) })
require.NoError(t, err) require.NoError(t, err)
km, err := imported.NewKeymanager( km, err := local.NewKeymanager(
cliCtx.Context, cliCtx.Context,
&imported.SetupConfig{ &local.SetupConfig{
Wallet: w, Wallet: w,
ListenForChanges: false, ListenForChanges: false,
}, },
@@ -107,10 +107,10 @@ func TestListAccounts_ImportedKeymanager(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
os.Stdout = writer os.Stdout = writer
// We call the list imported keymanager accounts function. // We call the list local keymanager accounts function.
require.NoError( require.NoError(
t, t,
listImportedKeymanagerAccounts( listLocalKeymanagerAccounts(
context.Background(), context.Background(),
true, /* show deposit data */ true, /* show deposit data */
true, /*show private keys */ true, /*show private keys */
@@ -129,7 +129,7 @@ func TestListAccounts_ImportedKeymanager(t *testing.T) {
// Expected output example: // Expected output example:
/* /*
(keymanager kind) imported wallet (keymanager kind) local wallet
Showing 5 validator accounts Showing 5 validator accounts
View the eth1 deposit transaction data for your accounts by running `validator accounts list --show-deposit-data View the eth1 deposit transaction data for your accounts by running `validator accounts list --show-deposit-data
@@ -180,7 +180,7 @@ func TestListAccounts_ImportedKeymanager(t *testing.T) {
require.Equal(t, lineCount, len(lines)) require.Equal(t, lineCount, len(lines))
// Assert the keymanager kind is printed on the first line. // Assert the keymanager kind is printed on the first line.
kindString := "imported" kindString := "local"
kindFound := strings.Contains(lines[0], kindString) kindFound := strings.Contains(lines[0], kindString)
assert.Equal(t, true, kindFound, "Keymanager Kind %s not found on the first line", kindString) assert.Equal(t, true, kindFound, "Keymanager Kind %s not found on the first line", kindString)
@@ -258,7 +258,7 @@ func TestListAccounts_DerivedKeymanager(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
os.Stdout = writer os.Stdout = writer
// We call the list imported keymanager accounts function. // We call the list local keymanager accounts function.
require.NoError(t, listDerivedKeymanagerAccounts(cliCtx.Context, true, keymanager)) require.NoError(t, listDerivedKeymanagerAccounts(cliCtx.Context, true, keymanager))
require.NoError(t, writer.Close()) require.NoError(t, writer.Close())

View File

@@ -20,7 +20,7 @@ go_library(
"//validator/accounts/userprompt:go_default_library", "//validator/accounts/userprompt:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library", "//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library", "//validator/keymanager/remote:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library", "//validator/keymanager/remote-web3signer:go_default_library",
"@com_github_pkg_errors//:go_default_library", "@com_github_pkg_errors//:go_default_library",

View File

@@ -18,7 +18,7 @@ import (
accountsprompt "github.com/prysmaticlabs/prysm/validator/accounts/userprompt" accountsprompt "github.com/prysmaticlabs/prysm/validator/accounts/userprompt"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived" "github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote" "github.com/prysmaticlabs/prysm/validator/keymanager/remote"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer" remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
@@ -54,7 +54,7 @@ var (
) )
// KeymanagerKindSelections as friendly text. // KeymanagerKindSelections as friendly text.
KeymanagerKindSelections = map[keymanager.Kind]string{ KeymanagerKindSelections = map[keymanager.Kind]string{
keymanager.Imported: "Imported Wallet (Recommended)", keymanager.Local: "Imported Wallet (Recommended)",
keymanager.Derived: "HD Wallet", keymanager.Derived: "HD Wallet",
keymanager.Remote: "Remote Signing Wallet (Advanced)", keymanager.Remote: "Remote Signing Wallet (Advanced)",
keymanager.Web3Signer: "Consensys Web3Signer (Advanced)", keymanager.Web3Signer: "Consensys Web3Signer (Advanced)",
@@ -272,8 +272,8 @@ func (w *Wallet) InitializeKeymanager(ctx context.Context, cfg iface.InitKeymana
var km keymanager.IKeymanager var km keymanager.IKeymanager
var err error var err error
switch w.KeymanagerKind() { switch w.KeymanagerKind() {
case keymanager.Imported: case keymanager.Local:
km, err = imported.NewKeymanager(ctx, &imported.SetupConfig{ km, err = local.NewKeymanager(ctx, &local.SetupConfig{
Wallet: w, Wallet: w,
ListenForChanges: cfg.ListenForChanges, ListenForChanges: cfg.ListenForChanges,
}) })

View File

@@ -16,7 +16,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived" "github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote" "github.com/prysmaticlabs/prysm/validator/keymanager/remote"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer" remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
@@ -71,8 +71,8 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
}) })
var err error var err error
switch w.KeymanagerKind() { switch w.KeymanagerKind() {
case keymanager.Imported: case keymanager.Local:
if err = createImportedKeymanagerWallet(ctx, w); err != nil { if err = createLocalKeymanagerWallet(ctx, w); err != nil {
return nil, errors.Wrap(err, "could not initialize wallet") return nil, errors.Wrap(err, "could not initialize wallet")
} }
// TODO(#9883) - Remove this when we have a better way to handle this. should be safe to use for now. // TODO(#9883) - Remove this when we have a better way to handle this. should be safe to use for now.
@@ -80,11 +80,11 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
if err != nil { if err != nil {
return nil, errors.Wrap(err, ErrCouldNotInitializeKeymanager) return nil, errors.Wrap(err, ErrCouldNotInitializeKeymanager)
} }
importedKm, ok := km.(*imported.Keymanager) localKm, ok := km.(*local.Keymanager)
if !ok { if !ok {
return nil, errors.Wrap(err, ErrCouldNotInitializeKeymanager) return nil, errors.Wrap(err, ErrCouldNotInitializeKeymanager)
} }
accountsKeystore, err := importedKm.CreateAccountsKeystore(ctx, make([][]byte, 0), make([][]byte, 0)) accountsKeystore, err := localKm.CreateAccountsKeystore(ctx, make([][]byte, 0), make([][]byte, 0))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -92,7 +92,7 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
if err != nil { if err != nil {
return nil, err return nil, err
} }
if err = w.WriteFileAtPath(ctx, imported.AccountsPath, imported.AccountsKeystoreFileName, encodedAccounts); err != nil { if err = w.WriteFileAtPath(ctx, local.AccountsPath, local.AccountsKeystoreFileName, encodedAccounts); err != nil {
return nil, err return nil, err
} }
@@ -204,7 +204,7 @@ func extractWalletCreationConfigFromCli(cliCtx *cli.Context, keymanagerKind keym
return createWalletConfig, nil return createWalletConfig, nil
} }
func createImportedKeymanagerWallet(_ context.Context, wallet *wallet.Wallet) error { func createLocalKeymanagerWallet(_ context.Context, wallet *wallet.Wallet) error {
if wallet == nil { if wallet == nil {
return errors.New("nil wallet") return errors.New("nil wallet")
} }
@@ -265,7 +265,7 @@ func inputKeymanagerKind(cliCtx *cli.Context) (keymanager.Kind, error) {
promptSelect := promptui.Select{ promptSelect := promptui.Select{
Label: "Select a type of wallet", Label: "Select a type of wallet",
Items: []string{ Items: []string{
wallet.KeymanagerKindSelections[keymanager.Imported], wallet.KeymanagerKindSelections[keymanager.Local],
wallet.KeymanagerKindSelections[keymanager.Derived], wallet.KeymanagerKindSelections[keymanager.Derived],
wallet.KeymanagerKindSelections[keymanager.Remote], wallet.KeymanagerKindSelections[keymanager.Remote],
wallet.KeymanagerKindSelections[keymanager.Web3Signer], wallet.KeymanagerKindSelections[keymanager.Web3Signer],
@@ -273,7 +273,7 @@ func inputKeymanagerKind(cliCtx *cli.Context) (keymanager.Kind, error) {
} }
selection, _, err := promptSelect.Run() selection, _, err := promptSelect.Run()
if err != nil { if err != nil {
return keymanager.Imported, fmt.Errorf("could not select wallet type: %w", userprompt.FormatPromptError(err)) return keymanager.Local, fmt.Errorf("could not select wallet type: %w", userprompt.FormatPromptError(err))
} }
return keymanager.Kind(selection), nil return keymanager.Kind(selection), nil
} }

View File

@@ -16,7 +16,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require" "github.com/prysmaticlabs/prysm/testing/require"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote" "github.com/prysmaticlabs/prysm/validator/keymanager/remote"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
logTest "github.com/sirupsen/logrus/hooks/test" logTest "github.com/sirupsen/logrus/hooks/test"
@@ -115,11 +115,11 @@ func TestCreateOrOpenWallet(t *testing.T) {
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir, walletDir: walletDir,
passwordsDir: passwordsDir, passwordsDir: passwordsDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: walletPasswordFile, walletPasswordFile: walletPasswordFile,
}) })
createImportedWallet := func(cliCtx *cli.Context) (*wallet.Wallet, error) { createLocalWallet := func(cliCtx *cli.Context) (*wallet.Wallet, error) {
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Imported) cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Local)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -128,7 +128,7 @@ func TestCreateOrOpenWallet(t *testing.T) {
WalletDir: cfg.WalletCfg.WalletDir, WalletDir: cfg.WalletCfg.WalletDir,
WalletPassword: cfg.WalletCfg.WalletPassword, WalletPassword: cfg.WalletCfg.WalletPassword,
}) })
if err = createImportedKeymanagerWallet(cliCtx.Context, w); err != nil { if err = createLocalKeymanagerWallet(cliCtx.Context, w); err != nil {
return nil, errors.Wrap(err, "could not create keymanager") return nil, errors.Wrap(err, "could not create keymanager")
} }
log.WithField("wallet-path", cfg.WalletCfg.WalletDir).Info( log.WithField("wallet-path", cfg.WalletCfg.WalletDir).Info(
@@ -136,22 +136,22 @@ func TestCreateOrOpenWallet(t *testing.T) {
) )
return w, nil return w, nil
} }
createdWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createImportedWallet) createdWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createLocalWallet)
require.NoError(t, err) require.NoError(t, err)
require.LogsContain(t, hook, "Successfully created new wallet") require.LogsContain(t, hook, "Successfully created new wallet")
openedWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createImportedWallet) openedWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createLocalWallet)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, createdWallet.KeymanagerKind(), openedWallet.KeymanagerKind()) assert.Equal(t, createdWallet.KeymanagerKind(), openedWallet.KeymanagerKind())
assert.Equal(t, createdWallet.AccountsDir(), openedWallet.AccountsDir()) assert.Equal(t, createdWallet.AccountsDir(), openedWallet.AccountsDir())
} }
func TestCreateWallet_Imported(t *testing.T) { func TestCreateWallet_Local(t *testing.T) {
walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t) walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t)
cliCtx := setupWalletCtx(t, &testWalletConfig{ cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir, walletDir: walletDir,
passwordsDir: passwordsDir, passwordsDir: passwordsDir,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
walletPasswordFile: walletPasswordFile, walletPasswordFile: walletPasswordFile,
}) })
@@ -164,7 +164,7 @@ func TestCreateWallet_Imported(t *testing.T) {
WalletDir: walletDir, WalletDir: walletDir,
}) })
assert.NoError(t, err) assert.NoError(t, err)
_, err = w.ReadFileAtPath(cliCtx.Context, imported.AccountsPath, imported.AccountsKeystoreFileName) _, err = w.ReadFileAtPath(cliCtx.Context, local.AccountsPath, local.AccountsKeystoreFileName)
require.NoError(t, err) require.NoError(t, err)
} }
@@ -212,7 +212,7 @@ func TestCreateWallet_WalletAlreadyExists(t *testing.T) {
walletDir: walletDir, walletDir: walletDir,
passwordsDir: passwordsDir, passwordsDir: passwordsDir,
walletPasswordFile: passwordFile, walletPasswordFile: passwordFile,
keymanagerKind: keymanager.Imported, keymanagerKind: keymanager.Local,
}) })
// We attempt to create another wallet of different type at the same location. We expect an error. // We attempt to create another wallet of different type at the same location. We expect an error.

View File

@@ -22,8 +22,8 @@ func EditWalletConfigurationCli(cliCtx *cli.Context) error {
return errors.Wrap(err, "could not open wallet") return errors.Wrap(err, "could not open wallet")
} }
switch w.KeymanagerKind() { switch w.KeymanagerKind() {
case keymanager.Imported: case keymanager.Local:
return errors.New("not possible to edit imported keymanager configuration") return errors.New("not possible to edit local keymanager configuration")
case keymanager.Derived: case keymanager.Derived:
return errors.New("derived keymanager is not yet supported") return errors.New("derived keymanager is not yet supported")
case keymanager.Remote: case keymanager.Remote:

View File

@@ -51,7 +51,7 @@ go_library(
"//validator/db/kv:go_default_library", "//validator/db/kv:go_default_library",
"//validator/graffiti:go_default_library", "//validator/graffiti:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library", "//validator/keymanager/remote:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library", "//validator/keymanager/remote-web3signer:go_default_library",
"@com_github_dgraph_io_ristretto//:go_default_library", "@com_github_dgraph_io_ristretto//:go_default_library",
@@ -132,7 +132,7 @@ go_test(
"//validator/graffiti:go_default_library", "//validator/graffiti:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library", "//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library", "//validator/keymanager/remote-web3signer:go_default_library",
"//validator/keymanager/remote/mock:go_default_library", "//validator/keymanager/remote/mock:go_default_library",
"//validator/slashing-protection-history:go_default_library", "//validator/slashing-protection-history:go_default_library",

View File

@@ -24,7 +24,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/db" "github.com/prysmaticlabs/prysm/validator/db"
"github.com/prysmaticlabs/prysm/validator/graffiti" "github.com/prysmaticlabs/prysm/validator/graffiti"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer" remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"go.opencensus.io/plugin/ocgrpc" "go.opencensus.io/plugin/ocgrpc"
"google.golang.org/grpc" "google.golang.org/grpc"
@@ -51,7 +51,7 @@ type ValidatorService struct {
emitAccountMetrics bool emitAccountMetrics bool
logValidatorBalances bool logValidatorBalances bool
logDutyCountDown bool logDutyCountDown bool
interopKeysConfig *imported.InteropKeymanagerConfig interopKeysConfig *local.InteropKeymanagerConfig
conn *grpc.ClientConn conn *grpc.ClientConn
grpcRetryDelay time.Duration grpcRetryDelay time.Duration
grpcRetries uint grpcRetries uint
@@ -77,7 +77,7 @@ type Config struct {
LogValidatorBalances bool LogValidatorBalances bool
EmitAccountMetrics bool EmitAccountMetrics bool
LogDutyCountDown bool LogDutyCountDown bool
InteropKeysConfig *imported.InteropKeymanagerConfig InteropKeysConfig *local.InteropKeymanagerConfig
Wallet *wallet.Wallet Wallet *wallet.Wallet
WalletInitializedFeed *event.Feed WalletInitializedFeed *event.Feed
GrpcRetriesFlag uint GrpcRetriesFlag uint
@@ -235,7 +235,7 @@ func (v *ValidatorService) Status() error {
} }
// UseInteropKeys returns the useInteropKeys flag. // UseInteropKeys returns the useInteropKeys flag.
func (v *ValidatorService) InteropKeysConfig() *imported.InteropKeymanagerConfig { func (v *ValidatorService) InteropKeysConfig() *local.InteropKeymanagerConfig {
return v.interopKeysConfig return v.interopKeysConfig
} }

View File

@@ -36,7 +36,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/db/kv" "github.com/prysmaticlabs/prysm/validator/db/kv"
"github.com/prysmaticlabs/prysm/validator/graffiti" "github.com/prysmaticlabs/prysm/validator/graffiti"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer" remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"go.opencensus.io/trace" "go.opencensus.io/trace"
@@ -77,7 +77,7 @@ type validator struct {
highestValidSlot types.Slot highestValidSlot types.Slot
genesisTime uint64 genesisTime uint64
blockFeed *event.Feed blockFeed *event.Feed
interopKeysConfig *imported.InteropKeymanagerConfig interopKeysConfig *local.InteropKeymanagerConfig
wallet *wallet.Wallet wallet *wallet.Wallet
graffitiStruct *graffiti.Graffiti graffitiStruct *graffiti.Graffiti
node ethpb.NodeClient node ethpb.NodeClient
@@ -120,7 +120,7 @@ func (v *validator) WaitForKeymanagerInitialization(ctx context.Context) error {
v.keyManager = km v.keyManager = km
} else { } else {
if v.interopKeysConfig != nil { if v.interopKeysConfig != nil {
keyManager, err := imported.NewInteropKeymanager(ctx, v.interopKeysConfig.Offset, v.interopKeysConfig.NumValidatorKeys) keyManager, err := local.NewInteropKeymanager(ctx, v.interopKeysConfig.Offset, v.interopKeysConfig.NumValidatorKeys)
if err != nil { if err != nil {
return errors.Wrap(err, "could not generate interop keys for key manager") return errors.Wrap(err, "could not generate interop keys for key manager")
} }
@@ -190,7 +190,7 @@ func recheckKeys(ctx context.Context, valDB vdb.Database, keyManager keymanager.
// to accounts changes in the keymanager, then updates those keys' // to accounts changes in the keymanager, then updates those keys'
// buckets in bolt DB if a bucket for a key does not exist. // buckets in bolt DB if a bucket for a key does not exist.
func recheckValidatingKeysBucket(ctx context.Context, valDB vdb.Database, km keymanager.IKeymanager) { func recheckValidatingKeysBucket(ctx context.Context, valDB vdb.Database, km keymanager.IKeymanager) {
importedKeymanager, ok := km.(*imported.Keymanager) importedKeymanager, ok := km.(*local.Keymanager)
if !ok { if !ok {
return return
} }

View File

@@ -29,7 +29,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/client/iface" "github.com/prysmaticlabs/prysm/validator/client/iface"
dbTest "github.com/prysmaticlabs/prysm/validator/db/testing" dbTest "github.com/prysmaticlabs/prysm/validator/db/testing"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer" remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
logTest "github.com/sirupsen/logrus/hooks/test" logTest "github.com/sirupsen/logrus/hooks/test"
@@ -1385,7 +1385,7 @@ func TestValidator_WaitForKeymanagerInitialization_Web(t *testing.T) {
}() }()
walletChan <- wallet.New(&wallet.Config{ walletChan <- wallet.New(&wallet.Config{
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
}) })
} }
@@ -1399,7 +1399,7 @@ func TestValidator_WaitForKeymanagerInitialization_Interop(t *testing.T) {
v := validator{ v := validator{
db: db, db: db,
useWeb: false, useWeb: false,
interopKeysConfig: &imported.InteropKeymanagerConfig{ interopKeysConfig: &local.InteropKeymanagerConfig{
NumValidatorKeys: 2, NumValidatorKeys: 2,
Offset: 1, Offset: 1,
}, },

View File

@@ -27,7 +27,7 @@ go_test(
deps = [ deps = [
":go_default_library", ":go_default_library",
"//validator/keymanager/derived:go_default_library", "//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library", "//validator/keymanager/remote:go_default_library",
], ],
) )

View File

@@ -22,7 +22,7 @@ go_library(
"//proto/prysm/v1alpha1/validator-client:go_default_library", "//proto/prysm/v1alpha1/validator-client:go_default_library",
"//validator/accounts/iface:go_default_library", "//validator/accounts/iface:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"@com_github_pkg_errors//:go_default_library", "@com_github_pkg_errors//:go_default_library",
"@com_github_sirupsen_logrus//:go_default_library", "@com_github_sirupsen_logrus//:go_default_library",
"@com_github_tyler_smith_go_bip39//:go_default_library", "@com_github_tyler_smith_go_bip39//:go_default_library",

View File

@@ -12,7 +12,7 @@ import (
validatorpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client" validatorpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client"
"github.com/prysmaticlabs/prysm/validator/accounts/iface" "github.com/prysmaticlabs/prysm/validator/accounts/iface"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
util "github.com/wealdtech/go-eth2-util" util "github.com/wealdtech/go-eth2-util"
) )
@@ -34,7 +34,7 @@ type SetupConfig struct {
// Keymanager implementation for derived, HD keymanager using EIP-2333 and EIP-2334. // Keymanager implementation for derived, HD keymanager using EIP-2333 and EIP-2334.
type Keymanager struct { type Keymanager struct {
importedKM *imported.Keymanager localKM *local.Keymanager
} }
// NewKeymanager instantiates a new derived keymanager from configuration options. // NewKeymanager instantiates a new derived keymanager from configuration options.
@@ -42,7 +42,7 @@ func NewKeymanager(
ctx context.Context, ctx context.Context,
cfg *SetupConfig, cfg *SetupConfig,
) (*Keymanager, error) { ) (*Keymanager, error) {
importedKM, err := imported.NewKeymanager(ctx, &imported.SetupConfig{ localKM, err := local.NewKeymanager(ctx, &local.SetupConfig{
Wallet: cfg.Wallet, Wallet: cfg.Wallet,
ListenForChanges: cfg.ListenForChanges, ListenForChanges: cfg.ListenForChanges,
}) })
@@ -50,7 +50,7 @@ func NewKeymanager(
return nil, err return nil, err
} }
return &Keymanager{ return &Keymanager{
importedKM: importedKM, localKM: localKM,
}, nil }, nil
} }
@@ -76,7 +76,7 @@ func (km *Keymanager) RecoverAccountsFromMnemonic(
privKeys[i] = privKey.Marshal() privKeys[i] = privKey.Marshal()
pubKeys[i] = privKey.PublicKey().Marshal() pubKeys[i] = privKey.PublicKey().Marshal()
} }
return km.importedKM.ImportKeypairs(ctx, privKeys, pubKeys) return km.localKM.ImportKeypairs(ctx, privKeys, pubKeys)
} }
// ExtractKeystores retrieves the secret keys for specified public keys // ExtractKeystores retrieves the secret keys for specified public keys
@@ -85,46 +85,46 @@ func (km *Keymanager) RecoverAccountsFromMnemonic(
func (km *Keymanager) ExtractKeystores( func (km *Keymanager) ExtractKeystores(
ctx context.Context, publicKeys []bls.PublicKey, password string, ctx context.Context, publicKeys []bls.PublicKey, password string,
) ([]*keymanager.Keystore, error) { ) ([]*keymanager.Keystore, error) {
return km.importedKM.ExtractKeystores(ctx, publicKeys, password) return km.localKM.ExtractKeystores(ctx, publicKeys, password)
} }
// ValidatingAccountNames for the derived keymanager. // ValidatingAccountNames for the derived keymanager.
func (km *Keymanager) ValidatingAccountNames(_ context.Context) ([]string, error) { func (km *Keymanager) ValidatingAccountNames(_ context.Context) ([]string, error) {
return km.importedKM.ValidatingAccountNames() return km.localKM.ValidatingAccountNames()
} }
// Sign signs a message using a validator key. // Sign signs a message using a validator key.
func (km *Keymanager) Sign(ctx context.Context, req *validatorpb.SignRequest) (bls.Signature, error) { func (km *Keymanager) Sign(ctx context.Context, req *validatorpb.SignRequest) (bls.Signature, error) {
return km.importedKM.Sign(ctx, req) return km.localKM.Sign(ctx, req)
} }
// FetchValidatingPublicKeys fetches the list of validating public keys from the keymanager. // FetchValidatingPublicKeys fetches the list of validating public keys from the keymanager.
func (km *Keymanager) FetchValidatingPublicKeys(ctx context.Context) ([][fieldparams.BLSPubkeyLength]byte, error) { func (km *Keymanager) FetchValidatingPublicKeys(ctx context.Context) ([][fieldparams.BLSPubkeyLength]byte, error) {
return km.importedKM.FetchValidatingPublicKeys(ctx) return km.localKM.FetchValidatingPublicKeys(ctx)
} }
// FetchValidatingPrivateKeys fetches the list of validating private keys from the keymanager. // FetchValidatingPrivateKeys fetches the list of validating private keys from the keymanager.
func (km *Keymanager) FetchValidatingPrivateKeys(ctx context.Context) ([][32]byte, error) { func (km *Keymanager) FetchValidatingPrivateKeys(ctx context.Context) ([][32]byte, error) {
return km.importedKM.FetchValidatingPrivateKeys(ctx) return km.localKM.FetchValidatingPrivateKeys(ctx)
} }
// ImportKeystores for a derived keymanager. // ImportKeystores for a derived keymanager.
func (km *Keymanager) ImportKeystores( func (km *Keymanager) ImportKeystores(
ctx context.Context, keystores []*keymanager.Keystore, passwords []string, ctx context.Context, keystores []*keymanager.Keystore, passwords []string,
) ([]*ethpbservice.ImportedKeystoreStatus, error) { ) ([]*ethpbservice.ImportedKeystoreStatus, error) {
return km.importedKM.ImportKeystores(ctx, keystores, passwords) return km.localKM.ImportKeystores(ctx, keystores, passwords)
} }
// DeleteKeystores for a derived keymanager. // DeleteKeystores for a derived keymanager.
func (km *Keymanager) DeleteKeystores( func (km *Keymanager) DeleteKeystores(
ctx context.Context, publicKeys [][]byte, ctx context.Context, publicKeys [][]byte,
) ([]*ethpbservice.DeletedKeystoreStatus, error) { ) ([]*ethpbservice.DeletedKeystoreStatus, error) {
return km.importedKM.DeleteKeystores(ctx, publicKeys) return km.localKM.DeleteKeystores(ctx, publicKeys)
} }
// SubscribeAccountChanges creates an event subscription for a channel // SubscribeAccountChanges creates an event subscription for a channel
// to listen for public key changes at runtime, such as when new validator accounts // to listen for public key changes at runtime, such as when new validator accounts
// are imported into the keymanager while the validator process is running. // are imported into the keymanager while the validator process is running.
func (km *Keymanager) SubscribeAccountChanges(pubKeysChan chan [][fieldparams.BLSPubkeyLength]byte) event.Subscription { func (km *Keymanager) SubscribeAccountChanges(pubKeysChan chan [][fieldparams.BLSPubkeyLength]byte) event.Subscription {
return km.importedKM.SubscribeAccountChanges(pubKeysChan) return km.localKM.SubscribeAccountChanges(pubKeysChan)
} }

View File

@@ -1,5 +0,0 @@
package imported
import "github.com/sirupsen/logrus"
var log = logrus.WithField("prefix", "imported-keymanager")

View File

@@ -11,7 +11,7 @@ go_library(
"log.go", "log.go",
"refresh.go", "refresh.go",
], ],
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/imported", importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/local",
visibility = [ visibility = [
"//tools:__subpackages__", "//tools:__subpackages__",
"//validator:__pkg__", "//validator:__pkg__",

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"context" "context"

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"context" "context"
@@ -12,7 +12,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require" "github.com/prysmaticlabs/prysm/testing/require"
) )
func TestImportedKeymanager_ExtractKeystores(t *testing.T) { func TestLocalKeymanager_ExtractKeystores(t *testing.T) {
secretKeysCache = make(map[[fieldparams.BLSPubkeyLength]byte]bls.SecretKey) secretKeysCache = make(map[[fieldparams.BLSPubkeyLength]byte]bls.SecretKey)
dr := &Keymanager{} dr := &Keymanager{}
validatingKeys := make([]bls.SecretKey, 10) validatingKeys := make([]bls.SecretKey, 10)

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"bytes" "bytes"

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"context" "context"
@@ -17,7 +17,7 @@ import (
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
) )
func TestImportedKeymanager_DeleteKeystores(t *testing.T) { func TestLocalKeymanager_DeleteKeystores(t *testing.T) {
hook := logTest.NewGlobal() hook := logTest.NewGlobal()
wallet := &mock.Wallet{ wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte), Files: make(map[string]map[string][]byte),

View File

@@ -1,8 +1,8 @@
/* /*
Package imported defines an implementation of an on-disk, EIP-2335 keystore.json Package local defines an implementation of an on-disk, EIP-2335 keystore.json
approach towards defining validator accounts in Prysm. A validating private key is approach towards defining validator accounts in Prysm. A validating private key is
encrypted using a passphrase and its resulting encrypted file is stored as a encrypted using a passphrase and its resulting encrypted file is stored as a
keystore.json file under a unique, human-readable, account namespace. This imported keymanager approach keystore.json file under a unique, human-readable, account namespace. This local keymanager approach
relies on storing account information on-disk, making it trivial to import, backup and relies on storing account information on-disk, making it trivial to import, backup and
list all associated accounts for a user. list all associated accounts for a user.
@@ -13,4 +13,4 @@ support for KECCAK-256. Passwords utilized for key encryptions are strings of ar
The password is first converted to its NFKD representation, stripped of control codes specified The password is first converted to its NFKD representation, stripped of control codes specified
in the EIP link above, and finally the password is UTF-8 encoded. in the EIP link above, and finally the password is UTF-8 encoded.
*/ */
package imported package local

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"context" "context"
@@ -16,7 +16,7 @@ import (
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
) )
// ImportKeystores into the imported keymanager from an external source. // ImportKeystores into the local keymanager from an external source.
func (km *Keymanager) ImportKeystores( func (km *Keymanager) ImportKeystores(
ctx context.Context, ctx context.Context,
keystores []*keymanager.Keystore, keystores []*keymanager.Keystore,

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"context" "context"
@@ -36,7 +36,7 @@ func createRandomKeystore(t testing.TB, password string) *keymanager.Keystore {
} }
} }
func TestImportedKeymanager_NoDuplicates(t *testing.T) { func TestLocalKeymanager_NoDuplicates(t *testing.T) {
numKeys := 50 numKeys := 50
pubKeys := make([][]byte, numKeys) pubKeys := make([][]byte, numKeys)
privKeys := make([][]byte, numKeys) privKeys := make([][]byte, numKeys)
@@ -93,7 +93,7 @@ func TestImportedKeymanager_NoDuplicates(t *testing.T) {
require.Equal(t, numKeys+1, len(dr.accountsStore.PrivateKeys)) require.Equal(t, numKeys+1, len(dr.accountsStore.PrivateKeys))
} }
func TestImportedKeymanager_ImportKeystores(t *testing.T) { func TestLocalKeymanager_ImportKeystores(t *testing.T) {
ctx := context.Background() ctx := context.Background()
// Setup the keymanager. // Setup the keymanager.
wallet := &mock.Wallet{ wallet := &mock.Wallet{

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"context" "context"
@@ -31,13 +31,13 @@ var (
const ( const (
// KeystoreFileNameFormat exposes the filename the keystore should be formatted in. // KeystoreFileNameFormat exposes the filename the keystore should be formatted in.
KeystoreFileNameFormat = "keystore-%d.json" KeystoreFileNameFormat = "keystore-%d.json"
// AccountsPath where all imported keymanager keystores are kept. // AccountsPath where all local keymanager keystores are kept.
AccountsPath = "accounts" AccountsPath = "accounts"
// AccountsKeystoreFileName exposes the name of the keystore file. // AccountsKeystoreFileName exposes the name of the keystore file.
AccountsKeystoreFileName = "all-accounts.keystore.json" AccountsKeystoreFileName = "all-accounts.keystore.json"
) )
// Keymanager implementation for imported keystores utilizing EIP-2335. // Keymanager implementation for local keystores utilizing EIP-2335.
type Keymanager struct { type Keymanager struct {
wallet iface.Wallet wallet iface.Wallet
accountsStore *accountStore accountsStore *accountStore
@@ -75,7 +75,7 @@ func ResetCaches() {
lock.Unlock() lock.Unlock()
} }
// NewKeymanager instantiates a new imported keymanager from configuration options. // NewKeymanager instantiates a new local keymanager from configuration options.
func NewKeymanager(ctx context.Context, cfg *SetupConfig) (*Keymanager, error) { func NewKeymanager(ctx context.Context, cfg *SetupConfig) (*Keymanager, error) {
k := &Keymanager{ k := &Keymanager{
wallet: cfg.Wallet, wallet: cfg.Wallet,
@@ -134,7 +134,7 @@ func (km *Keymanager) SubscribeAccountChanges(pubKeysChan chan [][fieldparams.BL
return km.accountsChangedFeed.Subscribe(pubKeysChan) return km.accountsChangedFeed.Subscribe(pubKeysChan)
} }
// ValidatingAccountNames for a imported keymanager. // ValidatingAccountNames for a local keymanager.
func (_ *Keymanager) ValidatingAccountNames() ([]string, error) { func (_ *Keymanager) ValidatingAccountNames() ([]string, error) {
lock.RLock() lock.RLock()
names := make([]string, len(orderedPublicKeys)) names := make([]string, len(orderedPublicKeys))
@@ -165,7 +165,7 @@ func (km *Keymanager) initializeKeysCachesFromKeystore() error {
return nil return nil
} }
// FetchValidatingPublicKeys fetches the list of active public keys from the imported account keystores. // FetchValidatingPublicKeys fetches the list of active public keys from the local account keystores.
func (_ *Keymanager) FetchValidatingPublicKeys(ctx context.Context) ([][fieldparams.BLSPubkeyLength]byte, error) { func (_ *Keymanager) FetchValidatingPublicKeys(ctx context.Context) ([][fieldparams.BLSPubkeyLength]byte, error) {
_, span := trace.StartSpan(ctx, "keymanager.FetchValidatingPublicKeys") _, span := trace.StartSpan(ctx, "keymanager.FetchValidatingPublicKeys")
defer span.End() defer span.End()

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"context" "context"
@@ -17,7 +17,7 @@ import (
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
) )
func TestImportedKeymanager_FetchValidatingPublicKeys(t *testing.T) { func TestLocalKeymanager_FetchValidatingPublicKeys(t *testing.T) {
wallet := &mock.Wallet{ wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte), Files: make(map[string]map[string][]byte),
WalletPassword: password, WalletPassword: password,
@@ -49,7 +49,7 @@ func TestImportedKeymanager_FetchValidatingPublicKeys(t *testing.T) {
} }
} }
func TestImportedKeymanager_FetchValidatingPrivateKeys(t *testing.T) { func TestLocalKeymanager_FetchValidatingPrivateKeys(t *testing.T) {
wallet := &mock.Wallet{ wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte), Files: make(map[string]map[string][]byte),
WalletPassword: password, WalletPassword: password,
@@ -82,7 +82,7 @@ func TestImportedKeymanager_FetchValidatingPrivateKeys(t *testing.T) {
} }
} }
func TestImportedKeymanager_Sign(t *testing.T) { func TestLocalKeymanager_Sign(t *testing.T) {
wallet := &mock.Wallet{ wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte), Files: make(map[string]map[string][]byte),
AccountPasswords: make(map[string]string), AccountPasswords: make(map[string]string),
@@ -150,7 +150,7 @@ func TestImportedKeymanager_Sign(t *testing.T) {
} }
} }
func TestImportedKeymanager_Sign_NoPublicKeySpecified(t *testing.T) { func TestLocalKeymanager_Sign_NoPublicKeySpecified(t *testing.T) {
req := &validatorpb.SignRequest{ req := &validatorpb.SignRequest{
PublicKey: nil, PublicKey: nil,
} }
@@ -159,7 +159,7 @@ func TestImportedKeymanager_Sign_NoPublicKeySpecified(t *testing.T) {
assert.ErrorContains(t, "nil public key", err) assert.ErrorContains(t, "nil public key", err)
} }
func TestImportedKeymanager_Sign_NoPublicKeyInCache(t *testing.T) { func TestLocalKeymanager_Sign_NoPublicKeyInCache(t *testing.T) {
req := &validatorpb.SignRequest{ req := &validatorpb.SignRequest{
PublicKey: []byte("hello world"), PublicKey: []byte("hello world"),
} }

View File

@@ -0,0 +1,5 @@
package local
import "github.com/sirupsen/logrus"
var log = logrus.WithField("prefix", "local-keymanager")

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"context" "context"
@@ -92,7 +92,7 @@ func (km *Keymanager) listenForAccountChanges(ctx context.Context) {
} }
} }
// Replaces the accounts store struct in the imported keymanager with // Replaces the accounts store struct in the local keymanager with
// the contents of a keystore file by decrypting it with the accounts password. // the contents of a keystore file by decrypting it with the accounts password.
func (km *Keymanager) reloadAccountsFromKeystore(keystore *AccountsKeystoreRepresentation) error { func (km *Keymanager) reloadAccountsFromKeystore(keystore *AccountsKeystoreRepresentation) error {
decryptor := keystorev4.New() decryptor := keystorev4.New()

View File

@@ -1,4 +1,4 @@
package imported package local
import ( import (
"context" "context"
@@ -15,7 +15,7 @@ import (
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
) )
func TestImportedKeymanager_reloadAccountsFromKeystore_MismatchedNumKeys(t *testing.T) { func TestLocalKeymanager_reloadAccountsFromKeystore_MismatchedNumKeys(t *testing.T) {
password := "Passw03rdz293**%#2" password := "Passw03rdz293**%#2"
wallet := &mock.Wallet{ wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte), Files: make(map[string]map[string][]byte),
@@ -46,7 +46,7 @@ func TestImportedKeymanager_reloadAccountsFromKeystore_MismatchedNumKeys(t *test
assert.ErrorContains(t, "do not match", err) assert.ErrorContains(t, "do not match", err)
} }
func TestImportedKeymanager_reloadAccountsFromKeystore(t *testing.T) { func TestLocalKeymanager_reloadAccountsFromKeystore(t *testing.T) {
password := "Passw03rdz293**%#2" password := "Passw03rdz293**%#2"
wallet := &mock.Wallet{ wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte), Files: make(map[string]map[string][]byte),

View File

@@ -60,13 +60,13 @@ type Keystore struct {
Name string `json:"name"` Name string `json:"name"`
} }
// Kind defines an enum for either imported, derived, or remote-signing // Kind defines an enum for either local, derived, or remote-signing
// keystores for Prysm wallets. // keystores for Prysm wallets.
type Kind int type Kind int
const ( const (
// Imported keymanager defines an on-disk, encrypted keystore-capable store. // Local keymanager defines an on-disk, encrypted keystore-capable store.
Imported Kind = iota Local Kind = iota
// Derived keymanager using a hierarchical-deterministic algorithm. // Derived keymanager using a hierarchical-deterministic algorithm.
Derived Derived
// Remote keymanager capable of remote-signing data. // Remote keymanager capable of remote-signing data.
@@ -84,7 +84,7 @@ func (k Kind) String() string {
switch k { switch k {
case Derived: case Derived:
return "derived" return "derived"
case Imported: case Local:
return "direct" return "direct"
case Remote: case Remote:
return "remote" return "remote"
@@ -101,7 +101,7 @@ func ParseKind(k string) (Kind, error) {
case "derived": case "derived":
return Derived, nil return Derived, nil
case "direct": case "direct":
return Imported, nil return Local, nil
case "remote": case "remote":
return Remote, nil return Remote, nil
case "web3signer": case "web3signer":

View File

@@ -3,20 +3,20 @@ package keymanager_test
import ( import (
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived" "github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote" "github.com/prysmaticlabs/prysm/validator/keymanager/remote"
) )
var ( var (
_ = keymanager.IKeymanager(&imported.Keymanager{}) _ = keymanager.IKeymanager(&local.Keymanager{})
_ = keymanager.IKeymanager(&derived.Keymanager{}) _ = keymanager.IKeymanager(&derived.Keymanager{})
_ = keymanager.IKeymanager(&remote.Keymanager{}) _ = keymanager.IKeymanager(&remote.Keymanager{})
// More granular assertions. // More granular assertions.
_ = keymanager.KeysFetcher(&imported.Keymanager{}) _ = keymanager.KeysFetcher(&local.Keymanager{})
_ = keymanager.KeysFetcher(&derived.Keymanager{}) _ = keymanager.KeysFetcher(&derived.Keymanager{})
_ = keymanager.Importer(&imported.Keymanager{}) _ = keymanager.Importer(&local.Keymanager{})
_ = keymanager.Importer(&derived.Keymanager{}) _ = keymanager.Importer(&derived.Keymanager{})
_ = keymanager.Deleter(&imported.Keymanager{}) _ = keymanager.Deleter(&local.Keymanager{})
_ = keymanager.Deleter(&derived.Keymanager{}) _ = keymanager.Deleter(&derived.Keymanager{})
) )

View File

@@ -51,7 +51,7 @@ go_library(
"//validator/client:go_default_library", "//validator/client:go_default_library",
"//validator/db/kv:go_default_library", "//validator/db/kv:go_default_library",
"//validator/graffiti:go_default_library", "//validator/graffiti:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library", "//validator/keymanager/remote-web3signer:go_default_library",
"//validator/rpc:go_default_library", "//validator/rpc:go_default_library",
"//validator/rpc/apimiddleware:go_default_library", "//validator/rpc/apimiddleware:go_default_library",

View File

@@ -41,7 +41,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/client" "github.com/prysmaticlabs/prysm/validator/client"
"github.com/prysmaticlabs/prysm/validator/db/kv" "github.com/prysmaticlabs/prysm/validator/db/kv"
g "github.com/prysmaticlabs/prysm/validator/graffiti" g "github.com/prysmaticlabs/prysm/validator/graffiti"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer" remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/prysmaticlabs/prysm/validator/rpc" "github.com/prysmaticlabs/prysm/validator/rpc"
validatorMiddleware "github.com/prysmaticlabs/prysm/validator/rpc/apimiddleware" validatorMiddleware "github.com/prysmaticlabs/prysm/validator/rpc/apimiddleware"
@@ -374,9 +374,9 @@ func (c *ValidatorClient) registerValidatorService(cliCtx *cli.Context) error {
maxCallRecvMsgSize := c.cliCtx.Int(cmd.GrpcMaxCallRecvMsgSizeFlag.Name) maxCallRecvMsgSize := c.cliCtx.Int(cmd.GrpcMaxCallRecvMsgSizeFlag.Name)
grpcRetries := c.cliCtx.Uint(flags.GrpcRetriesFlag.Name) grpcRetries := c.cliCtx.Uint(flags.GrpcRetriesFlag.Name)
grpcRetryDelay := c.cliCtx.Duration(flags.GrpcRetryDelayFlag.Name) grpcRetryDelay := c.cliCtx.Duration(flags.GrpcRetryDelayFlag.Name)
var interopKeysConfig *imported.InteropKeymanagerConfig var interopKeysConfig *local.InteropKeymanagerConfig
if c.cliCtx.IsSet(flags.InteropNumValidators.Name) { if c.cliCtx.IsSet(flags.InteropNumValidators.Name) {
interopKeysConfig = &imported.InteropKeymanagerConfig{ interopKeysConfig = &local.InteropKeymanagerConfig{
Offset: cliCtx.Uint64(flags.InteropStartIndex.Name), Offset: cliCtx.Uint64(flags.InteropStartIndex.Name),
NumValidatorKeys: cliCtx.Uint64(flags.InteropNumValidators.Name), NumValidatorKeys: cliCtx.Uint64(flags.InteropNumValidators.Name),
} }

View File

@@ -41,7 +41,7 @@ func TestNode_Builds(t *testing.T) {
_, err := accounts.CreateWalletWithKeymanager(context.Context, &accounts.CreateWalletConfig{ _, err := accounts.CreateWalletWithKeymanager(context.Context, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: dir, WalletDir: dir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: walletPassword, WalletPassword: walletPassword,
}, },
}) })

View File

@@ -44,7 +44,7 @@ go_library(
"//validator/db:go_default_library", "//validator/db:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library", "//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"//validator/slashing-protection-history:go_default_library", "//validator/slashing-protection-history:go_default_library",
"//validator/slashing-protection-history/format:go_default_library", "//validator/slashing-protection-history/format:go_default_library",
"@com_github_fsnotify_fsnotify//:go_default_library", "@com_github_fsnotify_fsnotify//:go_default_library",
@@ -108,7 +108,7 @@ go_test(
"//validator/db/kv:go_default_library", "//validator/db/kv:go_default_library",
"//validator/keymanager:go_default_library", "//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library", "//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library", "//validator/keymanager/local:go_default_library",
"//validator/slashing-protection-history/format:go_default_library", "//validator/slashing-protection-history/format:go_default_library",
"//validator/testing:go_default_library", "//validator/testing:go_default_library",
"@com_github_golang_jwt_jwt//:go_default_library", "@com_github_golang_jwt_jwt//:go_default_library",

View File

@@ -15,7 +15,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/petnames" "github.com/prysmaticlabs/prysm/validator/accounts/petnames"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived" "github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
"google.golang.org/grpc/status" "google.golang.org/grpc/status"
) )
@@ -107,10 +107,10 @@ func (s *Server) BackupAccounts(
var keystoresToBackup []*keymanager.Keystore var keystoresToBackup []*keymanager.Keystore
switch km := km.(type) { switch km := km.(type) {
case *imported.Keymanager: case *local.Keymanager:
keystoresToBackup, err = km.ExtractKeystores(ctx, pubKeys, req.BackupPassword) keystoresToBackup, err = km.ExtractKeystores(ctx, pubKeys, req.BackupPassword)
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "Could not backup accounts for imported keymanager: %v", err) return nil, status.Errorf(codes.Internal, "Could not backup accounts for local keymanager: %v", err)
} }
case *derived.Keymanager: case *derived.Keymanager:
keystoresToBackup, err = km.ExtractKeystores(ctx, pubKeys, req.BackupPassword) keystoresToBackup, err = km.ExtractKeystores(ctx, pubKeys, req.BackupPassword)
@@ -173,6 +173,9 @@ func (s *Server) DeleteAccounts(
if err != nil { if err != nil {
return nil, err return nil, err
} }
if s.wallet.KeymanagerKind() != keymanager.Local && s.wallet.KeymanagerKind() != keymanager.Derived {
return nil, status.Error(codes.FailedPrecondition, "Only Imported or Derived wallets can delete accounts")
}
if err := accounts.DeleteAccount(ctx, &accounts.Config{ if err := accounts.DeleteAccount(ctx, &accounts.Config{
Wallet: s.wallet, Wallet: s.wallet,
Keymanager: km, Keymanager: km,

View File

@@ -37,7 +37,7 @@ func TestImportSlashingProtection_Preconditions(t *testing.T) {
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{ w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath, WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: strongPass, WalletPassword: strongPass,
}, },
SkipMnemonicConfirm: true, SkipMnemonicConfirm: true,

View File

@@ -69,7 +69,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
_, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{ _, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: req.WalletPassword, WalletPassword: req.WalletPassword,
}, },
SkipMnemonicConfirm: true, SkipMnemonicConfirm: true,
@@ -79,7 +79,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
} }
if err := s.initializeWallet(ctx, &wallet.Config{ if err := s.initializeWallet(ctx, &wallet.Config{
WalletDir: walletDir, WalletDir: walletDir,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: req.WalletPassword, WalletPassword: req.WalletPassword,
}); err != nil { }); err != nil {
return nil, err return nil, err
@@ -126,7 +126,7 @@ func (s *Server) WalletConfig(_ context.Context, _ *empty.Empty) (*pb.WalletResp
switch s.wallet.KeymanagerKind() { switch s.wallet.KeymanagerKind() {
case keymanager.Derived: case keymanager.Derived:
keymanagerKind = pb.KeymanagerKind_DERIVED keymanagerKind = pb.KeymanagerKind_DERIVED
case keymanager.Imported: case keymanager.Local:
keymanagerKind = pb.KeymanagerKind_IMPORTED keymanagerKind = pb.KeymanagerKind_IMPORTED
case keymanager.Remote: case keymanager.Remote:
keymanagerKind = pb.KeymanagerKind_REMOTE keymanagerKind = pb.KeymanagerKind_REMOTE

View File

@@ -24,14 +24,14 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet" "github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/client" "github.com/prysmaticlabs/prysm/validator/client"
"github.com/prysmaticlabs/prysm/validator/keymanager" "github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported" "github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/tyler-smith/go-bip39" "github.com/tyler-smith/go-bip39"
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
) )
const strongPass = "29384283xasjasd32%%&*@*#*" const strongPass = "29384283xasjasd32%%&*@*#*"
func TestServer_CreateWallet_Imported(t *testing.T) { func TestServer_CreateWallet_Local(t *testing.T) {
ctx := context.Background() ctx := context.Background()
localWalletDir := setupWalletDir(t) localWalletDir := setupWalletDir(t)
defaultWalletPath = localWalletDir defaultWalletPath = localWalletDir
@@ -101,7 +101,7 @@ func TestServer_CreateWallet_Imported(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
} }
func TestServer_CreateWallet_Imported_PasswordTooWeak(t *testing.T) { func TestServer_CreateWallet_Local_PasswordTooWeak(t *testing.T) {
localWalletDir := setupWalletDir(t) localWalletDir := setupWalletDir(t)
defaultWalletPath = localWalletDir defaultWalletPath = localWalletDir
ctx := context.Background() ctx := context.Background()
@@ -313,7 +313,7 @@ func TestServer_WalletConfig(t *testing.T) {
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{ w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath, WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: strongPass, WalletPassword: strongPass,
}, },
SkipMnemonicConfirm: true, SkipMnemonicConfirm: true,
@@ -346,7 +346,7 @@ func TestServer_ImportAccounts_FailedPreconditions(t *testing.T) {
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{ w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath, WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: strongPass, WalletPassword: strongPass,
}, },
SkipMnemonicConfirm: true, SkipMnemonicConfirm: true,
@@ -381,14 +381,14 @@ func TestServer_ImportAccounts_FailedPreconditions(t *testing.T) {
} }
func TestServer_ImportAccounts_OK(t *testing.T) { func TestServer_ImportAccounts_OK(t *testing.T) {
imported.ResetCaches() local.ResetCaches()
localWalletDir := setupWalletDir(t) localWalletDir := setupWalletDir(t)
defaultWalletPath = localWalletDir defaultWalletPath = localWalletDir
ctx := context.Background() ctx := context.Background()
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{ w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath, WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: strongPass, WalletPassword: strongPass,
}, },
SkipMnemonicConfirm: true, SkipMnemonicConfirm: true,
@@ -490,7 +490,7 @@ func createImportedWalletWithAccounts(t testing.TB, numAccounts int) (*Server, [
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{ w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{ WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath, WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported, KeymanagerKind: keymanager.Local,
WalletPassword: strongPass, WalletPassword: strongPass,
}, },
SkipMnemonicConfirm: true, SkipMnemonicConfirm: true,