Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: multisig works with only multisig name as argument, not its address #11197

Merged
merged 28 commits into from
Mar 10, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
2659618
fix keys show cmd
likhita-809 Feb 11, 2022
f1a139a
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Feb 14, 2022
2565d02
wip: fix something
likhita-809 Feb 14, 2022
05e510c
nit
likhita-809 Feb 15, 2022
3fa7ec8
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Feb 15, 2022
5bbcc88
fix for sign-batch
likhita-809 Feb 15, 2022
276ebe6
add changelog
likhita-809 Feb 15, 2022
be8c9da
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Feb 17, 2022
2aab6d3
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Feb 18, 2022
b014b54
remove unnecessary changes
likhita-809 Feb 28, 2022
1f32736
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Feb 28, 2022
1055363
wip
likhita-809 Mar 4, 2022
da0713b
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Mar 4, 2022
cb07544
nit: improvement
likhita-809 Mar 4, 2022
175e107
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Mar 4, 2022
734e35d
add tests adn changelog
likhita-809 Mar 4, 2022
1e4ff4d
nit
likhita-809 Mar 4, 2022
b2194a4
create a separate test for signing with multisig
likhita-809 Mar 4, 2022
cd692e3
fix tests
likhita-809 Mar 4, 2022
bbb421b
fix something
likhita-809 Mar 4, 2022
2c010c7
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Mar 4, 2022
b6d1505
add comments in test
likhita-809 Mar 4, 2022
3f08f9b
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Mar 7, 2022
d85ff72
Merge branch 'master' of https://github.com/cosmos/cosmos-sdk into li…
likhita-809 Mar 9, 2022
eadf162
check for err
likhita-809 Mar 9, 2022
33c34fb
Merge branch 'master' into likhita/fix-multisig
tac0turtle Mar 9, 2022
06bb4d7
Merge branch 'master' into likhita/fix-multisig
likhita-809 Mar 10, 2022
dcf8553
Merge branch 'master' into likhita/fix-multisig
mergify[bot] Mar 10, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions client/keys/show.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package keys
import (
"errors"
"fmt"
"strings"

"github.com/spf13/cobra"
"github.com/tendermint/tendermint/libs/cli"
Expand Down Expand Up @@ -166,23 +165,20 @@ func runShowCmd(cmd *cobra.Command, args []string) (err error) {
func fetchKey(kb keyring.Keyring, keyref string) (*keyring.Record, error) {
// firstly check if the keyref is a key name of a key registered in a keyring.
k, err := kb.Key(keyref)
if (strings.HasPrefix(keyref, sdk.Bech32PrefixAccAddr)) && (len(keyref) > 6) {
accAddr, err := sdk.AccAddressFromBech32(keyref)
if err != nil {
return k, err
}

k, err = kb.KeyByAddress(accAddr)
return k, sdkerr.Wrap(err, "Invalid key")
}
blushi marked this conversation as resolved.
Show resolved Hide resolved
// if the key is not there or if we have a problem with a keyring itself then we move to a
// fallback: searching for key by address.

if err == nil || !sdkerr.IsOf(err, sdkerr.ErrIO, sdkerr.ErrKeyNotFound) {
return k, err
}
return k, err

accAddr, err := sdk.AccAddressFromBech32(keyref)
if err != nil {
return k, err
}

k, err = kb.KeyByAddress(accAddr)
return k, sdkerr.Wrap(err, "Invalid key")
}

func validateMultisigThreshold(k, nKeys int) error {
Expand Down
4 changes: 1 addition & 3 deletions crypto/keyring/keyring.go
Original file line number Diff line number Diff line change
Expand Up @@ -890,9 +890,7 @@ func (ks keystore) MigrateAll() (bool, error) {

// migrate converts keyring.Item from amino to proto serialization format.
func (ks keystore) migrate(key string) (*Record, bool, error) {
if ((strings.HasPrefix(key, sdk.Bech32PrefixAccAddr)) && (len(key) == 6)) || (strings.HasSuffix(key, infoSuffix) && len(key) == 4) {
key = infoKey(key)
} else if !(strings.HasSuffix(key, infoSuffix)) && !(strings.HasPrefix(key, sdk.Bech32PrefixAccAddr)) {
if !(strings.HasSuffix(key, infoSuffix)) && !(strings.HasPrefix(key, sdk.Bech32PrefixAccAddr)) {
blushi marked this conversation as resolved.
Show resolved Hide resolved
key = infoKey(key)
}
item, err := ks.db.Get(key)
Expand Down
12 changes: 9 additions & 3 deletions x/auth/client/cli/tx_sign.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/tx"
sdk "github.com/cosmos/cosmos-sdk/types"
authclient "github.com/cosmos/cosmos-sdk/x/auth/client"
)

Expand Down Expand Up @@ -240,10 +241,15 @@ func makeSignCmd() func(cmd *cobra.Command, args []string) error {
}

overwrite, _ := f.GetBool(flagOverwrite)
var multisigAddr sdk.AccAddress
if multisig != "" {
multisigAddr, _, _, err := client.GetFromFields(txFactory.Keybase(), multisig, clientCtx.GenerateOnly)
if err != nil {
return fmt.Errorf("error getting account from keybase: %w", err)
if multisigAddr, err = sdk.AccAddressFromBech32(multisig); err != nil {
likhita-809 marked this conversation as resolved.
Show resolved Hide resolved
if err != nil {
multisigAddr, _, _, err = client.GetFromFields(txFactory.Keybase(), multisig, clientCtx.GenerateOnly)
if err != nil {
return fmt.Errorf("error getting account from keybase: %w", err)
}
}
}
err = authclient.SignTxWithSignerAddress(
txF, clientCtx, multisigAddr, fromName, txBuilder, clientCtx.Offline, overwrite)
Expand Down