Cosmos PR changes (#158)

* Changes necessary for enforced custom account encoding/decoding and keyring keybase changes

* updates cosmos dependency and fixes inconsistency in gas usage for simulated/real txs

* Update PR changes

* Remove unused password prompt when using OS keyring

* Update from changes to sdk

* Update to merged PR commit :the_horns:

* updated code to handle keyring backend options

* update documentation and replace cosmos-sdk with fork (temporarily)

* update cosmos dependency from fork

* update documentation
This commit is contained in:
Austin Abell
2019-12-13 14:50:19 -05:00
committed by GitHub
parent c2646c7b18
commit ce8a94a98e
13 changed files with 342 additions and 76 deletions
+17 -4
View File
@@ -1,9 +1,12 @@
package rpc
import (
"bufio"
"fmt"
"os"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/input"
emintkeys "github.com/cosmos/cosmos-sdk/client/keys"
"github.com/cosmos/cosmos-sdk/client/lcd"
"github.com/cosmos/cosmos-sdk/codec"
@@ -49,9 +52,18 @@ func registerRoutes(rs *lcd.RestServer) {
var emintKey emintcrypto.PrivKeySecp256k1
if len(accountName) > 0 {
passphrase, err := emintkeys.GetPassphrase(accountName)
if err != nil {
panic(err)
var err error
buf := bufio.NewReader(os.Stdin)
keyringBackend := viper.GetString(flags.FlagKeyringBackend)
passphrase := ""
switch keyringBackend {
case flags.KeyringBackendOS:
break
case flags.KeyringBackendFile:
passphrase, err = input.GetPassword("Enter password to unlock key for RPC API: ", buf)
if err != nil {
panic(err)
}
}
emintKey, err = unlockKeyFromNameAndPassphrase(accountName, passphrase)
@@ -78,11 +90,12 @@ func registerRoutes(rs *lcd.RestServer) {
}
func unlockKeyFromNameAndPassphrase(accountName, passphrase string) (emintKey emintcrypto.PrivKeySecp256k1, err error) {
keybase, err := emintkeys.NewKeyBaseFromHomeFlag()
keybase, err := emintkeys.NewKeyringFromHomeFlag(os.Stdin)
if err != nil {
return
}
// With keyring keybase, password is not required as it is pulled from the OS prompt
privKey, err := keybase.ExportPrivateKeyObject(accountName, passphrase)
if err != nil {
return
+1 -1
View File
@@ -108,7 +108,7 @@ func (e *PublicEthAPI) Accounts() ([]common.Address, error) {
e.keybaseLock.Lock()
addresses := make([]common.Address, 0) // return [] instead of nil if empty
keybase, err := keys.NewKeyBaseFromHomeFlag()
keybase, err := keys.NewKeyringFromHomeFlag(e.cliCtx.Input)
if err != nil {
return addresses, err
}