#20779 (cli) Added module-hash-by-height command to query and retrieve module hashes at a specified blockchain height, enhancing debugging capabilities.
#21372 (cli) Added a bulk-add-genesis-account genesis command to add many genesis accounts at once.
#21769 (runtime) Fix baseapp options ordering to avoid overwriting options set by modules.
#21493 (x/consensus) Fix regression that prevented to upgrade to > v0.50.7 without consensus version params.
#21256 (baseapp) Halt height will not commit the block indicated, meaning that if halt-height is set to 10, only blocks until 9 (included) will be committed. This is to go back to the original behavior before a change was introduced in v0.50.0.
#21444 (baseapp) Follow-up, Return PreBlocker events in FinalizeBlockResponse.
#19903 (telemetry) Conditionally emit metrics based on enablement.
Introduction of Now Function: Added a new function called Now to the telemetry package. It returns the current system time if telemetry is enabled, or a zero time if telemetry is not enabled.
Atomic Global Variable: Implemented an atomic global variable to manage the state of telemetry’s enablement. This ensures thread safety for the telemetry state.
Conditional Telemetry Emission: All telemetry functions have been updated to emit metrics only when telemetry is enabled. They perform a check with isTelemetryEnabled() and return early if telemetry is disabled, minimizing unnecessary operations and overhead.
#19810 (deps) Upgrade prometheus version and fix API breaking change due to prometheus bump.
#19725 (x/gov) Fetch a failed proposal tally from proposal.FinalTallyResult in the gprc query.
#19709 (types) Fix skip staking genesis export when using CoreAppModuleAdaptor / CoreAppModuleBasicAdaptor for it.
#19549 (x/auth) Accept custom get signers when injecting x/auth/tx.
GHSA-86h5-xcpx-cfqc (x/staking) Fix a possible bypass of delegator slashing:
GHSA-95rx-m9m5-m94v (baseapp) Fix a bug in baseapp.ValidateVoteExtensions helper (). The helper has been fixed and for avoiding API breaking changes currentHeight and chainID arguments are ignored. Those arguments are removed from the helper in v0.51+.
#19393 (client) Add ReadDefaultValuesFromDefaultClientConfig to populate the default values from the default client config in client.Context without creating a app folder.
#18956 (x/bank) Introduced a new DenomOwnersByQuery query method for DenomOwners, which accepts the denom value as a query string parameter, resolving issues with denoms containing slashes.
#19058 (baseapp) Fix baseapp posthandler branch would fail if the runMsgs had returned an error.
#18609 (baseapp) Fixed accounting in the block gas meter after module’s beginBlock and before DeliverTx, ensuring transaction processing always starts with the expected zeroed out block gas meter.
#18895 (baseapp) Fix de-duplicating vote extensions during validation in ValidateVoteExtensions.
#18478 (server) Add command flag to disable colored logs.
#18025 (x/gov) Improve <appd> q gov proposer by querying directly a proposal instead of tx events. It is an alias of q gov proposal as the proposer is a field of the proposal.
#18063 (version) Allow to define extra info to be displayed in <appd> version --long command.
#18541 (codec/unknownproto)Remove the use of “protoc-gen-gogo/descriptor” in favour of using the official protobuf descriptorpb types inside unknownproto.
#18564 (x/auth) Fix total fees calculation when batch signing.
#18537 (server) Fix panic when defining minimum gas config as 100stake;100uatom. Use a , delimiter instead of ;. Fixes the server config getter to use the correct delimiter.
#18531 Baseapp’s GetConsensusParams returns an empty struct instead of panicking if no params are found.
#18472 (client/tx) Utilizes the correct Pubkey when simulating a transaction.
#18486 (baseapp) Fixed FinalizeBlock calls not being passed to ABCIListeners.
#18627 (baseapp) Post handlers are run on non successful transaction executions too.
#18654 (baseapp) Fixes an issue in which gogoproto.Merge does not work with gogoproto messages with custom types.
#18071 (baseapp) Add hybrid handlers to MsgServiceRouter.
#18162 (server) Start gRPC & API server in standalone mode.
#17712 (baseapp & types) Introduce PreBlock, which runs before begin blocker other modules, and allows to modify consensus parameters, and the changes are visible to the following state machine logics. Additionally it can be used for vote extensions.
#17571 (genutil) Allow creation of AppGenesis without a file lookup.
#17042 (codec) Add CollValueV2 which supports encoding of protov2 messages in collections.
#16976#238 (x/gov) Add failed_reason field to Proposal under x/gov to indicate the reason for a failed proposal. Referenced from under bnb-chain/greenfield-cosmos-sdk.
#16898 (baseapp) Add preFinalizeBlockHook to allow vote extensions persistence.
#16887 (cli) Add two new CLI commands: <appd> tx simulate for simulating a transaction; <appd> query block-results for querying CometBFT RPC for block results.
#16852 (x/bank) Add DenomMetadataByQueryString query in bank module to support metadata query by query string.
#16581 (baseapp) Implement Optimistic Execution as an experimental feature (not enabled by default).
#16257 (types) Allow setting the base denom in the denom registry.
#16239 (baseapp) Add Gas Limits to allow node operators to resource bound queries.
#16074 (types/simulation) Add generic SimulationStoreDecoder for modules using collections.
#16046#15970 (genutil) Add “module-name” flag to genutil add-genesis-account to enable initializing module accounts at genesis.* Enable SIGN_MODE_TEXTUAL.
#15958 (types) Add module.NewBasicManagerFromManager for creating a basic module manager from a module manager.
#15829 (types/module) Add new endblocker interface to handle valset updates.
#15818 (runtime) Provide logger through depinject instead of appBuilder.
#15735 (types) Make ValidateBasic() error method of Msg interface optional. Modules should validate messages directly in their message handlers (RFC 001).
#15679 (x/genutil) Allow applications to specify a custom genesis migration function for the genesis migrate command.
#15657 (telemetry) Emit more data (go version, sdk version, upgrade height) in prom metrics.
#15556 (testutil/integration) Introduce testutil/integration package for module integration testing.
#15547 (runtime) Allow runtime to pass event core api service to modules.
#15458 (client) Add a CmdContext field to client.Context initialized to cobra command’s context.
#15301 (x/genutil) Add application genesis. The genesis is now entirely managed by the application and passed to CometBFT at note instantiation. Functions that were taking a cmttypes.GenesisDoc{} now takes a genutiltypes.AppGenesis{}.
#15133 (core) Implement RegisterServices in the module manager.
#14894 (x/bank) Return a human readable denomination for IBC vouchers when querying bank balances. Added a ResolveDenom parameter to types.QueryAllBalancesRequest and --resolve-denom flag to GetBalancesCmd().
#14860 (core) Add Precommit and PrepareCheckState AppModule callbacks.
#14720 (x/gov) Upstream expedited proposals from Osmosis.
#14659 (cli) Added ability to query blocks by events with queries directly passed to Tendermint, which will allow for full query operator support, e.g. >.
#14650 (x/auth) Add Textual SignModeHandler. Enable SIGN_MODE_TEXTUAL by following the UPGRADING.md instructions.
#14588 (x/crisis) Use CacheContext() in AssertInvariants().
#14484 (mempool) Add priority nonce mempool option for transaction replacement.
#14468 (query) Implement pagination for collections.
#14373 (x/gov) Add new proto field constitution of type string to gov module genesis state, which allows chain builders to lay a strong foundation by specifying purpose.
#14342 (client) Add <app> config command is now a sub-command, for setting, getting and migrating Cosmos SDK configuration files.
#14322 (x/distribution) Introduce a new gRPC message handler, DepositValidatorRewardsPool, that allows explicit funding of a validator’s reward pool.
#14224 (x/bank) Allow injection of restrictions on transfers using AppendSendRestriction or PrependSendRestriction.
#18189 (x/gov) Limit the accepted deposit coins for a proposal to the minimum proposal deposit denoms.
#18049 (x/staking) Return early if Slash encounters zero tokens to burn.
#18035 (x/staking) Hoisted out of the redelegation loop, the non-changing validator and delegator addresses parsing.
#17913 (keyring) Add NewAutoCLIKeyring for creating an AutoCLI keyring from a SDK keyring.
#18041 (x/consensus) Let ToProtoConsensusParams() return an error.
#17780 (x/gov) Recover panics and turn them into errors when executing x/gov proposals.
#17667 (baseapp) Close databases opened by SDK in baseApp.Close().
#17554 (types/module) Introduce HasABCIGenesis which is implemented by a module only when a validatorset update needs to be returned.
#17389 (cli) gRPC CometBFT commands have been added under <aapd> q consensus comet. CometBFT commands placement in the SDK has been simplified. See the exhaustive list below.
client/rpc.StatusCommand() is now at server.StatusCommand()
#17216 (testutil) Add DefaultContextWithKeys to testutil package.
#17187 (cli) Do not use ctx.PrintObjectLegacy in commands anymore.
<appd> q gov proposer [proposal-id] now returns a proposal id as int instead of string.
#17164 (x/staking) Add BondedTokensAndPubKeyByConsAddr to the keeper to enable vote extension verification.
#17109 (x/group, x/gov) Let proposal summary be 40x longer than metadata limit.
#17096 (version) Improve getSDKVersion() to handle module replacements.
#16890 (types) Remove GetTxCmd() *cobra.Command and GetQueryCmd() *cobra.Command from module.AppModuleBasic interface.
#16869 (x/authz) Improve error message when grant not found.
#16497 (all) Removed all exported vestiges of sdk.MustSortJSON and sdk.SortJSON.
#16238 (server) Don’t setup p2p node keys if starting a node in GRPC only mode.
#16076 (types) Optimize ChainAnteDecorators/ChainPostDecorators to instantiate the functions once instead of on every invocation of the returned AnteHandler/PostHandler.
#16071 (server) When mempool.max-txs is set to a negative value, use a no-op mempool (effectively disable the app mempool).
#16041 (types/query) Change pagination max limit to a variable in order to be modified by application devs.
#15958 (simapp) Refactor SimApp for removing the global basic manager.
#15901 (all modules) All core Cosmos SDK modules query commands have migrated to AutoCLI, ensuring parity between gRPC and CLI queries.
#15867 (x/auth) Support better logging for signature verification failure.
#15767 (store/cachekv) Reduce peak RAM usage during and after InitGenesis.
#15580 (x/slashing) Refactor the validator’s missed block signing window to be a chunked bitmap instead of a “logical” bitmap, significantly reducing the storage footprint.
#15554 (x/gov) Add proposal result log in active_proposal event. When a proposal passes but fails to execute, the proposal result is logged in the active_proposal event.
#15553 (x/consensus) Migrate consensus module to use collections.
#15358 (server) Add server.InterceptConfigsAndCreateContext as alternative to server.InterceptConfigsPreRunHandler which does not set the server context and the default SDK logger.
#15328 (mempool) Improve the PriorityNonceMempool:
Support generic transaction prioritization, instead of ctx.Priority()
Improve construction through the use of a single PriorityNonceMempoolConfig instead of option functions
#15164 (x/authz) Add MsgCancelUnbondingDelegation to staking authorization.
#15041 (server) Remove unnecessary sleeps from gRPC and API server initiation. The servers will start and accept requests as soon as they’re ready.
#15023#15213 (baseapp) & Add MessageRouter interface to baseapp and pass it to authz, gov and groups instead of concrete type.
#15011 Introduce cosmossdk.io/log package to provide a consistent logging interface through the SDK. CometBFT logger is now replaced by cosmossdk.io/log.Logger.
#14864 (x/staking) <appd> tx staking create-validator CLI command now takes a json file as an arg instead of using required flags.
#14758 (x/auth) Allow transaction event queries to directly passed to Tendermint, which will allow for full query operator support, e.g. >.
#14757 (x/evidence) Evidence messages do not need to implement a .Type() anymore.
#14751 (x/auth/tx) Remove .Type() and Route() methods from all msgs and legacytx.LegacyMsg interface.
#14659 (cli) Added ability to query blocks by either height/hash <app> q block --type=height|hash <height|hash>.
#14590 (x/staking) Return undelegate amount in MsgUndelegateResponse.
#14529 Add new property BondDenom to SimulationState struct.
#14439 (store) Remove global metric gatherer from store.
By default store has a no op metric gatherer, the application developer must set another metric gatherer or us the provided one in store/metrics.
#14417 (baseapp) The store package no longer has a dependency on baseapp.
#14415 (module) Loosen assertions in SetOrderBeginBlockers() and SetOrderEndBlockers().
#14410 (store) rootmulti.Store.loadVersion has validation to check if all the module stores’ height is correct, it will error if any module store has incorrect height.
#14406 Migrate usage of types/store.go to store/types/...
#14384 (context)Refactor(context): Pass EventManager to the context as an interface.
#14354 (types) Improve performance on Context.KVStore and Context.TransientStore by 40%.
#14151 (crypto/keyring) Move keys presentation from crypto/keyring to client/keys
#14087 (signing) Add SignModeHandlerWithContext interface with a new GetSignBytesWithContext to get the sign bytes using context.Context as an argument to access state.
#18146 (x/gov) Add denom check to reject denoms outside of those listed in MinDeposit. A new MinDepositRatio param is added (with a default value of 0.001) and now deposits are required to be at least MinDepositRatio*MinDeposit to be accepted.
#16235 (x/group,x/gov) A group and gov proposal is rejected if the proposal metadata title and summary do not match the proposal title and summary.
#15930 (baseapp) change vote info provided by prepare and process proposal to the one in the block.
#15731 (x/staking) Introducing a new index to retrieve the delegations by validator efficiently.
#15701 (x/staking) The HistoricalInfoKey has been updated to use a binary format.
#15580 (x/slashing) The validator slashing window now stores “chunked” bitmap entries for each validator’s signing window instead of a single boolean entry per signing window index.
#14590 (x/staking) MsgUndelegateResponse now includes undelegated amount. x/staking module’s keeper.Undelegate now returns 3 values (completionTime,undelegateAmount,error) instead of 2.
#14294 (x/feegrant) Moved the logic of rejecting duplicate grant from msg_server to keeper method.
(types) module.EndBlockAppModule has been replaced by Core API appmodule.HasEndBlocker or module.HasABCIEndBlock when needing validator updates.
(types) module.BeginBlockAppModule has been replaced by Core API appmodule.HasBeginBlocker.
#17358 (types) Remove deprecated sdk.Handler, use baseapp.MsgServiceHandler instead.
#17197 (client) keys.Commands does not take a home directory anymore. It is inferred from the root command.
#17157 (x/staking) GetValidatorsByPowerIndexKey and ValidateBasic for historical info takes a validator address codec in order to be able to decode/encode addresses.
GetOperator() now returns the address as it is represented in state, by default this is an encoded address
GetConsAddr() ([]byte, error) returns []byte instead of sdk.ConsAddres.
FromABCIEvidence & GetConsensusAddress(consAc address.Codec) now take a consensus address codec to be able to decode the incoming address.
(x/distribution) Delegate & SlashValidator helper function added the mock staking keeper as a parameter passed to the function
#17098 (x/staking) NewMsgCreateValidator, NewValidator, NewMsgCancelUnbondingDelegation, NewMsgUndelegate, NewMsgBeginRedelegate, NewMsgDelegate and NewMsgEditValidator takes a string instead of sdk.ValAddress or sdk.AccAddress:
NewRedelegation and NewUnbondingDelegation takes a validatorAddressCodec and a delegatorAddressCodec in order to decode the addresses.
NewRedelegationResponse takes a string instead of sdk.ValAddress or sdk.AccAddress.
NewMsgCreateValidator.Validate() takes an address codec in order to decode the address.
BuildCreateValidatorMsg takes a ValidatorAddressCodec in order to decode addresses.
#17098 (x/slashing) NewMsgUnjail takes a string instead of sdk.ValAddress
#17098 (x/genutil) GenAppStateFromConfig, AddGenesisAccountCmd and GenTxCmd takes an addresscodec to decode addresses.
#17098 (x/distribution) NewMsgDepositValidatorRewardsPool, NewMsgFundCommunityPool, NewMsgWithdrawValidatorCommission and NewMsgWithdrawDelegatorReward takes a string instead of sdk.ValAddress or sdk.AccAddress.
#16959 (x/staking) Add validator and consensus address codec as staking keeper arguments.
#16958 (x/staking) DelegationI interface GetDelegatorAddr & GetValidatorAddr have been migrated to return string instead of sdk.AccAddress and sdk.ValAddress respectively. stakingtypes.NewDelegation takes a string instead of sdk.AccAddress and sdk.ValAddress.
#16899 (testutil) The cli testutilQueryBalancesExec has been removed. Use the gRPC or REST query instead.
#16795 (x/staking) DelegationToDelegationResponse, DelegationsToDelegationResponses, RedelegationsToRedelegationResponses are no longer exported.
#16741 (x/auth/vesting) Vesting account constructor now return an error with the result of their validate function.
#16650 (x/auth) The cli testutilQueryAccountExec has been removed. Use the gRPC or REST query instead.
#16621 (x/auth) Pass address codec to auth new keeper constructor.
#16423 (x/auth) helpers.AddGenesisAccount has been moved to x/genutil to remove the cyclic dependency between x/auth and x/genutil.
#16342 (baseapp) NewContext was renamed to NewContextLegacy. The replacement (NewContext) now does not take a header, instead you should set the header via WithHeaderInfo or WithBlockHeight. Note that WithBlockHeight will soon be deprecated and its recommended to use WithHeaderInfo.
#16329 (x/mint) Use collections for state management:
#16328 (x/crisis) Use collections for state management:
Removed: keeper GetConstantFee, SetConstantFee
#16324 (x/staking) NewKeeper now takes a KVStoreService instead of a StoreKey, and methods in the Keeper now take a context.Context instead of a sdk.Context and return an error. Notable changes:
Validator method now returns types.ErrNoValidatorFound instead of nil when not found.
#16302 (x/distribution) Use collections for FeePool state management.
#16246 (x/slashing) NewKeeper now takes a KVStoreService instead of a StoreKey, and methods in the Keeper now take a context.Context instead of a sdk.Context and return an error. GetValidatorSigningInfo now returns an error instead of a found bool, the error can be nil (found), ErrNoSigningInfoFound (not found) and any other error.
#16227 (module) manager.RunMigrations() now take a context.Context instead of a sdk.Context.
#16216 (x/crisis) NewKeeper now takes a KVStoreService instead of a StoreKey, methods in the Keeper now take a context.Context instead of a sdk.Context and return an error instead of panicking.
#16211 (x/distribution) Use collections for params state management.
#16209 (cli) Add API StartCmdWithOptions to create customized start command.
#16179 (x/mint) NewKeeper now takes a KVStoreService instead of a StoreKey, and methods in the Keeper now take a context.Context instead of a sdk.Context and return an error.
#16171 (x/gov) Use collections for proposal state management (part 1):
#15999 (x/genutil) Genutil now takes the GenesisTxHanlder interface instead of deliverTx. The interface is implemented on baseapp
#15988 (x/gov) NewKeeper now takes a KVStoreService instead of a StoreKey, methods in the Keeper now take a context.Context instead of a sdk.Context and return an error (instead of panicking or returning a found bool). Iterators callback functions now return an error instead of a bool.
#15985 (x/auth) The AccountKeeper does not expose the QueryServer and MsgServer APIs anymore.
#15962 (x/authz) NewKeeper now takes a KVStoreService instead of a StoreKey, methods in the Keeper now take a context.Context instead of a sdk.Context. The Authorization interface’s Accept method now takes a context.Context instead of a sdk.Context.
#15948 (x/distribution) NewKeeper now takes a KVStoreService instead of a StoreKey and methods in the Keeper now take a context.Context instead of a sdk.Context. Keeper methods also now return an error.
#15891 (x/bank) NewKeeper now takes a KVStoreService instead of a StoreKey and methods in the Keeper now take a context.Context instead of a sdk.Context. Also FundAccount and FundModuleAccount from the testutil package accept a context.Context instead of a sdk.Context, and it’s position was moved to the first place.
#15875 (x/slashing) x/slashing.NewAppModule now requires an InterfaceRegistry parameter.
#15852 (x/crisis) Crisis keeper now takes a instance of the address codec to be able to decode user addresses
#15822 (x/auth) The type of struct field ante.HandlerOptions.SignModeHandler has been changed to x/tx/signing.HandlerMap.
#15822 (client) The return type of the interface method TxConfig.SignModeHandler has been changed to x/tx/signing.HandlerMap.
The signature of VerifySignature has been changed to accept a x/tx/signing.HandlerMap and other structs from x/tx as arguments.
The signature of NewTxConfigWithTextual has been deprecated and its signature changed to accept a SignModeOptions.
The signature of NewSigVerificationDecorator has been changed to accept a x/tx/signing.HandlerMap.
#15818 (x/bank) BaseViewKeeper’s Logger method now doesn’t require a context. NewBaseKeeper, NewBaseSendKeeper and NewBaseViewKeeper now also require a log.Logger to be passed in.
#15679 (x/genutil) MigrateGenesisCmd now takes a MigrationMap instead of having the SDK genesis migration hardcoded.
#15673 (client) Move client/keys.OutputFormatJSON and client/keys.OutputFormatText to client/flags package.
#15648 (x/all) Make SetParams consistent across all modules and validate the params at the message handling instead of SetParams method.
#15600#15873 (codec) add support for getting signers to codec.Codec and InterfaceRegistry:
InterfaceRegistry is has unexported methods and implements protodesc.Resolver plus the RangeFiles and SigningContext methods. All implementations of InterfaceRegistry by other users must now embed the official implementation.
Codec has new methods InterfaceRegistry, GetMsgAnySigners, GetMsgV1Signers, and GetMsgV2Signers as well as unexported methods. All implementations of Codec by other users must now embed an official implementation from the codec package.
AminoCodec is marked as deprecated and no longer implements `Codec.
#15597 (client) RegisterNodeService now requires a config parameter.
#15588 (x/nft) NewKeeper now takes a KVStoreService instead of a StoreKey and methods in the Keeper now take a context.Context instead of a sdk.Context.
#15568 (baseapp) SetIAVLLazyLoading is removed from baseapp.
#15567 (x/genutil) CollectGenTxsCmd & GenTxCmd takes a address.Codec to be able to decode addresses.
#15567 (x/bank) GenesisBalance.GetAddress now returns a string instead of sdk.AccAddress
MsgSendExec test helper function now takes a address.Codec
#15520 (x/auth) NewAccountKeeper now takes a KVStoreService instead of a StoreKey and methods in the Keeper now take a context.Context instead of a sdk.Context.
#15519 (baseapp) runTxModes were renamed to execMode. ModeDeliver as changed to ModeFinalize and a new ModeVoteExtension was added for vote extensions.
#15519 (baseapp) Writing of state to the multistore was moved to FinalizeBlock. Commit still handles the committing values to disk.
#15519 (baseapp) Calls to BeginBlock and EndBlock have been replaced with core api beginblock & endblock.
#15519 (baseapp) BeginBlock and EndBlock are now internal to baseapp. For testing, user must call FinalizeBlock. BeginBlock and EndBlock calls are internal to Baseapp.
#15519 (baseapp) All calls to ABCI methods now accept a pointer of the abci request and response types
#15517 (x/consensus) NewKeeper now takes a KVStoreService instead of a StoreKey.
#15477 (x/bank) banktypes.NewMsgMultiSend and keeper.InputOutputCoins only accept one input.
#15358 (server) Remove server.ErrorCode that was not used anywhere.
#15344 (x/capability) Capability module was removed and is now housed in IBC-GO.
#15328 (mempool) The PriorityNonceMempool is now generic over type C comparable and takes a single PriorityNonceMempoolConfig[C] argument. See DefaultPriorityNonceMempoolConfig for how to construct the configuration and a TxPriority type.
#15299 Remove StdTx transaction and signing APIs. No SDK version has actually supported StdTx since before Stargate.
#15284 (x/gov) NewKeeper now requires codec.Codec.
#15284 (x/authx) NewKeeper now requires codec.Codec.
types/tx.Tx no longer implements sdk.Tx.
sdk.Tx now requires a new method GetMsgsV2().
sdk.Msg.GetSigners was deprecated and is no longer supported. Use the cosmos.msg.v1.signer protobuf annotation instead.
TxConfig has a new method SigningContext() *signing.Context.
SigVerifiableTx.GetSigners() now returns ([][]byte, error) instead of []sdk.AccAddress.
AccountKeeper now has an AddressCodec() address.Codec method and the expected AccountKeeper for x/auth/ante expects this method.
#15211 Remove usage of github.com/cometbft/cometbft/libs/bytes.HexBytes in favor of []byte thorough the SDK.
#15070 (crypto) GenerateFromPassword and Cost from bcrypt.go now take a uint32 instead of a int type.
#15067 (types) Remove deprecated alias from types/errors. Use cosmossdk.io/errors instead.
#15041 (server) Refactor how gRPC and API servers are started to remove unnecessary sleeps:
api.Server#Start now accepts a context.Context. The caller is responsible for ensuring that the context is canceled such that the API server can gracefully exit. The caller does not need to stop the server.
To start the gRPC server you must first create the server via NewGRPCServer, after which you can start the gRPC server via StartGRPCServer which accepts a context.Context. The caller is responsible for ensuring that the context is canceled such that the gRPC server can gracefully exit. The caller does not need to stop the server.
Rename WaitForQuitSignals to ListenForQuitSignals. Note, this function is no longer blocking. Thus the caller is expected to provide a context.CancelFunc which indicates that when a signal is caught, that any spawned processes can gracefully exit.
Remove ServerStartTime constant.
#15011 All functions that were taking a CometBFT logger, now take cosmossdk.io/log.Logger instead.
#14977 (simapp) Move simulation helpers functions (AppStateFn and AppStateRandomizedFn) to testutil/sims. These takes an extra genesisState argument which is the default state of the app.
#14894 (x/bank) Allow a human readable denomination for coins when querying bank balances. Added a ResolveDenom parameter to types.QueryAllBalancesRequest.
#14847 App and ModuleManager methods InitGenesis, ExportGenesis, BeginBlock and EndBlock now also return an error.
#14764 (x/upgrade) The x/upgrade module is extracted to have a separate go.mod file which allows it to be a standalone module.
#14603 (store/streaming)StoreDecoderRegistry moved from store to types/simulations this breaks the AppModuleSimulation interface.
#14597 (snapshots) Move snapshots to store/snapshots, rename and bump proto package to v1.
#14590 (x/staking) MsgUndelegateResponse now includes undelegated amount. x/staking module’s keeper.Undelegate now returns 3 values (completionTime,undelegateAmount,error) instead of 2.
#14151 (crypto/keyring) Move keys presentation from crypto/keyring to client/keys
#14050 (baseapp) Refactor ABCIListener interface to accept Go contexts.
#13850 (x/auth) Remove MarshalYAML methods from module (x/...) types.
#13850#14046 (modules) and Remove gogoproto stringer annotations. This removes the custom String() methods on all types that were using the annotations.
(x/evidence) 14724 Extract Evidence in its own go.mod and rename the package to cosmossdk.io/x/evidence.
#13734 (crypto/keyring) The keyring’s Sign method now takes a new signMode argument. It is only used if the signing key is a Ledger hardware device. You can set it to 0 in all other cases.
(snapshots) 14048 Move the Snapshot package to the store package. This is done in an effort group all storage related logic under one package.
#13701 (signing) Add context.Context as an argument x/auth/signing.VerifySignature.
#11825 (store) Make extension snapshotter interface safer to use, renamed the util function WriteExtensionItem to WriteExtensionPayload.
#15845 (abci) Add msg_index to all event attributes to associate events and messages.
#15701 (x/staking) HistoricalInfoKey now has a binary format.
#15519 (store/streaming) State Streaming removed emitting of beginblock, endblock and delivertx in favour of emitting FinalizeBlock.
#15519 (baseapp) BeginBlock & EndBlock events have begin or endblock in the events in order to identify which stage they are emitted from since they are returned to comet as FinalizeBlock events.
#14652 (grpc-web) Use same port for gRPC-Web and the API server.
#16987 (x/gov) In <appd> query gov proposals the proposal status flag have renamed from --status to --proposal-status. Additionally, that flags now uses the ENUM values: PROPOSAL_STATUS_DEPOSIT_PERIOD, PROPOSAL_STATUS_VOTING_PERIOD, PROPOSAL_STATUS_PASSED, PROPOSAL_STATUS_REJECTED, PROPOSAL_STATUS_FAILED.
#16899 (x/bank) With the migration to AutoCLI some bank commands have been split in two:
Use total-supply (or total) for querying the total supply and total-supply-of for querying the supply of a specific denom.
Use denoms-metadata for querying all denom metadata and denom-metadata for querying a specific denom metadata.
#16276 (rosetta) Rosetta migration to standalone repo.
#15299 (cli) Remove --amino flag from sign and multi-sign commands. Amino StdTx has been deprecated for a while. Amino JSON signing still works as expected.
#14880 (x/gov) Remove <app> tx gov submit-legacy-proposal cancel-software-upgrade and software-upgrade commands. These commands are now in the x/upgrade module and using gov v1. Use tx upgrade software-upgrade instead.
#14864 (x/staking) <appd> tx staking create-validator CLI command now takes a json file as an arg instead of using required flags.
#14659 (cli) <app> q block <height> is removed as it just output json. The new command allows either height/hash and is <app> q block --type=height|hash <height|hash>.
#18254 (server) Don’t hardcode gRPC address to localhost.
#18173 (x/gov) Gov hooks now return an error and are blocking when they fail. Expect for AfterProposalFailedMinDeposit and AfterProposalVotingPeriodEnded which log the error and continue.
#17873 (x/gov) Fail any inactive and active proposals that cannot be decoded.
#18016 (x/slashing) Fixed builder function for missed blocks key (validatorMissedBlockBitArrayPrefixKey) in slashing/migration/v4.
#18107 (x/bank) Add missing keypair of SendEnabled to restore legacy param set before migration.
#17769 (baseapp) Ensure we respect block size constraints in the DefaultProposalHandler’s PrepareProposal handler when a nil or no-op mempool is used. We provide a TxSelector type to assist in making transaction selection generalized. We also fix a comparison bug in tx selection when req.maxTxBytes is reached.
#17668 (mempool) Fix PriorityNonceIterator.Next() nil pointer ref for min priority at the end of iteration.
#17649 (config) Fix mempool.max-txs configuration is invalid in app.config.
#17518 (baseapp) Utilizing voting power from vote extensions (CometBFT) instead of the current bonded tokens (x/staking) to determine if a set of vote extensions are valid.
#17251 (baseapp) VerifyVoteExtensions and ExtendVote initialize their own contexts/states, allowing VerifyVoteExtensions being called without ExtendVote.
#17236 (x/distribution) Using “validateCommunityTax” in “Params.ValidateBasic”, preventing panic when field “CommunityTax” is nil.
#17170 (x/bank) Avoid empty spendable error message on send coins.
#17146 (x/group) Rename x/group legacy ORM package’s error codespace from “orm” to “legacy_orm”, preventing collisions with ORM’s error codespace “orm”.
#16905 (types/query) Collections Pagination now applies proper count when filtering results.
#16841 (x/bank) Correctly process legacy DenomAddressIndex values.
#16733 (x/auth/vesting) Panic on overflowing and negative EndTimes when creating a PeriodicVestingAccount.
#16713 (x/consensus) Add missing ABCI param in MsgUpdateParams.
#16700 (baseapp) Fix consensus failure in returning no response to malformed transactions.
#16639 Make sure we don’t execute blocks beyond the halt height.
#16613 (baseapp) Ensure each message in a transaction has a registered handler, otherwise CheckTx will fail.
#16596 (baseapp) Return error during ExtendVote and VerifyVoteExtension if the request height is earlier than VoteExtensionsEnableHeight.
#16259 (baseapp) Ensure the Context block height is correct after InitChain and prior to the second block.
#16231#16138 (x/gov) Fix Rawlog JSON formatting of proposal_vote option field.* (cli) Fix snapshot commands panic if snapshot don’t exists.
#16043 (x/staking) Call AfterUnbondingInitiated hook for new unbonding entries only and fix UnbondingDelegation entries handling. This is a behavior change compared to Cosmos SDK v0.47.x, now the hook is called only for new unbonding entries.
#16010 (types) Let module.CoreAppModuleBasicAdaptor fallback to legacy genesis handling.
#15691 (types) Make Coin.Validate() check that .Amount is not nil.
#15258 (x/crypto) Write keyhash file with permissions 0600 instead of 0555.
#15059 (x/auth) ante.CountSubKeys returns 0 when passing a nil Pubkey.
#15030 (x/capability) Prevent x/capability from consuming GasMeter gas during InitMemStore
#14739 (types/coin) Deprecate the method Coin.IsEqual in favour of Coin.Equal. The difference between the two methods is that the first one results in a panic when denoms are not equal. This panic lead to unexpected behavior.
#16980 (types) Deprecate IntProto and DecProto. Instead, math.Int and math.LegacyDec should be used respectively. Both types support Marshal and Unmarshal for binary serialization.
#14567 (x/staking) The delegator_address field of MsgCreateValidator has been deprecated.