diff --git a/CHANGELOG.md b/CHANGELOG.md index c1fa63e5c91b..76f93f30c5f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -109,6 +109,10 @@ Every module contains its own CHANGELOG.md. Please refer to the module you are i ### API Breaking Changes +* (x/genutil) [#19926](https://github.com/cosmos/cosmos-sdk/pull/19926) Removal of the Address.String() method and related changes: + * Added an address codec as an argument to `CollectTxs`, `GenAppStateFromConfig`, and `AddGenesisAccount`. + * Removed the `ValidatorAddressCodec` argument from `CollectGenTxsCmd`, now utilizing the context for this purpose. + * Changed `ValidateAccountInGenesis` to accept a string instead of an `AccAddress`. * (server) [#19854](https://github.com/cosmos/cosmos-sdk/pull/19854) Remove `servertypes.ModuleInitFlags` types and from `server.AddCommands` as `StartCmdOptions` already achieves the same goal. * (types) [#19792](https://github.com/cosmos/cosmos-sdk/pull/19792) In `MsgSimulatorFn` `sdk.Context` argument is replaced for an `address.Codec`. It also returns an error. * (types) [#19742](https://github.com/cosmos/cosmos-sdk/pull/19742) Removes the use of `Accounts.String` diff --git a/simapp/simd/cmd/testnet.go b/simapp/simd/cmd/testnet.go index f481372f1eb3..1bc881362d66 100644 --- a/simapp/simd/cmd/testnet.go +++ b/simapp/simd/cmd/testnet.go @@ -13,7 +13,6 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" - "cosmossdk.io/core/address" "cosmossdk.io/math" "cosmossdk.io/math/unsafe" "cosmossdk.io/simapp" @@ -148,7 +147,7 @@ Example: args.numValidators, _ = cmd.Flags().GetInt(flagNumValidators) args.algo, _ = cmd.Flags().GetString(flags.FlagKeyType) - return initTestnetFiles(clientCtx, cmd, config, mm, genBalIterator, clientCtx.TxConfig.SigningContext().ValidatorAddressCodec(), args) + return initTestnetFiles(clientCtx, cmd, config, mm, genBalIterator, args) }, } @@ -209,7 +208,6 @@ func initTestnetFiles( nodeConfig *cmtconfig.Config, mm *module.Manager, genBalIterator banktypes.GenesisBalancesIterator, - valAddrCodec address.ValidatorAddressCodec, args initArgs, ) error { if args.chainID == "" { @@ -301,7 +299,7 @@ func initTestnetFiles( genBalances = append(genBalances, banktypes.Balance{Address: addr.String(), Coins: coins.Sort()}) genAccounts = append(genAccounts, authtypes.NewBaseAccount(addr, nil, 0, 0)) - valStr, err := valAddrCodec.BytesToString(sdk.ValAddress(addr)) + valStr, err := clientCtx.ValidatorAddressCodec.BytesToString(sdk.ValAddress(addr)) if err != nil { return err } @@ -360,7 +358,7 @@ func initTestnetFiles( err := collectGenFiles( clientCtx, nodeConfig, args.chainID, nodeIDs, valPubKeys, args.numValidators, - args.outputDir, args.nodeDirPrefix, args.nodeDaemonHome, genBalIterator, valAddrCodec, + args.outputDir, args.nodeDirPrefix, args.nodeDaemonHome, genBalIterator, ) if err != nil { return err @@ -417,7 +415,7 @@ func initGenFiles( func collectGenFiles( clientCtx client.Context, nodeConfig *cmtconfig.Config, chainID string, nodeIDs []string, valPubKeys []cryptotypes.PubKey, numValidators int, - outputDir, nodeDirPrefix, nodeDaemonHome string, genBalIterator banktypes.GenesisBalancesIterator, valAddrCodec address.ValidatorAddressCodec, + outputDir, nodeDirPrefix, nodeDaemonHome string, genBalIterator banktypes.GenesisBalancesIterator, ) error { var appState json.RawMessage genTime := cmttime.Now() @@ -439,7 +437,7 @@ func collectGenFiles( } nodeAppState, err := genutil.GenAppStateFromConfig(clientCtx.Codec, clientCtx.TxConfig, nodeConfig, initCfg, appGenesis, genBalIterator, genutiltypes.DefaultMessageValidator, - valAddrCodec) + clientCtx.ValidatorAddressCodec, clientCtx.AddressCodec) if err != nil { return err } diff --git a/simapp/simd/cmd/testnet_test.go b/simapp/simd/cmd/testnet_test.go index c78f3408dc9c..e5421a84e37f 100644 --- a/simapp/simd/cmd/testnet_test.go +++ b/simapp/simd/cmd/testnet_test.go @@ -47,7 +47,8 @@ func Test_TestnetCmd(t *testing.T) { require.Len(t, moduleManager.Modules, 7) home := t.TempDir() - encodingConfig := moduletestutil.MakeTestEncodingConfig(codectestutil.CodecOptions{}, auth.AppModule{}, staking.AppModule{}) + cdcOpts := codectestutil.CodecOptions{} + encodingConfig := moduletestutil.MakeTestEncodingConfig(cdcOpts, auth.AppModule{}, staking.AppModule{}) logger := log.NewNopLogger() cfg, err := genutiltest.CreateDefaultCometConfig(home) require.NoError(t, err) @@ -59,7 +60,9 @@ func Test_TestnetCmd(t *testing.T) { clientCtx := client.Context{}. WithCodec(encodingConfig.Codec). WithHomeDir(home). - WithTxConfig(encodingConfig.TxConfig) + WithTxConfig(encodingConfig.TxConfig). + WithAddressCodec(cdcOpts.GetAddressCodec()). + WithValidatorAddressCodec(cdcOpts.GetValidatorCodec()) ctx := context.Background() ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx) diff --git a/testutil/network/util.go b/testutil/network/util.go index 702c195aa404..a121e341ab56 100644 --- a/testutil/network/util.go +++ b/testutil/network/util.go @@ -150,7 +150,8 @@ func collectGenFiles(cfg Config, vals []*Validator, outputDir string) error { } appState, err := genutil.GenAppStateFromConfig(cfg.Codec, cfg.TxConfig, - cmtCfg, initCfg, appGenesis, banktypes.GenesisBalancesIterator{}, genutiltypes.DefaultMessageValidator, cfg.TxConfig.SigningContext().ValidatorAddressCodec()) + cmtCfg, initCfg, appGenesis, banktypes.GenesisBalancesIterator{}, genutiltypes.DefaultMessageValidator, + cfg.ValidatorAddressCodec, cfg.AddressCodec) if err != nil { return err } diff --git a/x/genutil/client/cli/collect.go b/x/genutil/client/cli/collect.go index 7a029f10b2e2..3983a859b18e 100644 --- a/x/genutil/client/cli/collect.go +++ b/x/genutil/client/cli/collect.go @@ -6,7 +6,6 @@ import ( "github.com/spf13/cobra" - "cosmossdk.io/core/address" "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/client" @@ -18,7 +17,7 @@ import ( const flagGenTxDir = "gentx-dir" // CollectGenTxsCmd - return the cobra command to collect genesis transactions -func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator, validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec) *cobra.Command { +func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator, validator types.MessageValidator) *cobra.Command { cmd := &cobra.Command{ Use: "collect-gentxs", Short: "Collect genesis txs and output a genesis.json file", @@ -48,7 +47,7 @@ func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator, validator ty toPrint := newPrintInfo(config.Moniker, appGenesis.ChainID, nodeID, genTxsDir, json.RawMessage("")) initCfg := types.NewInitConfig(appGenesis.ChainID, genTxsDir, nodeID, valPubKey) - appMessage, err := genutil.GenAppStateFromConfig(cdc, clientCtx.TxConfig, config, initCfg, appGenesis, genBalIterator, validator, valAddrCodec) + appMessage, err := genutil.GenAppStateFromConfig(cdc, clientCtx.TxConfig, config, initCfg, appGenesis, genBalIterator, validator, clientCtx.ValidatorAddressCodec, clientCtx.AddressCodec) if err != nil { return errors.Wrap(err, "failed to get genesis app state from config") } diff --git a/x/genutil/client/cli/commands.go b/x/genutil/client/cli/commands.go index 9bb9800d7224..5e1f671b77fc 100644 --- a/x/genutil/client/cli/commands.go +++ b/x/genutil/client/cli/commands.go @@ -32,7 +32,7 @@ func CommandsWithCustomMigrationMap(txConfig client.TxConfig, mm *module.Manager cmd.AddCommand( GenTxCmd(mm, txConfig, banktypes.GenesisBalancesIterator{}, txConfig.SigningContext().ValidatorAddressCodec()), MigrateGenesisCmd(migrationMap), - CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, gentxModule.GenTxValidator(), txConfig.SigningContext().ValidatorAddressCodec()), + CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, gentxModule.GenTxValidator()), ValidateGenesisCmd(mm), AddGenesisAccountCmd(txConfig.SigningContext().AddressCodec()), ExportCmd(appExport), diff --git a/x/genutil/client/cli/genaccount.go b/x/genutil/client/cli/genaccount.go index 2dfe5e7c7d0b..94bb3ec6f0e9 100644 --- a/x/genutil/client/cli/genaccount.go +++ b/x/genutil/client/cli/genaccount.go @@ -74,7 +74,7 @@ contain valid denominations. Accounts may optionally be supplied with vesting pa vestingAmtStr, _ := cmd.Flags().GetString(flagVestingAmt) moduleNameStr, _ := cmd.Flags().GetString(flagModuleName) - return genutil.AddGenesisAccount(clientCtx.Codec, addr, appendflag, config.GenesisFile(), args[1], vestingAmtStr, vestingStart, vestingEnd, moduleNameStr) + return genutil.AddGenesisAccount(clientCtx.Codec, clientCtx.AddressCodec, addr, appendflag, config.GenesisFile(), args[1], vestingAmtStr, vestingStart, vestingEnd, moduleNameStr) }, } diff --git a/x/genutil/client/cli/genaccount_test.go b/x/genutil/client/cli/genaccount_test.go index f269ca7d6537..51cb42a3ac0e 100644 --- a/x/genutil/client/cli/genaccount_test.go +++ b/x/genutil/client/cli/genaccount_test.go @@ -25,6 +25,10 @@ import ( func TestAddGenesisAccountCmd(t *testing.T) { _, _, addr1 := testdata.KeyTestPubAddr() + ac := codectestutil.CodecOptions{}.GetAddressCodec() + addr1Str, err := ac.BytesToString(addr1) + require.NoError(t, err) + tests := []struct { name string addr string @@ -41,14 +45,14 @@ func TestAddGenesisAccountCmd(t *testing.T) { }, { name: "valid address", - addr: addr1.String(), + addr: addr1Str, denom: "1000atom", withKeyring: false, expectErr: false, }, { name: "multiple denoms", - addr: addr1.String(), + addr: addr1Str, denom: "1000atom, 2000stake", withKeyring: false, expectErr: false, @@ -75,7 +79,7 @@ func TestAddGenesisAccountCmd(t *testing.T) { require.NoError(t, err) serverCtx := server.NewContext(viper.New(), cfg, logger) - clientCtx := client.Context{}.WithCodec(appCodec).WithHomeDir(home) + clientCtx := client.Context{}.WithCodec(appCodec).WithHomeDir(home).WithAddressCodec(ac) if tc.withKeyring { path := hd.CreateHDPath(118, 0, 0).String() diff --git a/x/genutil/client/cli/gentx.go b/x/genutil/client/cli/gentx.go index 2c44794c23f2..533c1ae0dfde 100644 --- a/x/genutil/client/cli/gentx.go +++ b/x/genutil/client/cli/gentx.go @@ -122,7 +122,11 @@ $ %s gentx my-key-name 1000000stake --home=/path/to/home/dir --keyring-backend=o if err != nil { return err } - err = genutil.ValidateAccountInGenesis(genesisState, genBalIterator, addr, coins, cdc) + strAddr, err := clientCtx.AddressCodec.BytesToString(addr) + if err != nil { + return err + } + err = genutil.ValidateAccountInGenesis(genesisState, genBalIterator, strAddr, coins, cdc) if err != nil { return errors.Wrap(err, "failed to validate account in genesis") } diff --git a/x/genutil/collect.go b/x/genutil/collect.go index f57c0202d19f..9881ade81f57 100644 --- a/x/genutil/collect.go +++ b/x/genutil/collect.go @@ -25,11 +25,11 @@ import ( // GenAppStateFromConfig gets the genesis app state from the config func GenAppStateFromConfig(cdc codec.JSONCodec, txEncodingConfig client.TxEncodingConfig, config *cfg.Config, initCfg types.InitConfig, genesis *types.AppGenesis, genBalIterator types.GenesisBalancesIterator, - validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, + validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, addressCodec address.Codec, ) (appState json.RawMessage, err error) { // process genesis transactions, else create default genesis.json appGenTxs, persistentPeers, err := CollectTxs( - cdc, txEncodingConfig.TxJSONDecoder(), config.Moniker, initCfg.GenTxsDir, genesis, genBalIterator, validator, valAddrCodec) + cdc, txEncodingConfig.TxJSONDecoder(), config.Moniker, initCfg.GenTxsDir, genesis, genBalIterator, validator, valAddrCodec, addressCodec) if err != nil { return appState, err } @@ -68,7 +68,7 @@ func GenAppStateFromConfig(cdc codec.JSONCodec, txEncodingConfig client.TxEncodi // the list of appGenTxs, and persistent peers required to generate genesis.json. func CollectTxs(cdc codec.JSONCodec, txJSONDecoder sdk.TxDecoder, moniker, genTxsDir string, genesis *types.AppGenesis, genBalIterator types.GenesisBalancesIterator, - validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, + validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, addressCodec address.Codec, ) (appGenTxs []sdk.Tx, persistentPeers string, err error) { // prepare a map of all balances in genesis state to then validate // against the validators addresses @@ -142,7 +142,10 @@ func CollectTxs(cdc codec.JSONCodec, txJSONDecoder sdk.TxDecoder, moniker, genTx return appGenTxs, persistentPeers, err } - valAccAddr := sdk.AccAddress(valAddr).String() + valAccAddr, err := addressCodec.BytesToString(valAddr) + if err != nil { + return appGenTxs, persistentPeers, err + } delBal, delOk := balancesMap[valAccAddr] if !delOk { @@ -158,7 +161,7 @@ func CollectTxs(cdc codec.JSONCodec, txJSONDecoder sdk.TxDecoder, moniker, genTx if !valOk { _, file, no, ok := runtime.Caller(1) if ok { - fmt.Printf("CollectTxs-2, called from %s#%d - %s\n", file, no, sdk.AccAddress(msg.ValidatorAddress).String()) + fmt.Printf("CollectTxs-2, called from %s#%d - %s\n", file, no, valAccAddr) } return appGenTxs, persistentPeers, fmt.Errorf("account %s balance not in genesis state: %+v", valAddr, balancesMap) } diff --git a/x/genutil/collect_test.go b/x/genutil/collect_test.go index 35bc1ae2c3d8..fd8295728ee5 100644 --- a/x/genutil/collect_test.go +++ b/x/genutil/collect_test.go @@ -62,7 +62,7 @@ func TestCollectTxsHandlesDirectories(t *testing.T) { dnc := &doNothingUnmarshalJSON{cdc} if _, _, err := genutil.CollectTxs(dnc, txDecoder, "foo", testDir, genesis, balItr, types.DefaultMessageValidator, - addresscodec.NewBech32Codec("cosmosvaloper")); err != nil { + addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")); err != nil { t.Fatal(err) } } diff --git a/x/genutil/genaccounts.go b/x/genutil/genaccounts.go index 5ece341a47de..500eb1bb132f 100644 --- a/x/genutil/genaccounts.go +++ b/x/genutil/genaccounts.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" + "cosmossdk.io/core/address" authtypes "cosmossdk.io/x/auth/types" authvesting "cosmossdk.io/x/auth/vesting/types" banktypes "cosmossdk.io/x/bank/types" @@ -23,12 +24,18 @@ import ( // and coins to be appended to the account already in the genesis.json file. func AddGenesisAccount( cdc codec.Codec, + addressCodec address.Codec, accAddr sdk.AccAddress, appendAcct bool, genesisFileURL, amountStr, vestingAmtStr string, vestingStart, vestingEnd int64, moduleName string, ) error { + addr, err := addressCodec.BytesToString(accAddr) + if err != nil { + return err + } + coins, err := sdk.ParseCoinsNormalized(amountStr) if err != nil { return fmt.Errorf("failed to parse coins: %w", err) @@ -42,7 +49,7 @@ func AddGenesisAccount( // create concrete account type based on input parameters var genAccount authtypes.GenesisAccount - balances := banktypes.Balance{Address: accAddr.String(), Coins: coins.Sort()} + balances := banktypes.Balance{Address: addr, Coins: coins.Sort()} baseAccount := authtypes.NewBaseAccount(accAddr, nil, 0, 0) if !vestingAmt.IsZero() { @@ -96,12 +103,12 @@ func AddGenesisAccount( genesisB := banktypes.GetGenesisStateFromAppState(cdc, appState) for idx, acc := range genesisB.Balances { - if acc.Address != accAddr.String() { + if acc.Address != addr { continue } updatedCoins := acc.Coins.Add(coins...) - bankGenState.Balances[idx] = banktypes.Balance{Address: accAddr.String(), Coins: updatedCoins.Sort()} + bankGenState.Balances[idx] = banktypes.Balance{Address: addr, Coins: updatedCoins.Sort()} break } } else { diff --git a/x/genutil/gentx.go b/x/genutil/gentx.go index bbb1afeef5de..714e68b2dd08 100644 --- a/x/genutil/gentx.go +++ b/x/genutil/gentx.go @@ -41,7 +41,7 @@ func SetGenTxsInAppGenesisState( // balance in the set of genesis accounts. func ValidateAccountInGenesis( appGenesisState map[string]json.RawMessage, genBalIterator types.GenesisBalancesIterator, - addr sdk.Address, coins sdk.Coins, cdc codec.JSONCodec, + addr string, coins sdk.Coins, cdc codec.JSONCodec, ) error { var stakingData stakingtypes.GenesisState cdc.MustUnmarshalJSON(appGenesisState[stakingtypes.ModuleName], &stakingData) @@ -56,7 +56,7 @@ func ValidateAccountInGenesis( accAddress := bal.GetAddress() accCoins := bal.GetCoins() // ensure that account is in genesis - if strings.EqualFold(accAddress, addr.String()) { + if strings.EqualFold(accAddress, addr) { // ensure account contains enough funds of default bond denom if coins.AmountOf(bondDenom).GT(accCoins.AmountOf(bondDenom)) { err = fmt.Errorf( diff --git a/x/genutil/gentx_test.go b/x/genutil/gentx_test.go index 862e19042364..324ce95c6093 100644 --- a/x/genutil/gentx_test.go +++ b/x/genutil/gentx_test.go @@ -53,6 +53,7 @@ type GenTxTestSuite struct { } func (suite *GenTxTestSuite) SetupTest() { + valAc := codectestutil.CodecOptions{}.GetValidatorCodec() suite.encodingConfig = moduletestutil.MakeTestEncodingConfig(codectestutil.CodecOptions{}, genutil.AppModule{}) key := storetypes.NewKVStoreKey("a_Store_Key") tkey := storetypes.NewTransientStoreKey("a_transient_store") @@ -67,11 +68,13 @@ func (suite *GenTxTestSuite) SetupTest() { var err error amount := sdk.NewInt64Coin(sdk.DefaultBondDenom, 50) one := math.OneInt() - suite.msg1, err = stakingtypes.NewMsgCreateValidator( - sdk.ValAddress(pk1.Address()).String(), pk1, amount, desc, comm, one) + pk1Addr, err := valAc.BytesToString(pk1.Address()) suite.NoError(err) - suite.msg2, err = stakingtypes.NewMsgCreateValidator( - sdk.ValAddress(pk2.Address()).String(), pk1, amount, desc, comm, one) + suite.msg1, err = stakingtypes.NewMsgCreateValidator(pk1Addr, pk1, amount, desc, comm, one) + suite.NoError(err) + pk2Addr, err := valAc.BytesToString(pk2.Address()) + suite.NoError(err) + suite.msg2, err = stakingtypes.NewMsgCreateValidator(pk2Addr, pk1, amount, desc, comm, one) suite.NoError(err) } @@ -161,8 +164,14 @@ func (suite *GenTxTestSuite) TestValidateAccountInGenesis() { var ( appGenesisState = make(map[string]json.RawMessage) coins sdk.Coins + ac = codectestutil.CodecOptions{}.GetAddressCodec() ) + addr1Str, err := ac.BytesToString(addr1) + suite.Require().NoError(err) + addr2Str, err := ac.BytesToString(addr2) + suite.Require().NoError(err) + testCases := []struct { msg string malleate func() @@ -180,7 +189,7 @@ func (suite *GenTxTestSuite) TestValidateAccountInGenesis() { func() { coins = sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 0)} balances := banktypes.Balance{ - Address: addr2.String(), + Address: addr2Str, Coins: sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 50)}, } appGenesisState[banktypes.ModuleName] = suite.setAccountBalance([]banktypes.Balance{balances}) @@ -192,7 +201,7 @@ func (suite *GenTxTestSuite) TestValidateAccountInGenesis() { func() { coins = sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 50)} balances := banktypes.Balance{ - Address: addr1.String(), + Address: addr1Str, Coins: sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 25)}, } appGenesisState[banktypes.ModuleName] = suite.setAccountBalance([]banktypes.Balance{balances}) @@ -204,7 +213,7 @@ func (suite *GenTxTestSuite) TestValidateAccountInGenesis() { func() { coins = sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 10)} balances := banktypes.Balance{ - Address: addr1.String(), + Address: addr1Str, Coins: sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 25)}, } appGenesisState[banktypes.ModuleName] = suite.setAccountBalance([]banktypes.Balance{balances}) @@ -221,10 +230,13 @@ func (suite *GenTxTestSuite) TestValidateAccountInGenesis() { suite.Require().NoError(err) appGenesisState[stakingtypes.ModuleName] = stakingGenesis + addr, err := addresscodec.NewBech32Codec("cosmos").BytesToString(addr1) + suite.Require().NoError(err) + tc.malleate() err = genutil.ValidateAccountInGenesis( appGenesisState, banktypes.GenesisBalancesIterator{}, - addr1, coins, cdc, + addr, coins, cdc, ) if tc.expPass { diff --git a/x/genutil/types/genesis_state_test.go b/x/genutil/types/genesis_state_test.go index bb97c2f00c85..b5741bef7f81 100644 --- a/x/genutil/types/genesis_state_test.go +++ b/x/genutil/types/genesis_state_test.go @@ -41,11 +41,16 @@ func TestNetGenesisState(t *testing.T) { func TestValidateGenesisMultipleMessages(t *testing.T) { desc := stakingtypes.NewDescription("testname", "", "", "", "") comm := stakingtypes.CommissionRates{} + valAc := codectestutil.CodecOptions{}.GetValidatorCodec() - msg1, err := stakingtypes.NewMsgCreateValidator(sdk.ValAddress(pk1.Address()).String(), pk1, sdk.NewInt64Coin(sdk.DefaultBondDenom, 50), desc, comm, math.OneInt()) + pk1Addr, err := valAc.BytesToString(pk1.Address()) + require.NoError(t, err) + msg1, err := stakingtypes.NewMsgCreateValidator(pk1Addr, pk1, sdk.NewInt64Coin(sdk.DefaultBondDenom, 50), desc, comm, math.OneInt()) require.NoError(t, err) - msg2, err := stakingtypes.NewMsgCreateValidator(sdk.ValAddress(pk2.Address()).String(), pk2, + pk2Addr, err := valAc.BytesToString(pk2.Address()) + require.NoError(t, err) + msg2, err := stakingtypes.NewMsgCreateValidator(pk2Addr, pk2, sdk.NewInt64Coin(sdk.DefaultBondDenom, 50), desc, comm, math.OneInt()) require.NoError(t, err) @@ -62,12 +67,13 @@ func TestValidateGenesisMultipleMessages(t *testing.T) { func TestValidateGenesisBadMessage(t *testing.T) { desc := stakingtypes.NewDescription("testname", "", "", "", "") - - msg1 := stakingtypes.NewMsgEditValidator(sdk.ValAddress(pk1.Address()).String(), desc, nil, nil) + pk1Addr, err := codectestutil.CodecOptions{}.GetValidatorCodec().BytesToString(pk1.Address()) + require.NoError(t, err) + msg1 := stakingtypes.NewMsgEditValidator(pk1Addr, desc, nil, nil) txConfig := moduletestutil.MakeTestEncodingConfig(codectestutil.CodecOptions{}, staking.AppModule{}, genutil.AppModule{}).TxConfig txBuilder := txConfig.NewTxBuilder() - err := txBuilder.SetMsgs(msg1) + err = txBuilder.SetMsgs(msg1) require.NoError(t, err) tx := txBuilder.GetTx()