mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 15:37:56 -05:00
Rename Direct Keymanager to Imported (#7549)
* rename direct to imported * km * fix more refs * rename all instances appropriately * rename instances of nonhd
This commit is contained in:
@@ -39,7 +39,7 @@ go_library(
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/derived:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"//validator/keymanager/imported:go_default_library",
|
||||
"//validator/keymanager/remote:go_default_library",
|
||||
"@com_github_google_uuid//:go_default_library",
|
||||
"@com_github_logrusorgru_aurora//:go_default_library",
|
||||
@@ -86,7 +86,7 @@ go_test(
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/derived:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"//validator/keymanager/imported: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",
|
||||
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"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/imported"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
@@ -95,14 +95,14 @@ func BackupAccountsCli(cliCtx *cli.Context) error {
|
||||
|
||||
var keystoresToBackup []*keymanager.Keystore
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Direct:
|
||||
km, ok := km.(*direct.Keymanager)
|
||||
case keymanager.Imported:
|
||||
km, ok := km.(*imported.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("could not assert keymanager interface to concrete type")
|
||||
}
|
||||
keystoresToBackup, err = km.ExtractKeystores(cliCtx.Context, filteredPubKeys, backupsPassword)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not backup accounts for direct keymanager")
|
||||
return errors.Wrap(err, "could not backup accounts for imported keymanager")
|
||||
}
|
||||
case keymanager.Derived:
|
||||
km, ok := km.(*derived.Keymanager)
|
||||
|
||||
@@ -139,7 +139,7 @@ func TestBackupAccounts_Noninteractive_Derived(t *testing.T) {
|
||||
assert.DeepEqual(t, unzippedPublicKeys, generatedPubKeys)
|
||||
}
|
||||
|
||||
func TestBackupAccounts_Noninteractive_Direct(t *testing.T) {
|
||||
func TestBackupAccounts_Noninteractive_Imported(t *testing.T) {
|
||||
walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
randPath, err := rand.Int(rand.Reader, big.NewInt(1000000))
|
||||
require.NoError(t, err, "Could not generate random file path")
|
||||
@@ -172,11 +172,11 @@ func TestBackupAccounts_Noninteractive_Direct(t *testing.T) {
|
||||
)
|
||||
require.NoError(t, err)
|
||||
|
||||
// We initialize a wallet with a direct keymanager.
|
||||
// We initialize a wallet with a imported keymanager.
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
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: keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"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/imported"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
@@ -55,10 +55,10 @@ func CreateAccount(ctx context.Context, cfg *CreateAccountConfig) error {
|
||||
switch cfg.Wallet.KeymanagerKind() {
|
||||
case keymanager.Remote:
|
||||
return errors.New("cannot create a new account for a remote keymanager")
|
||||
case keymanager.Direct:
|
||||
km, ok := km.(*direct.Keymanager)
|
||||
case keymanager.Imported:
|
||||
km, ok := km.(*imported.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("not a direct keymanager")
|
||||
return errors.New("not a imported keymanager")
|
||||
}
|
||||
// Create a new validator account using the specified keymanager.
|
||||
if _, _, err := km.CreateAccount(ctx); err != nil {
|
||||
|
||||
@@ -80,8 +80,8 @@ func (p *passwordReader) passwordReaderFunc(_ *os.File) ([]byte, error) {
|
||||
return []byte(p.password), nil
|
||||
}
|
||||
|
||||
// Test_KeysConsistency_Direct checks that the password does not change due to account creation in a Direct wallet
|
||||
func Test_KeysConsistency_Direct(t *testing.T) {
|
||||
// Test_KeysConsistency_Imported checks that the password does not change due to account creation in a Imported wallet
|
||||
func Test_KeysConsistency_Imported(t *testing.T) {
|
||||
walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t)
|
||||
|
||||
// Specify the 'initial'/correct password locally to this file for convenience.
|
||||
@@ -90,7 +90,7 @@ func Test_KeysConsistency_Direct(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
@@ -109,10 +109,10 @@ func DeleteAccount(ctx context.Context, cfg *DeleteAccountConfig) error {
|
||||
switch cfg.Wallet.KeymanagerKind() {
|
||||
case keymanager.Remote:
|
||||
return errors.New("cannot delete accounts for a remote keymanager")
|
||||
case keymanager.Direct:
|
||||
km, ok := cfg.Keymanager.(*direct.Keymanager)
|
||||
case keymanager.Imported:
|
||||
km, ok := cfg.Keymanager.(*imported.Keymanager)
|
||||
if !ok {
|
||||
return errors.New("not a direct keymanager")
|
||||
return errors.New("not a imported keymanager")
|
||||
}
|
||||
if len(cfg.PublicKeys) == 1 {
|
||||
log.Info("Deleting account...")
|
||||
|
||||
@@ -16,8 +16,8 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
keymanager "github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
|
||||
)
|
||||
|
||||
func TestDeleteAccounts_Noninteractive(t *testing.T) {
|
||||
@@ -39,11 +39,11 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
|
||||
// Only delete keys 0 and 1.
|
||||
deletePublicKeys := strings.Join(generatedPubKeys[0:2], ",")
|
||||
|
||||
// We initialize a wallet with a direct keymanager.
|
||||
// We initialize a wallet with a imported keymanager.
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
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: keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -67,11 +67,11 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
|
||||
// We attempt to delete the accounts specified.
|
||||
require.NoError(t, DeleteAccountCli(cliCtx))
|
||||
|
||||
keymanager, err := direct.NewKeymanager(
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&direct.SetupConfig{
|
||||
&imported.SetupConfig{
|
||||
Wallet: w,
|
||||
Opts: direct.DefaultKeymanagerOpts(),
|
||||
Opts: imported.DefaultKeymanagerOpts(),
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -19,7 +19,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
|
||||
)
|
||||
|
||||
func TestExitAccountsCli_Ok(t *testing.T) {
|
||||
@@ -60,11 +60,11 @@ func TestExitAccountsCli_Ok(t *testing.T) {
|
||||
keystore, _ := createKeystore(t, keysDir)
|
||||
time.Sleep(time.Second)
|
||||
|
||||
// We initialize a wallet with a direct keymanager.
|
||||
// We initialize a wallet with a imported keymanager.
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
// Wallet configuration flags.
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
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: keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
@@ -111,18 +111,18 @@ func TestExitAccountsCli_Ok(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPrepareWallet_EmptyWalletReturnsError(t *testing.T) {
|
||||
direct.ResetCaches()
|
||||
imported.ResetCaches()
|
||||
walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
WalletPassword: "Passwordz0320$",
|
||||
},
|
||||
})
|
||||
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
|
||||
"github.com/urfave/cli/v2"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
@@ -69,7 +69,7 @@ func (fileNames byDerivationPath) Swap(i, j int) {
|
||||
// ImportAccountsConfig defines values to run the import accounts function.
|
||||
type ImportAccountsConfig struct {
|
||||
Keystores []*keymanager.Keystore
|
||||
Keymanager *direct.Keymanager
|
||||
Keymanager *imported.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, keymanager.Direct)
|
||||
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Imported)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -87,7 +87,7 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
|
||||
WalletDir: cfg.WalletCfg.WalletDir,
|
||||
WalletPassword: cfg.WalletCfg.WalletPassword,
|
||||
})
|
||||
if err = createDirectKeymanagerWallet(cliCtx.Context, w); err != nil {
|
||||
if err = createImportedKeymanagerWallet(cliCtx.Context, w); err != nil {
|
||||
return nil, errors.Wrap(err, "could not create keymanager")
|
||||
}
|
||||
// We store the hashed password to disk.
|
||||
@@ -107,9 +107,9 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
k, ok := km.(*direct.Keymanager)
|
||||
k, ok := km.(*imported.Keymanager)
|
||||
if !ok {
|
||||
return errors.Wrap(err, "Only non-HD wallets can import keystores")
|
||||
return errors.Wrap(err, "Only imported wallets can import more keystores")
|
||||
}
|
||||
|
||||
// Check if the user wishes to import a one-off, private key directly
|
||||
@@ -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, km *direct.Keymanager) error {
|
||||
func importPrivateKeyAsAccount(cliCtx *cli.Context, wallet *wallet.Wallet, km *imported.Keymanager) error {
|
||||
privKeyFile := cliCtx.String(flags.ImportPrivateKeyFileFlag.Name)
|
||||
fullPath, err := fileutil.ExpandPath(privKeyFile)
|
||||
if err != nil {
|
||||
|
||||
@@ -23,12 +23,12 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/shared/timeutils"
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
|
||||
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
|
||||
)
|
||||
|
||||
func TestImport_Noninteractive(t *testing.T) {
|
||||
direct.ResetCaches()
|
||||
imported.ResetCaches()
|
||||
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
randPath, err := rand.Int(rand.Reader, big.NewInt(1000000))
|
||||
require.NoError(t, err, "Could not generate random file path")
|
||||
@@ -42,24 +42,24 @@ func TestImport_Noninteractive(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keysDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, w.SaveHashedPassword(context.Background()))
|
||||
keymanager, err := direct.NewKeymanager(
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&direct.SetupConfig{
|
||||
&imported.SetupConfig{
|
||||
Wallet: w,
|
||||
Opts: direct.DefaultKeymanagerOpts(),
|
||||
Opts: imported.DefaultKeymanagerOpts(),
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
@@ -90,7 +90,7 @@ func TestImport_Noninteractive(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestImport_Noninteractive_RandomName(t *testing.T) {
|
||||
direct.ResetCaches()
|
||||
imported.ResetCaches()
|
||||
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
randPath, err := rand.Int(rand.Reader, big.NewInt(1000000))
|
||||
require.NoError(t, err, "Could not generate random file path")
|
||||
@@ -104,24 +104,24 @@ func TestImport_Noninteractive_RandomName(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keysDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, w.SaveHashedPassword(context.Background()))
|
||||
keymanager, err := direct.NewKeymanager(
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&direct.SetupConfig{
|
||||
&imported.SetupConfig{
|
||||
Wallet: w,
|
||||
Opts: direct.DefaultKeymanagerOpts(),
|
||||
Opts: imported.DefaultKeymanagerOpts(),
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
@@ -152,7 +152,7 @@ func TestImport_Noninteractive_RandomName(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestImport_Noninteractive_Filepath(t *testing.T) {
|
||||
direct.ResetCaches()
|
||||
imported.ResetCaches()
|
||||
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
|
||||
randPath, err := rand.Int(rand.Reader, big.NewInt(1000000))
|
||||
require.NoError(t, err, "Could not generate random file path")
|
||||
@@ -167,24 +167,24 @@ func TestImport_Noninteractive_Filepath(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keysDir: keystorePath,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
accountPasswordFile: passwordFilePath,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
WalletPassword: password,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, w.SaveHashedPassword(context.Background()))
|
||||
keymanager, err := direct.NewKeymanager(
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&direct.SetupConfig{
|
||||
&imported.SetupConfig{
|
||||
Wallet: w,
|
||||
Opts: direct.DefaultKeymanagerOpts(),
|
||||
Opts: imported.DefaultKeymanagerOpts(),
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
@@ -210,7 +210,7 @@ func TestImport_Noninteractive_Filepath(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestImport_SortByDerivationPath(t *testing.T) {
|
||||
direct.ResetCaches()
|
||||
imported.ResetCaches()
|
||||
type test struct {
|
||||
name string
|
||||
input []string
|
||||
@@ -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: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
walletPasswordFile: passwordFilePath,
|
||||
privateKeyFile: privKeyFileName,
|
||||
})
|
||||
@@ -301,28 +301,28 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
|
||||
wallet, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
WalletPassword: walletPass,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, wallet.SaveHashedPassword(context.Background()))
|
||||
keymanager, err := direct.NewKeymanager(
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&direct.SetupConfig{
|
||||
&imported.SetupConfig{
|
||||
Wallet: wallet,
|
||||
Opts: direct.DefaultKeymanagerOpts(),
|
||||
Opts: imported.DefaultKeymanagerOpts(),
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
assert.NoError(t, importPrivateKeyAsAccount(cliCtx, wallet, keymanager))
|
||||
|
||||
// We re-instantiate the keymanager and check we now have 1 public key.
|
||||
keymanager, err = direct.NewKeymanager(
|
||||
keymanager, err = imported.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&direct.SetupConfig{
|
||||
&imported.SetupConfig{
|
||||
Wallet: wallet,
|
||||
Opts: direct.DefaultKeymanagerOpts(),
|
||||
Opts: imported.DefaultKeymanagerOpts(),
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
@@ -351,7 +351,7 @@ func createKeystore(t *testing.T, path string) (*keymanager.Keystore, string) {
|
||||
require.NoError(t, err)
|
||||
// Write the encoded keystore to disk with the timestamp appended
|
||||
createdAt := timeutils.Now().Unix()
|
||||
fullPath := filepath.Join(path, fmt.Sprintf(direct.KeystoreFileNameFormat, createdAt))
|
||||
fullPath := filepath.Join(path, fmt.Sprintf(imported.KeystoreFileNameFormat, createdAt))
|
||||
require.NoError(t, ioutil.WriteFile(fullPath, encoded, os.ModePerm))
|
||||
return keystoreFile, fullPath
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"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/imported"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
@@ -38,13 +38,13 @@ func ListAccountsCli(cliCtx *cli.Context) error {
|
||||
showDepositData := cliCtx.Bool(flags.ShowDepositDataFlag.Name)
|
||||
showPrivateKeys := cliCtx.Bool(flags.ShowPrivateKeysFlag.Name)
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Direct:
|
||||
km, ok := km.(*direct.Keymanager)
|
||||
case keymanager.Imported:
|
||||
km, ok := km.(*imported.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")
|
||||
if err := listImportedKeymanagerAccounts(cliCtx.Context, showDepositData, showPrivateKeys, km); err != nil {
|
||||
return errors.Wrap(err, "could not list validator accounts with imported keymanager")
|
||||
}
|
||||
case keymanager.Derived:
|
||||
km, ok := km.(*derived.Keymanager)
|
||||
@@ -68,11 +68,11 @@ func ListAccountsCli(cliCtx *cli.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func listDirectKeymanagerAccounts(
|
||||
func listImportedKeymanagerAccounts(
|
||||
ctx context.Context,
|
||||
showDepositData,
|
||||
showPrivateKeys bool,
|
||||
keymanager *direct.Keymanager,
|
||||
keymanager *imported.Keymanager,
|
||||
) error {
|
||||
// We initialize the wallet's keymanager.
|
||||
accountNames, err := keymanager.ValidatingAccountNames()
|
||||
@@ -80,7 +80,7 @@ func listDirectKeymanagerAccounts(
|
||||
return errors.Wrap(err, "could not fetch account names")
|
||||
}
|
||||
numAccounts := au.BrightYellow(len(accountNames))
|
||||
fmt.Printf("(keymanager kind) %s\n", au.BrightGreen("non-HD wallet").Bold())
|
||||
fmt.Printf("(keymanager kind) %s\n", au.BrightGreen("imported wallet").Bold())
|
||||
fmt.Println("")
|
||||
if len(accountNames) == 1 {
|
||||
fmt.Printf("Showing %d validator account\n", numAccounts)
|
||||
|
||||
@@ -18,7 +18,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/direct"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
)
|
||||
|
||||
@@ -35,27 +35,27 @@ func (m *mockRemoteKeymanager) Sign(context.Context, *validatorpb.SignRequest) (
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func TestListAccounts_DirectKeymanager(t *testing.T) {
|
||||
func TestListAccounts_ImportedKeymanager(t *testing.T) {
|
||||
walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
|
||||
WalletCfg: &wallet.Config{
|
||||
WalletDir: walletDir,
|
||||
KeymanagerKind: keymanager.Direct,
|
||||
KeymanagerKind: keymanager.Imported,
|
||||
WalletPassword: "Passwordz0320$",
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
keymanager, err := direct.NewKeymanager(
|
||||
keymanager, err := imported.NewKeymanager(
|
||||
cliCtx.Context,
|
||||
&direct.SetupConfig{
|
||||
&imported.SetupConfig{
|
||||
Wallet: w,
|
||||
Opts: direct.DefaultKeymanagerOpts(),
|
||||
Opts: imported.DefaultKeymanagerOpts(),
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
@@ -70,8 +70,8 @@ func TestListAccounts_DirectKeymanager(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
os.Stdout = writer
|
||||
|
||||
// We call the list direct keymanager accounts function.
|
||||
require.NoError(t, listDirectKeymanagerAccounts(context.Background(), true /* show deposit data */, true /*show private keys */, keymanager))
|
||||
// We call the list imported keymanager accounts function.
|
||||
require.NoError(t, listImportedKeymanagerAccounts(context.Background(), true /* show deposit data */, true /*show private keys */, keymanager))
|
||||
|
||||
require.NoError(t, writer.Close())
|
||||
out, err := ioutil.ReadAll(r)
|
||||
@@ -84,7 +84,7 @@ func TestListAccounts_DirectKeymanager(t *testing.T) {
|
||||
|
||||
// Expected output example:
|
||||
/*
|
||||
(keymanager kind) non-HD wallet
|
||||
(keymanager kind) imported wallet
|
||||
|
||||
Showing 5 validator accounts
|
||||
View the eth1 deposit transaction data for your accounts by running `validator accounts list --show-deposit-data
|
||||
@@ -135,7 +135,7 @@ func TestListAccounts_DirectKeymanager(t *testing.T) {
|
||||
require.Equal(t, lineCount, len(lines))
|
||||
|
||||
// Assert the keymanager kind is printed on the first line.
|
||||
kindString := "non-HD"
|
||||
kindString := "imported"
|
||||
kindFound := strings.Contains(lines[0], kindString)
|
||||
assert.Equal(t, true, kindFound, "Keymanager Kind %s not found on the first line", kindString)
|
||||
|
||||
@@ -220,7 +220,7 @@ func TestListAccounts_DerivedKeymanager(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
os.Stdout = writer
|
||||
|
||||
// We call the list direct keymanager accounts function.
|
||||
// We call the list imported keymanager accounts function.
|
||||
require.NoError(t, listDerivedKeymanagerAccounts(cliCtx.Context, true /* show deposit data */, true /*show private keys */, keymanager))
|
||||
|
||||
require.NoError(t, writer.Close())
|
||||
|
||||
@@ -18,7 +18,7 @@ var AccountCommands = &cli.Command{
|
||||
{
|
||||
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
|
||||
specified input, capable of creating a direct, derived, or remote wallet.
|
||||
specified input, capable of creating a imported, derived, or remote wallet.
|
||||
this command outputs a deposit data string which is required to become a validator in eth2.`,
|
||||
Flags: cmd.WrapFlags([]cli.Flag{
|
||||
flags.WalletDirFlag,
|
||||
|
||||
@@ -15,7 +15,7 @@ var WalletCommands = &cli.Command{
|
||||
{
|
||||
Name: "create",
|
||||
Usage: "creates a new wallet with a desired type of keymanager: " +
|
||||
"either on-disk (direct), derived, or using remote credentials",
|
||||
"either on-disk (imported), derived, or using remote credentials",
|
||||
Flags: []cli.Flag{
|
||||
flags.WalletDirFlag,
|
||||
flags.KeymanagerKindFlag,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// Package v2 defines a new model for accounts management in Prysm, using best
|
||||
// practices for user security, UX, and extensibility via different wallet types
|
||||
// including HD wallets, non-HD wallets, and remote-signing capable configurations. This model
|
||||
// including HD wallets, imported (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 accounts
|
||||
|
||||
@@ -14,7 +14,7 @@ go_library(
|
||||
"//validator/flags:go_default_library",
|
||||
"//validator/keymanager:go_default_library",
|
||||
"//validator/keymanager/derived:go_default_library",
|
||||
"//validator/keymanager/direct:go_default_library",
|
||||
"//validator/keymanager/imported:go_default_library",
|
||||
"//validator/keymanager/remote:go_default_library",
|
||||
"@com_github_gofrs_flock//:go_default_library",
|
||||
"@com_github_pkg_errors//:go_default_library",
|
||||
|
||||
@@ -18,7 +18,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"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/imported"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli/v2"
|
||||
@@ -28,7 +28,7 @@ import (
|
||||
var log = logrus.WithField("prefix", "wallet")
|
||||
|
||||
const (
|
||||
// KeymanagerConfigFileName for the keymanager used by the wallet: direct, derived, or remote.
|
||||
// KeymanagerConfigFileName for the keymanager used by the wallet: imported, derived, or remote.
|
||||
KeymanagerConfigFileName = "keymanageropts.json"
|
||||
// HashedPasswordFileName for the wallet.
|
||||
HashedPasswordFileName = "hash"
|
||||
@@ -56,9 +56,9 @@ var (
|
||||
)
|
||||
// KeymanagerKindSelections as friendly text.
|
||||
KeymanagerKindSelections = map[keymanager.Kind]string{
|
||||
keymanager.Direct: "Non-HD Wallet (Recommended)",
|
||||
keymanager.Derived: "HD Wallet (Least secure)",
|
||||
keymanager.Remote: "Remote Signing Wallet (Advanced)",
|
||||
keymanager.Imported: "Imported 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 {
|
||||
@@ -79,7 +79,7 @@ type Config struct {
|
||||
// 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).
|
||||
// associated keymanager (either imported, derived, or remote signing enabled).
|
||||
type Wallet struct {
|
||||
walletDir string
|
||||
accountsPath string
|
||||
@@ -115,7 +115,7 @@ func Exists(walletDir string) (bool, error) {
|
||||
return dirExists && isValid, nil
|
||||
}
|
||||
|
||||
// IsValid checks if a folder contains a single key directory such as `derived`, `remote` or `direct`.
|
||||
// IsValid checks if a folder contains a single key directory such as `derived`, `remote` or `imported`.
|
||||
// Returns true if one of those subdirectories exist, false otherwise.
|
||||
func IsValid(walletDir string) (bool, error) {
|
||||
expanded, err := fileutil.ExpandPath(walletDir)
|
||||
@@ -147,7 +147,7 @@ func IsValid(walletDir string) (bool, error) {
|
||||
// Count how many wallet types we have in the directory
|
||||
numWalletTypes := 0
|
||||
for _, name := range names {
|
||||
// Nil error means input name is `derived`, `remote` or `direct`
|
||||
// Nil error means input name is `derived`, `remote` or `imported`
|
||||
_, err = keymanager.ParseKind(name)
|
||||
if err == nil {
|
||||
numWalletTypes++
|
||||
@@ -283,17 +283,17 @@ func (w *Wallet) InitializeKeymanager(
|
||||
}
|
||||
var km keymanager.IKeymanager
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Direct:
|
||||
opts, err := direct.UnmarshalOptionsFile(configFile)
|
||||
case keymanager.Imported:
|
||||
opts, err := imported.UnmarshalOptionsFile(configFile)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not unmarshal keymanageropts file")
|
||||
}
|
||||
km, err = direct.NewKeymanager(ctx, &direct.SetupConfig{
|
||||
km, err = imported.NewKeymanager(ctx, &imported.SetupConfig{
|
||||
Wallet: w,
|
||||
Opts: opts,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not initialize direct keymanager")
|
||||
return nil, errors.Wrap(err, "could not initialize imported keymanager")
|
||||
}
|
||||
if !fileutil.FileExists(filepath.Join(w.walletDir, HashedPasswordFileName)) {
|
||||
keys, err := km.FetchValidatingPublicKeys(ctx)
|
||||
@@ -506,7 +506,7 @@ func readKeymanagerKindFromWalletPath(walletPath string) (keymanager.Kind, error
|
||||
return keymanagerKind, nil
|
||||
}
|
||||
}
|
||||
return 0, errors.New("no keymanager folder, 'direct', 'remote', nor 'derived' found in wallet path")
|
||||
return 0, errors.New("no keymanager folder, 'imported', 'remote', nor 'derived' found in wallet path")
|
||||
}
|
||||
|
||||
func inputPassword(
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"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/imported"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
@@ -67,9 +67,9 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
|
||||
})
|
||||
var err error
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Direct:
|
||||
if err = createDirectKeymanagerWallet(ctx, w); err != nil {
|
||||
return nil, errors.Wrap(err, "could not initialize wallet with direct keymanager")
|
||||
case keymanager.Imported:
|
||||
if err = createImportedKeymanagerWallet(ctx, w); err != nil {
|
||||
return nil, errors.Wrap(err, "could not initialize wallet with imported keymanager")
|
||||
}
|
||||
log.WithField("--wallet-dir", cfg.WalletCfg.WalletDir).Info(
|
||||
"Successfully created wallet with on-disk keymanager configuration. " +
|
||||
@@ -135,15 +135,15 @@ func extractWalletCreationConfigFromCli(cliCtx *cli.Context, keymanagerKind keym
|
||||
return createWalletConfig, nil
|
||||
}
|
||||
|
||||
func createDirectKeymanagerWallet(ctx context.Context, wallet *wallet.Wallet) error {
|
||||
func createImportedKeymanagerWallet(ctx context.Context, wallet *wallet.Wallet) error {
|
||||
if wallet == nil {
|
||||
return errors.New("nil wallet")
|
||||
}
|
||||
if err := wallet.SaveWallet(); err != nil {
|
||||
return errors.Wrap(err, "could not save wallet to disk")
|
||||
}
|
||||
defaultOpts := direct.DefaultKeymanagerOpts()
|
||||
keymanagerConfig, err := direct.MarshalOptionsFile(ctx, defaultOpts)
|
||||
defaultOpts := imported.DefaultKeymanagerOpts()
|
||||
keymanagerConfig, err := imported.MarshalOptionsFile(ctx, defaultOpts)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "could not marshal keymanager config file")
|
||||
}
|
||||
@@ -192,14 +192,14 @@ func inputKeymanagerKind(cliCtx *cli.Context) (keymanager.Kind, error) {
|
||||
promptSelect := promptui.Select{
|
||||
Label: "Select a type of wallet",
|
||||
Items: []string{
|
||||
wallet.KeymanagerKindSelections[keymanager.Direct],
|
||||
wallet.KeymanagerKindSelections[keymanager.Imported],
|
||||
wallet.KeymanagerKindSelections[keymanager.Derived],
|
||||
wallet.KeymanagerKindSelections[keymanager.Remote],
|
||||
},
|
||||
}
|
||||
selection, _, err := promptSelect.Run()
|
||||
if err != nil {
|
||||
return keymanager.Direct, fmt.Errorf("could not select wallet type: %v", prompt.FormatPromptError(err))
|
||||
return keymanager.Imported, fmt.Errorf("could not select wallet type: %v", prompt.FormatPromptError(err))
|
||||
}
|
||||
return keymanager.Kind(selection), nil
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ import (
|
||||
"github.com/prysmaticlabs/prysm/validator/flags"
|
||||
"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/imported"
|
||||
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
|
||||
"github.com/sirupsen/logrus"
|
||||
logTest "github.com/sirupsen/logrus/hooks/test"
|
||||
@@ -122,11 +122,11 @@ func TestCreateOrOpenWallet(t *testing.T) {
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
createDirectWallet := func(cliCtx *cli.Context) (*wallet.Wallet, error) {
|
||||
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Direct)
|
||||
createImportedWallet := func(cliCtx *cli.Context) (*wallet.Wallet, error) {
|
||||
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Imported)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -135,7 +135,7 @@ func TestCreateOrOpenWallet(t *testing.T) {
|
||||
WalletDir: cfg.WalletCfg.WalletDir,
|
||||
WalletPassword: cfg.WalletCfg.WalletPassword,
|
||||
})
|
||||
if err = createDirectKeymanagerWallet(cliCtx.Context, w); err != nil {
|
||||
if err = createImportedKeymanagerWallet(cliCtx.Context, w); err != nil {
|
||||
return nil, errors.Wrap(err, "could not create keymanager")
|
||||
}
|
||||
log.WithField("wallet-path", cfg.WalletCfg.WalletDir).Info(
|
||||
@@ -143,22 +143,22 @@ func TestCreateOrOpenWallet(t *testing.T) {
|
||||
)
|
||||
return w, nil
|
||||
}
|
||||
createdWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createDirectWallet)
|
||||
createdWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createImportedWallet)
|
||||
require.NoError(t, err)
|
||||
require.LogsContain(t, hook, "Successfully created new wallet")
|
||||
|
||||
openedWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createDirectWallet)
|
||||
openedWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createImportedWallet)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, createdWallet.KeymanagerKind(), openedWallet.KeymanagerKind())
|
||||
assert.Equal(t, createdWallet.AccountsDir(), openedWallet.AccountsDir())
|
||||
}
|
||||
|
||||
func TestCreateWallet_Direct(t *testing.T) {
|
||||
func TestCreateWallet_Imported(t *testing.T) {
|
||||
walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t)
|
||||
cliCtx := setupWalletCtx(t, &testWalletConfig{
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
walletPasswordFile: walletPasswordFile,
|
||||
})
|
||||
|
||||
@@ -175,11 +175,11 @@ func TestCreateWallet_Direct(t *testing.T) {
|
||||
// We read the keymanager config for the newly created wallet.
|
||||
encoded, err := w.ReadKeymanagerConfigFromDisk(cliCtx.Context)
|
||||
assert.NoError(t, err)
|
||||
cfg, err := direct.UnmarshalOptionsFile(encoded)
|
||||
cfg, err := imported.UnmarshalOptionsFile(encoded)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// We assert the created configuration was as desired.
|
||||
wantedCfg := direct.DefaultKeymanagerOpts()
|
||||
wantedCfg := imported.DefaultKeymanagerOpts()
|
||||
assert.DeepEqual(t, wantedCfg, cfg)
|
||||
}
|
||||
|
||||
@@ -235,7 +235,7 @@ func TestCreateWallet_WalletAlreadyExists(t *testing.T) {
|
||||
walletDir: walletDir,
|
||||
passwordsDir: passwordsDir,
|
||||
walletPasswordFile: passwordFile,
|
||||
keymanagerKind: keymanager.Direct,
|
||||
keymanagerKind: keymanager.Imported,
|
||||
})
|
||||
|
||||
// We attempt to create another wallet of different type at the same location. We expect an error.
|
||||
|
||||
@@ -24,8 +24,8 @@ func EditWalletConfigurationCli(cliCtx *cli.Context) error {
|
||||
return errors.Wrap(err, "could not open wallet")
|
||||
}
|
||||
switch w.KeymanagerKind() {
|
||||
case keymanager.Direct:
|
||||
return errors.New("not possible to edit direct keymanager configuration")
|
||||
case keymanager.Imported:
|
||||
return errors.New("not possible to edit imported keymanager configuration")
|
||||
case keymanager.Derived:
|
||||
return errors.New("derived keymanager is not yet supported")
|
||||
case keymanager.Remote:
|
||||
|
||||
Reference in New Issue
Block a user