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 21 commits
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ Ref: https://keepachangelog.com/en/1.0.0/

### Bug Fixes

* [\#11197](https://github.com/cosmos/cosmos-sdk/pull/11197) Signing with multisig now works with multisig address which is not in the keyring.
* (makefile) [\#11285](https://github.com/cosmos/cosmos-sdk/pull/11285) Fix lint-fix make target.
* (client) [\#11283](https://github.com/cosmos/cosmos-sdk/issues/11283) Support multiple keys for tx simulation and setting automatic gas for txs.
* (store) [\#11177](https://github.com/cosmos/cosmos-sdk/pull/11177) Update the prune `everything` strategy to store the last two heights.
Expand Down
9 changes: 7 additions & 2 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 @@ -241,9 +242,13 @@ func makeSignCmd() func(cmd *cobra.Command, args []string) error {

overwrite, _ := f.GetBool(flagOverwrite)
if multisig != "" {
multisigAddr, _, _, err := client.GetFromFields(txFactory.Keybase(), multisig, clientCtx.GenerateOnly)
multisigAddr, err := sdk.AccAddressFromBech32(multisig)
if err != nil {
return fmt.Errorf("error getting account from keybase: %w", err)
// Bech32 decode error, maybe it's a name, we try to fetch from keyring
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
38 changes: 38 additions & 0 deletions x/auth/client/testutil/suite.go
Original file line number Diff line number Diff line change
Expand Up @@ -971,6 +971,44 @@ func (s *IntegrationTestSuite) TestCLIMultisignSortSignatures() {
s.Require().NoError(s.network.WaitForNextBlock())
}

func (s *IntegrationTestSuite) TestSignWithMultisig() {
val1 := s.network.Validators[0]

// Generate a account for signing.
account1, err := val1.ClientCtx.Keyring.Key("newAccount1")
s.Require().NoError(err)

addr1, err := account1.GetAddress()
s.Require().NoError(err)

// Create a multisig address that is not in the keyring.
amaury1093 marked this conversation as resolved.
Show resolved Hide resolved
multisig := "cosmos1hd6fsrvnz6qkp87s3u86ludegq97agxsdkwzyh"
multisigAddr, err := sdk.AccAddressFromBech32(multisig)
s.Require().NoError(err)

// Generate a transaction for testing --multisig with an address not in the keyring.
multisigTx, err := bankcli.MsgSendExec(
val1.ClientCtx,
val1.Address,
val1.Address,
sdk.NewCoins(
sdk.NewInt64Coin(s.cfg.BondDenom, 5),
),
fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync),
fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdk.NewInt(10))).String()),
fmt.Sprintf("--%s=true", flags.FlagGenerateOnly),
)
s.Require().NoError(err)

// Save multi tx to file
multiGeneratedTx2File := testutil.WriteToNewTempFile(s.T(), multisigTx.String())

// Sign using multisig
amaury1093 marked this conversation as resolved.
Show resolved Hide resolved
_, _ = TxSignExec(val1.ClientCtx, addr1, multiGeneratedTx2File.Name(), "--multisig", multisigAddr.String())
likhita-809 marked this conversation as resolved.
Show resolved Hide resolved
s.Require().NoError(err)
}

func (s *IntegrationTestSuite) TestCLIMultisign() {
val1 := s.network.Validators[0]

Expand Down