From c807aaede8b1cffb4ac26a8ea514ea88ee25d268 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 14 Mar 2024 09:19:15 -0500 Subject: [PATCH] refactor!: mv AddressCodecs aliases from runtime -> core (#19747) Co-authored-by: Marko --- CHANGELOG.md | 1 + baseapp/utils_test.go | 5 ++--- client/v2/autocli/flag/builder.go | 6 ++---- core/address/codec.go | 8 ++++++++ crypto/armor_test.go | 6 +++--- crypto/keys/multisig/multisig_test.go | 6 +++--- runtime/module.go | 18 +++++------------- simapp/app_test.go | 9 ++++----- simapp/simd/cmd/root_di.go | 5 ++--- simapp/simd/cmd/testnet.go | 6 +++--- testutil/network/network.go | 8 ++++---- x/auth/tx/config/depinject.go | 2 +- x/genutil/client/cli/collect.go | 4 ++-- x/genutil/collect.go | 6 +++--- x/staking/depinject.go | 6 +++--- 15 files changed, 46 insertions(+), 50 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32447138ff..38c0cb0611 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -150,6 +150,7 @@ Every module contains its own CHANGELOG.md. Please refer to the module you are i * (types) [#19627](https://github.com/cosmos/cosmos-sdk/pull/19627) and [#19735](https://github.com/cosmos/cosmos-sdk/pull/19735) All genesis interfaces now don't take `codec.JsonCodec`. * Every module has the codec already, passing it created an unneeded dependency. * Additionally, to reflect this change, the module manager does not take a codec either. +* (runtime) [#19747](https://github.com/cosmos/cosmos-sdk/pull/19747) `runtime.ValidatorAddressCodec` and `runtime.ConsensusAddressCodec` have been moved to `core`. ### Client Breaking Changes diff --git a/baseapp/utils_test.go b/baseapp/utils_test.go index acf9d84b10..8369a42975 100644 --- a/baseapp/utils_test.go +++ b/baseapp/utils_test.go @@ -33,7 +33,6 @@ import ( "github.com/cosmos/cosmos-sdk/client" addresscodec "github.com/cosmos/cosmos-sdk/codec/address" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/testutil/testdata" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -47,8 +46,8 @@ func makeMinimalConfig() depinject.Config { var ( mempoolOpt = baseapp.SetMempool(mempool.NewSenderNonceMempool()) addressCodec = func() address.Codec { return addresscodec.NewBech32Codec("cosmos") } - validatorAddressCodec = func() runtime.ValidatorAddressCodec { return addresscodec.NewBech32Codec("cosmosvaloper") } - consensusAddressCodec = func() runtime.ConsensusAddressCodec { return addresscodec.NewBech32Codec("cosmosvalcons") } + validatorAddressCodec = func() address.ValidatorAddressCodec { return addresscodec.NewBech32Codec("cosmosvaloper") } + consensusAddressCodec = func() address.ConsensusAddressCodec { return addresscodec.NewBech32Codec("cosmosvalcons") } ) return depinject.Configs( diff --git a/client/v2/autocli/flag/builder.go b/client/v2/autocli/flag/builder.go index 2fe5eb7242..a48978b3b7 100644 --- a/client/v2/autocli/flag/builder.go +++ b/client/v2/autocli/flag/builder.go @@ -20,8 +20,6 @@ import ( "cosmossdk.io/client/v2/internal/flags" "cosmossdk.io/client/v2/internal/util" "cosmossdk.io/core/address" - - "github.com/cosmos/cosmos-sdk/runtime" ) const ( @@ -55,8 +53,8 @@ type Builder struct { // Address Codecs are the address codecs to use for client/v2. AddressCodec address.Codec - ValidatorAddressCodec runtime.ValidatorAddressCodec - ConsensusAddressCodec runtime.ConsensusAddressCodec + ValidatorAddressCodec address.ValidatorAddressCodec + ConsensusAddressCodec address.ConsensusAddressCodec } func (b *Builder) init() { diff --git a/core/address/codec.go b/core/address/codec.go index 5f20690cbc..c1b62f596b 100644 --- a/core/address/codec.go +++ b/core/address/codec.go @@ -7,3 +7,11 @@ type Codec interface { // BytesToString encodes bytes to text BytesToString(bz []byte) (string, error) } + +type ( + // ValidatorAddressCodec is an alias for address.Codec for validator addresses. + ValidatorAddressCodec Codec + + // ConsensusAddressCodec is an alias for address.Codec for validator consensus addresses. + ConsensusAddressCodec Codec +) diff --git a/crypto/armor_test.go b/crypto/armor_test.go index f774165ae4..45c16bfcc5 100644 --- a/crypto/armor_test.go +++ b/crypto/armor_test.go @@ -25,7 +25,7 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" "github.com/cosmos/cosmos-sdk/crypto/xsalsa20symmetric" - "github.com/cosmos/cosmos-sdk/runtime" + _ "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/testutil/configurator" "github.com/cosmos/cosmos-sdk/types" ) @@ -84,8 +84,8 @@ func TestArmorUnarmorPubKey(t *testing.T) { configurator.NewAppConfig(), depinject.Supply(log.NewNopLogger(), func() address.Codec { return addresscodec.NewBech32Codec("cosmos") }, - func() runtime.ValidatorAddressCodec { return addresscodec.NewBech32Codec("cosmosvaloper") }, - func() runtime.ConsensusAddressCodec { return addresscodec.NewBech32Codec("cosmosvalcons") }, + func() address.ValidatorAddressCodec { return addresscodec.NewBech32Codec("cosmosvaloper") }, + func() address.ConsensusAddressCodec { return addresscodec.NewBech32Codec("cosmosvalcons") }, ), ), &cdc) require.NoError(t, err) diff --git a/crypto/keys/multisig/multisig_test.go b/crypto/keys/multisig/multisig_test.go index e85a83b350..e8e75a61ab 100644 --- a/crypto/keys/multisig/multisig_test.go +++ b/crypto/keys/multisig/multisig_test.go @@ -20,7 +20,7 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" "github.com/cosmos/cosmos-sdk/crypto/types/multisig" - "github.com/cosmos/cosmos-sdk/runtime" + _ "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/testutil/configurator" "github.com/cosmos/cosmos-sdk/types/tx/signing" ) @@ -363,8 +363,8 @@ func TestDisplay(t *testing.T) { configurator.NewAppConfig(), depinject.Supply(log.NewNopLogger(), func() address.Codec { return addresscodec.NewBech32Codec("cosmos") }, - func() runtime.ValidatorAddressCodec { return addresscodec.NewBech32Codec("cosmosvaloper") }, - func() runtime.ConsensusAddressCodec { return addresscodec.NewBech32Codec("cosmosvalcons") }, + func() address.ValidatorAddressCodec { return addresscodec.NewBech32Codec("cosmosvaloper") }, + func() address.ConsensusAddressCodec { return addresscodec.NewBech32Codec("cosmosvalcons") }, ), ), &cdc) require.NoError(err) diff --git a/runtime/module.go b/runtime/module.go index 2c0dd6e586..41b6b55318 100644 --- a/runtime/module.go +++ b/runtime/module.go @@ -142,7 +142,7 @@ func SetupAppBuilder(inputs AppInputs) { app.ModuleManager.RegisterLegacyAminoCodec(inputs.LegacyAmino) } -func ProvideInterfaceRegistry(addressCodec address.Codec, validatorAddressCodec ValidatorAddressCodec, customGetSigners []signing.CustomGetSigner) (codectypes.InterfaceRegistry, error) { +func ProvideInterfaceRegistry(addressCodec address.Codec, validatorAddressCodec address.ValidatorAddressCodec, customGetSigners []signing.CustomGetSigner) (codectypes.InterfaceRegistry, error) { signingOptions := signing.Options{ AddressCodec: addressCodec, ValidatorAddressCodec: validatorAddressCodec, @@ -245,28 +245,20 @@ func ProvideAppVersionModifier(app *AppBuilder) baseapp.AppVersionModifier { return app.app } -type ( - // ValidatorAddressCodec is an alias for address.Codec for validator addresses. - ValidatorAddressCodec address.Codec - - // ConsensusAddressCodec is an alias for address.Codec for validator consensus addresses. - ConsensusAddressCodec address.Codec -) - type AddressCodecInputs struct { depinject.In AuthConfig *authmodulev1.Module `optional:"true"` StakingConfig *stakingmodulev1.Module `optional:"true"` - AddressCodecFactory func() address.Codec `optional:"true"` - ValidatorAddressCodecFactory func() ValidatorAddressCodec `optional:"true"` - ConsensusAddressCodecFactory func() ConsensusAddressCodec `optional:"true"` + AddressCodecFactory func() address.Codec `optional:"true"` + ValidatorAddressCodecFactory func() address.ValidatorAddressCodec `optional:"true"` + ConsensusAddressCodecFactory func() address.ConsensusAddressCodec `optional:"true"` } // ProvideAddressCodec provides an address.Codec to the container for any // modules that want to do address string <> bytes conversion. -func ProvideAddressCodec(in AddressCodecInputs) (address.Codec, ValidatorAddressCodec, ConsensusAddressCodec) { +func ProvideAddressCodec(in AddressCodecInputs) (address.Codec, address.ValidatorAddressCodec, address.ConsensusAddressCodec) { if in.AddressCodecFactory != nil && in.ValidatorAddressCodecFactory != nil && in.ConsensusAddressCodecFactory != nil { return in.AddressCodecFactory(), in.ValidatorAddressCodecFactory(), in.ConsensusAddressCodecFactory() } diff --git a/simapp/app_test.go b/simapp/app_test.go index 406017291c..b378c2c5e4 100644 --- a/simapp/app_test.go +++ b/simapp/app_test.go @@ -34,7 +34,6 @@ import ( "cosmossdk.io/x/upgrade" "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/testutil/mock" "github.com/cosmos/cosmos-sdk/testutil/network" simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" @@ -313,8 +312,8 @@ func (c customAddressCodec) BytesToString(bz []byte) (string, error) { func TestAddressCodecFactory(t *testing.T) { var addrCodec address.Codec - var valAddressCodec runtime.ValidatorAddressCodec - var consAddressCodec runtime.ConsensusAddressCodec + var valAddressCodec address.ValidatorAddressCodec + var consAddressCodec address.ConsensusAddressCodec err := depinject.Inject( depinject.Configs( @@ -340,8 +339,8 @@ func TestAddressCodecFactory(t *testing.T) { depinject.Supply( log.NewNopLogger(), func() address.Codec { return customAddressCodec{} }, - func() runtime.ValidatorAddressCodec { return customAddressCodec{} }, - func() runtime.ConsensusAddressCodec { return customAddressCodec{} }, + func() address.ValidatorAddressCodec { return customAddressCodec{} }, + func() address.ConsensusAddressCodec { return customAddressCodec{} }, ), ), &addrCodec, &valAddressCodec, &consAddressCodec) diff --git a/simapp/simd/cmd/root_di.go b/simapp/simd/cmd/root_di.go index 796a4ce85f..8f5a535a62 100644 --- a/simapp/simd/cmd/root_di.go +++ b/simapp/simd/cmd/root_di.go @@ -24,7 +24,6 @@ import ( "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/crypto/keyring" - "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/server" simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" "github.com/cosmos/cosmos-sdk/types/module" @@ -103,8 +102,8 @@ func ProvideClientContext( txConfigOpts tx.ConfigOptions, legacyAmino *codec.LegacyAmino, addressCodec address.Codec, - validatorAddressCodec runtime.ValidatorAddressCodec, - consensusAddressCodec runtime.ConsensusAddressCodec, + validatorAddressCodec address.ValidatorAddressCodec, + consensusAddressCodec address.ConsensusAddressCodec, authConfig *authv1.Module, stakingConfig *stakingv1.Module, ) client.Context { diff --git a/simapp/simd/cmd/testnet.go b/simapp/simd/cmd/testnet.go index b0c95a43a7..f481372f1e 100644 --- a/simapp/simd/cmd/testnet.go +++ b/simapp/simd/cmd/testnet.go @@ -13,6 +13,7 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" + "cosmossdk.io/core/address" "cosmossdk.io/math" "cosmossdk.io/math/unsafe" "cosmossdk.io/simapp" @@ -26,7 +27,6 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/hd" "github.com/cosmos/cosmos-sdk/crypto/keyring" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" - "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/server" srvconfig "github.com/cosmos/cosmos-sdk/server/config" "github.com/cosmos/cosmos-sdk/testutil" @@ -209,7 +209,7 @@ func initTestnetFiles( nodeConfig *cmtconfig.Config, mm *module.Manager, genBalIterator banktypes.GenesisBalancesIterator, - valAddrCodec runtime.ValidatorAddressCodec, + valAddrCodec address.ValidatorAddressCodec, args initArgs, ) error { if args.chainID == "" { @@ -417,7 +417,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 runtime.ValidatorAddressCodec, + outputDir, nodeDirPrefix, nodeDaemonHome string, genBalIterator banktypes.GenesisBalancesIterator, valAddrCodec address.ValidatorAddressCodec, ) error { var appState json.RawMessage genTime := cmttime.Now() diff --git a/testutil/network/network.go b/testutil/network/network.go index eed00af898..8dca40ae54 100644 --- a/testutil/network/network.go +++ b/testutil/network/network.go @@ -129,8 +129,8 @@ type Config struct { // Address codecs AddressCodec address.Codec // address codec - ValidatorAddressCodec runtime.ValidatorAddressCodec // validator address codec - ConsensusAddressCodec runtime.ConsensusAddressCodec // consensus address codec + ValidatorAddressCodec address.ValidatorAddressCodec // validator address codec + ConsensusAddressCodec address.ConsensusAddressCodec // consensus address codec } // DefaultConfig returns a sane default configuration suitable for nearly all @@ -185,8 +185,8 @@ func DefaultConfigWithAppConfig(appConfig depinject.Config) (Config, error) { cdc codec.Codec interfaceRegistry codectypes.InterfaceRegistry addressCodec address.Codec - validatorAddressCodec runtime.ValidatorAddressCodec - consensusAddressCodec runtime.ConsensusAddressCodec + validatorAddressCodec address.ValidatorAddressCodec + consensusAddressCodec address.ConsensusAddressCodec ) if err := depinject.Inject( diff --git a/x/auth/tx/config/depinject.go b/x/auth/tx/config/depinject.go index 8b553520e9..47009c706e 100644 --- a/x/auth/tx/config/depinject.go +++ b/x/auth/tx/config/depinject.go @@ -42,7 +42,7 @@ type ModuleInputs struct { Config *txconfigv1.Config AddressCodec address.Codec - ValidatorAddressCodec runtime.ValidatorAddressCodec + ValidatorAddressCodec address.ValidatorAddressCodec Codec codec.Codec ProtoFileResolver txsigning.ProtoFileResolver // BankKeeper is the expected bank keeper to be passed to AnteHandlers diff --git a/x/genutil/client/cli/collect.go b/x/genutil/client/cli/collect.go index f164c1ccd9..7a029f10b2 100644 --- a/x/genutil/client/cli/collect.go +++ b/x/genutil/client/cli/collect.go @@ -6,10 +6,10 @@ import ( "github.com/spf13/cobra" + "cosmossdk.io/core/address" "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/server" "github.com/cosmos/cosmos-sdk/x/genutil" "github.com/cosmos/cosmos-sdk/x/genutil/types" @@ -18,7 +18,7 @@ import ( const flagGenTxDir = "gentx-dir" // CollectGenTxsCmd - return the cobra command to collect genesis transactions -func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator, validator types.MessageValidator, valAddrCodec runtime.ValidatorAddressCodec) *cobra.Command { +func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator, validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec) *cobra.Command { cmd := &cobra.Command{ Use: "collect-gentxs", Short: "Collect genesis txs and output a genesis.json file", diff --git a/x/genutil/collect.go b/x/genutil/collect.go index efc82d2e2d..f57c0202d1 100644 --- a/x/genutil/collect.go +++ b/x/genutil/collect.go @@ -12,12 +12,12 @@ import ( cfg "github.com/cometbft/cometbft/config" + "cosmossdk.io/core/address" bankexported "cosmossdk.io/x/bank/exported" stakingtypes "cosmossdk.io/x/staking/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" - sdkruntime "github.com/cosmos/cosmos-sdk/runtime" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/genutil/types" ) @@ -25,7 +25,7 @@ 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 sdkruntime.ValidatorAddressCodec, + validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, ) (appState json.RawMessage, err error) { // process genesis transactions, else create default genesis.json appGenTxs, persistentPeers, err := CollectTxs( @@ -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 sdkruntime.ValidatorAddressCodec, + validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, ) (appGenTxs []sdk.Tx, persistentPeers string, err error) { // prepare a map of all balances in genesis state to then validate // against the validators addresses diff --git a/x/staking/depinject.go b/x/staking/depinject.go index 93a4567e9e..1eaf44baa8 100644 --- a/x/staking/depinject.go +++ b/x/staking/depinject.go @@ -7,6 +7,7 @@ import ( "golang.org/x/exp/maps" modulev1 "cosmossdk.io/api/cosmos/staking/module/v1" + "cosmossdk.io/core/address" "cosmossdk.io/core/appmodule" "cosmossdk.io/depinject" "cosmossdk.io/depinject/appconfig" @@ -16,7 +17,6 @@ import ( "cosmossdk.io/x/staking/types" "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/types/module" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" ) @@ -38,8 +38,8 @@ type ModuleInputs struct { depinject.In Config *modulev1.Module - ValidatorAddressCodec runtime.ValidatorAddressCodec - ConsensusAddressCodec runtime.ConsensusAddressCodec + ValidatorAddressCodec address.ValidatorAddressCodec + ConsensusAddressCodec address.ConsensusAddressCodec AccountKeeper types.AccountKeeper BankKeeper types.BankKeeper Cdc codec.Codec