mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-08 23:18:15 -05:00
Rename Accounts-V2 to Accounts (#7545)
* rename accounts v2 * rename keymanager and fix imports * rename accounts-v2 instances * imports * build * build fix * deepsource * fix up broken aliases * imports * gaz * Update validator/accounts/accounts_import_test.go Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * fmt Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com>
This commit is contained in:
@@ -11,7 +11,7 @@ go_library(
|
||||
"//shared/fileutil:go_default_library",
|
||||
"//shared/params:go_default_library",
|
||||
"//shared/promptutil:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
"@com_github_logrusorgru_aurora//:go_default_library",
|
||||
"@com_github_pkg_errors//:go_default_library",
|
||||
@@ -36,7 +36,7 @@ go_test(
|
||||
"//shared/testutil:go_default_library",
|
||||
"//shared/testutil/assert:go_default_library",
|
||||
"//shared/testutil/require:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
"@com_github_urfave_cli_v2//:go_default_library",
|
||||
"@com_github_wealdtech_go_eth2_wallet_encryptor_keystorev4//:go_default_library",
|
||||
|
||||
@@ -21,7 +21,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/fileutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/params"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/urfave/cli/v2"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
@@ -198,7 +198,7 @@ func encrypt(cliCtx *cli.Context) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not encrypt into new keystore")
|
||||
}
|
||||
item := &v2keymanager.Keystore{
|
||||
item := &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Version: encryptor.Version(),
|
||||
@@ -230,7 +230,7 @@ func readAndDecryptKeystore(fullPath, password string) error {
|
||||
return errors.Wrapf(err, "could not read file at path: %s", fullPath)
|
||||
}
|
||||
decryptor := keystorev4.New()
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
|
||||
if err := json.Unmarshal(file, keystoreFile); err != nil {
|
||||
return errors.Wrap(err, "could not JSON unmarshal keystore file")
|
||||
|
||||
@@ -18,7 +18,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/urfave/cli/v2"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
@@ -47,7 +47,7 @@ func setupCliContext(
|
||||
return cli.NewContext(&app, set, nil)
|
||||
}
|
||||
|
||||
func createRandomKeystore(t testing.TB, password string) (*v2keymanager.Keystore, bls.SecretKey) {
|
||||
func createRandomKeystore(t testing.TB, password string) (*keymanager.Keystore, bls.SecretKey) {
|
||||
encryptor := keystorev4.New()
|
||||
id, err := uuid.NewRandom()
|
||||
require.NoError(t, err)
|
||||
@@ -55,7 +55,7 @@ func createRandomKeystore(t testing.TB, password string) (*v2keymanager.Keystore
|
||||
pubKey := validatingKey.PublicKey().Marshal()
|
||||
cryptoFields, err := encryptor.Encrypt(validatingKey.Marshal(), password)
|
||||
require.NoError(t, err)
|
||||
return &v2keymanager.Keystore{
|
||||
return &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
Pubkey: fmt.Sprintf("%x", pubKey),
|
||||
ID: id.String(),
|
||||
|
||||
@@ -22,7 +22,7 @@ go_library(
|
||||
"//shared/maxprocs:go_default_library",
|
||||
"//shared/tos:go_default_library",
|
||||
"//shared/version:go_default_library",
|
||||
"//validator/accounts/v2:go_default_library",
|
||||
"//validator/accounts:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/node:go_default_library",
|
||||
"@com_github_joonix_log//:go_default_library",
|
||||
@@ -60,7 +60,7 @@ go_image(
|
||||
"//shared/logutil:go_default_library",
|
||||
"//shared/params:go_default_library",
|
||||
"//shared/version:go_default_library",
|
||||
"//validator/accounts/v2:go_default_library",
|
||||
"//validator/accounts:go_default_library",
|
||||
"//validator/client:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/node:go_default_library",
|
||||
|
||||
@@ -18,7 +18,7 @@ go_library(
|
||||
"wallet_edit.go",
|
||||
"wallet_recover.go",
|
||||
],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts/v2",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts",
|
||||
visibility = [
|
||||
"//validator:__pkg__",
|
||||
"//validator:__subpackages__",
|
||||
@@ -33,14 +33,14 @@ go_library(
|
||||
"//shared/params:go_default_library",
|
||||
"//shared/petnames:go_default_library",
|
||||
"//shared/promptutil:go_default_library",
|
||||
"//validator/accounts/v2/prompt:go_default_library",
|
||||
"//validator/accounts/v2/wallet:go_default_library",
|
||||
"//validator/accounts/prompt:go_default_library",
|
||||
"//validator/accounts/wallet:go_default_library",
|
||||
"//validator/client:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager/v2/derived:go_default_library",
|
||||
"//validator/keymanager/v2/direct:go_default_library",
|
||||
"//validator/keymanager/v2/remote:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/derived:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"//validator/keymanager/remote:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
"@com_github_logrusorgru_aurora//:go_default_library",
|
||||
"@com_github_manifoldco_promptui//:go_default_library",
|
||||
@@ -82,12 +82,12 @@ go_test(
|
||||
"//shared/testutil/assert:go_default_library",
|
||||
"//shared/testutil/require:go_default_library",
|
||||
"//shared/timeutils:go_default_library",
|
||||
"//validator/accounts/v2/wallet:go_default_library",
|
||||
"//validator/accounts/wallet:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager/v2/derived:go_default_library",
|
||||
"//validator/keymanager/v2/direct:go_default_library",
|
||||
"//validator/keymanager/v2/remote:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/derived:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"//validator/keymanager/remote:go_default_library",
|
||||
"@com_github_gogo_protobuf//types:go_default_library",
|
||||
"@com_github_golang_mock//gomock:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
@@ -17,12 +17,12 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/fileutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/petnames"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
@@ -42,22 +42,22 @@ const (
|
||||
func BackupAccountsCli(cliCtx *cli.Context) error {
|
||||
w, err := wallet.OpenWalletOrElseCli(cliCtx, func(cliCtx *cli.Context) (*wallet.Wallet, error) {
|
||||
return nil, errors.New(
|
||||
"no wallet found, nothing to backup. Create a new wallet by running wallet-v2 create",
|
||||
"no wallet found, nothing to backup. Create a new wallet by running wallet create",
|
||||
)
|
||||
})
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not initialize wallet")
|
||||
}
|
||||
if w.KeymanagerKind() == v2keymanager.Remote {
|
||||
if w.KeymanagerKind() == keymanager.Remote {
|
||||
return errors.New(
|
||||
"remote wallets cannot backup accounts",
|
||||
)
|
||||
}
|
||||
keymanager, err := w.InitializeKeymanager(cliCtx.Context, true /* skip mnemonic confirm */)
|
||||
km, err := w.InitializeKeymanager(cliCtx.Context, true /* skip mnemonic confirm */)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not initialize keymanager")
|
||||
}
|
||||
pubKeys, err := keymanager.FetchValidatingPublicKeys(cliCtx.Context)
|
||||
pubKeys, err := km.FetchValidatingPublicKeys(cliCtx.Context)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not fetch validating public keys")
|
||||
}
|
||||
@@ -93,10 +93,10 @@ func BackupAccountsCli(cliCtx *cli.Context) error {
|
||||
return errors.Wrap(err, "could not determine password for backed up accounts")
|
||||
}
|
||||
|
||||
var keystoresToBackup []*v2keymanager.Keystore
|
||||
var keystoresToBackup []*keymanager.Keystore
|
||||
switch w.KeymanagerKind() {
|
||||
case v2keymanager.Direct:
|
||||
km, ok := keymanager.(*direct.Keymanager)
|
||||
case keymanager.Direct:
|
||||
km, ok := km.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("could not assert keymanager interface to concrete type")
|
||||
}
|
||||
@@ -104,8 +104,8 @@ func BackupAccountsCli(cliCtx *cli.Context) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not backup accounts for direct keymanager")
|
||||
}
|
||||
case v2keymanager.Derived:
|
||||
km, ok := keymanager.(*derived.Keymanager)
|
||||
case keymanager.Derived:
|
||||
km, ok := km.(*derived.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("could not assert keymanager interface to concrete type")
|
||||
}
|
||||
@@ -113,7 +113,7 @@ func BackupAccountsCli(cliCtx *cli.Context) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not backup accounts for derived keymanager")
|
||||
}
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
return errors.New("backing up keys is not supported for a remote keymanager")
|
||||
default:
|
||||
return errors.New("keymanager kind not supported")
|
||||
@@ -199,7 +199,7 @@ func selectAccounts(selectionPrompt string, pubKeys [][48]byte) ([]bls.PublicKey
|
||||
|
||||
// Zips a list of keystore into respective EIP-2335 keystore.json files and
|
||||
// writes their zipped format into the specified output directory.
|
||||
func zipKeystoresToOutputDir(keystoresToBackup []*v2keymanager.Keystore, outputDir string) error {
|
||||
func zipKeystoresToOutputDir(keystoresToBackup []*keymanager.Keystore, outputDir string) error {
|
||||
if len(keystoresToBackup) == 0 {
|
||||
return errors.New("nothing to backup")
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
@@ -20,8 +20,8 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
)
|
||||
|
||||
func TestBackupAccounts_Noninteractive_Derived(t *testing.T) {
|
||||
@@ -52,7 +52,7 @@ func TestBackupAccounts_Noninteractive_Derived(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: v2keymanager.Derived,
|
||||
keymanagerKind: keymanager.Derived,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
// Flags required for BackupAccounts to work.
|
||||
backupPasswordFile: backupPasswordFile,
|
||||
@@ -61,7 +61,7 @@ func TestBackupAccounts_Noninteractive_Derived(t *testing.T) {
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -74,14 +74,14 @@ func TestBackupAccounts_Noninteractive_Derived(t *testing.T) {
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
keymanager, err := w.InitializeKeymanager(
|
||||
km, err := w.InitializeKeymanager(
|
||||
cliCtx.Context,
|
||||
true, /* skip mnemonic confirm */
|
||||
)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Obtain the public keys of the accounts we created
|
||||
pubkeys, err := keymanager.FetchValidatingPublicKeys(cliCtx.Context)
|
||||
pubkeys, err := km.FetchValidatingPublicKeys(cliCtx.Context)
|
||||
require.NoError(t, err)
|
||||
var generatedPubKeys []string
|
||||
for _, pubkey := range pubkeys {
|
||||
@@ -95,7 +95,7 @@ func TestBackupAccounts_Noninteractive_Derived(t *testing.T) {
|
||||
cliCtx = setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: v2keymanager.Derived,
|
||||
keymanagerKind: keymanager.Derived,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
// Flags required for BackupAccounts to work.
|
||||
backupPublicKeys: backupPublicKeys,
|
||||
@@ -129,7 +129,7 @@ func TestBackupAccounts_Noninteractive_Derived(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
encodedBytes, err := ioutil.ReadAll(ff)
|
||||
require.NoError(t, err)
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
require.NoError(t, json.Unmarshal(encodedBytes, keystoreFile))
|
||||
require.NoError(t, ff.Close())
|
||||
unzippedPublicKeys[i] = keystoreFile.Pubkey
|
||||
@@ -176,7 +176,7 @@ func TestBackupAccounts_Noninteractive_Direct(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
// Flags required for ImportAccounts to work.
|
||||
@@ -189,7 +189,7 @@ func TestBackupAccounts_Noninteractive_Direct(t *testing.T) {
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -226,7 +226,7 @@ func TestBackupAccounts_Noninteractive_Direct(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
encodedBytes, err := ioutil.ReadAll(ff)
|
||||
require.NoError(t, err)
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
require.NoError(t, json.Unmarshal(encodedBytes, keystoreFile))
|
||||
require.NoError(t, ff.Close())
|
||||
unzippedPublicKeys[i] = keystoreFile.Pubkey
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -9,16 +9,16 @@ import (
|
||||
ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1"
|
||||
pb "github.com/prysmaticlabs/prysm/proto/validator/accounts/v2"
|
||||
"github.com/prysmaticlabs/prysm/shared/params"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
var log = logrus.WithField("prefix", "accounts-v2")
|
||||
var log = logrus.WithField("prefix", "accounts")
|
||||
|
||||
// CreateAccountConfig to run the create account function.
|
||||
type CreateAccountConfig struct {
|
||||
@@ -45,7 +45,7 @@ func CreateAccountCli(cliCtx *cli.Context) error {
|
||||
// CreateAccount creates a new validator account from user input by opening
|
||||
// a wallet from the user's specified path.
|
||||
func CreateAccount(ctx context.Context, cfg *CreateAccountConfig) error {
|
||||
keymanager, err := cfg.Wallet.InitializeKeymanager(ctx, false /* skip mnemonic confirm */)
|
||||
km, err := cfg.Wallet.InitializeKeymanager(ctx, false /* skip mnemonic confirm */)
|
||||
if err != nil && strings.Contains(err.Error(), "invalid checksum") {
|
||||
return errors.New("wrong wallet password entered")
|
||||
}
|
||||
@@ -53,10 +53,10 @@ func CreateAccount(ctx context.Context, cfg *CreateAccountConfig) error {
|
||||
return errors.Wrap(err, "could not initialize keymanager")
|
||||
}
|
||||
switch cfg.Wallet.KeymanagerKind() {
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
return errors.New("cannot create a new account for a remote keymanager")
|
||||
case v2keymanager.Direct:
|
||||
km, ok := keymanager.(*direct.Keymanager)
|
||||
case keymanager.Direct:
|
||||
km, ok := km.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("not a direct keymanager")
|
||||
}
|
||||
@@ -64,8 +64,8 @@ func CreateAccount(ctx context.Context, cfg *CreateAccountConfig) error {
|
||||
if _, _, err := km.CreateAccount(ctx); err != nil {
|
||||
return errors.Wrap(err, "could not create account in wallet")
|
||||
}
|
||||
case v2keymanager.Derived:
|
||||
km, ok := keymanager.(*derived.Keymanager)
|
||||
case keymanager.Derived:
|
||||
km, ok := km.(*derived.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("not a derived keymanager")
|
||||
}
|
||||
@@ -81,7 +81,7 @@ func CreateAccount(ctx context.Context, cfg *CreateAccountConfig) error {
|
||||
}
|
||||
}
|
||||
log.Infof(
|
||||
"Successfully created %d accounts. Please use accounts-v2 list to view details for accounts %d through %d",
|
||||
"Successfully created %d accounts. Please use accounts list to view details for accounts %d through %d",
|
||||
cfg.NumAccounts,
|
||||
startNum,
|
||||
startNum+uint64(cfg.NumAccounts)-1,
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -13,9 +13,9 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
logTest "github.com/sirupsen/logrus/hooks/test"
|
||||
)
|
||||
|
||||
@@ -27,7 +27,7 @@ func TestCreateAccount_Derived(t *testing.T) {
|
||||
passwordsDir: passwordsDir,
|
||||
walletPasswordFile: passwordFile,
|
||||
accountPasswordFile: passwordFile,
|
||||
keymanagerKind: v2keymanager.Derived,
|
||||
keymanagerKind: keymanager.Derived,
|
||||
numAccounts: numAccounts,
|
||||
})
|
||||
|
||||
@@ -90,7 +90,7 @@ func Test_KeysConsistency_Direct(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -9,18 +9,18 @@ import (
|
||||
"github.com/pkg/errors"
|
||||
"github.com/prysmaticlabs/prysm/shared/bytesutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
// DeleteAccountConfig specifies parameters to run the delete account function.
|
||||
type DeleteAccountConfig struct {
|
||||
Wallet *wallet.Wallet
|
||||
Keymanager v2keymanager.IKeymanager
|
||||
Keymanager keymanager.IKeymanager
|
||||
PublicKeys [][]byte
|
||||
}
|
||||
|
||||
@@ -107,9 +107,9 @@ func DeleteAccountCli(cliCtx *cli.Context) error {
|
||||
// DeleteAccount deletes the accounts that the user requests to be deleted from the wallet.
|
||||
func DeleteAccount(ctx context.Context, cfg *DeleteAccountConfig) error {
|
||||
switch cfg.Wallet.KeymanagerKind() {
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
return errors.New("cannot delete accounts for a remote keymanager")
|
||||
case v2keymanager.Direct:
|
||||
case keymanager.Direct:
|
||||
km, ok := cfg.Keymanager.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("not a direct keymanager")
|
||||
@@ -122,7 +122,7 @@ func DeleteAccount(ctx context.Context, cfg *DeleteAccountConfig) error {
|
||||
if err := km.DeleteAccounts(ctx, cfg.PublicKeys); err != nil {
|
||||
return errors.Wrap(err, "could not delete accounts")
|
||||
}
|
||||
case v2keymanager.Derived:
|
||||
case keymanager.Derived:
|
||||
return errors.New("cannot delete accounts for a derived keymanager")
|
||||
default:
|
||||
return fmt.Errorf("keymanager kind %s not supported", cfg.Wallet.KeymanagerKind())
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
@@ -15,9 +15,9 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
keymanager "github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
)
|
||||
|
||||
func TestDeleteAccounts_Noninteractive(t *testing.T) {
|
||||
@@ -43,7 +43,7 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
// Flags required for ImportAccounts to work.
|
||||
@@ -54,7 +54,7 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@@ -11,11 +11,11 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/bytesutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/cmd"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/client"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/urfave/cli/v2"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
@@ -23,7 +23,7 @@ import (
|
||||
type performExitCfg struct {
|
||||
validatorClient ethpb.BeaconNodeValidatorClient
|
||||
nodeClient ethpb.NodeClient
|
||||
keymanager v2.IKeymanager
|
||||
keymanager keymanager.IKeymanager
|
||||
rawPubKeys [][]byte
|
||||
formattedPubKeys []string
|
||||
}
|
||||
@@ -73,7 +73,7 @@ func ExitAccountsCli(cliCtx *cli.Context, r io.Reader) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func prepareWallet(cliCtx *cli.Context) ([][48]byte, v2.IKeymanager, error) {
|
||||
func prepareWallet(cliCtx *cli.Context) ([][48]byte, keymanager.IKeymanager, error) {
|
||||
w, err := wallet.OpenWalletOrElseCli(cliCtx, func(cliCtx *cli.Context) (*wallet.Wallet, error) {
|
||||
return nil, errors.New(
|
||||
"no wallet found, no accounts to exit",
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@@ -17,9 +17,9 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
)
|
||||
|
||||
func TestExitAccountsCli_Ok(t *testing.T) {
|
||||
@@ -64,7 +64,7 @@ func TestExitAccountsCli_Ok(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
// Flag required for ImportAccounts to work.
|
||||
@@ -75,7 +75,7 @@ func TestExitAccountsCli_Ok(t *testing.T) {
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -115,14 +115,14 @@ func TestPrepareWallet_EmptyWalletReturnsError(t *testing.T) {
|
||||
walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: "Passwordz0320$",
|
||||
},
|
||||
})
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"encoding/hex"
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -18,11 +18,11 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/bytesutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/fileutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/urfave/cli/v2"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
@@ -68,7 +68,7 @@ func (fileNames byDerivationPath) Swap(i, j int) {
|
||||
|
||||
// ImportAccountsConfig defines values to run the import accounts function.
|
||||
type ImportAccountsConfig struct {
|
||||
Keystores []*v2keymanager.Keystore
|
||||
Keystores []*keymanager.Keystore
|
||||
Keymanager *direct.Keymanager
|
||||
AccountPassword string
|
||||
}
|
||||
@@ -78,7 +78,7 @@ type ImportAccountsConfig struct {
|
||||
// values necessary to run the function.
|
||||
func ImportAccountsCli(cliCtx *cli.Context) error {
|
||||
w, err := wallet.OpenWalletOrElseCli(cliCtx, func(cliCtx *cli.Context) (*wallet.Wallet, error) {
|
||||
cfg, err := extractWalletCreationConfigFromCli(cliCtx, v2keymanager.Direct)
|
||||
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Direct)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -107,7 +107,7 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
keymanager, ok := km.(*direct.Keymanager)
|
||||
k, ok := km.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return errors.Wrap(err, "Only non-HD wallets can import keystores")
|
||||
}
|
||||
@@ -115,7 +115,7 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
|
||||
// Check if the user wishes to import a one-off, private key directly
|
||||
// as an account into the Prysm validator.
|
||||
if cliCtx.IsSet(flags.ImportPrivateKeyFileFlag.Name) {
|
||||
return importPrivateKeyAsAccount(cliCtx, w, keymanager)
|
||||
return importPrivateKeyAsAccount(cliCtx, w, k)
|
||||
}
|
||||
|
||||
keysDir, err := prompt.InputDirectory(cliCtx, prompt.ImportKeysDirPromptText, flags.KeysDirFlag)
|
||||
@@ -127,7 +127,7 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not determine if path is a directory")
|
||||
}
|
||||
keystoresImported := make([]*v2keymanager.Keystore, 0)
|
||||
keystoresImported := make([]*keymanager.Keystore, 0)
|
||||
if isDir {
|
||||
files, err := ioutil.ReadDir(keysDir)
|
||||
if err != nil {
|
||||
@@ -181,14 +181,14 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
|
||||
}
|
||||
fmt.Println("Importing accounts, this may take a while...")
|
||||
if err := ImportAccounts(cliCtx.Context, &ImportAccountsConfig{
|
||||
Keymanager: keymanager,
|
||||
Keymanager: k,
|
||||
Keystores: keystoresImported,
|
||||
AccountPassword: accountsPassword,
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf(
|
||||
"Successfully imported %s accounts, view all of them by running accounts-v2 list\n",
|
||||
"Successfully imported %s accounts, view all of them by running accounts list\n",
|
||||
au.BrightMagenta(strconv.Itoa(len(keystoresImported))),
|
||||
)
|
||||
return nil
|
||||
@@ -206,7 +206,7 @@ func ImportAccounts(ctx context.Context, cfg *ImportAccountsConfig) error {
|
||||
|
||||
// Imports a one-off file containing a private key as a hex string into
|
||||
// the Prysm validator's accounts.
|
||||
func importPrivateKeyAsAccount(cliCtx *cli.Context, wallet *wallet.Wallet, keymanager *direct.Keymanager) error {
|
||||
func importPrivateKeyAsAccount(cliCtx *cli.Context, wallet *wallet.Wallet, km *direct.Keymanager) error {
|
||||
privKeyFile := cliCtx.String(flags.ImportPrivateKeyFileFlag.Name)
|
||||
fullPath, err := fileutil.ExpandPath(privKeyFile)
|
||||
if err != nil {
|
||||
@@ -240,26 +240,26 @@ func importPrivateKeyAsAccount(cliCtx *cli.Context, wallet *wallet.Wallet, keyma
|
||||
if err := ImportAccounts(
|
||||
cliCtx.Context,
|
||||
&ImportAccountsConfig{
|
||||
Keymanager: keymanager,
|
||||
Keymanager: km,
|
||||
AccountPassword: wallet.Password(),
|
||||
Keystores: []*v2keymanager.Keystore{keystore},
|
||||
Keystores: []*keymanager.Keystore{keystore},
|
||||
},
|
||||
); err != nil {
|
||||
return errors.Wrap(err, "could not import keystore into wallet")
|
||||
}
|
||||
fmt.Printf(
|
||||
"Imported account with public key %#x, view all accounts by running accounts-v2 list\n",
|
||||
"Imported account with public key %#x, view all accounts by running accounts list\n",
|
||||
au.BrightMagenta(bytesutil.Trunc(privKey.PublicKey().Marshal())),
|
||||
)
|
||||
return nil
|
||||
}
|
||||
|
||||
func readKeystoreFile(_ context.Context, keystoreFilePath string) (*v2keymanager.Keystore, error) {
|
||||
func readKeystoreFile(_ context.Context, keystoreFilePath string) (*keymanager.Keystore, error) {
|
||||
keystoreBytes, err := ioutil.ReadFile(keystoreFilePath)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not read keystore file")
|
||||
}
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
if err := json.Unmarshal(keystoreBytes, keystoreFile); err != nil {
|
||||
return nil, errors.Wrap(err, "could not decode keystore json")
|
||||
}
|
||||
@@ -269,7 +269,7 @@ func readKeystoreFile(_ context.Context, keystoreFilePath string) (*v2keymanager
|
||||
return keystoreFile, nil
|
||||
}
|
||||
|
||||
func createKeystoreFromPrivateKey(privKey bls.SecretKey, walletPassword string) (*v2keymanager.Keystore, error) {
|
||||
func createKeystoreFromPrivateKey(privKey bls.SecretKey, walletPassword string) (*keymanager.Keystore, error) {
|
||||
encryptor := keystorev4.New()
|
||||
id, err := uuid.NewRandom()
|
||||
if err != nil {
|
||||
@@ -283,7 +283,7 @@ func createKeystoreFromPrivateKey(privKey bls.SecretKey, walletPassword string)
|
||||
privKey.PublicKey().Marshal(),
|
||||
)
|
||||
}
|
||||
return &v2keymanager.Keystore{
|
||||
return &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Version: encryptor.Version(),
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -21,9 +21,9 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/shared/timeutils"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
@@ -42,14 +42,14 @@ func TestImport_Noninteractive(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keysDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -104,14 +104,14 @@ func TestImport_Noninteractive_RandomName(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keysDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -167,14 +167,14 @@ func TestImport_Noninteractive_Filepath(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keystorePath,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -293,7 +293,7 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
|
||||
// We instantiate a new wallet from a cli context.
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
privateKeyFile: privKeyFileName,
|
||||
})
|
||||
@@ -301,7 +301,7 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
|
||||
wallet, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: walletPass,
|
||||
},
|
||||
})
|
||||
@@ -333,14 +333,14 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
|
||||
}
|
||||
|
||||
// Returns the fullPath to the newly created keystore file.
|
||||
func createKeystore(t *testing.T, path string) (*v2keymanager.Keystore, string) {
|
||||
func createKeystore(t *testing.T, path string) (*keymanager.Keystore, string) {
|
||||
validatingKey := bls.RandKey()
|
||||
encryptor := keystorev4.New()
|
||||
cryptoFields, err := encryptor.Encrypt(validatingKey.Marshal(), password)
|
||||
require.NoError(t, err)
|
||||
id, err := uuid.NewRandom()
|
||||
require.NoError(t, err)
|
||||
keystoreFile := &v2keymanager.Keystore{
|
||||
keystoreFile := &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Pubkey: fmt.Sprintf("%x", validatingKey.PublicKey().Marshal()),
|
||||
@@ -357,14 +357,14 @@ func createKeystore(t *testing.T, path string) (*v2keymanager.Keystore, string)
|
||||
}
|
||||
|
||||
// Returns the fullPath to the newly created keystore file.
|
||||
func createRandomNameKeystore(t *testing.T, path string) (*v2keymanager.Keystore, string) {
|
||||
func createRandomNameKeystore(t *testing.T, path string) (*keymanager.Keystore, string) {
|
||||
validatingKey := bls.RandKey()
|
||||
encryptor := keystorev4.New()
|
||||
cryptoFields, err := encryptor.Encrypt(validatingKey.Marshal(), password)
|
||||
require.NoError(t, err)
|
||||
id, err := uuid.NewRandom()
|
||||
require.NoError(t, err)
|
||||
keystoreFile := &v2keymanager.Keystore{
|
||||
keystoreFile := &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Pubkey: fmt.Sprintf("%x", validatingKey.PublicKey().Marshal()),
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -9,12 +9,12 @@ import (
|
||||
"github.com/logrusorgru/aurora"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/prysmaticlabs/prysm/shared/petnames"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
@@ -28,7 +28,7 @@ func ListAccountsCli(cliCtx *cli.Context) error {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not open wallet")
|
||||
}
|
||||
keymanager, err := w.InitializeKeymanager(cliCtx.Context, true /* skip mnemonic confirm */)
|
||||
km, err := w.InitializeKeymanager(cliCtx.Context, true /* skip mnemonic confirm */)
|
||||
if err != nil && strings.Contains(err.Error(), "invalid checksum") {
|
||||
return errors.New("wrong wallet password entered")
|
||||
}
|
||||
@@ -38,24 +38,24 @@ func ListAccountsCli(cliCtx *cli.Context) error {
|
||||
showDepositData := cliCtx.Bool(flags.ShowDepositDataFlag.Name)
|
||||
showPrivateKeys := cliCtx.Bool(flags.ShowPrivateKeysFlag.Name)
|
||||
switch w.KeymanagerKind() {
|
||||
case v2keymanager.Direct:
|
||||
km, ok := keymanager.(*direct.Keymanager)
|
||||
case keymanager.Direct:
|
||||
km, ok := km.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("could not assert keymanager interface to concrete type")
|
||||
}
|
||||
if err := listDirectKeymanagerAccounts(cliCtx.Context, showDepositData, showPrivateKeys, km); err != nil {
|
||||
return errors.Wrap(err, "could not list validator accounts with direct keymanager")
|
||||
}
|
||||
case v2keymanager.Derived:
|
||||
km, ok := keymanager.(*derived.Keymanager)
|
||||
case keymanager.Derived:
|
||||
km, ok := km.(*derived.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("could not assert keymanager interface to concrete type")
|
||||
}
|
||||
if err := listDerivedKeymanagerAccounts(cliCtx.Context, showDepositData, showPrivateKeys, km); err != nil {
|
||||
return errors.Wrap(err, "could not list validator accounts with derived keymanager")
|
||||
}
|
||||
case v2keymanager.Remote:
|
||||
km, ok := keymanager.(*remote.Keymanager)
|
||||
case keymanager.Remote:
|
||||
km, ok := km.(*remote.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("could not assert keymanager interface to concrete type")
|
||||
}
|
||||
@@ -70,7 +70,7 @@ func ListAccountsCli(cliCtx *cli.Context) error {
|
||||
|
||||
func listDirectKeymanagerAccounts(
|
||||
ctx context.Context,
|
||||
showDepositData bool,
|
||||
showDepositData,
|
||||
showPrivateKeys bool,
|
||||
keymanager *direct.Keymanager,
|
||||
) error {
|
||||
@@ -89,7 +89,7 @@ func listDirectKeymanagerAccounts(
|
||||
}
|
||||
fmt.Println(
|
||||
au.BrightRed("View the eth1 deposit transaction data for your accounts " +
|
||||
"by running `validator accounts-v2 list --show-deposit-data"),
|
||||
"by running `validator accounts list --show-deposit-data"),
|
||||
)
|
||||
|
||||
pubKeys, err := keymanager.FetchValidatingPublicKeys(ctx)
|
||||
@@ -126,7 +126,7 @@ func listDirectKeymanagerAccounts(
|
||||
|
||||
func listDerivedKeymanagerAccounts(
|
||||
ctx context.Context,
|
||||
showDepositData bool,
|
||||
showDepositData,
|
||||
showPrivateKeys bool,
|
||||
keymanager *derived.Keymanager,
|
||||
) error {
|
||||
@@ -213,7 +213,7 @@ func listDerivedKeymanagerAccounts(
|
||||
func listRemoteKeymanagerAccounts(
|
||||
ctx context.Context,
|
||||
w *wallet.Wallet,
|
||||
keymanager v2keymanager.IKeymanager,
|
||||
keymanager keymanager.IKeymanager,
|
||||
opts *remote.KeymanagerOpts,
|
||||
) error {
|
||||
au := aurora.NewAurora(true)
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -15,11 +15,11 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/petnames"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote"
|
||||
"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/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
)
|
||||
|
||||
type mockRemoteKeymanager struct {
|
||||
@@ -40,13 +40,13 @@ func TestListAccounts_DirectKeymanager(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: "Passwordz0320$",
|
||||
},
|
||||
})
|
||||
@@ -87,7 +87,7 @@ func TestListAccounts_DirectKeymanager(t *testing.T) {
|
||||
(keymanager kind) non-HD wallet
|
||||
|
||||
Showing 5 validator accounts
|
||||
View the eth1 deposit transaction data for your accounts by running `validator accounts-v2 list --show-deposit-data
|
||||
View the eth1 deposit transaction data for your accounts by running `validator accounts list --show-deposit-data
|
||||
|
||||
Account 0 | fully-evolving-fawn
|
||||
[validating public key] 0xa6669aa0381c06470b9a6faf8abf4194ad5148a62e461cbef5a6bc4d292026f58b992c4cf40e50552d301cef19da75b9
|
||||
@@ -183,13 +183,13 @@ func TestListAccounts_DerivedKeymanager(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: v2keymanager.Derived,
|
||||
keymanagerKind: keymanager.Derived,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: "Passwordz0320$",
|
||||
},
|
||||
})
|
||||
@@ -352,12 +352,12 @@ func TestListAccounts_RemoteKeymanager(t *testing.T) {
|
||||
walletDir, _, _ := setupWalletAndPasswordsDir(t)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: v2keymanager.Remote,
|
||||
keymanagerKind: keymanager.Remote,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Remote,
|
||||
KeymanagerKind: keymanager.Remote,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"os"
|
||||
@@ -9,13 +9,12 @@ import (
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
// AccountCommands for accounts-v2 for Prysm validators.
|
||||
// AccountCommands for Prysm validators.
|
||||
var AccountCommands = &cli.Command{
|
||||
Name: "accounts-v2",
|
||||
Name: "accounts",
|
||||
Category: "accounts",
|
||||
Usage: "defines commands for interacting with eth2 validator accounts (work in progress)",
|
||||
Subcommands: []*cli.Command{
|
||||
// AccountCommands for accounts-v2 for Prysm validators.
|
||||
{
|
||||
Name: "create",
|
||||
Description: `creates a new validator account for eth2. If no wallet exists at the given wallet path, creates a new wallet for a user based on
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"github.com/prysmaticlabs/prysm/shared/featureconfig"
|
||||
@@ -6,10 +6,10 @@ import (
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
// WalletCommands for accounts-v2 for Prysm validators.
|
||||
// WalletCommands for accounts for Prysm validators.
|
||||
var WalletCommands = &cli.Command{
|
||||
Name: "wallet-v2",
|
||||
Category: "wallet-v2",
|
||||
Name: "wallet",
|
||||
Category: "wallet",
|
||||
Usage: "defines commands for interacting with eth2 validator wallets (work in progress)",
|
||||
Subcommands: []*cli.Command{
|
||||
{
|
||||
@@ -2,4 +2,4 @@
|
||||
// practices for user security, UX, and extensibility via different wallet types
|
||||
// including HD wallets, non-HD wallets, and remote-signing capable configurations. This model
|
||||
// is compliant with the EIP-2333, EIP-2334, and EIP-2335 standards for key management in eth2.
|
||||
package v2
|
||||
package accounts
|
||||
@@ -3,10 +3,10 @@ load("@prysm//tools/go:def.bzl", "go_library")
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["wallet.go"],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts/v2/iface",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts/iface",
|
||||
visibility = [
|
||||
"//validator:__pkg__",
|
||||
"//validator:__subpackages__",
|
||||
],
|
||||
deps = ["//validator/keymanager/v2:go_default_library"],
|
||||
deps = ["//validator/keymanager:go_default_library"],
|
||||
)
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"io"
|
||||
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
)
|
||||
|
||||
// Wallet defines a struct which has capabilities and knowledge of how
|
||||
@@ -22,5 +22,5 @@ type Wallet interface {
|
||||
WriteFileAtPath(ctx context.Context, pathName string, fileName string, data []byte) error
|
||||
WriteEncryptedSeedToDisk(ctx context.Context, encoded []byte) error
|
||||
// Method for initializing a new keymanager.
|
||||
InitializeKeymanager(ctx context.Context, skipMnemonicConfirm bool) (v2keymanager.IKeymanager, error)
|
||||
InitializeKeymanager(ctx context.Context, skipMnemonicConfirm bool) (keymanager.IKeymanager, error)
|
||||
}
|
||||
@@ -3,13 +3,13 @@ load("@prysm//tools/go:def.bzl", "go_library")
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["prompt.go"],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts/v2/prompt",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts/prompt",
|
||||
visibility = ["//validator:__subpackages__"],
|
||||
deps = [
|
||||
"//shared/fileutil:go_default_library",
|
||||
"//shared/promptutil:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager/v2/remote:go_default_library",
|
||||
"//validator/keymanager/remote:go_default_library",
|
||||
"@com_github_logrusorgru_aurora//:go_default_library",
|
||||
"@com_github_manifoldco_promptui//:go_default_library",
|
||||
"@com_github_pkg_errors//:go_default_library",
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/fileutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
@@ -4,10 +4,10 @@ go_library(
|
||||
name = "go_default_library",
|
||||
testonly = 1,
|
||||
srcs = ["mock.go"],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts/v2/testing",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts/testing",
|
||||
visibility = [
|
||||
"//validator:__pkg__",
|
||||
"//validator:__subpackages__",
|
||||
],
|
||||
deps = ["//validator/keymanager/v2:go_default_library"],
|
||||
deps = ["//validator/keymanager:go_default_library"],
|
||||
)
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
)
|
||||
|
||||
// Wallet contains an in-memory, simulated wallet implementation.
|
||||
@@ -94,6 +94,6 @@ func (m *Wallet) WriteEncryptedSeedToDisk(_ context.Context, encoded []byte) err
|
||||
}
|
||||
|
||||
// InitializeKeymanager --
|
||||
func (m *Wallet) InitializeKeymanager(_ context.Context, _ bool) (v2keymanager.IKeymanager, error) {
|
||||
func (m *Wallet) InitializeKeymanager(_ context.Context, _ bool) (keymanager.IKeymanager, error) {
|
||||
return nil, nil
|
||||
}
|
||||
@@ -4,19 +4,18 @@ load("@prysm//tools/go:def.bzl", "go_library")
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["wallet.go"],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/accounts/wallet",
|
||||
visibility = ["//validator:__subpackages__"],
|
||||
deps = [
|
||||
"//shared/event:go_default_library",
|
||||
"//shared/fileutil:go_default_library",
|
||||
"//shared/params:go_default_library",
|
||||
"//shared/promptutil:go_default_library",
|
||||
"//validator/accounts/v2/prompt:go_default_library",
|
||||
"//validator/accounts/prompt:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager/v2/derived:go_default_library",
|
||||
"//validator/keymanager/v2/direct:go_default_library",
|
||||
"//validator/keymanager/v2/remote:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/derived:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"//validator/keymanager/remote:go_default_library",
|
||||
"@com_github_gofrs_flock//:go_default_library",
|
||||
"@com_github_pkg_errors//:go_default_library",
|
||||
"@com_github_sirupsen_logrus//:go_default_library",
|
||||
@@ -35,9 +34,9 @@ go_test(
|
||||
"//shared/testutil/assert:go_default_library",
|
||||
"//shared/testutil/assertions:go_default_library",
|
||||
"//shared/testutil/require:go_default_library",
|
||||
"//validator/accounts/v2:go_default_library",
|
||||
"//validator/accounts:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"@com_github_sirupsen_logrus//:go_default_library",
|
||||
"@com_github_urfave_cli_v2//:go_default_library",
|
||||
],
|
||||
@@ -11,16 +11,15 @@ import (
|
||||
|
||||
"github.com/gofrs/flock"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/prysmaticlabs/prysm/shared/event"
|
||||
"github.com/prysmaticlabs/prysm/shared/fileutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/params"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli/v2"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
@@ -53,13 +52,13 @@ const (
|
||||
var (
|
||||
// ErrNoWalletFound signifies there was no wallet directory found on-disk.
|
||||
ErrNoWalletFound = errors.New(
|
||||
"no wallet found at path, please create a new wallet using `./prysm.sh validator wallet-v2 create`",
|
||||
"no wallet found at path, please create a new wallet using `./prysm.sh validator wallet create`",
|
||||
)
|
||||
// KeymanagerKindSelections as friendly text.
|
||||
KeymanagerKindSelections = map[v2keymanager.Kind]string{
|
||||
v2keymanager.Direct: "Non-HD Wallet (Recommended)",
|
||||
v2keymanager.Derived: "HD Wallet (Least secure)",
|
||||
v2keymanager.Remote: "Remote Signing Wallet (Advanced)",
|
||||
KeymanagerKindSelections = map[keymanager.Kind]string{
|
||||
keymanager.Direct: "Non-HD Wallet (Recommended)",
|
||||
keymanager.Derived: "HD Wallet (Least secure)",
|
||||
keymanager.Remote: "Remote Signing Wallet (Advanced)",
|
||||
}
|
||||
// ValidateExistingPass checks that an input cannot be empty.
|
||||
ValidateExistingPass = func(input string) error {
|
||||
@@ -73,22 +72,21 @@ var (
|
||||
// Config to open a wallet programmatically.
|
||||
type Config struct {
|
||||
WalletDir string
|
||||
KeymanagerKind v2keymanager.Kind
|
||||
KeymanagerKind keymanager.Kind
|
||||
WalletPassword string
|
||||
}
|
||||
|
||||
// Wallet is a primitive in Prysm's v2 account management which
|
||||
// Wallet is a primitive in Prysm's account management which
|
||||
// has the capability of creating new accounts, reading existing accounts,
|
||||
// and providing secure access to eth2 secrets depending on an
|
||||
// associated keymanager (either direct, derived, or remote signing enabled).
|
||||
type Wallet struct {
|
||||
walletDir string
|
||||
accountsPath string
|
||||
configFilePath string
|
||||
walletPassword string
|
||||
walletFileLock *flock.Flock
|
||||
keymanagerKind v2keymanager.Kind
|
||||
accountsChangedFeed *event.Feed
|
||||
walletDir string
|
||||
accountsPath string
|
||||
configFilePath string
|
||||
walletPassword string
|
||||
walletFileLock *flock.Flock
|
||||
keymanagerKind keymanager.Kind
|
||||
}
|
||||
|
||||
// New creates a struct from config values.
|
||||
@@ -150,7 +148,7 @@ func IsValid(walletDir string) (bool, error) {
|
||||
numWalletTypes := 0
|
||||
for _, name := range names {
|
||||
// Nil error means input name is `derived`, `remote` or `direct`
|
||||
_, err = v2keymanager.ParseKind(name)
|
||||
_, err = keymanager.ParseKind(name)
|
||||
if err == nil {
|
||||
numWalletTypes++
|
||||
}
|
||||
@@ -254,7 +252,7 @@ func (w *Wallet) SaveWallet() error {
|
||||
}
|
||||
|
||||
// KeymanagerKind used by the wallet.
|
||||
func (w *Wallet) KeymanagerKind() v2keymanager.Kind {
|
||||
func (w *Wallet) KeymanagerKind() keymanager.Kind {
|
||||
return w.keymanagerKind
|
||||
}
|
||||
|
||||
@@ -278,19 +276,19 @@ func (w *Wallet) SetPassword(newPass string) {
|
||||
func (w *Wallet) InitializeKeymanager(
|
||||
ctx context.Context,
|
||||
skipMnemonicConfirm bool,
|
||||
) (v2keymanager.IKeymanager, error) {
|
||||
) (keymanager.IKeymanager, error) {
|
||||
configFile, err := w.ReadKeymanagerConfigFromDisk(ctx)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not read keymanager config")
|
||||
}
|
||||
var keymanager v2keymanager.IKeymanager
|
||||
var km keymanager.IKeymanager
|
||||
switch w.KeymanagerKind() {
|
||||
case v2keymanager.Direct:
|
||||
case keymanager.Direct:
|
||||
opts, err := direct.UnmarshalOptionsFile(configFile)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not unmarshal keymanageropts file")
|
||||
}
|
||||
keymanager, err = direct.NewKeymanager(ctx, &direct.SetupConfig{
|
||||
km, err = direct.NewKeymanager(ctx, &direct.SetupConfig{
|
||||
Wallet: w,
|
||||
Opts: opts,
|
||||
})
|
||||
@@ -298,23 +296,23 @@ func (w *Wallet) InitializeKeymanager(
|
||||
return nil, errors.Wrap(err, "could not initialize direct keymanager")
|
||||
}
|
||||
if !fileutil.FileExists(filepath.Join(w.walletDir, HashedPasswordFileName)) {
|
||||
keys, err := keymanager.FetchValidatingPublicKeys(ctx)
|
||||
keys, err := km.FetchValidatingPublicKeys(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(keys) == 0 {
|
||||
return nil, errors.New("please recreate your wallet with wallet-v2 create")
|
||||
return nil, errors.New("please recreate your wallet with wallet create")
|
||||
}
|
||||
if err := w.SaveHashedPassword(ctx); err != nil {
|
||||
return nil, errors.Wrap(err, "could not save hashed password to disk")
|
||||
}
|
||||
}
|
||||
case v2keymanager.Derived:
|
||||
case keymanager.Derived:
|
||||
opts, err := derived.UnmarshalOptionsFile(configFile)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not unmarshal keymanager config file")
|
||||
}
|
||||
keymanager, err = derived.NewKeymanager(ctx, &derived.SetupConfig{
|
||||
km, err = derived.NewKeymanager(ctx, &derived.SetupConfig{
|
||||
Opts: opts,
|
||||
Wallet: w,
|
||||
SkipMnemonicConfirm: skipMnemonicConfirm,
|
||||
@@ -327,12 +325,12 @@ func (w *Wallet) InitializeKeymanager(
|
||||
return nil, errors.Wrap(err, "could not save hashed password to disk")
|
||||
}
|
||||
}
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
opts, err := remote.UnmarshalOptionsFile(configFile)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not unmarshal keymanager config file")
|
||||
}
|
||||
keymanager, err = remote.NewKeymanager(ctx, &remote.SetupConfig{
|
||||
km, err = remote.NewKeymanager(ctx, &remote.SetupConfig{
|
||||
Opts: opts,
|
||||
MaxMessageSize: 100000000,
|
||||
})
|
||||
@@ -342,7 +340,7 @@ func (w *Wallet) InitializeKeymanager(
|
||||
default:
|
||||
return nil, fmt.Errorf("keymanager kind not supported: %s", w.keymanagerKind)
|
||||
}
|
||||
return keymanager, nil
|
||||
return km, nil
|
||||
}
|
||||
|
||||
// WriteFileAtPath within the wallet directory given the desired path, filename, and raw data.
|
||||
@@ -486,7 +484,7 @@ func (w *Wallet) SaveHashedPassword(_ context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func readKeymanagerKindFromWalletPath(walletPath string) (v2keymanager.Kind, error) {
|
||||
func readKeymanagerKindFromWalletPath(walletPath string) (keymanager.Kind, error) {
|
||||
walletItem, err := os.Open(walletPath)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
@@ -503,7 +501,7 @@ func readKeymanagerKindFromWalletPath(walletPath string) (v2keymanager.Kind, err
|
||||
return 0, fmt.Errorf("could not read files in directory: %s", walletPath)
|
||||
}
|
||||
for _, n := range list {
|
||||
keymanagerKind, err := v2keymanager.ParseKind(n)
|
||||
keymanagerKind, err := keymanager.ParseKind(n)
|
||||
if err == nil {
|
||||
return keymanagerKind, nil
|
||||
}
|
||||
@@ -16,10 +16,10 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assertions"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/accounts/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
@@ -48,7 +48,7 @@ type testWalletConfig struct {
|
||||
privateKeyFile string
|
||||
skipDepositConfirm bool
|
||||
numAccounts int64
|
||||
keymanagerKind v2keymanager.Kind
|
||||
keymanagerKind keymanager.Kind
|
||||
}
|
||||
|
||||
func setupWalletCtx(
|
||||
@@ -159,12 +159,12 @@ func Test_LockUnlockFile(t *testing.T) {
|
||||
passwordsDir: passwordsDir,
|
||||
walletPasswordFile: passwordFile,
|
||||
accountPasswordFile: passwordFile,
|
||||
keymanagerKind: v2keymanager.Derived,
|
||||
keymanagerKind: keymanager.Derived,
|
||||
numAccounts: numAccounts,
|
||||
})
|
||||
|
||||
// We attempt to create the wallet.
|
||||
_, err := v2.CreateAndSaveWalletCli(cliCtx)
|
||||
_, err := accounts.CreateAndSaveWalletCli(cliCtx)
|
||||
require.NoError(t, err)
|
||||
|
||||
// We attempt to open the newly created wallet.
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -7,13 +7,13 @@ import (
|
||||
"github.com/manifoldco/promptui"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
@@ -67,23 +67,23 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
|
||||
})
|
||||
var err error
|
||||
switch w.KeymanagerKind() {
|
||||
case v2keymanager.Direct:
|
||||
case keymanager.Direct:
|
||||
if err = createDirectKeymanagerWallet(ctx, w); err != nil {
|
||||
return nil, errors.Wrap(err, "could not initialize wallet with direct keymanager")
|
||||
}
|
||||
log.WithField("--wallet-dir", cfg.WalletCfg.WalletDir).Info(
|
||||
"Successfully created wallet with on-disk keymanager configuration. " +
|
||||
"Make a new validator account with ./prysm.sh validator accounts-v2 create",
|
||||
"Make a new validator account with ./prysm.sh validator accounts create",
|
||||
)
|
||||
case v2keymanager.Derived:
|
||||
case keymanager.Derived:
|
||||
if err = createDerivedKeymanagerWallet(ctx, w, cfg.SkipMnemonicConfirm); err != nil {
|
||||
return nil, errors.Wrap(err, "could not initialize wallet with derived keymanager")
|
||||
}
|
||||
log.WithField("--wallet-dir", cfg.WalletCfg.WalletDir).Info(
|
||||
"Successfully created HD wallet and saved configuration to disk. " +
|
||||
"Make a new validator account with ./prysm.sh validator accounts-2 create",
|
||||
"Make a new validator account with ./prysm.sh validator accounts create",
|
||||
)
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
if err = createRemoteKeymanagerWallet(ctx, w, cfg.RemoteKeymanagerOpts); err != nil {
|
||||
return nil, errors.Wrap(err, "could not initialize wallet with remote keymanager")
|
||||
}
|
||||
@@ -96,11 +96,11 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
|
||||
return w, nil
|
||||
}
|
||||
|
||||
func extractKeymanagerKindFromCli(cliCtx *cli.Context) (v2keymanager.Kind, error) {
|
||||
func extractKeymanagerKindFromCli(cliCtx *cli.Context) (keymanager.Kind, error) {
|
||||
return inputKeymanagerKind(cliCtx)
|
||||
}
|
||||
|
||||
func extractWalletCreationConfigFromCli(cliCtx *cli.Context, keymanagerKind v2keymanager.Kind) (*CreateWalletConfig, error) {
|
||||
func extractWalletCreationConfigFromCli(cliCtx *cli.Context, keymanagerKind keymanager.Kind) (*CreateWalletConfig, error) {
|
||||
walletDir, err := prompt.InputDirectory(cliCtx, prompt.WalletDirPromptText, flags.WalletDirFlag)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -125,7 +125,7 @@ func extractWalletCreationConfigFromCli(cliCtx *cli.Context, keymanagerKind v2ke
|
||||
SkipMnemonicConfirm: cliCtx.Bool(flags.SkipDepositConfirmationFlag.Name),
|
||||
}
|
||||
|
||||
if keymanagerKind == v2keymanager.Remote {
|
||||
if keymanagerKind == keymanager.Remote {
|
||||
opts, err := prompt.InputRemoteKeymanagerConfig(cliCtx)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not input remote keymanager config")
|
||||
@@ -185,21 +185,21 @@ func createRemoteKeymanagerWallet(ctx context.Context, wallet *wallet.Wallet, op
|
||||
return nil
|
||||
}
|
||||
|
||||
func inputKeymanagerKind(cliCtx *cli.Context) (v2keymanager.Kind, error) {
|
||||
func inputKeymanagerKind(cliCtx *cli.Context) (keymanager.Kind, error) {
|
||||
if cliCtx.IsSet(flags.KeymanagerKindFlag.Name) {
|
||||
return v2keymanager.ParseKind(cliCtx.String(flags.KeymanagerKindFlag.Name))
|
||||
return keymanager.ParseKind(cliCtx.String(flags.KeymanagerKindFlag.Name))
|
||||
}
|
||||
promptSelect := promptui.Select{
|
||||
Label: "Select a type of wallet",
|
||||
Items: []string{
|
||||
wallet.KeymanagerKindSelections[v2keymanager.Direct],
|
||||
wallet.KeymanagerKindSelections[v2keymanager.Derived],
|
||||
wallet.KeymanagerKindSelections[v2keymanager.Remote],
|
||||
wallet.KeymanagerKindSelections[keymanager.Direct],
|
||||
wallet.KeymanagerKindSelections[keymanager.Derived],
|
||||
wallet.KeymanagerKindSelections[keymanager.Remote],
|
||||
},
|
||||
}
|
||||
selection, _, err := promptSelect.Run()
|
||||
if err != nil {
|
||||
return v2keymanager.Direct, fmt.Errorf("could not select wallet type: %v", prompt.FormatPromptError(err))
|
||||
return keymanager.Direct, fmt.Errorf("could not select wallet type: %v", prompt.FormatPromptError(err))
|
||||
}
|
||||
return v2keymanager.Kind(selection), nil
|
||||
return keymanager.Kind(selection), nil
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -17,12 +17,12 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/sirupsen/logrus"
|
||||
logTest "github.com/sirupsen/logrus/hooks/test"
|
||||
"github.com/urfave/cli/v2"
|
||||
@@ -56,7 +56,7 @@ type testWalletConfig struct {
|
||||
privateKeyFile string
|
||||
skipDepositConfirm bool
|
||||
numAccounts int64
|
||||
keymanagerKind v2keymanager.Kind
|
||||
keymanagerKind keymanager.Kind
|
||||
}
|
||||
|
||||
func setupWalletCtx(
|
||||
@@ -122,11 +122,11 @@ func TestCreateOrOpenWallet(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
createDirectWallet := func(cliCtx *cli.Context) (*wallet.Wallet, error) {
|
||||
cfg, err := extractWalletCreationConfigFromCli(cliCtx, v2keymanager.Direct)
|
||||
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Direct)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -158,7 +158,7 @@ func TestCreateWallet_Direct(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
|
||||
@@ -189,7 +189,7 @@ func TestCreateWallet_Derived(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
walletPasswordFile: passwordFile,
|
||||
keymanagerKind: v2keymanager.Derived,
|
||||
keymanagerKind: keymanager.Derived,
|
||||
})
|
||||
|
||||
// We attempt to create the wallet.
|
||||
@@ -220,7 +220,7 @@ func TestCreateWallet_WalletAlreadyExists(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
walletPasswordFile: passwordFile,
|
||||
keymanagerKind: v2keymanager.Derived,
|
||||
keymanagerKind: keymanager.Derived,
|
||||
})
|
||||
|
||||
// We attempt to create the wallet.
|
||||
@@ -235,7 +235,7 @@ func TestCreateWallet_WalletAlreadyExists(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
walletPasswordFile: passwordFile,
|
||||
keymanagerKind: v2keymanager.Direct,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
})
|
||||
|
||||
// We attempt to create another wallet of different type at the same location. We expect an error.
|
||||
@@ -254,7 +254,7 @@ func TestCorrectPassphrase_Derived(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
walletPasswordFile: passwordFile,
|
||||
keymanagerKind: v2keymanager.Derived,
|
||||
keymanagerKind: keymanager.Derived,
|
||||
skipDepositConfirm: true,
|
||||
})
|
||||
|
||||
@@ -264,7 +264,7 @@ func TestCorrectPassphrase_Derived(t *testing.T) {
|
||||
|
||||
w := wallet.New(&wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
})
|
||||
|
||||
seedConfigFile, err := w.ReadEncryptedSeedFromDisk(cliCtx.Context)
|
||||
@@ -1,13 +1,13 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
@@ -24,11 +24,11 @@ func EditWalletConfigurationCli(cliCtx *cli.Context) error {
|
||||
return errors.Wrap(err, "could not open wallet")
|
||||
}
|
||||
switch w.KeymanagerKind() {
|
||||
case v2keymanager.Direct:
|
||||
case keymanager.Direct:
|
||||
return errors.New("not possible to edit direct keymanager configuration")
|
||||
case v2keymanager.Derived:
|
||||
case keymanager.Derived:
|
||||
return errors.New("derived keymanager is not yet supported")
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
enc, err := w.ReadKeymanagerConfigFromDisk(cliCtx.Context)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not read config")
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"flag"
|
||||
@@ -6,10 +6,10 @@ import (
|
||||
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
@@ -17,12 +17,12 @@ func TestEditWalletConfiguration(t *testing.T) {
|
||||
walletDir, _, _ := setupWalletAndPasswordsDir(t)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: v2keymanager.Remote,
|
||||
keymanagerKind: keymanager.Remote,
|
||||
})
|
||||
wallet, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Remote,
|
||||
KeymanagerKind: keymanager.Remote,
|
||||
WalletPassword: "Passwordz0320$",
|
||||
},
|
||||
})
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -12,11 +12,11 @@ import (
|
||||
"github.com/pkg/errors"
|
||||
ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/prompt"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/tyler-smith/go-bip39"
|
||||
"github.com/tyler-smith/go-bip39/wordlists"
|
||||
"github.com/urfave/cli/v2"
|
||||
@@ -73,7 +73,7 @@ func RecoverWalletCli(cliCtx *cli.Context) error {
|
||||
}
|
||||
log.Infof(
|
||||
"Successfully recovered HD wallet and saved configuration to disk. " +
|
||||
"Make a new validator account with ./prysm.sh validator accounts-v2 create",
|
||||
"Make a new validator account with ./prysm.sh validator accounts create",
|
||||
)
|
||||
return nil
|
||||
}
|
||||
@@ -91,7 +91,7 @@ func RecoverWallet(ctx context.Context, cfg *RecoverWalletConfig) (*wallet.Walle
|
||||
}
|
||||
w := wallet.New(&wallet.Config{
|
||||
WalletDir: cfg.WalletDir,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: cfg.WalletPassword,
|
||||
})
|
||||
keymanagerConfig, err := derived.MarshalOptionsFile(ctx, derived.DefaultKeymanagerOpts())
|
||||
@@ -132,7 +132,7 @@ func RecoverWallet(ctx context.Context, cfg *RecoverWalletConfig) (*wallet.Walle
|
||||
depositDataList[i] = depositData
|
||||
}
|
||||
log.WithField("wallet-path", w.AccountsDir()).Infof(
|
||||
"Successfully recovered HD wallet with %d accounts. Please use accounts-v2 list to view details for your accounts",
|
||||
"Successfully recovered HD wallet with %d accounts. Please use accounts list to view details for your accounts",
|
||||
cfg.NumAccounts,
|
||||
)
|
||||
return w, depositDataList, nil
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package accounts
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -12,10 +12,10 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
@@ -52,12 +52,12 @@ func createRecoverCliCtx(t *testing.T, cfg *recoverCfgStruct) *cli.Context {
|
||||
set := flag.NewFlagSet("test", 0)
|
||||
set.String(flags.WalletDirFlag.Name, cfg.walletDir, "")
|
||||
set.String(flags.WalletPasswordFileFlag.Name, cfg.passwordFilePath, "")
|
||||
set.String(flags.KeymanagerKindFlag.Name, v2keymanager.Derived.String(), "")
|
||||
set.String(flags.KeymanagerKindFlag.Name, keymanager.Derived.String(), "")
|
||||
set.String(flags.MnemonicFileFlag.Name, cfg.mnemonicFilePath, "")
|
||||
set.Int64(flags.NumAccountsFlag.Name, cfg.numAccounts, "")
|
||||
assert.NoError(t, set.Set(flags.WalletDirFlag.Name, cfg.walletDir))
|
||||
assert.NoError(t, set.Set(flags.WalletPasswordFileFlag.Name, cfg.passwordFilePath))
|
||||
assert.NoError(t, set.Set(flags.KeymanagerKindFlag.Name, v2keymanager.Derived.String()))
|
||||
assert.NoError(t, set.Set(flags.KeymanagerKindFlag.Name, keymanager.Derived.String()))
|
||||
assert.NoError(t, set.Set(flags.MnemonicFileFlag.Name, cfg.mnemonicFilePath))
|
||||
assert.NoError(t, set.Set(flags.NumAccountsFlag.Name, strconv.Itoa(int(cfg.numAccounts))))
|
||||
return cli.NewContext(&app, set, nil)
|
||||
@@ -33,10 +33,10 @@ go_library(
|
||||
"//shared/params:go_default_library",
|
||||
"//shared/slotutil:go_default_library",
|
||||
"//shared/timeutils:go_default_library",
|
||||
"//validator/accounts/v2/wallet:go_default_library",
|
||||
"//validator/accounts/wallet:go_default_library",
|
||||
"//validator/db:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager/v2/direct:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"//validator/slashing-protection:go_default_library",
|
||||
"@com_github_dgraph_io_ristretto//:go_default_library",
|
||||
"@com_github_gogo_protobuf//proto:go_default_library",
|
||||
|
||||
@@ -118,7 +118,7 @@ func (v *validator) signSlot(ctx context.Context, pubKey [48]byte, slot uint64)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sig, err = v.keyManagerV2.Sign(ctx, &validatorpb.SignRequest{
|
||||
sig, err = v.keyManager.Sign(ctx, &validatorpb.SignRequest{
|
||||
PublicKey: pubKey[:],
|
||||
SigningRoot: root[:],
|
||||
SignatureDomain: domain.SignatureDomain,
|
||||
@@ -159,7 +159,7 @@ func (v *validator) aggregateAndProofSig(ctx context.Context, pubKey [48]byte, a
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sig, err = v.keyManagerV2.Sign(ctx, &validatorpb.SignRequest{
|
||||
sig, err = v.keyManager.Sign(ctx, &validatorpb.SignRequest{
|
||||
PublicKey: pubKey[:],
|
||||
SigningRoot: root[:],
|
||||
SignatureDomain: d.SignatureDomain,
|
||||
|
||||
@@ -173,7 +173,7 @@ func (v *validator) signAtt(ctx context.Context, pubKey [48]byte, data *ethpb.At
|
||||
return nil, err
|
||||
}
|
||||
|
||||
sig, err := v.keyManagerV2.Sign(ctx, &validatorpb.SignRequest{
|
||||
sig, err := v.keyManager.Sign(ctx, &validatorpb.SignRequest{
|
||||
PublicKey: pubKey[:],
|
||||
SigningRoot: root[:],
|
||||
SignatureDomain: domain.SignatureDomain,
|
||||
|
||||
@@ -145,7 +145,7 @@ func TestAttestToBlockHead_AttestsCorrectly(t *testing.T) {
|
||||
root, err := helpers.ComputeSigningRoot(expectedAttestation.Data, make([]byte, 32))
|
||||
require.NoError(t, err)
|
||||
|
||||
sig, err := validator.keyManagerV2.Sign(context.Background(), &validatorpb.SignRequest{
|
||||
sig, err := validator.keyManager.Sign(context.Background(), &validatorpb.SignRequest{
|
||||
PublicKey: validatorKey.PublicKey().Marshal(),
|
||||
SigningRoot: root[:],
|
||||
})
|
||||
|
||||
@@ -132,7 +132,7 @@ func (v *validator) LogValidatorGainsAndLosses(ctx context.Context, slot uint64)
|
||||
|
||||
var pks [][48]byte
|
||||
var err error
|
||||
pks, err = v.keyManagerV2.FetchValidatingPublicKeys(ctx)
|
||||
pks, err = v.keyManager.FetchValidatingPublicKeys(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -177,7 +177,7 @@ func (v *validator) signRandaoReveal(ctx context.Context, pubKey [48]byte, epoch
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
randaoReveal, err = v.keyManagerV2.Sign(ctx, &validatorpb.SignRequest{
|
||||
randaoReveal, err = v.keyManager.Sign(ctx, &validatorpb.SignRequest{
|
||||
PublicKey: pubKey[:],
|
||||
SigningRoot: root[:],
|
||||
SignatureDomain: domain.SignatureDomain,
|
||||
@@ -204,7 +204,7 @@ func (v *validator) signBlock(ctx context.Context, pubKey [48]byte, epoch uint64
|
||||
if err != nil {
|
||||
return nil, nil, errors.Wrap(err, signingRootErr)
|
||||
}
|
||||
sig, err = v.keyManagerV2.Sign(ctx, &validatorpb.SignRequest{
|
||||
sig, err = v.keyManager.Sign(ctx, &validatorpb.SignRequest{
|
||||
PublicKey: pubKey[:],
|
||||
SigningRoot: blockRoot[:],
|
||||
SignatureDomain: domain.SignatureDomain,
|
||||
|
||||
@@ -79,7 +79,7 @@ func setup(t *testing.T) (*validator, *mocks, bls.SecretKey, func()) {
|
||||
}
|
||||
validator := &validator{
|
||||
db: valDB,
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
validatorClient: m.validatorClient,
|
||||
graffiti: []byte{},
|
||||
attLogs: make(map[[32]byte]*attSubmitted),
|
||||
@@ -616,7 +616,7 @@ func TestSignBlock(t *testing.T) {
|
||||
pubKey: secretKey,
|
||||
},
|
||||
}
|
||||
validator.keyManagerV2 = km
|
||||
validator.keyManager = km
|
||||
sig, domain, err := validator.signBlock(ctx, pubKey, 0, blk.Block)
|
||||
require.NoError(t, err, "%x,%x,%v", sig, domain.SignatureDomain, err)
|
||||
require.Equal(t, "a049e1dc723e5a8b5bd14f292973572dffd53785ddb337"+
|
||||
|
||||
@@ -19,10 +19,10 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/event"
|
||||
"github.com/prysmaticlabs/prysm/shared/grpcutils"
|
||||
"github.com/prysmaticlabs/prysm/shared/params"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/db"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
slashingprotection "github.com/prysmaticlabs/prysm/validator/slashing-protection"
|
||||
"github.com/sirupsen/logrus"
|
||||
"go.opencensus.io/plugin/ocgrpc"
|
||||
@@ -64,7 +64,7 @@ type ValidatorService struct {
|
||||
validator Validator
|
||||
protector slashingprotection.Protector
|
||||
ctx context.Context
|
||||
keyManagerV2 v2.IKeymanager
|
||||
keyManager keymanager.IKeymanager
|
||||
grpcHeaders []string
|
||||
graffiti []byte
|
||||
}
|
||||
@@ -82,7 +82,7 @@ type Config struct {
|
||||
Endpoint string
|
||||
Validator Validator
|
||||
ValDB db.Database
|
||||
KeyManagerV2 v2.IKeymanager
|
||||
KeyManager keymanager.IKeymanager
|
||||
GraffitiFlag string
|
||||
CertFlag string
|
||||
DataDir string
|
||||
@@ -100,7 +100,7 @@ func NewValidatorService(ctx context.Context, cfg *Config) (*ValidatorService, e
|
||||
withCert: cfg.CertFlag,
|
||||
dataDir: cfg.DataDir,
|
||||
graffiti: []byte(cfg.GraffitiFlag),
|
||||
keyManagerV2: cfg.KeyManagerV2,
|
||||
keyManager: cfg.KeyManager,
|
||||
logValidatorBalances: cfg.LogValidatorBalances,
|
||||
emitAccountMetrics: cfg.EmitAccountMetrics,
|
||||
maxCallRecvMsgSize: cfg.GrpcMaxCallRecvMsgSizeFlag,
|
||||
@@ -164,7 +164,7 @@ func (v *ValidatorService) Start() {
|
||||
validatorClient: ethpb.NewBeaconNodeValidatorClient(v.conn),
|
||||
beaconClient: ethpb.NewBeaconChainClient(v.conn),
|
||||
node: ethpb.NewNodeClient(v.conn),
|
||||
keyManagerV2: v.keyManagerV2,
|
||||
keyManager: v.keyManager,
|
||||
graffiti: v.graffiti,
|
||||
logValidatorBalances: v.logValidatorBalances,
|
||||
emitAccountMetrics: v.emitAccountMetrics,
|
||||
@@ -209,7 +209,7 @@ func (v *ValidatorService) recheckKeys(ctx context.Context) {
|
||||
cleanup := sub.Unsubscribe
|
||||
defer cleanup()
|
||||
w := <-initializedChan
|
||||
keyManagerV2, err := w.InitializeKeymanager(
|
||||
keyManager, err := w.InitializeKeymanager(
|
||||
ctx, true, /* skipMnemonicConfirm */
|
||||
)
|
||||
if err != nil {
|
||||
@@ -217,16 +217,16 @@ func (v *ValidatorService) recheckKeys(ctx context.Context) {
|
||||
cleanup()
|
||||
log.Fatalf("Could not read keymanager for wallet: %v", err)
|
||||
}
|
||||
v.keyManagerV2 = keyManagerV2
|
||||
v.keyManager = keyManager
|
||||
}
|
||||
validatingKeys, err = v.keyManagerV2.FetchValidatingPublicKeys(ctx)
|
||||
validatingKeys, err = v.keyManager.FetchValidatingPublicKeys(ctx)
|
||||
if err != nil {
|
||||
log.WithError(err).Debug("Could not fetch validating keys")
|
||||
}
|
||||
if err := v.db.UpdatePublicKeysBuckets(validatingKeys); err != nil {
|
||||
log.WithError(err).Debug("Could not update public keys buckets")
|
||||
}
|
||||
go recheckValidatingKeysBucket(ctx, v.db, v.keyManagerV2)
|
||||
go recheckValidatingKeysBucket(ctx, v.db, v.keyManager)
|
||||
for _, key := range validatingKeys {
|
||||
log.WithField(
|
||||
"publicKey", fmt.Sprintf("%#x", bytesutil.Trunc(key[:])),
|
||||
@@ -321,7 +321,7 @@ func (v *ValidatorService) GenesisInfo(ctx context.Context) (*ethpb.Genesis, err
|
||||
|
||||
// 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 db.Database, km v2.IKeymanager) {
|
||||
func recheckValidatingKeysBucket(ctx context.Context, valDB db.Database, km keymanager.IKeymanager) {
|
||||
directKeymanager, ok := km.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return
|
||||
|
||||
@@ -27,9 +27,9 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/hashutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/params"
|
||||
"github.com/prysmaticlabs/prysm/shared/slotutil"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
vdb "github.com/prysmaticlabs/prysm/validator/db"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
slashingprotection "github.com/prysmaticlabs/prysm/validator/slashing-protection"
|
||||
"github.com/sirupsen/logrus"
|
||||
"go.opencensus.io/trace"
|
||||
@@ -69,7 +69,7 @@ type validator struct {
|
||||
startBalances map[[48]byte]uint64
|
||||
attLogs map[[32]byte]*attSubmitted
|
||||
node ethpb.NodeClient
|
||||
keyManagerV2 v2keymanager.IKeymanager
|
||||
keyManager keymanager.IKeymanager
|
||||
beaconClient ethpb.BeaconChainClient
|
||||
validatorClient ethpb.BeaconNodeValidatorClient
|
||||
protector slashingprotection.Protector
|
||||
@@ -96,13 +96,13 @@ func (v *validator) WaitForWalletInitialization(ctx context.Context) error {
|
||||
for {
|
||||
select {
|
||||
case w := <-walletChan:
|
||||
keyManagerV2, err := w.InitializeKeymanager(
|
||||
keyManager, err := w.InitializeKeymanager(
|
||||
ctx, true, /* skipMnemonicConfirm */
|
||||
)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not read keymanager for wallet")
|
||||
}
|
||||
v.keyManagerV2 = keyManagerV2
|
||||
v.keyManager = keyManager
|
||||
return nil
|
||||
case <-ctx.Done():
|
||||
return errors.New("context canceled")
|
||||
@@ -241,7 +241,7 @@ func (v *validator) WaitForActivation(ctx context.Context) error {
|
||||
ctx, span := trace.StartSpan(ctx, "validator.WaitForActivation")
|
||||
defer span.End()
|
||||
|
||||
validatingKeys, err := v.keyManagerV2.FetchValidatingPublicKeys(ctx)
|
||||
validatingKeys, err := v.keyManager.FetchValidatingPublicKeys(ctx)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not fetch validating keys")
|
||||
}
|
||||
@@ -381,7 +381,7 @@ func (v *validator) UpdateDuties(ctx context.Context, slot uint64) error {
|
||||
ctx, span := trace.StartSpan(ctx, "validator.UpdateAssignments")
|
||||
defer span.End()
|
||||
|
||||
validatingKeys, err := v.keyManagerV2.FetchValidatingPublicKeys(ctx)
|
||||
validatingKeys, err := v.keyManager.FetchValidatingPublicKeys(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ func TestWaitForChainStart_StreamSetupFails(t *testing.T) {
|
||||
}
|
||||
v := validator{
|
||||
validatorClient: client,
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
}
|
||||
clientStream := mock.NewMockBeaconNodeValidator_WaitForChainStartClient(ctrl)
|
||||
client.EXPECT().WaitForChainStart(
|
||||
@@ -281,7 +281,7 @@ func TestWaitActivation_ContextCanceled(t *testing.T) {
|
||||
}
|
||||
v := validator{
|
||||
validatorClient: client,
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
}
|
||||
clientStream := mock.NewMockBeaconNodeValidator_WaitForActivationClient(ctrl)
|
||||
|
||||
@@ -314,7 +314,7 @@ func TestWaitActivation_StreamSetupFails(t *testing.T) {
|
||||
}
|
||||
v := validator{
|
||||
validatorClient: client,
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
}
|
||||
clientStream := mock.NewMockBeaconNodeValidator_WaitForActivationClient(ctrl)
|
||||
client.EXPECT().WaitForActivation(
|
||||
@@ -343,7 +343,7 @@ func TestWaitActivation_ReceiveErrorFromStream(t *testing.T) {
|
||||
}
|
||||
v := validator{
|
||||
validatorClient: client,
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
}
|
||||
clientStream := mock.NewMockBeaconNodeValidator_WaitForActivationClient(ctrl)
|
||||
client.EXPECT().WaitForActivation(
|
||||
@@ -376,7 +376,7 @@ func TestWaitActivation_LogsActivationEpochOK(t *testing.T) {
|
||||
}
|
||||
v := validator{
|
||||
validatorClient: client,
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
genesisTime: 1,
|
||||
}
|
||||
resp := generateMockStatusResponse([][]byte{pubKey[:]})
|
||||
@@ -443,7 +443,7 @@ func TestWaitMultipleActivation_LogsActivationEpochOK(t *testing.T) {
|
||||
}
|
||||
v := validator{
|
||||
validatorClient: client,
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
genesisTime: 1,
|
||||
}
|
||||
|
||||
@@ -479,7 +479,7 @@ func TestWaitActivation_NotAllValidatorsActivatedOK(t *testing.T) {
|
||||
}
|
||||
v := validator{
|
||||
validatorClient: client,
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
genesisTime: 1,
|
||||
}
|
||||
resp := generateMockStatusResponse([][]byte{pubKey[:]})
|
||||
@@ -600,7 +600,7 @@ func TestUpdateDuties_ReturnsError(t *testing.T) {
|
||||
}
|
||||
v := validator{
|
||||
validatorClient: client,
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
duties: ðpb.DutiesResponse{
|
||||
Duties: []*ethpb.DutiesResponse_Duty{
|
||||
{
|
||||
@@ -648,7 +648,7 @@ func TestUpdateDuties_OK(t *testing.T) {
|
||||
},
|
||||
}
|
||||
v := validator{
|
||||
keyManagerV2: km,
|
||||
keyManager: km,
|
||||
validatorClient: client,
|
||||
}
|
||||
client.EXPECT().GetDuties(
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
// WalletDefaultDirName for accounts-v2.
|
||||
// WalletDefaultDirName for accounts.
|
||||
WalletDefaultDirName = "prysm-wallet-v2"
|
||||
)
|
||||
|
||||
@@ -123,7 +123,7 @@ var (
|
||||
Usage: "Port used to listening and respond metrics for prometheus.",
|
||||
Value: 8081,
|
||||
}
|
||||
// WalletDirFlag defines the path to a wallet directory for Prysm accounts-v2.
|
||||
// WalletDirFlag defines the path to a wallet directory for Prysm accounts.
|
||||
WalletDirFlag = &cli.StringFlag{
|
||||
Name: "wallet-dir",
|
||||
Usage: "Path to a wallet directory on-disk for Prysm validator accounts",
|
||||
@@ -149,16 +149,16 @@ var (
|
||||
Name: "mnemonic-file",
|
||||
Usage: "File to retrieve mnemonic for non-interactively passing a mnemonic phrase into wallet recover.",
|
||||
}
|
||||
// ShowDepositDataFlag for accounts-v2.
|
||||
// ShowDepositDataFlag for accounts.
|
||||
ShowDepositDataFlag = &cli.BoolFlag{
|
||||
Name: "show-deposit-data",
|
||||
Usage: "Display raw eth1 tx deposit data for validator accounts-v2",
|
||||
Usage: "Display raw eth1 tx deposit data for validator accounts",
|
||||
Value: false,
|
||||
}
|
||||
// ShowPrivateKeysFlag for accounts-v2.
|
||||
// ShowPrivateKeysFlag for accounts.
|
||||
ShowPrivateKeysFlag = &cli.BoolFlag{
|
||||
Name: "show-private-keys",
|
||||
Usage: "Display the private keys for validator accounts-v2",
|
||||
Usage: "Display the private keys for validator accounts",
|
||||
Value: false,
|
||||
}
|
||||
// NumAccountsFlag defines the amount of accounts to generate for derived wallets.
|
||||
|
||||
@@ -4,7 +4,7 @@ load("@prysm//tools/go:def.bzl", "go_library")
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["types.go"],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/v2",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager",
|
||||
visibility = [
|
||||
"//validator:__pkg__",
|
||||
"//validator:__subpackages__",
|
||||
@@ -21,8 +21,8 @@ go_test(
|
||||
srcs = ["types_test.go"],
|
||||
embed = [":go_default_library"],
|
||||
deps = [
|
||||
"//validator/keymanager/v2/derived:go_default_library",
|
||||
"//validator/keymanager/v2/direct:go_default_library",
|
||||
"//validator/keymanager/v2/remote:go_default_library",
|
||||
"//validator/keymanager/derived:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"//validator/keymanager/remote:go_default_library",
|
||||
],
|
||||
)
|
||||
@@ -8,7 +8,7 @@ go_library(
|
||||
"derived.go",
|
||||
"mnemonic.go",
|
||||
],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/derived",
|
||||
visibility = [
|
||||
"//validator:__pkg__",
|
||||
"//validator:__subpackages__",
|
||||
@@ -24,9 +24,9 @@ go_library(
|
||||
"//shared/petnames:go_default_library",
|
||||
"//shared/promptutil:go_default_library",
|
||||
"//shared/rand:go_default_library",
|
||||
"//validator/accounts/v2/iface:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager/v2/derived/v1derivation:go_default_library",
|
||||
"//validator/accounts/iface:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/derived/v1derivation:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
"@com_github_pkg_errors//:go_default_library",
|
||||
"@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library",
|
||||
@@ -53,7 +53,7 @@ go_test(
|
||||
"//shared/rand:go_default_library",
|
||||
"//shared/testutil/assert:go_default_library",
|
||||
"//shared/testutil/require:go_default_library",
|
||||
"//validator/accounts/v2/testing:go_default_library",
|
||||
"//validator/accounts/testing:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
"@com_github_sirupsen_logrus//hooks/test:go_default_library",
|
||||
"@com_github_tyler_smith_go_bip39//:go_default_library",
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"github.com/pkg/errors"
|
||||
"github.com/prysmaticlabs/prysm/shared/bls"
|
||||
"github.com/prysmaticlabs/prysm/shared/bytesutil"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
@@ -17,9 +17,9 @@ import (
|
||||
// and returns their respective EIP-2335 keystores.
|
||||
func (dr *Keymanager) ExtractKeystores(
|
||||
_ context.Context, publicKeys []bls.PublicKey, password string,
|
||||
) ([]*v2keymanager.Keystore, error) {
|
||||
) ([]*keymanager.Keystore, error) {
|
||||
encryptor := keystorev4.New()
|
||||
keystores := make([]*v2keymanager.Keystore, len(publicKeys))
|
||||
keystores := make([]*keymanager.Keystore, len(publicKeys))
|
||||
lock.RLock()
|
||||
defer lock.RUnlock()
|
||||
for i, pk := range publicKeys {
|
||||
@@ -43,7 +43,7 @@ func (dr *Keymanager) ExtractKeystores(
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
keystores[i] = &v2keymanager.Keystore{
|
||||
keystores[i] = &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Pubkey: fmt.Sprintf("%x", pubKeyBytes),
|
||||
@@ -22,8 +22,8 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/params"
|
||||
"github.com/prysmaticlabs/prysm/shared/petnames"
|
||||
"github.com/prysmaticlabs/prysm/shared/rand"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/iface"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived/v1derivation"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/iface"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived/v1derivation"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/tyler-smith/go-bip39"
|
||||
types "github.com/wealdtech/go-eth2-types/v2"
|
||||
@@ -32,7 +32,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
log = logrus.WithField("prefix", "derived-keymanager-v2")
|
||||
log = logrus.WithField("prefix", "derived-keymanager")
|
||||
lock sync.RWMutex
|
||||
orderedPublicKeys = make([][48]byte, 0)
|
||||
secretKeysCache = make(map[[48]byte]bls.SecretKey)
|
||||
@@ -462,16 +462,6 @@ func (dr *Keymanager) rewriteSeedConfig(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Append the public and the secret key for the provided secret key to their respective caches
|
||||
func (dr *Keymanager) appendKeysToCaches(secretKey bls.SecretKey) error {
|
||||
publicKey := bytesutil.ToBytes48(secretKey.PublicKey().Marshal())
|
||||
lock.Lock()
|
||||
orderedPublicKeys = append(orderedPublicKeys, publicKey)
|
||||
secretKeysCache[publicKey] = secretKey
|
||||
lock.Unlock()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Initialize public and secret key caches used to speed up the functions
|
||||
// FetchValidatingPublicKeys and Sign as part of the Keymanager instance initialization
|
||||
func (dr *Keymanager) initializeKeysCachesFromSeed() error {
|
||||
@@ -14,7 +14,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/rand"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
mock "github.com/prysmaticlabs/prysm/validator/accounts/v2/testing"
|
||||
mock "github.com/prysmaticlabs/prysm/validator/accounts/testing"
|
||||
logTest "github.com/sirupsen/logrus/hooks/test"
|
||||
"github.com/tyler-smith/go-bip39"
|
||||
util "github.com/wealdtech/go-eth2-util"
|
||||
@@ -3,7 +3,7 @@ load("@prysm//tools/go:def.bzl", "go_library")
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["util.go"],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived/v1derivation",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/derived/v1derivation",
|
||||
visibility = [
|
||||
"//validator:__pkg__",
|
||||
"//validator:__subpackages__",
|
||||
@@ -104,7 +104,7 @@ func DeriveChildSK(parentSK *big.Int, index uint32) (*big.Int, error) {
|
||||
}
|
||||
|
||||
// ikmToLamportSK creates a Lamport secret key.
|
||||
func ikmToLamportSK(ikm []byte, salt []byte) ([255][32]byte, error) {
|
||||
func ikmToLamportSK(ikm, salt []byte) ([255][32]byte, error) {
|
||||
prk := hkdf.Extract(sha256.New, ikm, salt)
|
||||
okm := hkdf.Expand(sha256.New, prk, nil)
|
||||
var lamportSK [255][32]byte
|
||||
@@ -10,7 +10,7 @@ go_library(
|
||||
"import.go",
|
||||
"refresh.go",
|
||||
],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/direct",
|
||||
visibility = [
|
||||
"//validator:__pkg__",
|
||||
"//validator:__subpackages__",
|
||||
@@ -27,8 +27,8 @@ go_library(
|
||||
"//shared/interop:go_default_library",
|
||||
"//shared/params:go_default_library",
|
||||
"//shared/petnames:go_default_library",
|
||||
"//validator/accounts/v2/iface:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/accounts/iface:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"@com_github_fsnotify_fsnotify//:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
"@com_github_k0kubun_go_ansi//:go_default_library",
|
||||
@@ -59,8 +59,8 @@ go_test(
|
||||
"//shared/petnames:go_default_library",
|
||||
"//shared/testutil/assert:go_default_library",
|
||||
"//shared/testutil/require:go_default_library",
|
||||
"//validator/accounts/v2/testing:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/accounts/testing:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
"@com_github_sirupsen_logrus//hooks/test:go_default_library",
|
||||
"@com_github_wealdtech_go_eth2_wallet_encryptor_keystorev4//:go_default_library",
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"github.com/pkg/errors"
|
||||
"github.com/prysmaticlabs/prysm/shared/bls"
|
||||
"github.com/prysmaticlabs/prysm/shared/bytesutil"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
@@ -17,11 +17,11 @@ import (
|
||||
// and returns their respective EIP-2335 keystores.
|
||||
func (dr *Keymanager) ExtractKeystores(
|
||||
_ context.Context, publicKeys []bls.PublicKey, password string,
|
||||
) ([]*v2keymanager.Keystore, error) {
|
||||
) ([]*keymanager.Keystore, error) {
|
||||
lock.Lock()
|
||||
defer lock.Unlock()
|
||||
encryptor := keystorev4.New()
|
||||
keystores := make([]*v2keymanager.Keystore, len(publicKeys))
|
||||
keystores := make([]*keymanager.Keystore, len(publicKeys))
|
||||
for i, pk := range publicKeys {
|
||||
pubKeyBytes := pk.Marshal()
|
||||
secretKey, ok := secretKeysCache[bytesutil.ToBytes48(pubKeyBytes)]
|
||||
@@ -43,7 +43,7 @@ func (dr *Keymanager) ExtractKeystores(
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
keystores[i] = &v2keymanager.Keystore{
|
||||
keystores[i] = &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Pubkey: fmt.Sprintf("%x", pubKeyBytes),
|
||||
@@ -23,15 +23,15 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/interop"
|
||||
"github.com/prysmaticlabs/prysm/shared/params"
|
||||
"github.com/prysmaticlabs/prysm/shared/petnames"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/iface"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/iface"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/sirupsen/logrus"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
"go.opencensus.io/trace"
|
||||
)
|
||||
|
||||
var (
|
||||
log = logrus.WithField("prefix", "direct-keymanager-v2")
|
||||
log = logrus.WithField("prefix", "direct-keymanager")
|
||||
lock sync.RWMutex
|
||||
orderedPublicKeys = make([][48]byte, 0)
|
||||
secretKeysCache = make(map[[48]byte]bls.SecretKey)
|
||||
@@ -422,7 +422,7 @@ func (dr *Keymanager) initializeAccountKeystore(ctx context.Context) error {
|
||||
} else if err != nil {
|
||||
return errors.Wrapf(err, "could not read keystore file for accounts %s", accountsKeystoreFileName)
|
||||
}
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
if err := json.Unmarshal(encoded, keystoreFile); err != nil {
|
||||
return errors.Wrapf(err, "could not decode keystore file for accounts %s", accountsKeystoreFileName)
|
||||
}
|
||||
@@ -459,7 +459,7 @@ func (dr *Keymanager) initializeAccountKeystore(ctx context.Context) error {
|
||||
func (dr *Keymanager) createAccountsKeystore(
|
||||
_ context.Context,
|
||||
privateKeys, publicKeys [][]byte,
|
||||
) (*v2keymanager.Keystore, error) {
|
||||
) (*keymanager.Keystore, error) {
|
||||
encryptor := keystorev4.New()
|
||||
id, err := uuid.NewRandom()
|
||||
if err != nil {
|
||||
@@ -508,7 +508,7 @@ func (dr *Keymanager) createAccountsKeystore(
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not encrypt accounts")
|
||||
}
|
||||
return &v2keymanager.Keystore{
|
||||
return &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Version: encryptor.Version(),
|
||||
@@ -13,8 +13,8 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/petnames"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
mock "github.com/prysmaticlabs/prysm/validator/accounts/v2/testing"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
mock "github.com/prysmaticlabs/prysm/validator/accounts/testing"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
logTest "github.com/sirupsen/logrus/hooks/test"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
@@ -43,7 +43,7 @@ func TestDirectKeymanager_CreateAccount(t *testing.T) {
|
||||
}
|
||||
}
|
||||
require.NotNil(t, encodedKeystore, "could not find keystore file")
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
require.NoError(t, json.Unmarshal(encodedKeystore, keystoreFile))
|
||||
|
||||
// We extract the accounts from the keystore.
|
||||
@@ -97,7 +97,7 @@ func TestDirectKeymanager_RemoveAccounts(t *testing.T) {
|
||||
}
|
||||
}
|
||||
require.NotNil(t, encodedKeystore, "could not find keystore file")
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
require.NoError(t, json.Unmarshal(encodedKeystore, keystoreFile))
|
||||
|
||||
// We extract the accounts from the keystore.
|
||||
@@ -204,7 +204,7 @@ func TestDirectKeymanager_Sign(t *testing.T) {
|
||||
encodedKeystore = v
|
||||
}
|
||||
}
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
require.NoError(t, json.Unmarshal(encodedKeystore, keystoreFile))
|
||||
|
||||
// We extract the validator signing private key from the keystore
|
||||
@@ -287,7 +287,7 @@ func TestDirectKeymanager_RefreshWalletPassword(t *testing.T) {
|
||||
encodedKeystore = v
|
||||
}
|
||||
}
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
require.NoError(t, json.Unmarshal(encodedKeystore, keystoreFile))
|
||||
|
||||
// We attempt to decrypt with the wallet password and expect no error.
|
||||
@@ -308,7 +308,7 @@ func TestDirectKeymanager_RefreshWalletPassword(t *testing.T) {
|
||||
encodedKeystore = v
|
||||
}
|
||||
}
|
||||
keystoreFile = &v2keymanager.Keystore{}
|
||||
keystoreFile = &keymanager.Keystore{}
|
||||
require.NoError(t, json.Unmarshal(encodedKeystore, keystoreFile))
|
||||
_, err = decryptor.Decrypt(keystoreFile.Crypto, dr.wallet.Password())
|
||||
require.NoError(t, err)
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"github.com/k0kubun/go-ansi"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/prysmaticlabs/prysm/shared/bls"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/schollz/progressbar/v3"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
@@ -18,7 +18,7 @@ import (
|
||||
// ImportKeystores into the direct keymanager from an external source.
|
||||
func (dr *Keymanager) ImportKeystores(
|
||||
ctx context.Context,
|
||||
keystores []*v2keymanager.Keystore,
|
||||
keystores []*keymanager.Keystore,
|
||||
importsPassword string,
|
||||
) error {
|
||||
decryptor := keystorev4.New()
|
||||
@@ -63,7 +63,7 @@ func (dr *Keymanager) ImportKeystores(
|
||||
// by decrypting using a specified password. If the password fails,
|
||||
// it prompts the user for the correct password until it confirms.
|
||||
func (dr *Keymanager) attemptDecryptKeystore(
|
||||
enc *keystorev4.Encryptor, keystore *v2keymanager.Keystore, password string,
|
||||
enc *keystorev4.Encryptor, keystore *keymanager.Keystore, password string,
|
||||
) ([]byte, []byte, string, error) {
|
||||
// Attempt to decrypt the keystore with the specifies password.
|
||||
var privKeyBytes []byte
|
||||
@@ -11,12 +11,12 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/bls"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
mock "github.com/prysmaticlabs/prysm/validator/accounts/v2/testing"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
mock "github.com/prysmaticlabs/prysm/validator/accounts/testing"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
func createRandomKeystore(t testing.TB, password string) *v2keymanager.Keystore {
|
||||
func createRandomKeystore(t testing.TB, password string) *keymanager.Keystore {
|
||||
encryptor := keystorev4.New()
|
||||
id, err := uuid.NewRandom()
|
||||
require.NoError(t, err)
|
||||
@@ -24,7 +24,7 @@ func createRandomKeystore(t testing.TB, password string) *v2keymanager.Keystore
|
||||
pubKey := validatingKey.PublicKey().Marshal()
|
||||
cryptoFields, err := encryptor.Encrypt(validatingKey.Marshal(), password)
|
||||
require.NoError(t, err)
|
||||
return &v2keymanager.Keystore{
|
||||
return &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
Pubkey: fmt.Sprintf("%x", pubKey),
|
||||
ID: id.String(),
|
||||
@@ -102,7 +102,7 @@ func TestDirectKeymanager_ImportKeystores(t *testing.T) {
|
||||
|
||||
// Create a duplicate keystore and attempt to import it.
|
||||
numAccounts := 5
|
||||
keystores := make([]*v2keymanager.Keystore, numAccounts+1)
|
||||
keystores := make([]*keymanager.Keystore, numAccounts+1)
|
||||
for i := 1; i < numAccounts+1; i++ {
|
||||
keystores[i] = createRandomKeystore(t, password)
|
||||
}
|
||||
@@ -129,7 +129,7 @@ func TestDirectKeymanager_ImportKeystores(t *testing.T) {
|
||||
}
|
||||
}
|
||||
require.NotNil(t, encodedKeystore, "could not find keystore file")
|
||||
keystoreFile := &v2keymanager.Keystore{}
|
||||
keystoreFile := &keymanager.Keystore{}
|
||||
require.NoError(t, json.Unmarshal(encodedKeystore, keystoreFile))
|
||||
|
||||
// We decrypt the crypto fields of the accounts keystore.
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/bls"
|
||||
"github.com/prysmaticlabs/prysm/shared/bytesutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/fileutil"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
@@ -63,7 +63,7 @@ func (dr *Keymanager) listenForAccountChanges(ctx context.Context) {
|
||||
log.WithError(err).Errorf("Could not read file at path: %s", ev.Name)
|
||||
return
|
||||
}
|
||||
accountsKeystore := &v2keymanager.Keystore{}
|
||||
accountsKeystore := &keymanager.Keystore{}
|
||||
if err := json.Unmarshal(fileBytes, accountsKeystore); err != nil {
|
||||
log.WithError(
|
||||
err,
|
||||
@@ -94,7 +94,7 @@ func (dr *Keymanager) listenForAccountChanges(ctx context.Context) {
|
||||
|
||||
// Replaces the accounts store struct in the direct keymanager with
|
||||
// the contents of a keystore file by decrypting it with the accounts password.
|
||||
func (dr *Keymanager) reloadAccountsFromKeystore(keystore *v2keymanager.Keystore) error {
|
||||
func (dr *Keymanager) reloadAccountsFromKeystore(keystore *keymanager.Keystore) error {
|
||||
decryptor := keystorev4.New()
|
||||
encodedAccounts, err := decryptor.Decrypt(keystore.Crypto, dr.wallet.Password())
|
||||
if err != nil {
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/event"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
mock "github.com/prysmaticlabs/prysm/validator/accounts/v2/testing"
|
||||
mock "github.com/prysmaticlabs/prysm/validator/accounts/testing"
|
||||
)
|
||||
|
||||
func TestDirectKeymanager_reloadAccountsFromKeystore(t *testing.T) {
|
||||
@@ -7,7 +7,7 @@ go_library(
|
||||
"doc.go",
|
||||
"remote.go",
|
||||
],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote",
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/remote",
|
||||
visibility = [
|
||||
"//validator:__pkg__",
|
||||
"//validator:__subpackages__",
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
log = logrus.WithField("prefix", "remote-keymanager-v2")
|
||||
log = logrus.WithField("prefix", "remote-keymanager")
|
||||
// ErrSigningFailed defines a failure from the remote server
|
||||
// when performing a signing operation.
|
||||
ErrSigningFailed = errors.New("signing failed in the remote server")
|
||||
@@ -1,4 +1,4 @@
|
||||
package v2
|
||||
package keymanager
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/bls"
|
||||
)
|
||||
|
||||
// IKeymanager defines a general keymanager-v2 interface for Prysm wallets.
|
||||
// IKeymanager defines a general keymanager interface for Prysm wallets.
|
||||
type IKeymanager interface {
|
||||
// FetchValidatingKeys fetches the list of public keys that should be used to validate with.
|
||||
FetchValidatingPublicKeys(ctx context.Context) ([][48]byte, error)
|
||||
14
validator/keymanager/types_test.go
Normal file
14
validator/keymanager/types_test.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package keymanager_test
|
||||
|
||||
import (
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
)
|
||||
|
||||
var (
|
||||
_ = keymanager.IKeymanager(&direct.Keymanager{})
|
||||
_ = keymanager.IKeymanager(&derived.Keymanager{})
|
||||
_ = keymanager.IKeymanager(&remote.Keymanager{})
|
||||
)
|
||||
@@ -1,14 +0,0 @@
|
||||
package v2_test
|
||||
|
||||
import (
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/remote"
|
||||
)
|
||||
|
||||
var (
|
||||
_ = v2keymanager.IKeymanager(&direct.Keymanager{})
|
||||
_ = v2keymanager.IKeymanager(&derived.Keymanager{})
|
||||
_ = v2keymanager.IKeymanager(&remote.Keymanager{})
|
||||
)
|
||||
@@ -19,7 +19,7 @@ import (
|
||||
_ "github.com/prysmaticlabs/prysm/shared/maxprocs"
|
||||
"github.com/prysmaticlabs/prysm/shared/tos"
|
||||
"github.com/prysmaticlabs/prysm/shared/version"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/accounts/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"github.com/prysmaticlabs/prysm/validator/node"
|
||||
"github.com/sirupsen/logrus"
|
||||
@@ -105,8 +105,8 @@ func main() {
|
||||
app.Version = version.GetVersion()
|
||||
app.Action = startNode
|
||||
app.Commands = []*cli.Command{
|
||||
v2.WalletCommands,
|
||||
v2.AccountCommands,
|
||||
accounts.WalletCommands,
|
||||
accounts.AccountCommands,
|
||||
}
|
||||
|
||||
app.Flags = appFlags
|
||||
|
||||
@@ -10,10 +10,10 @@ go_test(
|
||||
"//shared/testutil:go_default_library",
|
||||
"//shared/testutil/assert:go_default_library",
|
||||
"//shared/testutil/require:go_default_library",
|
||||
"//validator/accounts/v2:go_default_library",
|
||||
"//validator/accounts/v2/wallet:go_default_library",
|
||||
"//validator/accounts:go_default_library",
|
||||
"//validator/accounts/wallet:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"@com_github_sirupsen_logrus//hooks/test:go_default_library",
|
||||
"@com_github_urfave_cli_v2//:go_default_library",
|
||||
],
|
||||
@@ -36,12 +36,12 @@ go_library(
|
||||
"//shared/prometheus:go_default_library",
|
||||
"//shared/tracing:go_default_library",
|
||||
"//shared/version:go_default_library",
|
||||
"//validator/accounts/v2/wallet:go_default_library",
|
||||
"//validator/accounts/wallet:go_default_library",
|
||||
"//validator/client:go_default_library",
|
||||
"//validator/db/kv:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager/v2/direct:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"//validator/rpc:go_default_library",
|
||||
"//validator/rpc/gateway:go_default_library",
|
||||
"//validator/slashing-protection:go_default_library",
|
||||
|
||||
@@ -24,12 +24,12 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/prometheus"
|
||||
"github.com/prysmaticlabs/prysm/shared/tracing"
|
||||
"github.com/prysmaticlabs/prysm/shared/version"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/client"
|
||||
"github.com/prysmaticlabs/prysm/validator/db/kv"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/rpc"
|
||||
"github.com/prysmaticlabs/prysm/validator/rpc/gateway"
|
||||
slashing_protection "github.com/prysmaticlabs/prysm/validator/slashing-protection"
|
||||
@@ -158,20 +158,20 @@ func (s *ValidatorClient) Close() {
|
||||
}
|
||||
|
||||
func (s *ValidatorClient) initializeFromCLI(cliCtx *cli.Context) error {
|
||||
var keyManagerV2 v2.IKeymanager
|
||||
var keyManager keymanager.IKeymanager
|
||||
var err error
|
||||
var accountsDir string
|
||||
if cliCtx.IsSet(flags.InteropNumValidators.Name) {
|
||||
numValidatorKeys := cliCtx.Uint64(flags.InteropNumValidators.Name)
|
||||
offset := cliCtx.Uint64(flags.InteropStartIndex.Name)
|
||||
keyManagerV2, err = direct.NewInteropKeymanager(cliCtx.Context, offset, numValidatorKeys)
|
||||
keyManager, err = direct.NewInteropKeymanager(cliCtx.Context, offset, numValidatorKeys)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not generate interop keys")
|
||||
}
|
||||
} else {
|
||||
// Read the wallet from the specified path.
|
||||
w, err := wallet.OpenWalletOrElseCli(cliCtx, func(cliCtx *cli.Context) (*wallet.Wallet, error) {
|
||||
return nil, errors.New("no wallet found, create a new one with validator wallet-v2 create")
|
||||
return nil, errors.New("no wallet found, create a new one with validator wallet create")
|
||||
})
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not open wallet")
|
||||
@@ -181,7 +181,7 @@ func (s *ValidatorClient) initializeFromCLI(cliCtx *cli.Context) error {
|
||||
"wallet": w.AccountsDir(),
|
||||
"keymanager-kind": w.KeymanagerKind().String(),
|
||||
}).Info("Opened validator wallet")
|
||||
keyManagerV2, err = w.InitializeKeymanager(
|
||||
keyManager, err = w.InitializeKeymanager(
|
||||
cliCtx.Context, false, /* skipMnemonicConfirm */
|
||||
)
|
||||
if err != nil {
|
||||
@@ -228,7 +228,7 @@ func (s *ValidatorClient) initializeFromCLI(cliCtx *cli.Context) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if err := s.registerClientService(keyManagerV2); err != nil {
|
||||
if err := s.registerClientService(keyManager); err != nil {
|
||||
return err
|
||||
}
|
||||
if cliCtx.Bool(flags.EnableRPCFlag.Name) {
|
||||
@@ -319,7 +319,7 @@ func (s *ValidatorClient) registerPrometheusService() error {
|
||||
}
|
||||
|
||||
func (s *ValidatorClient) registerClientService(
|
||||
keyManagerV2 v2.IKeymanager,
|
||||
keyManager keymanager.IKeymanager,
|
||||
) error {
|
||||
endpoint := s.cliCtx.String(flags.BeaconRPCProviderFlag.Name)
|
||||
dataDir := s.cliCtx.String(cmd.DataDirFlag.Name)
|
||||
@@ -338,7 +338,7 @@ func (s *ValidatorClient) registerClientService(
|
||||
v, err := client.NewValidatorService(s.cliCtx.Context, &client.Config{
|
||||
Endpoint: endpoint,
|
||||
DataDir: dataDir,
|
||||
KeyManagerV2: keyManagerV2,
|
||||
KeyManager: keyManager,
|
||||
LogValidatorBalances: logValidatorBalances,
|
||||
EmitAccountMetrics: emitAccountMetrics,
|
||||
CertFlag: cert,
|
||||
|
||||
@@ -13,10 +13,10 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/accounts/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
logTest "github.com/sirupsen/logrus/hooks/test"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
@@ -47,10 +47,10 @@ func TestNode_Builds(t *testing.T) {
|
||||
set.String("verbosity", "debug", "log verbosity")
|
||||
require.NoError(t, set.Set(flags.WalletPasswordFileFlag.Name, passwordFile))
|
||||
context := cli.NewContext(&app, set, nil)
|
||||
w, err := v2.CreateWalletWithKeymanager(context.Context, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(context.Context, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: dir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: walletPassword,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -26,14 +26,14 @@ go_library(
|
||||
"//shared/rand:go_default_library",
|
||||
"//shared/timeutils:go_default_library",
|
||||
"//shared/traceutil:go_default_library",
|
||||
"//validator/accounts/v2:go_default_library",
|
||||
"//validator/accounts/v2/wallet:go_default_library",
|
||||
"//validator/accounts:go_default_library",
|
||||
"//validator/accounts/wallet:go_default_library",
|
||||
"//validator/client:go_default_library",
|
||||
"//validator/db:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager/v2/derived:go_default_library",
|
||||
"//validator/keymanager/v2/direct:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/derived:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"@com_github_dgrijalva_jwt_go//:go_default_library",
|
||||
"@com_github_gogo_protobuf//types:go_default_library",
|
||||
"@com_github_grpc_ecosystem_go_grpc_middleware//:go_default_library",
|
||||
@@ -75,14 +75,14 @@ go_test(
|
||||
"//shared/testutil:go_default_library",
|
||||
"//shared/testutil/assert:go_default_library",
|
||||
"//shared/testutil/require:go_default_library",
|
||||
"//validator/accounts/v2:go_default_library",
|
||||
"//validator/accounts/v2/wallet:go_default_library",
|
||||
"//validator/accounts:go_default_library",
|
||||
"//validator/accounts/wallet:go_default_library",
|
||||
"//validator/client:go_default_library",
|
||||
"//validator/db/testing:go_default_library",
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager/v2:go_default_library",
|
||||
"//validator/keymanager/v2/derived:go_default_library",
|
||||
"//validator/keymanager/v2/direct:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/derived:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"@com_github_gogo_protobuf//types:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
"@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library",
|
||||
|
||||
@@ -14,10 +14,10 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/cmd"
|
||||
"github.com/prysmaticlabs/prysm/shared/pagination"
|
||||
"github.com/prysmaticlabs/prysm/shared/petnames"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/accounts/v2"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
@@ -33,15 +33,15 @@ func (s *Server) CreateAccount(ctx context.Context, req *pb.CreateAccountRequest
|
||||
}
|
||||
var creator accountCreator
|
||||
switch s.wallet.KeymanagerKind() {
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
return nil, status.Error(codes.InvalidArgument, "Cannot create account for remote keymanager")
|
||||
case v2keymanager.Direct:
|
||||
case keymanager.Direct:
|
||||
km, ok := s.keymanager.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return nil, status.Error(codes.InvalidArgument, "Not a direct keymanager")
|
||||
}
|
||||
creator = km
|
||||
case v2keymanager.Derived:
|
||||
case keymanager.Derived:
|
||||
km, ok := s.keymanager.(*derived.Keymanager)
|
||||
if !ok {
|
||||
return nil, status.Error(codes.InvalidArgument, "Not a derived keymanager")
|
||||
@@ -81,7 +81,7 @@ func (s *Server) ListAccounts(ctx context.Context, req *pb.ListAccountsRequest)
|
||||
ValidatingPublicKey: keys[i][:],
|
||||
AccountName: petnames.DeterministicName(keys[i][:], "-"),
|
||||
}
|
||||
if s.wallet.KeymanagerKind() == v2keymanager.Derived {
|
||||
if s.wallet.KeymanagerKind() == keymanager.Derived {
|
||||
accounts[i].DerivationPath = fmt.Sprintf(derived.ValidatingKeyDerivationPathTemplate, i)
|
||||
}
|
||||
}
|
||||
@@ -121,7 +121,7 @@ func (s *Server) BackupAccounts(
|
||||
if s.wallet == nil || s.keymanager == nil {
|
||||
return nil, status.Error(codes.FailedPrecondition, "No wallet nor keymanager found")
|
||||
}
|
||||
if s.wallet.KeymanagerKind() != v2keymanager.Direct && s.wallet.KeymanagerKind() != v2keymanager.Derived {
|
||||
if s.wallet.KeymanagerKind() != keymanager.Direct && s.wallet.KeymanagerKind() != keymanager.Derived {
|
||||
return nil, status.Error(codes.FailedPrecondition, "Only HD or direct wallets can backup accounts")
|
||||
}
|
||||
pubKeys := make([]bls.PublicKey, len(req.PublicKeys))
|
||||
@@ -132,10 +132,10 @@ func (s *Server) BackupAccounts(
|
||||
}
|
||||
pubKeys[i] = pubKey
|
||||
}
|
||||
var keystoresToBackup []*v2keymanager.Keystore
|
||||
var keystoresToBackup []*keymanager.Keystore
|
||||
var err error
|
||||
switch s.wallet.KeymanagerKind() {
|
||||
case v2keymanager.Direct:
|
||||
case keymanager.Direct:
|
||||
km, ok := s.keymanager.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return nil, status.Error(codes.FailedPrecondition, "Could not assert keymanager interface to concrete type")
|
||||
@@ -144,7 +144,7 @@ func (s *Server) BackupAccounts(
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.Internal, "Could not backup accounts for direct keymanager: %v", err)
|
||||
}
|
||||
case v2keymanager.Derived:
|
||||
case keymanager.Derived:
|
||||
km, ok := s.keymanager.(*derived.Keymanager)
|
||||
if !ok {
|
||||
return nil, status.Error(codes.FailedPrecondition, "Could not assert keymanager interface to concrete type")
|
||||
@@ -200,10 +200,10 @@ func (s *Server) DeleteAccounts(
|
||||
if s.wallet == nil || s.keymanager == nil {
|
||||
return nil, status.Error(codes.FailedPrecondition, "No wallet nor keymanager found")
|
||||
}
|
||||
if s.wallet.KeymanagerKind() != v2keymanager.Direct {
|
||||
if s.wallet.KeymanagerKind() != keymanager.Direct {
|
||||
return nil, status.Error(codes.FailedPrecondition, "Only Non-HD wallets can delete accounts")
|
||||
}
|
||||
if err := v2.DeleteAccount(ctx, &v2.DeleteAccountConfig{
|
||||
if err := accounts.DeleteAccount(ctx, &accounts.DeleteAccountConfig{
|
||||
Wallet: s.wallet,
|
||||
Keymanager: s.keymanager,
|
||||
PublicKeys: req.PublicKeys,
|
||||
@@ -221,7 +221,7 @@ func createAccountWithDepositData(ctx context.Context, km accountCreator) (*pb.D
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not create account in wallet")
|
||||
}
|
||||
data, err := v2.DepositDataJSON(depositData)
|
||||
data, err := accounts.DepositDataJSON(depositData)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not create deposit data JSON")
|
||||
}
|
||||
|
||||
@@ -16,11 +16,11 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/params"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/accounts/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
)
|
||||
|
||||
var defaultWalletPath = filepath.Join(flags.DefaultValidatorDir(), flags.WalletDefaultDirName)
|
||||
@@ -41,10 +41,10 @@ func TestServer_CreateAccount(t *testing.T) {
|
||||
defaultWalletPath = localWalletDir
|
||||
strongPass := "29384283xasjasd32%%&*@*#*"
|
||||
// We attempt to create the wallet.
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -67,10 +67,10 @@ func TestServer_ListAccounts(t *testing.T) {
|
||||
defaultWalletPath = localWalletDir
|
||||
strongPass := "29384283xasjasd32%%&*@*#*"
|
||||
// We attempt to create the wallet.
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -190,7 +190,7 @@ func TestServer_BackupAccounts(t *testing.T) {
|
||||
require.NoError(t, keystoreFile.Close())
|
||||
t.Fatal(err)
|
||||
}
|
||||
keystore := &v2keymanager.Keystore{}
|
||||
keystore := &keymanager.Keystore{}
|
||||
if err := json.Unmarshal(encoded, &keystore); err != nil {
|
||||
require.NoError(t, keystoreFile.Close())
|
||||
t.Fatal(err)
|
||||
@@ -205,10 +205,10 @@ func TestServer_DeleteAccounts_FailedPreconditions_WrongKeymanagerKind(t *testin
|
||||
defaultWalletPath = localWalletDir
|
||||
ctx := context.Background()
|
||||
strongPass := "29384283xasjasd32%%&*@*#*"
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/params"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/timeutils"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
|
||||
@@ -15,10 +15,10 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/accounts/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
dbtest "github.com/prysmaticlabs/prysm/validator/db/testing"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
)
|
||||
|
||||
func setupWalletDir(t testing.TB) string {
|
||||
@@ -62,10 +62,10 @@ func TestServer_SignupAndLogin_RoundTrip(t *testing.T) {
|
||||
assert.Equal(t, true, passwordHashExists)
|
||||
|
||||
// We attempt to create the wallet.
|
||||
_, err = v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
_, err = accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
|
||||
@@ -13,10 +13,10 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/event"
|
||||
"github.com/prysmaticlabs/prysm/shared/rand"
|
||||
"github.com/prysmaticlabs/prysm/shared/traceutil"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/client"
|
||||
"github.com/prysmaticlabs/prysm/validator/db"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/sirupsen/logrus"
|
||||
"go.opencensus.io/plugin/ocgrpc"
|
||||
"google.golang.org/grpc"
|
||||
@@ -53,7 +53,7 @@ type Server struct {
|
||||
host string
|
||||
port string
|
||||
listener net.Listener
|
||||
keymanager v2keymanager.IKeymanager
|
||||
keymanager keymanager.IKeymanager
|
||||
withCert string
|
||||
withKey string
|
||||
credentialError error
|
||||
@@ -63,7 +63,7 @@ type Server struct {
|
||||
syncChecker client.SyncChecker
|
||||
genesisFetcher client.GenesisFetcher
|
||||
walletDir string
|
||||
wallet *v2.Wallet
|
||||
wallet *wallet.Wallet
|
||||
walletInitializedFeed *event.Feed
|
||||
walletInitialized bool
|
||||
nodeGatewayEndpoint string
|
||||
|
||||
@@ -14,12 +14,12 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/fileutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/promptutil"
|
||||
"github.com/prysmaticlabs/prysm/shared/rand"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/accounts/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
keymanager "github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/tyler-smith/go-bip39"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"google.golang.org/grpc/codes"
|
||||
@@ -77,9 +77,9 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
|
||||
}
|
||||
keymanagerKind := pb.KeymanagerKind_DIRECT
|
||||
switch s.wallet.KeymanagerKind() {
|
||||
case v2keymanager.Derived:
|
||||
case keymanager.Derived:
|
||||
keymanagerKind = pb.KeymanagerKind_DERIVED
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
keymanagerKind = pb.KeymanagerKind_REMOTE
|
||||
}
|
||||
return &pb.CreateWalletResponse{
|
||||
@@ -91,10 +91,10 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
|
||||
}
|
||||
switch req.Keymanager {
|
||||
case pb.KeymanagerKind_DIRECT:
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: req.WalletPassword,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -107,7 +107,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
|
||||
}
|
||||
if err := s.initializeWallet(ctx, &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: req.WalletPassword,
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
@@ -125,7 +125,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
|
||||
if req.Mnemonic == "" {
|
||||
return nil, status.Error(codes.InvalidArgument, "Must include mnemonic in request")
|
||||
}
|
||||
_, depositData, err := v2.RecoverWallet(ctx, &v2.RecoverWalletConfig{
|
||||
_, depositData, err := accounts.RecoverWallet(ctx, &accounts.RecoverWalletConfig{
|
||||
WalletDir: walletDir,
|
||||
WalletPassword: req.WalletPassword,
|
||||
Mnemonic: req.Mnemonic,
|
||||
@@ -136,7 +136,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
|
||||
}
|
||||
if err := s.initializeWallet(ctx, &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: req.WalletPassword,
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
@@ -144,7 +144,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
|
||||
|
||||
depositDataList := make([]*pb.DepositDataResponse_DepositData, len(depositData))
|
||||
for i, item := range depositData {
|
||||
data, err := v2.DepositDataJSON(item)
|
||||
data, err := accounts.DepositDataJSON(item)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -200,11 +200,11 @@ func (s *Server) WalletConfig(ctx context.Context, _ *ptypes.Empty) (*pb.WalletR
|
||||
}
|
||||
var keymanagerKind pb.KeymanagerKind
|
||||
switch s.wallet.KeymanagerKind() {
|
||||
case v2keymanager.Derived:
|
||||
case keymanager.Derived:
|
||||
keymanagerKind = pb.KeymanagerKind_DERIVED
|
||||
case v2keymanager.Direct:
|
||||
case keymanager.Direct:
|
||||
keymanagerKind = pb.KeymanagerKind_DIRECT
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
keymanagerKind = pb.KeymanagerKind_REMOTE
|
||||
}
|
||||
f, err := s.wallet.ReadKeymanagerConfigFromDisk(ctx)
|
||||
@@ -286,7 +286,7 @@ func (s *Server) ChangePassword(ctx context.Context, req *pb.ChangePasswordReque
|
||||
return nil, status.Error(codes.InvalidArgument, "Could not validate wallet password input")
|
||||
}
|
||||
switch s.wallet.KeymanagerKind() {
|
||||
case v2keymanager.Direct:
|
||||
case keymanager.Direct:
|
||||
km, ok := s.keymanager.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return nil, status.Error(codes.FailedPrecondition, "Not a valid direct keymanager")
|
||||
@@ -298,7 +298,7 @@ func (s *Server) ChangePassword(ctx context.Context, req *pb.ChangePasswordReque
|
||||
if err := km.RefreshWalletPassword(ctx); err != nil {
|
||||
return nil, status.Errorf(codes.Internal, "Could not refresh wallet password: %v", err)
|
||||
}
|
||||
case v2keymanager.Derived:
|
||||
case keymanager.Derived:
|
||||
km, ok := s.keymanager.(*derived.Keymanager)
|
||||
if !ok {
|
||||
return nil, status.Error(codes.FailedPrecondition, "Not a valid derived keymanager")
|
||||
@@ -310,7 +310,7 @@ func (s *Server) ChangePassword(ctx context.Context, req *pb.ChangePasswordReque
|
||||
if err := km.RefreshWalletPassword(ctx); err != nil {
|
||||
return nil, status.Errorf(codes.Internal, "Could not refresh wallet password: %v", err)
|
||||
}
|
||||
case v2keymanager.Remote:
|
||||
case keymanager.Remote:
|
||||
return nil, status.Error(codes.Internal, "Cannot change password for remote keymanager")
|
||||
}
|
||||
return &ptypes.Empty{}, nil
|
||||
@@ -324,7 +324,7 @@ func (s *Server) ImportKeystores(
|
||||
if s.wallet == nil {
|
||||
return nil, status.Error(codes.FailedPrecondition, "No wallet initialized")
|
||||
}
|
||||
keymanager, ok := s.keymanager.(*direct.Keymanager)
|
||||
km, ok := s.keymanager.(*direct.Keymanager)
|
||||
if !ok {
|
||||
return nil, status.Error(codes.FailedPrecondition, "Only Non-HD wallets can import keystores")
|
||||
}
|
||||
@@ -335,11 +335,11 @@ func (s *Server) ImportKeystores(
|
||||
if req.KeystoresImported == nil || len(req.KeystoresImported) < 1 {
|
||||
return nil, status.Error(codes.InvalidArgument, "No keystores included for import")
|
||||
}
|
||||
keystores := make([]*v2keymanager.Keystore, len(req.KeystoresImported))
|
||||
keystores := make([]*keymanager.Keystore, len(req.KeystoresImported))
|
||||
importedPubKeys := make([][]byte, len(req.KeystoresImported))
|
||||
for i := 0; i < len(req.KeystoresImported); i++ {
|
||||
encoded := req.KeystoresImported[i]
|
||||
keystore := &v2keymanager.Keystore{}
|
||||
keystore := &keymanager.Keystore{}
|
||||
if err := json.Unmarshal([]byte(encoded), &keystore); err != nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "Not a valid EIP-2335 keystore JSON file: %v", err)
|
||||
}
|
||||
@@ -351,8 +351,8 @@ func (s *Server) ImportKeystores(
|
||||
importedPubKeys[i] = pubKey
|
||||
}
|
||||
// Import the uploaded accounts.
|
||||
if err := v2.ImportAccounts(ctx, &v2.ImportAccountsConfig{
|
||||
Keymanager: keymanager,
|
||||
if err := accounts.ImportAccounts(ctx, &accounts.ImportAccountsConfig{
|
||||
Keymanager: km,
|
||||
Keystores: keystores,
|
||||
AccountPassword: req.KeystoresPassword,
|
||||
}); err != nil {
|
||||
|
||||
@@ -14,10 +14,10 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/event"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
v2 "github.com/prysmaticlabs/prysm/validator/accounts/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/v2/wallet"
|
||||
v2keymanager "github.com/prysmaticlabs/prysm/validator/keymanager/v2"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/v2/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
@@ -26,10 +26,10 @@ func createDirectWalletWithAccounts(t testing.TB, numAccounts int) (*Server, [][
|
||||
defaultWalletPath = localWalletDir
|
||||
ctx := context.Background()
|
||||
strongPass := "29384283xasjasd32%%&*@*#*"
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -55,7 +55,7 @@ func createDirectWalletWithAccounts(t testing.TB, numAccounts int) (*Server, [][
|
||||
require.NoError(t, err)
|
||||
cryptoFields, err := encryptor.Encrypt(privKey.Marshal(), strongPass)
|
||||
require.NoError(t, err)
|
||||
item := &v2keymanager.Keystore{
|
||||
item := &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Version: encryptor.Version(),
|
||||
@@ -118,7 +118,7 @@ func TestServer_CreateWallet_Direct(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
cryptoFields, err := encryptor.Encrypt(privKey.Marshal(), strongPass)
|
||||
require.NoError(t, err)
|
||||
item := &v2keymanager.Keystore{
|
||||
item := &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Version: encryptor.Version(),
|
||||
@@ -183,10 +183,10 @@ func TestServer_WalletConfig(t *testing.T) {
|
||||
walletDir: defaultWalletPath,
|
||||
}
|
||||
// We attempt to create the wallet.
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -226,10 +226,10 @@ func TestServer_ChangePassword_Preconditions(t *testing.T) {
|
||||
})
|
||||
assert.ErrorContains(t, noWalletMsg, err)
|
||||
// We attempt to create the wallet.
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -271,10 +271,10 @@ func TestServer_ChangePassword_DerivedKeymanager(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
strongPass := "29384283xasjasd32%%&*@*#*"
|
||||
// We attempt to create the wallet.
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -324,10 +324,10 @@ func TestServer_HasWallet(t *testing.T) {
|
||||
}, resp)
|
||||
|
||||
// We attempt to create the wallet.
|
||||
_, err = v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
_, err = accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -345,10 +345,10 @@ func TestServer_ImportKeystores_FailedPreconditions_WrongKeymanagerKind(t *testi
|
||||
defaultWalletPath = localWalletDir
|
||||
ctx := context.Background()
|
||||
strongPass := "29384283xasjasd32%%&*@*#*"
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Derived,
|
||||
KeymanagerKind: keymanager.Derived,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -369,10 +369,10 @@ func TestServer_ImportKeystores_FailedPreconditions(t *testing.T) {
|
||||
defaultWalletPath = localWalletDir
|
||||
ctx := context.Background()
|
||||
strongPass := "29384283xasjasd32%%&*@*#*"
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -406,10 +406,10 @@ func TestServer_ImportKeystores_OK(t *testing.T) {
|
||||
defaultWalletPath = localWalletDir
|
||||
ctx := context.Background()
|
||||
strongPass := "29384283xasjasd32%%&*@*#*"
|
||||
w, err := v2.CreateWalletWithKeymanager(ctx, &v2.CreateWalletConfig{
|
||||
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: defaultWalletPath,
|
||||
KeymanagerKind: v2keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
WalletPassword: strongPass,
|
||||
},
|
||||
SkipMnemonicConfirm: true,
|
||||
@@ -435,7 +435,7 @@ func TestServer_ImportKeystores_OK(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
cryptoFields, err := encryptor.Encrypt(privKey.Marshal(), strongPass)
|
||||
require.NoError(t, err)
|
||||
item := &v2keymanager.Keystore{
|
||||
item := &keymanager.Keystore{
|
||||
Crypto: cryptoFields,
|
||||
ID: id.String(),
|
||||
Version: encryptor.Version(),
|
||||
|
||||
Reference in New Issue
Block a user