Skip to content

Commit

Permalink
revert API breaking changes
Browse files Browse the repository at this point in the history
  • Loading branch information
amaury1093 committed Oct 14, 2021
1 parent bac6349 commit 5bdbbf3
Show file tree
Hide file tree
Showing 30 changed files with 66 additions and 68 deletions.
1 change: 0 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@ Ref: https://keepachangelog.com/en/1.0.0/
* Move Msg routers from BaseApp to middlewares.
* Move Baseapp panic recovery into a middleware.
* Rename simulation helper methods `baseapp.{Check,Deliver}` to `baseapp.Sim{Check,Deliver}`.
* [\#10322](https://github.com/cosmos/cosmos-sdk/pull/10322) The `tx.NewTxConfig` function takes a new parameter of type `address.Codec` used to encode and decode addresses. As such, a new field `AddressCdc` has been added to `simapp.EncodingConfig`.

### Client Breaking Changes

Expand Down
2 changes: 1 addition & 1 deletion client/tx/legacy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ type TestSuite struct {
func (s *TestSuite) SetupSuite() {
encCfg := simapp.MakeTestEncodingConfig()
s.encCfg = encCfg
s.protoCfg = tx.NewTxConfig(codec.NewProtoCodec(encCfg.InterfaceRegistry), tx.DefaultSignModes, s.encCfg.AddressCdc)
s.protoCfg = tx.NewTxConfig(codec.NewProtoCodec(encCfg.InterfaceRegistry), tx.DefaultSignModes)
s.aminoCfg = legacytx.StdTxConfig{Cdc: encCfg.Amino}
}

Expand Down
14 changes: 14 additions & 0 deletions client/tx/tx.go
Original file line number Diff line number Diff line change
Expand Up @@ -207,10 +207,24 @@ func Sign(txf Factory, name string, txBuilder client.TxBuilder, overwriteSig boo
return err
}

pubkeys, err := txBuilder.GetTx().GetPubKeys()
if err != nil {
return err
}

signerIndex := 0
for i, p := range pubkeys {
if p.Equals(pubKey) {
signerIndex = i
break
}
}

signerData := authsigning.SignerData{
ChainID: txf.chainID,
AccountNumber: txf.accountNumber,
Sequence: txf.sequence,
SignerIndex: signerIndex,
Address: sdk.AccAddress(pubKey.Address()).String(),
}

Expand Down
3 changes: 1 addition & 2 deletions server/rosetta/client_online.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
grpctypes "github.com/cosmos/cosmos-sdk/types/grpc"
"github.com/cosmos/cosmos-sdk/version"
"github.com/cosmos/cosmos-sdk/x/auth/address"
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
auth "github.com/cosmos/cosmos-sdk/x/auth/types"
bank "github.com/cosmos/cosmos-sdk/x/bank/types"
Expand Down Expand Up @@ -56,7 +55,7 @@ func NewClient(cfg *Config) (*Client, error) {
v = "unknown"
}

txConfig := authtx.NewTxConfig(cfg.Codec, authtx.DefaultSignModes, address.NewBech32Codec(sdk.Bech32MainPrefix))
txConfig := authtx.NewTxConfig(cfg.Codec, authtx.DefaultSignModes)

var supportedOperations []string
for _, ii := range cfg.InterfaceRegistry.ListImplementations(sdk.MsgInterfaceProtoName) {
Expand Down
1 change: 1 addition & 0 deletions server/rosetta/converter.go
Original file line number Diff line number Diff line change
Expand Up @@ -726,6 +726,7 @@ func (c converter) SigningComponents(tx authsigning.Tx, metadata *ConstructionMe
ChainID: metadata.ChainID,
AccountNumber: metadata.SignersData[i].AccountNumber,
Sequence: metadata.SignersData[i].Sequence,
SignerIndex: i,
}

// get signature bytes
Expand Down
3 changes: 1 addition & 2 deletions server/rosetta/converter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (

abci "github.com/tendermint/tendermint/abci/types"

"github.com/cosmos/cosmos-sdk/x/auth/address"
authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing"

"github.com/cosmos/cosmos-sdk/client"
Expand Down Expand Up @@ -45,7 +44,7 @@ func (s *ConverterTestSuite) SetupTest() {
s.unsignedTxBytes = unsignedTxBytes
// instantiate converter
cdc, ir := rosetta.MakeCodec()
txConfig := authtx.NewTxConfig(cdc, authtx.DefaultSignModes, address.NewBech32Codec(sdk.Bech32MainPrefix))
txConfig := authtx.NewTxConfig(cdc, authtx.DefaultSignModes)
s.c = rosetta.NewConverter(cdc, ir, txConfig)
// add utils
s.ir = ir
Expand Down
1 change: 1 addition & 0 deletions simapp/helpers/test_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ func GenTx(gen client.TxConfig, msgs []sdk.Msg, feeAmt sdk.Coins, gas uint64, ch
ChainID: chainID,
AccountNumber: accNums[i],
Sequence: accSeqs[i],
SignerIndex: i,
}
signBytes, err := gen.SignModeHandler().GetSignBytes(signMode, signerData, tx.GetTx())
if err != nil {
Expand Down
2 changes: 0 additions & 2 deletions simapp/params/amino.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,8 @@ func MakeTestEncodingConfig() EncodingConfig {
cdc := codec.NewLegacyAmino()
interfaceRegistry := types.NewInterfaceRegistry()
marshaler := codec.NewAminoCodec(cdc)
addressCdc := address.NewBech32Codec(sdk.Bech32MainPrefix)

return EncodingConfig{
AddressCdc: addressCdc,
InterfaceRegistry: interfaceRegistry,
Marshaler: marshaler,
TxConfig: legacytx.StdTxConfig{Cdc: cdc},
Expand Down
2 changes: 0 additions & 2 deletions simapp/params/encoding.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,11 @@ import (
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/x/auth/address"
)

// EncodingConfig specifies the concrete encoding types to use for a given app.
// This is provided for compatibility between protobuf and amino implementations.
type EncodingConfig struct {
AddressCdc address.Codec
InterfaceRegistry types.InterfaceRegistry
Codec codec.Codec
TxConfig client.TxConfig
Expand Down
6 changes: 1 addition & 5 deletions simapp/params/proto.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ package params
import (
"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/codec/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/auth/address"
"github.com/cosmos/cosmos-sdk/x/auth/tx"
)

Expand All @@ -19,13 +17,11 @@ func MakeTestEncodingConfig() EncodingConfig {
cdc := codec.NewLegacyAmino()
interfaceRegistry := types.NewInterfaceRegistry()
codec := codec.NewProtoCodec(interfaceRegistry)
addressCdc := address.NewBech32Codec(sdk.Bech32MainPrefix)

return EncodingConfig{
AddressCdc: addressCdc,
InterfaceRegistry: interfaceRegistry,
Codec: codec,
TxConfig: tx.NewTxConfig(codec, tx.DefaultSignModes, addressCdc),
TxConfig: tx.NewTxConfig(codec, tx.DefaultSignModes),
Amino: cdc,
}
}
File renamed without changes.
2 changes: 2 additions & 0 deletions x/auth/client/cli/tx_multisign.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ func makeMultiSignCmd() func(cmd *cobra.Command, args []string) (err error) {
ChainID: txFactory.ChainID(),
AccountNumber: txFactory.AccountNumber(),
Sequence: txFactory.Sequence(),
SignerIndex: i,
}

err = signing.VerifySignature(sig.PubKey, signingData, sig.Data, txCfg.SignModeHandler(), txBuilder.GetTx())
Expand Down Expand Up @@ -328,6 +329,7 @@ func makeBatchMultisignCmd() func(cmd *cobra.Command, args []string) error {
ChainID: txFactory.ChainID(),
AccountNumber: txFactory.AccountNumber(),
Sequence: txFactory.Sequence(),
SignerIndex: i,
}

for _, sig := range signatureBatch {
Expand Down
1 change: 1 addition & 0 deletions x/auth/client/cli/validate_sigs.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ func printAndValidateSigs(
ChainID: chainID,
AccountNumber: accNum,
Sequence: accSeq,
SignerIndex: i,
}
err = authsigning.VerifySignature(pubKey, signingData, sig.Data, signModeHandler, sigTx)
if err != nil {
Expand Down
23 changes: 12 additions & 11 deletions x/auth/address/bech32.go → x/auth/keeper/bech32_codec.go
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@
package address
package keeper

import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/address"
"github.com/cosmos/cosmos-sdk/types/bech32"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)

// Bech32Codec is a address.Codec based on bech32 encoding.
type Bech32Codec struct {
Bech32Prefix string
// bech32Codec is a address.Codec based on bech32 encoding.
type bech32Codec struct {
bech32Prefix string
}

var _ Codec = &Bech32Codec{}
var _ address.Codec = &bech32Codec{}

// NewBech32Codec creates a new address.Codec based on bech32 encoding.
func NewBech32Codec(prefix string) Codec {
return Bech32Codec{prefix}
func newBech32Codec(prefix string) address.Codec {
return bech32Codec{prefix}
}

// StringToBytes encodes text to bytes.
func (bc Bech32Codec) StringToBytes(text string) ([]byte, error) {
func (bc bech32Codec) StringToBytes(text string) ([]byte, error) {
hrp, bz, err := bech32.DecodeAndConvert(text)
if err != nil {
return nil, err
}

if hrp != bc.Bech32Prefix {
if hrp != bc.bech32Prefix {
return nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "hrp does not match bech32Prefix")
}

Expand All @@ -37,8 +38,8 @@ func (bc Bech32Codec) StringToBytes(text string) ([]byte, error) {
}

// BytesToString decodes bytes to text.
func (bc Bech32Codec) BytesToString(bz []byte) (string, error) {
text, err := bech32.ConvertAndEncode(bc.Bech32Prefix, bz)
func (bc bech32Codec) BytesToString(bz []byte) (string, error) {
text, err := bech32.ConvertAndEncode(bc.bech32Prefix, bz)
if err != nil {
return "", err
}
Expand Down
8 changes: 4 additions & 4 deletions x/auth/keeper/keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import (
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/address"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/cosmos/cosmos-sdk/x/auth/address"
"github.com/cosmos/cosmos-sdk/x/auth/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
)
Expand Down Expand Up @@ -86,7 +86,7 @@ func NewAccountKeeper(
permAddrs[name] = types.NewPermissionsForAddress(name, perms)
}

bech32Codec := address.NewBech32Codec(bech32Prefix)
bech32Codec := newBech32Codec(bech32Prefix)

return AccountKeeper{
key: key,
Expand Down Expand Up @@ -246,10 +246,10 @@ func (ak AccountKeeper) GetCodec() codec.BinaryCodec { return ak.cdc }

// add getter for bech32Prefix
func (ak AccountKeeper) getBech32Prefix() (string, error) {
bech32Codec, ok := ak.addressCdc.(address.Bech32Codec)
bech32Codec, ok := ak.addressCdc.(bech32Codec)
if !ok {
return "", errors.New("unable cast addressCdc to bech32Codec")
}

return bech32Codec.Bech32Prefix, nil
return bech32Codec.bech32Prefix, nil
}
4 changes: 2 additions & 2 deletions x/auth/middleware/feegrant_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/simulation"
"github.com/cosmos/cosmos-sdk/types/tx/signing"
"github.com/cosmos/cosmos-sdk/x/auth/address"
"github.com/cosmos/cosmos-sdk/x/auth/middleware"
authsign "github.com/cosmos/cosmos-sdk/x/auth/signing"
"github.com/cosmos/cosmos-sdk/x/auth/tx"
Expand All @@ -29,7 +28,7 @@ func (s *MWTestSuite) TestDeductFeesNoDelegation() {
ctx := s.SetupTest(false) // setup
app := s.app

protoTxCfg := tx.NewTxConfig(codec.NewProtoCodec(app.InterfaceRegistry()), tx.DefaultSignModes, address.NewBech32Codec(sdk.Bech32MainPrefix))
protoTxCfg := tx.NewTxConfig(codec.NewProtoCodec(app.InterfaceRegistry()), tx.DefaultSignModes)

txHandler := middleware.ComposeMiddlewares(
noopTxHandler{},
Expand Down Expand Up @@ -217,6 +216,7 @@ func genTxWithFeeGranter(gen client.TxConfig, msgs []sdk.Msg, feeAmt sdk.Coins,
ChainID: chainID,
AccountNumber: accNums[i],
Sequence: accSeqs[i],
SignerIndex: i,
}
signBytes, err := gen.SignModeHandler().GetSignBytes(signMode, signerData, tx.GetTx())
if err != nil {
Expand Down
1 change: 1 addition & 0 deletions x/auth/middleware/sigverify.go
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,7 @@ func (svm sigVerificationTxHandler) sigVerify(ctx context.Context, sdkTx sdk.Tx,
ChainID: chainID,
AccountNumber: accNum,
Sequence: acc.GetSequence(),
SignerIndex: i,
}

if !simulate {
Expand Down
1 change: 1 addition & 0 deletions x/auth/middleware/testutil_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ func (s *MWTestSuite) createTestTx(txBuilder client.TxBuilder, privs []cryptotyp
ChainID: chainID,
AccountNumber: accNums[i],
Sequence: accSeqs[i],
SignerIndex: i,
}
sigV2, err := tx.SignWithPrivKey(
s.clientCtx.TxConfig.SignModeHandler().DefaultMode(), signerData,
Expand Down
1 change: 1 addition & 0 deletions x/auth/migrations/legacytx/amino_signing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ func TestLegacyAminoJSONHandler_GetSignBytes(t *testing.T) {
ChainID: chainId,
AccountNumber: accNum,
Sequence: seqNum,
SignerIndex: 0,
}
signBz, err := handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx)
require.NoError(t, err)
Expand Down
1 change: 1 addition & 0 deletions x/auth/signing/handler_map_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ func TestHandlerMap_GetSignBytes(t *testing.T) {
ChainID: chainId,
AccountNumber: accNum,
Sequence: seqNum,
SignerIndex: 0,
}
signBz, err := handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx)
require.NoError(t, err)
Expand Down
2 changes: 2 additions & 0 deletions x/auth/signing/sign_mode_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,6 @@ type SignerData struct {
// since in SIGN_MODE_DIRECT the account sequence is already in the signer
// info.
Sequence uint64

SignerIndex int
}
1 change: 1 addition & 0 deletions x/auth/signing/verify_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ func TestVerifySignature(t *testing.T) {
ChainID: chainId,
AccountNumber: acc.GetAccountNumber(),
Sequence: acc.GetSequence(),
SignerIndex: 0,
}
signBytes := legacytx.StdSignBytes(signerData.ChainID, signerData.AccountNumber, signerData.Sequence, 10, fee, msgs, memo)
signature, err := priv.Sign(signBytes)
Expand Down
2 changes: 2 additions & 0 deletions x/auth/testutil/suite.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ func (s *TxConfigTestSuite) TestTxBuilderSetSignatures() {
ChainID: "test",
AccountNumber: 1,
Sequence: seq1,
SignerIndex: 0,
}
signBytes, err := signModeHandler.GetSignBytes(signModeHandler.DefaultMode(), signerData, sigTx)
s.Require().NoError(err)
Expand All @@ -142,6 +143,7 @@ func (s *TxConfigTestSuite) TestTxBuilderSetSignatures() {
ChainID: "test",
AccountNumber: 3,
Sequence: mseq,
SignerIndex: 0,
}
mSignBytes, err := signModeHandler.GetSignBytes(signModeHandler.DefaultMode(), signerData, sigTx)
s.Require().NoError(err)
Expand Down
5 changes: 2 additions & 3 deletions x/auth/tx/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
signingtypes "github.com/cosmos/cosmos-sdk/types/tx/signing"
"github.com/cosmos/cosmos-sdk/x/auth/address"
"github.com/cosmos/cosmos-sdk/x/auth/signing"
)

Expand All @@ -22,9 +21,9 @@ type config struct {

// NewTxConfig returns a new protobuf TxConfig using the provided ProtoCodec and sign modes. The
// first enabled sign mode will become the default sign mode.
func NewTxConfig(protoCodec codec.ProtoCodecMarshaler, enabledSignModes []signingtypes.SignMode, addressCdc address.Codec) client.TxConfig {
func NewTxConfig(protoCodec codec.ProtoCodecMarshaler, enabledSignModes []signingtypes.SignMode) client.TxConfig {
return &config{
handler: makeSignModeHandler(enabledSignModes, addressCdc),
handler: makeSignModeHandler(enabledSignModes),
decoder: DefaultTxDecoder(protoCodec),
encoder: DefaultTxEncoder(),
jsonDecoder: DefaultJSONTxDecoder(protoCodec),
Expand Down
2 changes: 1 addition & 1 deletion x/auth/tx/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ func TestGenerator(t *testing.T) {
std.RegisterInterfaces(interfaceRegistry)
interfaceRegistry.RegisterImplementations((*sdk.Msg)(nil), &testdata.TestMsg{})
protoCodec := codec.NewProtoCodec(interfaceRegistry)
suite.Run(t, testutil.NewTxConfigTestSuite(NewTxConfig(protoCodec, DefaultSignModes, nil)))
suite.Run(t, testutil.NewTxConfigTestSuite(NewTxConfig(protoCodec, DefaultSignModes)))
}
Loading

0 comments on commit 5bdbbf3

Please sign in to comment.