Every module contains its own CHANGELOG.md. Please refer to the module you are interested in.
v0.52.0-rc.1 - 2024-12-18
Every module contains its own CHANGELOG.md. Please refer to the module you are interested in.
- (client) #17513 Allow overwriting
client.toml
. Useclient.CreateClientConfig
in place ofclient.ReadFromClientConfig
and provide a custom template and a custom config. - (tests) #17868 Added helper method
SubmitTestTx
in testutil to broadcast test txns to test e2e tests. - (client) #18101 Add a
keyring-default-keyname
inclient.toml
for specifying a default key name, and skip the need to use the--from
flag when signing transactions. - (runtime) #18475 Adds an implementation for core.branch.Service.
- (baseapp) #18499 Add
MsgRouter
response type from message name function. - (client) #18557 Add
--qrcode
flag tokeys show
command to support displaying keys address QR code. - (types) #18768 Add MustValAddressFromBech32 function.
- (gRPC) #19049 Add debug log prints for each gRPC request.
- (types) #19164 Add a ValueCodec for the math.Uint type that can be used in collections maps.
- (types) #19281 Added a new method,
IsGT
, fortypes.Coin
. This method is used to check if atypes.Coin
is greater than anothertypes.Coin
. - (runtime) #19571 Implement
core/router.Service
in runtime. This service is present in all modules (when using depinject). - (types) #19759 Align SignerExtractionAdapter in PriorityNonceMempool Remove.
- (client) #19870 Add new query command
wait-tx
. Aliasevent-query-tx-for
towait-tx
for backward compatibility. - (client) #19905 Add grpc client config to
client.toml
. - (genutil) #19971 Allow manually setting the consensus key type in genesis
- (runtime) #19953 Implement
core/transaction.Service
in runtime. - (runtime) #18475 Adds an implementation for
core.branch.Service
. - (runtime) #19004 Adds an implementation for
core/header.Service
in runtime. - (runtime) #20238 Adds an implementation for
core/comet.Service
in runtime. - (tests) #20013 Introduce system tests to run multi node local testnet in CI
- (crypto/keyring) #20212 Expose the db keyring used in the keystore.
- (client/tx) #20870 Add
timeout-timestamp
field for tx body defines time based timeout.AddWithTimeoutTimestamp
to tx factory. Increased gas cost for processing newly added timeout timestamp field in tx body. - (client) #21074 Add auto cli for node service
- (x/validate) #21822 New module solely responsible for providing ante/post handlers and tx validators for v2. It can be extended by the app developer to provide extra tx validators.
- In comparison to x/auth/tx/config, there is no app config to skip ante/post handlers, as overwriting them in baseapp or not injecting the x/validate module has the same effect.
- (baseapp) #21979 Create CheckTxHandler to allow extending the logic of CheckTx.
- RocksDB libraries have been upgraded to support RockDB v9 instead of v8.
- (all) #16537 Properly propagated
fmt.Errorf
errors and usingerrors.New
where appropriate. - (client) #17503 Add
client.Context{}.WithAddressCodec
,WithValidatorAddressCodec
,WithConsensusAddressCodec
to provide address codecs to the client context. See the UPGRADING.md for more details. - (crypto/keyring) #17503 Simplify keyring interfaces to use
[]byte
instead ofsdk.Address
for addresses. - (rpc) #17470 Avoid open 0.0.0.0 to public by default and add
listen-ip-address
argument fortestnet init-files
cmd. - (types) #17670 Use
ctx.CometInfo
in place ofctx.VoteInfos
- #17733 Ensure
buf export
exports all proto dependencies - (crypto/keys) #18026 Made public key generation constant time on
secp256k1
- (crypto | x/auth) #14372 Key checks on signatures antehandle.
- (types) #18440 Add
AmountOfNoValidation
tosdk.DecCoins
. - (client/keys) #18663 Improve
<appd> keys add
by displaying mnemonic discreetly on an alternate screen and adding--indiscreet
option to disable it. - (client/keys) #18684 Improve
<appd> keys export
by displaying unarmored hex private key discreetly on an alternate screen and adding--indiscreet
option to disable it. - (client/keys) #18687 Improve
<appd> keys mnemonic
by displaying mnemonic discreetly on an alternate screen and adding--indiscreet
option to disable it. - (client/keys) #18703 Improve
<appd> keys add
and<appd> keys show
by checking whether there are duplicate keys in the multisig case.- Usage of
Must...
kind of functions are avoided in keeper methods.
- Usage of
- (client/keys) #18743 Improve
<appd> keys add -i
by hiding inputting of bip39 passphrase. - (client/keys) #18745 Improve
<appd> keys export
and<appd> keys mnemonic
by adding --yes option to skip interactive confirmation. - (client/keys) #18950 Improve
<appd> keys add
,<appd> keys import
and<appd> keys rename
by checking name validation. - (types) #18963 Swap out amino json encoding of
ABCIMessageLogs
for std lib json encoding - (types) #19512 The notion of basic manager does not exist anymore (and all related helpers).
- The module manager now can do everything that the basic manager was doing.
AppModuleBasic
has been deprecated for extension interfaces.- Modules can now implement
appmodule.HasRegisterInterfaces
,module.HasGRPCGateway
andmodule.HasAminoCodec
when relevant. - SDK modules now directly implement those extension interfaces on
AppModule
instead ofAppModuleBasic
.
- (server) #19455 Allow calling back into the application struct in PostSetup.
- (types) #19672
PreBlock
now returns only an error for consistency with server/v2. The SDK has upgraded x/upgrade accordingly.ResponsePreBlock
hence has been removed. - (x/auth) #19651 Allow empty public keys in
GetSignBytesAdapter
. - (x/genutil) #19735 Update genesis api to match new
appmodule.HasGenesis
interface. - (types) #19869 Removed
Any
type fromcodec/types
and replaced it with an alias forcosmos/gogoproto/types/any
. - (server) #19854 Add customizability to start command.
- Add
StartCmdOptions
inserver.AddCommands
instead ofservertypes.ModuleInitFlags
. To set custom flags set them in theStartCmdOptions
struct on theAddFlags
field. - Add
StartCommandHandler
toStartCmdOptions
to allow custom start command handlers. Users now have total control over how the app starts.
- Add
- (server) #19966 Return BlockHeader by shallow copy in server Context.
- (codec) #20122 Added a cache to address codec.
- (proto) #20098 Use cosmos_proto added_in annotation instead of // Since comments.
- (baseapp) #20208 Skip running validateBasic for rechecking txs.
- (baseapp) #20380 Enhanced OfferSnapshot documentation.
- (client) #20771 Remove
ReadDefaultValuesFromDefaultClientConfig
fromclient
package. (It was introduced inv0.50.6
as a quick fix). - (grpcserver) #20945 Adds error handling for out-of-gas panics in grpc query handlers.
- (internal) #21412 Using unsafe.String and unsafe.SliceData.
- (client) #21436 Use
address.Codec
from client.Context intx.Sign
. - (x/genutil) #21249 Incremental JSON parsing for AppGenesis where possible.
- (genutil) #21701 Improved error messages for genesis validation.
- (runtime) #21704 Move
upgradetypes.StoreLoader
to runtime and alias it in upgrade for backward compatibility. - (sims)#21613 Add sims2 framework and factory methods for simpler message factories in modules
- (modules) #21963 Duplicatable metrics are no more collected in modules. They were unnecessary overhead.
- (crypto/ledger) #22116 Improve error message when deriving paths using index >100
- (testutil/integration) #22616 Remove double context in integration tests v1.
- Use
integrationApp.Context()
instead of creating a context prior.
- Use
- (version) #22807 Return server/v2 information in the
version
functions and commands. - #22826 Simplify testing frameworks by removing
testutil/cmdtest
.
- (baseapp) #18383 Fixed a data race inside BaseApp.getContext, found by end-to-end (e2e) tests.
- (client/server) #18345 Consistently set viper prefix in client and server. It defaults for the binary name for both client and server.
- (baseapp) #18551 Fix SelectTxForProposal the calculation method of tx bytes size is inconsistent with CometBFT
- (client/keys) #18562
keys delete
won't terminate when a key is not found. - (client) #18622 Fixed a potential under/overflow from
uint64->int64
when computing gas fees as a LegacyDec. - (baseapp) #18727 Ensure that
BaseApp.Init
firstly returns any errors from a nil commit multistore instead of panicking on nil dereferencing and before sealing the app. - (server) #18994 Update server context directly rather than a reference to a sub-object
- #19833 Fix some places in which we call Remove inside a Walk.
- #19851 Fix some places in which we call Remove inside a Walk (x/staking and x/gov).
- (sims) #21952 Use liveness matrix for validator sign status in sims
- (baseapp) #21003 Align block header when query with latest height.
- (sims) #21906 Skip sims test when running dry on validators
- (cli) #21919 Query address-by-acc-num by account_id instead of id.
- (cli) #22656 Prune cmd should disable async pruning.
- (baseapp) #16244
SetProtocolVersion
has been renamed toSetAppVersion
. It now updates the consensus params in baseapp'sParamStore
. - (types) #16918, #22925 Deprecate
IntProto
andDecProto
. Instead,math.Int
andmath.LegacyDec
should be used respectively. Both types supportMarshal
andUnmarshal
which should be used for binary marshaling. - (client) #17215
server.StartCmd
,server.ExportCmd
,server.NewRollbackCmd
,pruning.Cmd
,genutilcli.InitCmd
,genutilcli.GenTxCmd
,genutilcli.CollectGenTxsCmd
,genutilcli.AddGenesisAccountCmd
, do not take a home directory anymore. It is inferred from the root command. - (client) #17259 Remove deprecated
clientCtx.PrintObjectLegacy
. UseclientCtx.PrintProto
orclientCtx.PrintRaw
instead. - (types) #17348 Remove the
WrapServiceResult
function.- The
*sdk.Result
returned by the msg server router will not contain the.Data
field.
- The
- (types) #17426
NewContext
does not take acmtproto.Header{}
any longer.WithChainID
/WithBlockHeight
/WithBlockHeader
must be used to set values on the context
- (client/keys) #17503
clientkeys.NewKeyOutput
,MkConsKeyOutput
,MkValKeyOutput
,MkAccKeyOutput
,MkAccKeysOutput
now take their corresponding address codec instead of using the global SDK config. - (types/simulation) #17737 Remove unused parameter from
RandomFees
- (types) #17738
WithBlockTime()
was removed &BlockTime()
were deprecated in favor ofWithHeaderInfo()
&HeaderInfo()
.BlockTime
now gets data fromHeaderInfo()
instead ofBlockHeader()
. - (client) #17746
txEncodeAmino
&txDecodeAmino
txs via grpc and rest were removed - (app) #17838 Params module was removed from simapp and all imports of the params module removed throughout the repo.
- The Cosmos SDK has migrated away from using params, if your app still uses it, then you can leave it plugged into your app
- (x/bank/testutil) #17868
MsgSendExec
has been removed because of AutoCLI migration. - (types) #17885
InitGenesis
&ExportGenesis
now takecontext.Context
instead ofsdk.Context
- (x/gov/testutil) #17986
MsgDeposit
has been removed because of AutoCLI migration. - (x/staking/testutil) #17986
MsgRedelegateExec
,MsgUnbondExec
has been removed because of AutoCLI migration. - (x/group) #17937 Groups module was moved to its own go.mod
cosmossdk.io/x/group
- (x/gov) #18197 Gov module was moved to its own go.mod
cosmossdk.io/x/gov
- (x/distribution) #18199 Distribution module was moved to its own go.mod
cosmossdk.io/x/distribution
- (x/slashing) #18201 Slashing module was moved to its own go.mod
cosmossdk.io/x/slashing
- (x/staking) #18257 Staking module was moved to its own go.mod
cosmossdk.io/x/staking
- (types) #18268 Remove global setting of basedenom. Use the staking module parameter instead
- (x/authz) #18265 Authz module was moved to its own go.mod
cosmossdk.io/x/authz
- (x/mint) #18283 Mint module was moved to its own go.mod
cosmossdk.io/x/mint
- (server) #18303
x/genutil
now handles the application export.server.AddCommands
does not take anAppExporter
but insteadgenutilcli.Commands
does. - (types) #18372 Removed global configuration for coin type and purpose. Setters and getters should be removed and access directly to defined types.
- (types) #18607 Removed address verifier from global config, moved verifier function to bech32 codec.
- (types) #18695 Removed global configuration for txEncoder.
- (server) #18909 Remove configuration endpoint on grpc reflection endpoint in favour of auth module bech32prefix endpoint already exposed.
- (crypto) #19541 The deprecated
FromTmProtoPublicKey
,ToTmProtoPublicKey
,FromTmPubKeyInterface
andToTmPubKeyInterface
functions have been removed. Use their replacements (Cmt
instead ofTm
) instead. - (types) #19512 Remove basic manager and all related functions (
module.BasicManager
,module.NewBasicManager
,module.NewBasicManagerFromManager
,NewGenesisOnlyAppModule
).- The module manager now can do everything that the basic manager was doing.
- When using runtime, just inject the module manager when needed using your app config.
- All
AppModuleBasic
structs have been removed.
- (types) #19627 and #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.
- (types) #19652 and #19758
- Moved
types/module.HasRegisterInterfaces
tocosmossdk.io/core
. - Moved
RegisterInterfaces
andRegisterImplementations
fromInterfaceRegistry
tocosmossdk.io/core/registry.InterfaceRegistrar
interface.
- Moved
- (types) #19742 Removes the use of
Accounts.String
SimulationState
now has address and validator codecs as fields.
- (runtime) #19747
runtime.ValidatorAddressCodec
andruntime.ConsensusAddressCodec
have been moved tocore
. - (all) #19726 Integrate comet v1
- #19833 Fix some places in which we call Remove inside a Walk.
- #19839
Tx.GetMsgsV2
has been replaced withTx.GetReflectMessages
, andCodec.GetMsgV1Signers
andCodec.GetMsgV2Signers
have been replaced withGetMsgSigners
andGetReflectMsgSigners
respectively. These API changes clear up confusion as to the use and purpose of these methods. - #19851 Fix some places in which we call Remove inside a Walk (x/staking and x/gov).
- (server) #19854 Remove
servertypes.ModuleInitFlags
types and fromserver.AddCommands
asStartCmdOptions
already achieves the same goal. - (x/genutil) #19926 Removal of the
Address.String()
method and related changes:- Added an address codec as an argument to
CollectTxs
,GenAppStateFromConfig
, andAddGenesisAccount
. - Removed the
ValidatorAddressCodec
argument fromCollectGenTxsCmd
, now utilizing the context for this purpose. - Changed
ValidateAccountInGenesis
to accept a string instead of anAccAddress
.
- Added an address codec as an argument to
- (baseapp) #19993 Indicate pruning with error code "not found" rather than "invalid request".
- (x/consensus) #20010 Move consensus module to be its own go.mod
- (x/crisis) #20043 Changed
NewMsgVerifyInvariant
to accept a string as argument instead of anAccAddress
. - (x/simulation)#20056
SimulateFromSeed
now takes an address codec as argument. - (server) #20140 Remove embedded grpc-web proxy in favor of standalone grpc-web proxy. Envoy Proxy
- (client) #20255 Use comet proofOp proto type instead of sdk version to avoid needing to translate to later be proven in the merkle proof runtime.
- (types)#20369 The signature of
HasAminoCodec
has changed to accept acore/legacy.Amino
interface instead ofcodec.LegacyAmino
. - (server) #20422 Deprecated
ServerContext
. To getcmtcfg.Config
from cmd, useclient.GetCometConfigFromCmd(cmd)
instead ofserver.GetServerContextFromCmd(cmd).Config
- (x/genutil) #20740 Update
genutilcli.Commands
andgenutilcli.CommandsWithCustomMigrationMap
to take the genesis module and abstract the module manager. - (types/errors) #20756 Remove
ResponseCheckTxWithEvents
,ResponseExecTxResultWithEvents
&QueryResult
from types/errors pkg. They have been moved tobaseapp/errors.go
and made private. - (client) #20976 Simplified command initialization by removing unnecessary parameters such as
txConfig
andaddressCodec
.- Remove parameter
txConfig
fromgenutilcli.Commands
,genutilcli.CommandsWithCustomMigrationMap
,genutilcli.GenTxCmd
. - Remove parameter
addressCodec
fromgenutilcli.GenTxCmd
,genutilcli.AddGenesisAccountCmd
,stakingcli.BuildCreateValidatorMsg
.
- Remove parameter
- (sims) #21039: Remove Baseapp from sims by a new interface
simtypes.AppEntrypoint
. - (x/genutil) #21372 Remove
AddGenesisAccount
forAddGenesisAccounts
. - (baseapp) #21413 Add
SelectBy
method toMempool
interface, which is thread-safe to use. - (types/mempool) #21744 Update types/mempool.Mempool interface to take decoded transactions. This avoid to decode the transaction twice.
- (x/auth/tx/config) #21822 Sign mode textual is no more automatically added to tx config when using runtime. Should be added manually on the server side.
- (x/auth/tx/config) #21822 This depinject module now only provide txconfig and tx config options.
x/validate
now handles the providing of ante/post handlers, alongside tx validators for v2. The corresponding app config options have been removed from the depinject module config. - (x/crisis) #20809 Crisis module was removed from the Cosmos SDK.
- (client) #22775 Removed client prompt validations.
- (runtime) #19040 Simplify app config implementation and deprecate
/cosmos/app/v1alpha1/config
query.
- (server) #18303
appd export
has moved with other genesis commands, useappd genesis export
instead. - (perf)#20490 Sims: Replace runsim command with Go stdlib testing. CLI:
Commit
default true,Lean
,SimulateEveryOperation
,PrintAllInvariants
,DBBackend
params removed - (client/tx) #20870 Removed
timeout-height
flag replace withtimeout-timestamp
flag for a time based timeout.
- (simapp) #19146 Replace
--v
CLI option with--validator-count
/-n
. - (module) #19370 Deprecate
module.Configurator
, useappmodule.HasMigrations
andappmodule.HasServices
instead from Core API. - (types) #21435 The
String()
method onAccAddress
,ValAddress
andConsAddress
have been deprecated. This is done because those are still using the deprecated globalsdk.Config
. Use anaddress.Codec
instead.