Skip to content

Commit

Permalink
Revert "bump SDK commit (cosmos#324)" (cosmos#328)
Browse files Browse the repository at this point in the history
This reverts commit 5614adc.
  • Loading branch information
fedekunze authored Jun 8, 2020
1 parent 988ee53 commit 7b164a5
Show file tree
Hide file tree
Showing 11 changed files with 53 additions and 323 deletions.
16 changes: 5 additions & 11 deletions cmd/emintcli/export.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import (

"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/input"
"github.com/cosmos/cosmos-sdk/crypto"
"github.com/cosmos/cosmos-sdk/crypto/keyring"
sdk "github.com/cosmos/cosmos-sdk/types"

Expand All @@ -34,7 +33,7 @@ func unsafeExportEthKeyCommand() *cobra.Command {
func runExportCmd(cmd *cobra.Command, args []string) error {
inBuf := bufio.NewReader(cmd.InOrStdin())

keystore, err := keyring.New(
kb, err := keyring.NewKeyring(
sdk.KeyringServiceName(),
viper.GetString(flags.FlagKeyringBackend),
viper.GetString(flags.FlagHome),
Expand All @@ -55,27 +54,22 @@ func runExportCmd(cmd *cobra.Command, args []string) error {
case keyring.BackendOS:
conf, err = input.GetConfirmation(
"**WARNING** this is an unsafe way to export your unencrypted private key, are you sure?",
inBuf, cmd.ErrOrStderr())
inBuf)
}
if err != nil || !conf {
return err
}

// Exports private key from keyring using password
armored, err := keystore.ExportPrivKeyArmor(args[0], decryptPassword)
if err != nil {
return err
}

privKey, _, err := crypto.UnarmorDecryptPrivKey(armored, decryptPassword)
// Exports private key from keybase using password
privKey, err := kb.ExportPrivateKeyObject(args[0], decryptPassword)
if err != nil {
return err
}

// Converts key to Ethermint secp256 implementation
emintKey, ok := privKey.(emintcrypto.PrivKeySecp256k1)
if !ok {
return fmt.Errorf("invalid private key type %T, must be Ethereum key PrivKeySecp256k1", privKey)
return fmt.Errorf("invalid private key type, must be Ethereum key: %T", privKey)
}

// Formats key for output
Expand Down
21 changes: 13 additions & 8 deletions cmd/emintcli/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@ import (
"bufio"
"io"

"github.com/tendermint/tendermint/crypto"

"github.com/cosmos/cosmos-sdk/client/flags"
clientkeys "github.com/cosmos/cosmos-sdk/client/keys"
"github.com/cosmos/cosmos-sdk/crypto/keyring"
sdk "github.com/cosmos/cosmos-sdk/types"

ethermintcrypto "github.com/cosmos/ethermint/crypto"
emintCrypto "github.com/cosmos/ethermint/crypto"

"github.com/spf13/cobra"
"github.com/spf13/viper"
Expand Down Expand Up @@ -50,26 +52,29 @@ func keyCommands() *cobra.Command {
return cmd
}

func getKeyring(transient bool, buf io.Reader) (keyring.Keyring, error) {
func getKeybase(transient bool, buf io.Reader) (keyring.Keybase, error) {
if transient {
return keyring.NewInMemory(ethermintcrypto.EthSeckp256k1Option), nil
return keyring.NewInMemory(keyring.WithKeygenFunc(ethermintKeygenFunc)), nil
}

return keyring.New(
return keyring.NewKeyring(
sdk.KeyringServiceName(),
viper.GetString(flags.FlagKeyringBackend),
viper.GetString(flags.FlagHome),
buf,
keyring.Option(ethermintcrypto.EthSeckp256k1Option),
)
keyring.WithKeygenFunc(ethermintKeygenFunc))
}

func runAddCmd(cmd *cobra.Command, args []string) error {
inBuf := bufio.NewReader(cmd.InOrStdin())
keystore, err := getKeyring(viper.GetBool(flagDryRun), inBuf)
kb, err := getKeybase(viper.GetBool(flagDryRun), inBuf)
if err != nil {
return err
}

return clientkeys.RunAddCmd(cmd, args, keystore, inBuf)
return clientkeys.RunAddCmd(cmd, args, kb, inBuf)
}

func ethermintKeygenFunc(bz []byte, algo keyring.SigningAlgo) (crypto.PrivKey, error) {
return emintCrypto.PrivKeySecp256k1(bz), nil
}
12 changes: 6 additions & 6 deletions cmd/emintd/genaccounts.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,19 @@ func AddGenesisAccountCmd(
Short: "Add a genesis account to genesis.json",
Long: `Add a genesis account to genesis.json. The provided account must specify
the account address or key name and a list of initial coins. If a key name is given,
the address will be looked up in the local Keyring. The list of initial tokens must
the address will be looked up in the local Keybase. The list of initial tokens must
contain valid denominations. Accounts may optionally be supplied with vesting parameters.
`,
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
config := ctx.Config
config.SetRoot(viper.GetString(cli.HomeFlag))
inBuf := bufio.NewReader(cmd.InOrStdin())

addr, err := sdk.AccAddressFromBech32(args[0])
inBuf := bufio.NewReader(cmd.InOrStdin())
if err != nil {
// attempt to lookup address from keyring if no address was provided
keystore, err := keyring.New(
// attempt to lookup address from Keybase if no address was provided
kb, err := keyring.NewKeyring(
sdk.KeyringServiceName(),
viper.GetString(flags.FlagKeyringBackend),
viper.GetString(flagClientHome),
Expand All @@ -65,9 +65,9 @@ contain valid denominations. Accounts may optionally be supplied with vesting pa
return err
}

info, err := keystore.Key(args[0])
info, err := kb.Get(args[0])
if err != nil {
return fmt.Errorf("failed to get address from Keyring: %w", err)
return fmt.Errorf("failed to get address from Keybase: %w", err)
}

addr = info.GetAddress()
Expand Down
71 changes: 0 additions & 71 deletions crypto/algorithm.go

This file was deleted.

34 changes: 0 additions & 34 deletions crypto/algorithm_test.go

This file was deleted.

15 changes: 3 additions & 12 deletions crypto/codec.go
Original file line number Diff line number Diff line change
@@ -1,28 +1,19 @@
package crypto

import (
cryptoamino "github.com/tendermint/tendermint/crypto/encoding/amino"

"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/crypto/keyring"
)

// CryptoCodec defines the Ethermint crypto codec for amino encoding
var CryptoCodec = codec.New()
var cryptoCodec = codec.New()

// Amino encoding names
const (
// Amino encoding names
PrivKeyAminoName = "crypto/PrivKeySecp256k1"
PubKeyAminoName = "crypto/PubKeySecp256k1"
)

func init() {
// replace the keyring codec with the ethermint crypto codec to prevent
// amino panics because of unregistered Priv/PubKey
keyring.CryptoCdc = CryptoCodec
keyring.RegisterCodec(CryptoCodec)
cryptoamino.RegisterAmino(CryptoCodec)
RegisterCodec(CryptoCodec)
RegisterCodec(cryptoCodec)
}

// RegisterCodec registers all the necessary types with amino for the given
Expand Down
4 changes: 2 additions & 2 deletions crypto/secp256k1.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func (privkey PrivKeySecp256k1) PubKey() tmcrypto.PubKey {

// Bytes returns the raw ECDSA private key bytes.
func (privkey PrivKeySecp256k1) Bytes() []byte {
return CryptoCodec.MustMarshalBinaryBare(privkey)
return cryptoCodec.MustMarshalBinaryBare(privkey)
}

// Sign creates a recoverable ECDSA signature on the secp256k1 curve over the
Expand Down Expand Up @@ -87,7 +87,7 @@ func (key PubKeySecp256k1) Address() tmcrypto.Address {

// Bytes returns the raw bytes of the ECDSA public key.
func (key PubKeySecp256k1) Bytes() []byte {
bz, err := CryptoCodec.MarshalBinaryBare(key)
bz, err := cryptoCodec.MarshalBinaryBare(key)
if err != nil {
panic(err)
}
Expand Down
6 changes: 3 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@ require (
github.com/aristanetworks/goarista v0.0.0-20200331225509-2cc472e8fbd6 // indirect
github.com/btcsuite/btcd v0.20.1-beta // indirect
github.com/cespare/cp v1.1.1 // indirect
github.com/cosmos/cosmos-sdk v0.34.4-0.20200409144707-d10de8aad955
github.com/cosmos/cosmos-sdk v0.34.4-0.20200403200637-7f78e61b93a5
github.com/deckarep/golang-set v1.7.1 // indirect
github.com/elastic/gosigar v0.10.3 // indirect
github.com/ethereum/go-ethereum v1.9.14
github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 // indirect
github.com/gogo/protobuf v1.3.1
github.com/golangci/golangci-lint v1.23.8 // indirect
github.com/gorilla/mux v1.7.4
github.com/mattn/go-colorable v0.1.4 // indirect
github.com/onsi/ginkgo v1.11.0 // indirect
Expand All @@ -30,7 +29,8 @@ require (
github.com/tendermint/go-amino v0.15.1
github.com/tendermint/tendermint v0.33.3
github.com/tendermint/tm-db v0.5.1
github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef
golang.org/x/crypto v0.0.0-20200311171314-f7b00557c8c4
gopkg.in/yaml.v2 v2.3.0
)

replace github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.34.4-0.20200403200637-7f78e61b93a5
Loading

0 comments on commit 7b164a5

Please sign in to comment.