2018-02-22 07:17:19 -08:00
|
|
|
package client
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/tendermint/go-crypto/keys"
|
|
|
|
"github.com/tendermint/go-crypto/keys/words"
|
|
|
|
dbm "github.com/tendermint/tmlibs/db"
|
|
|
|
)
|
|
|
|
|
|
|
|
// KeyDBName is the directory under root where we store the keys
|
|
|
|
const KeyDBName = "keys"
|
|
|
|
|
2018-02-22 07:49:32 -08:00
|
|
|
// GetKeyBase initializes a keybase based on the configuration
|
|
|
|
func GetKeyBase(rootDir string) (keys.Keybase, error) {
|
2018-02-22 07:17:19 -08:00
|
|
|
db, err := dbm.NewGoLevelDB(KeyDBName, rootDir)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
keybase := keys.New(
|
|
|
|
db,
|
|
|
|
words.MustLoadCodec("english"),
|
|
|
|
)
|
|
|
|
return keybase, nil
|
|
|
|
}
|
2018-02-22 07:49:32 -08:00
|
|
|
|
|
|
|
// MockKeyBase generates an in-memory keybase that will be discarded
|
|
|
|
// useful for --dry-run to generate a seed phrase without
|
|
|
|
// storing the key
|
|
|
|
func MockKeyBase() keys.Keybase {
|
|
|
|
return keys.New(
|
|
|
|
dbm.NewMemDB(),
|
|
|
|
words.MustLoadCodec("english"),
|
|
|
|
)
|
|
|
|
}
|