mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-08 23:18:15 -05:00
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:
@@ -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 {
|
||||
DERIVED = 0;
|
||||
IMPORTED = 1;
|
||||
|
||||
@@ -11,7 +11,7 @@ go_library(
|
||||
"//validator/accounts/wallet:go_default_library",
|
||||
"//validator/keymanager: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_wealdtech_go_eth2_util//:go_default_library",
|
||||
],
|
||||
@@ -31,6 +31,6 @@ go_test(
|
||||
"//testing/require:go_default_library",
|
||||
"//validator/accounts/wallet:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/imported:go_default_library",
|
||||
"//validator/keymanager/local:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -24,7 +24,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"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"
|
||||
util "github.com/wealdtech/go-eth2-util"
|
||||
)
|
||||
@@ -62,7 +62,7 @@ func main() {
|
||||
}
|
||||
|
||||
keysPerWallet := len(privKeys) / *numberOfWalletsFlag
|
||||
if err := spreadKeysAcrossImportedWallets(
|
||||
if err := spreadKeysAcrossLocalWallets(
|
||||
pubKeys,
|
||||
privKeys,
|
||||
*numberOfWalletsFlag,
|
||||
@@ -113,7 +113,7 @@ func generateKeysFromMnemonicList(mnemonicListFile *bufio.Scanner, keysPerMnemon
|
||||
return
|
||||
}
|
||||
|
||||
func spreadKeysAcrossImportedWallets(
|
||||
func spreadKeysAcrossLocalWallets(
|
||||
pubKeys,
|
||||
privKeys [][]byte,
|
||||
numWallets,
|
||||
@@ -125,10 +125,10 @@ func spreadKeysAcrossImportedWallets(
|
||||
for i := 0; i < numWallets; i++ {
|
||||
w := wallet.New(&wallet.Config{
|
||||
WalletDir: path.Join(walletOutputDir, fmt.Sprintf("wallet_%d", i)),
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: walletPassword,
|
||||
})
|
||||
km, err := imported.NewKeymanager(ctx, &imported.SetupConfig{
|
||||
km, err := local.NewKeymanager(ctx, &local.SetupConfig{
|
||||
Wallet: w,
|
||||
})
|
||||
if err != nil {
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/testing/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"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"
|
||||
@@ -64,7 +64,7 @@ func Test_spreadKeysAcrossImportedWallets(t *testing.T) {
|
||||
// key per wallet stored on disk.
|
||||
numWallets := 5
|
||||
keysPerWallet := 1
|
||||
err := spreadKeysAcrossImportedWallets(
|
||||
err := spreadKeysAcrossLocalWallets(
|
||||
testPubKeys,
|
||||
testPrivKeys,
|
||||
numWallets,
|
||||
@@ -77,11 +77,11 @@ func Test_spreadKeysAcrossImportedWallets(t *testing.T) {
|
||||
for i := 0; i < numWallets; i++ {
|
||||
w, err := wallet.OpenWallet(ctx, &wallet.Config{
|
||||
WalletDir: filepath.Join(tmpDir, fmt.Sprintf("wallet_%d", i)),
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: walletPassword,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
km, err := imported.NewKeymanager(ctx, &imported.SetupConfig{
|
||||
km, err := local.NewKeymanager(ctx, &local.SetupConfig{
|
||||
Wallet: w,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -42,7 +42,7 @@ go_library(
|
||||
"//validator/client:go_default_library",
|
||||
"//validator/keymanager: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-web3signer: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/keymanager: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/testing:go_default_library",
|
||||
"@com_github_golang_mock//gomock:go_default_library",
|
||||
|
||||
@@ -24,7 +24,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"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"
|
||||
)
|
||||
|
||||
@@ -96,14 +96,14 @@ func BackupAccountsCli(cliCtx *cli.Context) error {
|
||||
|
||||
var keystoresToBackup []*keymanager.Keystore
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Imported:
|
||||
km, ok := km.(*imported.Keymanager)
|
||||
case keymanager.Local:
|
||||
km, ok := km.(*local.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("could not assert keymanager interface to concrete type")
|
||||
}
|
||||
keystoresToBackup, err = km.ExtractKeystores(cliCtx.Context, filteredPubKeys, backupsPassword)
|
||||
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:
|
||||
km, ok := km.(*derived.Keymanager)
|
||||
|
||||
@@ -159,7 +159,7 @@ func TestBackupAccounts_Noninteractive_Imported(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
// Flags required for ImportAccounts to work.
|
||||
@@ -172,7 +172,7 @@ func TestBackupAccounts_Noninteractive_Imported(t *testing.T) {
|
||||
_, err = CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/testing/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"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) {
|
||||
@@ -33,11 +33,11 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
|
||||
// Only delete keys 0 and 1.
|
||||
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{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
// Flags required for ImportAccounts to work.
|
||||
@@ -48,7 +48,7 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -60,9 +60,9 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
|
||||
// We attempt to delete the accounts specified.
|
||||
require.NoError(t, DeleteAccountCli(cliCtx))
|
||||
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
keymanager, err := local.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&imported.SetupConfig{
|
||||
&local.SetupConfig{
|
||||
Wallet: w,
|
||||
ListenForChanges: false,
|
||||
},
|
||||
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/testing/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"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"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
@@ -59,11 +59,11 @@ func TestExitAccountsCli_OK(t *testing.T) {
|
||||
keystore, _ := createKeystore(t, keysDir)
|
||||
time.Sleep(time.Second)
|
||||
|
||||
// We initialize a wallet with a imported keymanager.
|
||||
// We initialize a wallet with a local keymanager.
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
// Flag required for ImportAccounts to work.
|
||||
@@ -74,7 +74,7 @@ func TestExitAccountsCli_OK(t *testing.T) {
|
||||
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -154,11 +154,11 @@ func TestExitAccountsCli_OK_AllPublicKeys(t *testing.T) {
|
||||
keystore2, _ := createKeystore(t, keysDir)
|
||||
time.Sleep(time.Second)
|
||||
|
||||
// We initialize a wallet with a imported keymanager.
|
||||
// We initialize a wallet with a local keymanager.
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
// Flag required for ImportAccounts to work.
|
||||
@@ -169,7 +169,7 @@ func TestExitAccountsCli_OK_AllPublicKeys(t *testing.T) {
|
||||
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -211,18 +211,18 @@ func TestExitAccountsCli_OK_AllPublicKeys(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPrepareWallet_EmptyWalletReturnsError(t *testing.T) {
|
||||
imported.ResetCaches()
|
||||
local.ResetCaches()
|
||||
walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -232,11 +232,11 @@ func TestPrepareWallet_EmptyWalletReturnsError(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPrepareClients_AddsGRPCHeaders(t *testing.T) {
|
||||
imported.ResetCaches()
|
||||
local.ResetCaches()
|
||||
walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
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{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -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 {
|
||||
return nil, err
|
||||
}
|
||||
@@ -124,7 +124,7 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
|
||||
WalletDir: cfg.WalletCfg.WalletDir,
|
||||
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")
|
||||
}
|
||||
log.WithField("wallet-path", cfg.WalletCfg.WalletDir).Info(
|
||||
|
||||
@@ -22,12 +22,12 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/iface"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"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"
|
||||
)
|
||||
|
||||
func TestImport_Noninteractive(t *testing.T) {
|
||||
imported.ResetCaches()
|
||||
local.ResetCaches()
|
||||
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
keysDir := filepath.Join(t.TempDir(), "keysDir")
|
||||
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
|
||||
@@ -36,21 +36,21 @@ func TestImport_Noninteractive(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keysDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
keymanager, err := local.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&imported.SetupConfig{
|
||||
&local.SetupConfig{
|
||||
Wallet: w,
|
||||
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
|
||||
func TestImport_DuplicateKeys(t *testing.T) {
|
||||
imported.ResetCaches()
|
||||
local.ResetCaches()
|
||||
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
keysDir := filepath.Join(t.TempDir(), "keysDir")
|
||||
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
|
||||
@@ -93,14 +93,14 @@ func TestImport_DuplicateKeys(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keysDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -132,7 +132,7 @@ func TestImport_DuplicateKeys(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestImport_Noninteractive_RandomName(t *testing.T) {
|
||||
imported.ResetCaches()
|
||||
local.ResetCaches()
|
||||
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
keysDir := filepath.Join(t.TempDir(), "keysDir")
|
||||
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
|
||||
@@ -141,21 +141,21 @@ func TestImport_Noninteractive_RandomName(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keysDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
keymanager, err := local.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&imported.SetupConfig{
|
||||
&local.SetupConfig{
|
||||
Wallet: w,
|
||||
ListenForChanges: false,
|
||||
},
|
||||
@@ -188,7 +188,7 @@ func TestImport_Noninteractive_RandomName(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestImport_Noninteractive_Filepath(t *testing.T) {
|
||||
imported.ResetCaches()
|
||||
local.ResetCaches()
|
||||
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
keysDir := filepath.Join(t.TempDir(), "keysDir")
|
||||
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
|
||||
@@ -198,21 +198,21 @@ func TestImport_Noninteractive_Filepath(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keystorePath,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
keymanager, err := local.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&imported.SetupConfig{
|
||||
&local.SetupConfig{
|
||||
Wallet: w,
|
||||
ListenForChanges: false,
|
||||
},
|
||||
@@ -240,7 +240,7 @@ func TestImport_Noninteractive_Filepath(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestImport_SortByDerivationPath(t *testing.T) {
|
||||
imported.ResetCaches()
|
||||
local.ResetCaches()
|
||||
type test struct {
|
||||
name string
|
||||
input []string
|
||||
@@ -319,7 +319,7 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
|
||||
// We instantiate a new wallet from a cli context.
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
privateKeyFile: privKeyFileName,
|
||||
})
|
||||
@@ -327,14 +327,14 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
|
||||
wallet, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: walletPass,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
keymanager, err := local.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&imported.SetupConfig{
|
||||
&local.SetupConfig{
|
||||
Wallet: wallet,
|
||||
ListenForChanges: false,
|
||||
},
|
||||
@@ -343,9 +343,9 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
|
||||
assert.NoError(t, importPrivateKeyAsAccount(cliCtx, wallet, keymanager))
|
||||
|
||||
// We re-instantiate the keymanager and check we now have 1 public key.
|
||||
keymanager, err = imported.NewKeymanager(
|
||||
keymanager, err = local.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&imported.SetupConfig{
|
||||
&local.SetupConfig{
|
||||
Wallet: wallet,
|
||||
ListenForChanges: false,
|
||||
},
|
||||
@@ -377,7 +377,7 @@ func createKeystore(t *testing.T, path string) (*keymanager.Keystore, string) {
|
||||
require.NoError(t, err)
|
||||
// Write the encoded keystore to disk with the timestamp appended
|
||||
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))
|
||||
return keystoreFile, fullPath
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"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"
|
||||
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
|
||||
"github.com/urfave/cli/v2"
|
||||
@@ -52,13 +52,13 @@ func ListAccountsCli(cliCtx *cli.Context) error {
|
||||
}
|
||||
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Imported:
|
||||
km, ok := km.(*imported.Keymanager)
|
||||
case keymanager.Local:
|
||||
km, ok := km.(*local.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("could not assert keymanager interface to concrete type")
|
||||
}
|
||||
if err := listImportedKeymanagerAccounts(cliCtx.Context, showDepositData, showPrivateKeys, km); err != nil {
|
||||
return errors.Wrap(err, "could not list validator accounts with imported keymanager")
|
||||
if err := listLocalKeymanagerAccounts(cliCtx.Context, showDepositData, showPrivateKeys, km); err != nil {
|
||||
return errors.Wrap(err, "could not list validator accounts with local keymanager")
|
||||
}
|
||||
case keymanager.Derived:
|
||||
km, ok := km.(*derived.Keymanager)
|
||||
@@ -91,11 +91,11 @@ func ListAccountsCli(cliCtx *cli.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func listImportedKeymanagerAccounts(
|
||||
func listLocalKeymanagerAccounts(
|
||||
ctx context.Context,
|
||||
showDepositData,
|
||||
showPrivateKeys bool,
|
||||
keymanager *imported.Keymanager,
|
||||
keymanager *local.Keymanager,
|
||||
) error {
|
||||
// We initialize the wallet's keymanager.
|
||||
accountNames, err := keymanager.ValidatingAccountNames()
|
||||
@@ -103,7 +103,7 @@ func listImportedKeymanagerAccounts(
|
||||
return errors.Wrap(err, "could not fetch account names")
|
||||
}
|
||||
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("")
|
||||
if len(accountNames) == 1 {
|
||||
fmt.Printf("Showing %d validator account\n", numAccounts)
|
||||
|
||||
@@ -26,7 +26,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"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"
|
||||
constant "github.com/prysmaticlabs/prysm/validator/testing"
|
||||
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)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: "Passwordz0320$",
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
km, err := imported.NewKeymanager(
|
||||
km, err := local.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&imported.SetupConfig{
|
||||
&local.SetupConfig{
|
||||
Wallet: w,
|
||||
ListenForChanges: false,
|
||||
},
|
||||
@@ -107,10 +107,10 @@ func TestListAccounts_ImportedKeymanager(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
os.Stdout = writer
|
||||
|
||||
// We call the list imported keymanager accounts function.
|
||||
// We call the list local keymanager accounts function.
|
||||
require.NoError(
|
||||
t,
|
||||
listImportedKeymanagerAccounts(
|
||||
listLocalKeymanagerAccounts(
|
||||
context.Background(),
|
||||
true, /* show deposit data */
|
||||
true, /*show private keys */
|
||||
@@ -129,7 +129,7 @@ func TestListAccounts_ImportedKeymanager(t *testing.T) {
|
||||
|
||||
// Expected output example:
|
||||
/*
|
||||
(keymanager kind) imported wallet
|
||||
(keymanager kind) local wallet
|
||||
|
||||
Showing 5 validator accounts
|
||||
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))
|
||||
|
||||
// Assert the keymanager kind is printed on the first line.
|
||||
kindString := "imported"
|
||||
kindString := "local"
|
||||
kindFound := strings.Contains(lines[0], 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)
|
||||
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, writer.Close())
|
||||
|
||||
@@ -20,7 +20,7 @@ go_library(
|
||||
"//validator/accounts/userprompt:go_default_library",
|
||||
"//validator/keymanager: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-web3signer:go_default_library",
|
||||
"@com_github_pkg_errors//:go_default_library",
|
||||
|
||||
@@ -18,7 +18,7 @@ import (
|
||||
accountsprompt "github.com/prysmaticlabs/prysm/validator/accounts/userprompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"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"
|
||||
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
|
||||
"github.com/sirupsen/logrus"
|
||||
@@ -54,7 +54,7 @@ var (
|
||||
)
|
||||
// KeymanagerKindSelections as friendly text.
|
||||
KeymanagerKindSelections = map[keymanager.Kind]string{
|
||||
keymanager.Imported: "Imported Wallet (Recommended)",
|
||||
keymanager.Local: "Imported Wallet (Recommended)",
|
||||
keymanager.Derived: "HD Wallet",
|
||||
keymanager.Remote: "Remote Signing Wallet (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 err error
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Imported:
|
||||
km, err = imported.NewKeymanager(ctx, &imported.SetupConfig{
|
||||
case keymanager.Local:
|
||||
km, err = local.NewKeymanager(ctx, &local.SetupConfig{
|
||||
Wallet: w,
|
||||
ListenForChanges: cfg.ListenForChanges,
|
||||
})
|
||||
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"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"
|
||||
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
|
||||
"github.com/urfave/cli/v2"
|
||||
@@ -71,8 +71,8 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
|
||||
})
|
||||
var err error
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Imported:
|
||||
if err = createImportedKeymanagerWallet(ctx, w); err != nil {
|
||||
case keymanager.Local:
|
||||
if err = createLocalKeymanagerWallet(ctx, w); err != nil {
|
||||
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.
|
||||
@@ -80,11 +80,11 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, ErrCouldNotInitializeKeymanager)
|
||||
}
|
||||
importedKm, ok := km.(*imported.Keymanager)
|
||||
localKm, ok := km.(*local.Keymanager)
|
||||
if !ok {
|
||||
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 {
|
||||
return nil, err
|
||||
}
|
||||
@@ -92,7 +92,7 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
|
||||
if err != nil {
|
||||
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
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ func extractWalletCreationConfigFromCli(cliCtx *cli.Context, keymanagerKind keym
|
||||
return createWalletConfig, nil
|
||||
}
|
||||
|
||||
func createImportedKeymanagerWallet(_ context.Context, wallet *wallet.Wallet) error {
|
||||
func createLocalKeymanagerWallet(_ context.Context, wallet *wallet.Wallet) error {
|
||||
if wallet == nil {
|
||||
return errors.New("nil wallet")
|
||||
}
|
||||
@@ -265,7 +265,7 @@ func inputKeymanagerKind(cliCtx *cli.Context) (keymanager.Kind, error) {
|
||||
promptSelect := promptui.Select{
|
||||
Label: "Select a type of wallet",
|
||||
Items: []string{
|
||||
wallet.KeymanagerKindSelections[keymanager.Imported],
|
||||
wallet.KeymanagerKindSelections[keymanager.Local],
|
||||
wallet.KeymanagerKindSelections[keymanager.Derived],
|
||||
wallet.KeymanagerKindSelections[keymanager.Remote],
|
||||
wallet.KeymanagerKindSelections[keymanager.Web3Signer],
|
||||
@@ -273,7 +273,7 @@ func inputKeymanagerKind(cliCtx *cli.Context) (keymanager.Kind, error) {
|
||||
}
|
||||
selection, _, err := promptSelect.Run()
|
||||
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
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/testing/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"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/sirupsen/logrus"
|
||||
logTest "github.com/sirupsen/logrus/hooks/test"
|
||||
@@ -115,11 +115,11 @@ func TestCreateOrOpenWallet(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
createImportedWallet := func(cliCtx *cli.Context) (*wallet.Wallet, error) {
|
||||
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Imported)
|
||||
createLocalWallet := func(cliCtx *cli.Context) (*wallet.Wallet, error) {
|
||||
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Local)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -128,7 +128,7 @@ func TestCreateOrOpenWallet(t *testing.T) {
|
||||
WalletDir: cfg.WalletCfg.WalletDir,
|
||||
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")
|
||||
}
|
||||
log.WithField("wallet-path", cfg.WalletCfg.WalletDir).Info(
|
||||
@@ -136,22 +136,22 @@ func TestCreateOrOpenWallet(t *testing.T) {
|
||||
)
|
||||
return w, nil
|
||||
}
|
||||
createdWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createImportedWallet)
|
||||
createdWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createLocalWallet)
|
||||
require.NoError(t, err)
|
||||
require.LogsContain(t, hook, "Successfully created new wallet")
|
||||
|
||||
openedWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createImportedWallet)
|
||||
openedWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createLocalWallet)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, createdWallet.KeymanagerKind(), openedWallet.KeymanagerKind())
|
||||
assert.Equal(t, createdWallet.AccountsDir(), openedWallet.AccountsDir())
|
||||
}
|
||||
|
||||
func TestCreateWallet_Imported(t *testing.T) {
|
||||
func TestCreateWallet_Local(t *testing.T) {
|
||||
walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
keymanagerKind: keymanager.Local,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
|
||||
@@ -164,7 +164,7 @@ func TestCreateWallet_Imported(t *testing.T) {
|
||||
WalletDir: walletDir,
|
||||
})
|
||||
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)
|
||||
}
|
||||
|
||||
@@ -212,7 +212,7 @@ func TestCreateWallet_WalletAlreadyExists(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
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.
|
||||
|
||||
@@ -22,8 +22,8 @@ func EditWalletConfigurationCli(cliCtx *cli.Context) error {
|
||||
return errors.Wrap(err, "could not open wallet")
|
||||
}
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Imported:
|
||||
return errors.New("not possible to edit imported keymanager configuration")
|
||||
case keymanager.Local:
|
||||
return errors.New("not possible to edit local keymanager configuration")
|
||||
case keymanager.Derived:
|
||||
return errors.New("derived keymanager is not yet supported")
|
||||
case keymanager.Remote:
|
||||
|
||||
@@ -51,7 +51,7 @@ go_library(
|
||||
"//validator/db/kv:go_default_library",
|
||||
"//validator/graffiti: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-web3signer:go_default_library",
|
||||
"@com_github_dgraph_io_ristretto//:go_default_library",
|
||||
@@ -132,7 +132,7 @@ go_test(
|
||||
"//validator/graffiti:go_default_library",
|
||||
"//validator/keymanager: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/mock:go_default_library",
|
||||
"//validator/slashing-protection-history:go_default_library",
|
||||
|
||||
@@ -24,7 +24,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/db"
|
||||
"github.com/prysmaticlabs/prysm/validator/graffiti"
|
||||
"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"
|
||||
"go.opencensus.io/plugin/ocgrpc"
|
||||
"google.golang.org/grpc"
|
||||
@@ -51,7 +51,7 @@ type ValidatorService struct {
|
||||
emitAccountMetrics bool
|
||||
logValidatorBalances bool
|
||||
logDutyCountDown bool
|
||||
interopKeysConfig *imported.InteropKeymanagerConfig
|
||||
interopKeysConfig *local.InteropKeymanagerConfig
|
||||
conn *grpc.ClientConn
|
||||
grpcRetryDelay time.Duration
|
||||
grpcRetries uint
|
||||
@@ -77,7 +77,7 @@ type Config struct {
|
||||
LogValidatorBalances bool
|
||||
EmitAccountMetrics bool
|
||||
LogDutyCountDown bool
|
||||
InteropKeysConfig *imported.InteropKeymanagerConfig
|
||||
InteropKeysConfig *local.InteropKeymanagerConfig
|
||||
Wallet *wallet.Wallet
|
||||
WalletInitializedFeed *event.Feed
|
||||
GrpcRetriesFlag uint
|
||||
@@ -235,7 +235,7 @@ func (v *ValidatorService) Status() error {
|
||||
}
|
||||
|
||||
// UseInteropKeys returns the useInteropKeys flag.
|
||||
func (v *ValidatorService) InteropKeysConfig() *imported.InteropKeymanagerConfig {
|
||||
func (v *ValidatorService) InteropKeysConfig() *local.InteropKeymanagerConfig {
|
||||
return v.interopKeysConfig
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/db/kv"
|
||||
"github.com/prysmaticlabs/prysm/validator/graffiti"
|
||||
"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"
|
||||
"github.com/sirupsen/logrus"
|
||||
"go.opencensus.io/trace"
|
||||
@@ -77,7 +77,7 @@ type validator struct {
|
||||
highestValidSlot types.Slot
|
||||
genesisTime uint64
|
||||
blockFeed *event.Feed
|
||||
interopKeysConfig *imported.InteropKeymanagerConfig
|
||||
interopKeysConfig *local.InteropKeymanagerConfig
|
||||
wallet *wallet.Wallet
|
||||
graffitiStruct *graffiti.Graffiti
|
||||
node ethpb.NodeClient
|
||||
@@ -120,7 +120,7 @@ func (v *validator) WaitForKeymanagerInitialization(ctx context.Context) error {
|
||||
v.keyManager = km
|
||||
} else {
|
||||
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 {
|
||||
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'
|
||||
// buckets in bolt DB if a bucket for a key does not exist.
|
||||
func recheckValidatingKeysBucket(ctx context.Context, valDB vdb.Database, km keymanager.IKeymanager) {
|
||||
importedKeymanager, ok := km.(*imported.Keymanager)
|
||||
importedKeymanager, ok := km.(*local.Keymanager)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/client/iface"
|
||||
dbTest "github.com/prysmaticlabs/prysm/validator/db/testing"
|
||||
"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"
|
||||
"github.com/sirupsen/logrus"
|
||||
logTest "github.com/sirupsen/logrus/hooks/test"
|
||||
@@ -1385,7 +1385,7 @@ func TestValidator_WaitForKeymanagerInitialization_Web(t *testing.T) {
|
||||
}()
|
||||
|
||||
walletChan <- wallet.New(&wallet.Config{
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1399,7 +1399,7 @@ func TestValidator_WaitForKeymanagerInitialization_Interop(t *testing.T) {
|
||||
v := validator{
|
||||
db: db,
|
||||
useWeb: false,
|
||||
interopKeysConfig: &imported.InteropKeymanagerConfig{
|
||||
interopKeysConfig: &local.InteropKeymanagerConfig{
|
||||
NumValidatorKeys: 2,
|
||||
Offset: 1,
|
||||
},
|
||||
|
||||
@@ -27,7 +27,7 @@ go_test(
|
||||
deps = [
|
||||
":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",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -22,7 +22,7 @@ go_library(
|
||||
"//proto/prysm/v1alpha1/validator-client:go_default_library",
|
||||
"//validator/accounts/iface: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_sirupsen_logrus//:go_default_library",
|
||||
"@com_github_tyler_smith_go_bip39//:go_default_library",
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
validatorpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/iface"
|
||||
"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"
|
||||
)
|
||||
|
||||
@@ -34,7 +34,7 @@ type SetupConfig struct {
|
||||
|
||||
// Keymanager implementation for derived, HD keymanager using EIP-2333 and EIP-2334.
|
||||
type Keymanager struct {
|
||||
importedKM *imported.Keymanager
|
||||
localKM *local.Keymanager
|
||||
}
|
||||
|
||||
// NewKeymanager instantiates a new derived keymanager from configuration options.
|
||||
@@ -42,7 +42,7 @@ func NewKeymanager(
|
||||
ctx context.Context,
|
||||
cfg *SetupConfig,
|
||||
) (*Keymanager, error) {
|
||||
importedKM, err := imported.NewKeymanager(ctx, &imported.SetupConfig{
|
||||
localKM, err := local.NewKeymanager(ctx, &local.SetupConfig{
|
||||
Wallet: cfg.Wallet,
|
||||
ListenForChanges: cfg.ListenForChanges,
|
||||
})
|
||||
@@ -50,7 +50,7 @@ func NewKeymanager(
|
||||
return nil, err
|
||||
}
|
||||
return &Keymanager{
|
||||
importedKM: importedKM,
|
||||
localKM: localKM,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ func (km *Keymanager) RecoverAccountsFromMnemonic(
|
||||
privKeys[i] = privKey.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
|
||||
@@ -85,46 +85,46 @@ func (km *Keymanager) RecoverAccountsFromMnemonic(
|
||||
func (km *Keymanager) ExtractKeystores(
|
||||
ctx context.Context, publicKeys []bls.PublicKey, password string,
|
||||
) ([]*keymanager.Keystore, error) {
|
||||
return km.importedKM.ExtractKeystores(ctx, publicKeys, password)
|
||||
return km.localKM.ExtractKeystores(ctx, publicKeys, password)
|
||||
}
|
||||
|
||||
// ValidatingAccountNames for the derived keymanager.
|
||||
func (km *Keymanager) ValidatingAccountNames(_ context.Context) ([]string, error) {
|
||||
return km.importedKM.ValidatingAccountNames()
|
||||
return km.localKM.ValidatingAccountNames()
|
||||
}
|
||||
|
||||
// Sign signs a message using a validator key.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
func (km *Keymanager) ImportKeystores(
|
||||
ctx context.Context, keystores []*keymanager.Keystore, passwords []string,
|
||||
) ([]*ethpbservice.ImportedKeystoreStatus, error) {
|
||||
return km.importedKM.ImportKeystores(ctx, keystores, passwords)
|
||||
return km.localKM.ImportKeystores(ctx, keystores, passwords)
|
||||
}
|
||||
|
||||
// DeleteKeystores for a derived keymanager.
|
||||
func (km *Keymanager) DeleteKeystores(
|
||||
ctx context.Context, publicKeys [][]byte,
|
||||
) ([]*ethpbservice.DeletedKeystoreStatus, error) {
|
||||
return km.importedKM.DeleteKeystores(ctx, publicKeys)
|
||||
return km.localKM.DeleteKeystores(ctx, publicKeys)
|
||||
}
|
||||
|
||||
// SubscribeAccountChanges creates an event subscription for a channel
|
||||
// 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.
|
||||
func (km *Keymanager) SubscribeAccountChanges(pubKeysChan chan [][fieldparams.BLSPubkeyLength]byte) event.Subscription {
|
||||
return km.importedKM.SubscribeAccountChanges(pubKeysChan)
|
||||
return km.localKM.SubscribeAccountChanges(pubKeysChan)
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
package imported
|
||||
|
||||
import "github.com/sirupsen/logrus"
|
||||
|
||||
var log = logrus.WithField("prefix", "imported-keymanager")
|
||||
@@ -11,7 +11,7 @@ go_library(
|
||||
"log.go",
|
||||
"refresh.go",
|
||||
],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/imported",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/local",
|
||||
visibility = [
|
||||
"//tools:__subpackages__",
|
||||
"//validator:__pkg__",
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"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)
|
||||
dr := &Keymanager{}
|
||||
validatingKeys := make([]bls.SecretKey, 10)
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
func TestImportedKeymanager_DeleteKeystores(t *testing.T) {
|
||||
func TestLocalKeymanager_DeleteKeystores(t *testing.T) {
|
||||
hook := logTest.NewGlobal()
|
||||
wallet := &mock.Wallet{
|
||||
Files: make(map[string]map[string][]byte),
|
||||
@@ -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
|
||||
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
|
||||
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
|
||||
in the EIP link above, and finally the password is UTF-8 encoded.
|
||||
*/
|
||||
package imported
|
||||
package local
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
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(
|
||||
ctx context.Context,
|
||||
keystores []*keymanager.Keystore,
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"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
|
||||
pubKeys := 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))
|
||||
}
|
||||
|
||||
func TestImportedKeymanager_ImportKeystores(t *testing.T) {
|
||||
func TestLocalKeymanager_ImportKeystores(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
// Setup the keymanager.
|
||||
wallet := &mock.Wallet{
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -31,13 +31,13 @@ var (
|
||||
const (
|
||||
// KeystoreFileNameFormat exposes the filename the keystore should be formatted in.
|
||||
KeystoreFileNameFormat = "keystore-%d.json"
|
||||
// AccountsPath where all imported keymanager keystores are kept.
|
||||
// AccountsPath where all local keymanager keystores are kept.
|
||||
AccountsPath = "accounts"
|
||||
// AccountsKeystoreFileName exposes the name of the keystore file.
|
||||
AccountsKeystoreFileName = "all-accounts.keystore.json"
|
||||
)
|
||||
|
||||
// Keymanager implementation for imported keystores utilizing EIP-2335.
|
||||
// Keymanager implementation for local keystores utilizing EIP-2335.
|
||||
type Keymanager struct {
|
||||
wallet iface.Wallet
|
||||
accountsStore *accountStore
|
||||
@@ -75,7 +75,7 @@ func ResetCaches() {
|
||||
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) {
|
||||
k := &Keymanager{
|
||||
wallet: cfg.Wallet,
|
||||
@@ -134,7 +134,7 @@ func (km *Keymanager) SubscribeAccountChanges(pubKeysChan chan [][fieldparams.BL
|
||||
return km.accountsChangedFeed.Subscribe(pubKeysChan)
|
||||
}
|
||||
|
||||
// ValidatingAccountNames for a imported keymanager.
|
||||
// ValidatingAccountNames for a local keymanager.
|
||||
func (_ *Keymanager) ValidatingAccountNames() ([]string, error) {
|
||||
lock.RLock()
|
||||
names := make([]string, len(orderedPublicKeys))
|
||||
@@ -165,7 +165,7 @@ func (km *Keymanager) initializeKeysCachesFromKeystore() error {
|
||||
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) {
|
||||
_, span := trace.StartSpan(ctx, "keymanager.FetchValidatingPublicKeys")
|
||||
defer span.End()
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
func TestImportedKeymanager_FetchValidatingPublicKeys(t *testing.T) {
|
||||
func TestLocalKeymanager_FetchValidatingPublicKeys(t *testing.T) {
|
||||
wallet := &mock.Wallet{
|
||||
Files: make(map[string]map[string][]byte),
|
||||
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{
|
||||
Files: make(map[string]map[string][]byte),
|
||||
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{
|
||||
Files: make(map[string]map[string][]byte),
|
||||
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{
|
||||
PublicKey: nil,
|
||||
}
|
||||
@@ -159,7 +159,7 @@ func TestImportedKeymanager_Sign_NoPublicKeySpecified(t *testing.T) {
|
||||
assert.ErrorContains(t, "nil public key", err)
|
||||
}
|
||||
|
||||
func TestImportedKeymanager_Sign_NoPublicKeyInCache(t *testing.T) {
|
||||
func TestLocalKeymanager_Sign_NoPublicKeyInCache(t *testing.T) {
|
||||
req := &validatorpb.SignRequest{
|
||||
PublicKey: []byte("hello world"),
|
||||
}
|
||||
5
validator/keymanager/local/log.go
Normal file
5
validator/keymanager/local/log.go
Normal file
@@ -0,0 +1,5 @@
|
||||
package local
|
||||
|
||||
import "github.com/sirupsen/logrus"
|
||||
|
||||
var log = logrus.WithField("prefix", "local-keymanager")
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"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.
|
||||
func (km *Keymanager) reloadAccountsFromKeystore(keystore *AccountsKeystoreRepresentation) error {
|
||||
decryptor := keystorev4.New()
|
||||
@@ -1,4 +1,4 @@
|
||||
package imported
|
||||
package local
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
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"
|
||||
wallet := &mock.Wallet{
|
||||
Files: make(map[string]map[string][]byte),
|
||||
@@ -46,7 +46,7 @@ func TestImportedKeymanager_reloadAccountsFromKeystore_MismatchedNumKeys(t *test
|
||||
assert.ErrorContains(t, "do not match", err)
|
||||
}
|
||||
|
||||
func TestImportedKeymanager_reloadAccountsFromKeystore(t *testing.T) {
|
||||
func TestLocalKeymanager_reloadAccountsFromKeystore(t *testing.T) {
|
||||
password := "Passw03rdz293**%#2"
|
||||
wallet := &mock.Wallet{
|
||||
Files: make(map[string]map[string][]byte),
|
||||
@@ -60,13 +60,13 @@ type Keystore struct {
|
||||
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.
|
||||
type Kind int
|
||||
|
||||
const (
|
||||
// Imported keymanager defines an on-disk, encrypted keystore-capable store.
|
||||
Imported Kind = iota
|
||||
// Local keymanager defines an on-disk, encrypted keystore-capable store.
|
||||
Local Kind = iota
|
||||
// Derived keymanager using a hierarchical-deterministic algorithm.
|
||||
Derived
|
||||
// Remote keymanager capable of remote-signing data.
|
||||
@@ -84,7 +84,7 @@ func (k Kind) String() string {
|
||||
switch k {
|
||||
case Derived:
|
||||
return "derived"
|
||||
case Imported:
|
||||
case Local:
|
||||
return "direct"
|
||||
case Remote:
|
||||
return "remote"
|
||||
@@ -101,7 +101,7 @@ func ParseKind(k string) (Kind, error) {
|
||||
case "derived":
|
||||
return Derived, nil
|
||||
case "direct":
|
||||
return Imported, nil
|
||||
return Local, nil
|
||||
case "remote":
|
||||
return Remote, nil
|
||||
case "web3signer":
|
||||
|
||||
@@ -3,20 +3,20 @@ package keymanager_test
|
||||
import (
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"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"
|
||||
)
|
||||
|
||||
var (
|
||||
_ = keymanager.IKeymanager(&imported.Keymanager{})
|
||||
_ = keymanager.IKeymanager(&local.Keymanager{})
|
||||
_ = keymanager.IKeymanager(&derived.Keymanager{})
|
||||
_ = keymanager.IKeymanager(&remote.Keymanager{})
|
||||
|
||||
// More granular assertions.
|
||||
_ = keymanager.KeysFetcher(&imported.Keymanager{})
|
||||
_ = keymanager.KeysFetcher(&local.Keymanager{})
|
||||
_ = keymanager.KeysFetcher(&derived.Keymanager{})
|
||||
_ = keymanager.Importer(&imported.Keymanager{})
|
||||
_ = keymanager.Importer(&local.Keymanager{})
|
||||
_ = keymanager.Importer(&derived.Keymanager{})
|
||||
_ = keymanager.Deleter(&imported.Keymanager{})
|
||||
_ = keymanager.Deleter(&local.Keymanager{})
|
||||
_ = keymanager.Deleter(&derived.Keymanager{})
|
||||
)
|
||||
|
||||
@@ -51,7 +51,7 @@ go_library(
|
||||
"//validator/client:go_default_library",
|
||||
"//validator/db/kv: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/rpc:go_default_library",
|
||||
"//validator/rpc/apimiddleware:go_default_library",
|
||||
|
||||
@@ -41,7 +41,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/client"
|
||||
"github.com/prysmaticlabs/prysm/validator/db/kv"
|
||||
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"
|
||||
"github.com/prysmaticlabs/prysm/validator/rpc"
|
||||
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)
|
||||
grpcRetries := c.cliCtx.Uint(flags.GrpcRetriesFlag.Name)
|
||||
grpcRetryDelay := c.cliCtx.Duration(flags.GrpcRetryDelayFlag.Name)
|
||||
var interopKeysConfig *imported.InteropKeymanagerConfig
|
||||
var interopKeysConfig *local.InteropKeymanagerConfig
|
||||
if c.cliCtx.IsSet(flags.InteropNumValidators.Name) {
|
||||
interopKeysConfig = &imported.InteropKeymanagerConfig{
|
||||
interopKeysConfig = &local.InteropKeymanagerConfig{
|
||||
Offset: cliCtx.Uint64(flags.InteropStartIndex.Name),
|
||||
NumValidatorKeys: cliCtx.Uint64(flags.InteropNumValidators.Name),
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ func TestNode_Builds(t *testing.T) {
|
||||
_, err := accounts.CreateWalletWithKeymanager(context.Context, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: dir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: walletPassword,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -44,7 +44,7 @@ go_library(
|
||||
"//validator/db:go_default_library",
|
||||
"//validator/keymanager: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/format:go_default_library",
|
||||
"@com_github_fsnotify_fsnotify//:go_default_library",
|
||||
@@ -108,7 +108,7 @@ go_test(
|
||||
"//validator/db/kv:go_default_library",
|
||||
"//validator/keymanager: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/testing:go_default_library",
|
||||
"@com_github_golang_jwt_jwt//:go_default_library",
|
||||
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/petnames"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"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/status"
|
||||
)
|
||||
@@ -107,10 +107,10 @@ func (s *Server) BackupAccounts(
|
||||
|
||||
var keystoresToBackup []*keymanager.Keystore
|
||||
switch km := km.(type) {
|
||||
case *imported.Keymanager:
|
||||
case *local.Keymanager:
|
||||
keystoresToBackup, err = km.ExtractKeystores(ctx, pubKeys, req.BackupPassword)
|
||||
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:
|
||||
keystoresToBackup, err = km.ExtractKeystores(ctx, pubKeys, req.BackupPassword)
|
||||
@@ -173,6 +173,9 @@ func (s *Server) DeleteAccounts(
|
||||
if err != nil {
|
||||
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{
|
||||
Wallet: s.wallet,
|
||||
Keymanager: km,
|
||||
|
||||
@@ -37,7 +37,7 @@ func TestImportSlashingProtection_Preconditions(t *testing.T) {
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
|
||||
@@ -69,7 +69,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
|
||||
_, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: req.WalletPassword,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -79,7 +79,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
|
||||
}
|
||||
if err := s.initializeWallet(ctx, &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: req.WalletPassword,
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
@@ -126,7 +126,7 @@ func (s *Server) WalletConfig(_ context.Context, _ *empty.Empty) (*pb.WalletResp
|
||||
switch s.wallet.KeymanagerKind() {
|
||||
case keymanager.Derived:
|
||||
keymanagerKind = pb.KeymanagerKind_DERIVED
|
||||
case keymanager.Imported:
|
||||
case keymanager.Local:
|
||||
keymanagerKind = pb.KeymanagerKind_IMPORTED
|
||||
case keymanager.Remote:
|
||||
keymanagerKind = pb.KeymanagerKind_REMOTE
|
||||
|
||||
@@ -24,14 +24,14 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/client"
|
||||
"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"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
const strongPass = "29384283xasjasd32%%&*@*#*"
|
||||
|
||||
func TestServer_CreateWallet_Imported(t *testing.T) {
|
||||
func TestServer_CreateWallet_Local(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
localWalletDir := setupWalletDir(t)
|
||||
defaultWalletPath = localWalletDir
|
||||
@@ -101,7 +101,7 @@ func TestServer_CreateWallet_Imported(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestServer_CreateWallet_Imported_PasswordTooWeak(t *testing.T) {
|
||||
func TestServer_CreateWallet_Local_PasswordTooWeak(t *testing.T) {
|
||||
localWalletDir := setupWalletDir(t)
|
||||
defaultWalletPath = localWalletDir
|
||||
ctx := context.Background()
|
||||
@@ -313,7 +313,7 @@ func TestServer_WalletConfig(t *testing.T) {
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -346,7 +346,7 @@ func TestServer_ImportAccounts_FailedPreconditions(t *testing.T) {
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -381,14 +381,14 @@ func TestServer_ImportAccounts_FailedPreconditions(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestServer_ImportAccounts_OK(t *testing.T) {
|
||||
imported.ResetCaches()
|
||||
local.ResetCaches()
|
||||
localWalletDir := setupWalletDir(t)
|
||||
defaultWalletPath = localWalletDir
|
||||
ctx := context.Background()
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -490,7 +490,7 @@ func createImportedWalletWithAccounts(t testing.TB, numAccounts int) (*Server, [
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
KeymanagerKind: keymanager.Local,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
|
||||
Reference in New Issue
Block a user