v0.50.3 - 2023-01-15
- (types) #18991 Add SignerExtractionAdapter to PriorityNonceMempool/Config and provide Default implementation matching existing behavior.
- (gRPC) #19043 Add
halt_height
to the gRPC/cosmos/base/node/v1beta1/config
request.
- (x/bank) #18956 Introduced a new
DenomOwnersByQuery
query method forDenomOwners
, which accepts the denom value as a query string parameter, resolving issues with denoms containing slashes. - (x/gov) #18707 Improve genesis validation.
- (x/auth/tx) #18772 Remove misleading gas wanted from tx simulation failure log.
- (client/tx) #18852 Add
WithFromName
to tx factory. - (types) #18888 Speedup DecCoin.Sort() if len(coins) <= 1
- (types) #18875 Speedup coins.Sort() if len(coins) <= 1
- (baseapp) #18915 Add a new
ExecModeVerifyVoteExtension
exec mode and ensure it's populated in theContext
duringVerifyVoteExtension
execution. - (testutil) #18930 Add NodeURI for clientCtx.
- (baseapp) #19058 Fix baseapp posthandler branch would fail if the
runMsgs
had returned an error. - (baseapp) #18609 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.
- (baseapp) #18895 Fix de-duplicating vote extensions during validation in ValidateVoteExtensions.
v0.50.2 - 2023-12-11
- (debug) #18219 Add debug commands for application codec types.
- (client/keys) #17639 Allows using and saving public keys encoded as base64.
- (server) #17094 Add a
shutdown-grace
flag for waiting a given time before exit.
- (telemetry) [#18646] (#18646) Enable statsd and dogstatsd telemetry sinks.
- (server) #18478 Add command flag to disable colored logs.
- (x/gov) #18025 Improve
<appd> q gov proposer
by querying directly a proposal instead of tx events. It is an alias ofq gov proposal
as the proposer is a field of the proposal. - (version) #18063 Allow to define extra info to be displayed in
<appd> version --long
command. - (codec/unknownproto)#18541 Remove the use of "protoc-gen-gogo/descriptor" in favour of using the official protobuf descriptorpb types inside unknownproto.
- (x/auth) #18564 Fix total fees calculation when batch signing.
- (server) #18537 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. - (client/tx) #18472 Utilizes the correct Pubkey when simulating a transaction.
- (baseapp) #18486 Fixed FinalizeBlock calls not being passed to ABCIListeners.
- (baseapp) #18627 Post handlers are run on non successful transaction executions too.
- (baseapp) #18654 Fixes an issue in which
gogoproto.Merge
does not work with gogoproto messages with custom types.
v0.50.1 - 2023-11-07
v0.50.0 has been retracted due to a mistake in tagging the release. Please use v0.50.1 instead.
- (baseapp) #18071 Add hybrid handlers to
MsgServiceRouter
. - (server) #18162 Start gRPC & API server in standalone mode.
- (baseapp & types) #17712 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. - (genutil) #17571 Allow creation of
AppGenesis
without a file lookup. - (codec) #17042 Add
CollValueV2
which supports encoding of protov2 messages in collections. - (x/gov) #16976 Add
failed_reason
field toProposal
underx/gov
to indicate the reason for a failed proposal. Referenced from #238 underbnb-chain/greenfield-cosmos-sdk
. - (baseapp) #16898 Add
preFinalizeBlockHook
to allow vote extensions persistence. - (cli) #16887 Add two new CLI commands:
<appd> tx simulate
for simulating a transaction;<appd> query block-results
for querying CometBFT RPC for block results. - (x/bank) #16852 Add
DenomMetadataByQueryString
query in bank module to support metadata query by query string. - (baseapp) #16581 Implement Optimistic Execution as an experimental feature (not enabled by default).
- (types) #16257 Allow setting the base denom in the denom registry.
- (baseapp) #16239 Add Gas Limits to allow node operators to resource bound queries.
- (cli) #16209 Make
StartCmd
more customizable. - (types/simulation) #16074 Add generic SimulationStoreDecoder for modules using collections.
- (genutil) #16046 Add "module-name" flag to genutil
add-genesis-account
to enable intializing module accounts at genesis.* #15970 Enable SIGN_MODE_TEXTUAL. - (types) #15958 Add
module.NewBasicManagerFromManager
for creating a basic module manager from a module manager. - (types/module) #15829 Add new endblocker interface to handle valset updates.
- (runtime) #15818 Provide logger through
depinject
instead of appBuilder. - (types) #15735 Make
ValidateBasic() error
method ofMsg
interface optional. Modules should validate messages directly in their message handlers (RFC 001). - (x/genutil) #15679 Allow applications to specify a custom genesis migration function for the
genesis migrate
command. - (telemetry) #15657 Emit more data (go version, sdk version, upgrade height) in prom metrics.
- (client) #15597 Add status endpoint for clients.
- (testutil/integration) #15556 Introduce
testutil/integration
package for module integration testing. - (runtime) #15547 Allow runtime to pass event core api service to modules.
- (client) #15458 Add a
CmdContext
field to client.Context initialized to cobra command's context. - (x/genutil) #15301 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 agenutiltypes.AppGenesis{}
. - (core) #15133 Implement RegisterServices in the module manager.
- (x/bank) #14894 Return a human readable denomination for IBC vouchers when querying bank balances. Added a
ResolveDenom
parameter totypes.QueryAllBalancesRequest
and--resolve-denom
flag toGetBalancesCmd()
. - (core) #14860 Add
Precommit
andPrepareCheckState
AppModule callbacks. - (x/gov) #14720 Upstream expedited proposals from Osmosis.
- (cli) #14659 Added ability to query blocks by events with queries directly passed to Tendermint, which will allow for full query operator support, e.g.
>
. - (x/auth) #14650 Add Textual SignModeHandler. Enable
SIGN_MODE_TEXTUAL
by following the UPGRADING.md instructions. - (x/crisis) #14588 Use CacheContext() in AssertInvariants().
- (mempool) #14484 Add priority nonce mempool option for transaction replacement.
- (query) #14468 Implement pagination for collections.
- (x/gov) #14373 Add new proto field
constitution
of typestring
to gov module genesis state, which allows chain builders to lay a strong foundation by specifying purpose. - (client) #14342 Add
<app> config
command is now a sub-command, for setting, getting and migrating Cosmos SDK configuration files. - (x/distribution) #14322 Introduce a new gRPC message handler,
DepositValidatorRewardsPool
, that allows explicit funding of a validator's reward pool. - (x/bank) #14224 Allow injection of restrictions on transfers using
AppendSendRestriction
orPrependSendRestriction
.
- (x/gov) #18189 Limit the accepted deposit coins for a proposal to the minimum proposal deposit denoms.
- (x/staking) #18049 Return early if Slash encounters zero tokens to burn.
- (x/staking) #18035 Hoisted out of the redelegation loop, the non-changing validator and delegator addresses parsing.
- (keyring) #17913 Add
NewAutoCLIKeyring
for creating an AutoCLI keyring from a SDK keyring. - (x/consensus) #18041 Let
ToProtoConsensusParams()
return an error. - (x/gov) #17780 Recover panics and turn them into errors when executing x/gov proposals.
- (baseapp) #17667 Close databases opened by SDK in
baseApp.Close()
. - (types/module) #17554 Introduce
HasABCIGenesis
which is implemented by a module only when a validatorset update needs to be returned. - (cli) #17389 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 atserver.StatusCommand()
- (testutil) #17216 Add
DefaultContextWithKeys
totestutil
package. - (cli) #17187 Do not use
ctx.PrintObjectLegacy
in commands anymore.<appd> q gov proposer [proposal-id]
now returns a proposal id as int instead of string.
- (x/staking) #17164 Add
BondedTokensAndPubKeyByConsAddr
to the keeper to enable vote extension verification. - (x/group, x/gov) #17109 Let proposal summary be 40x longer than metadata limit.
- (version) #17096 Improve
getSDKVersion()
to handle module replacements. - (types) #16890 Remove
GetTxCmd() *cobra.Command
andGetQueryCmd() *cobra.Command
frommodule.AppModuleBasic
interface. - (x/authz) #16869 Improve error message when grant not found.
- (all) #16497 Removed all exported vestiges of
sdk.MustSortJSON
andsdk.SortJSON
. - (server) #16238 Don't setup p2p node keys if starting a node in GRPC only mode.
- (cli) #16206 Make ABCI handshake profileable.
- (types) #16076 Optimize
ChainAnteDecorators
/ChainPostDecorators
to instantiate the functions once instead of on every invocation of the returnedAnteHandler
/PostHandler
. - (server) #16071 When
mempool.max-txs
is set to a negative value, use a no-op mempool (effectively disable the app mempool). - (types/query) #16041 Change pagination max limit to a variable in order to be modifed by application devs.
- (simapp) #15958 Refactor SimApp for removing the global basic manager.
- (all modules) #15901 All core Cosmos SDK modules query commands have migrated to AutoCLI, ensuring parity between gRPC and CLI queries.
- (x/auth) #15867 Support better logging for signature verification failure.
- (store/cachekv) #15767 Reduce peak RAM usage during and after
InitGenesis
. - (x/bank) #15764 Speedup x/bank
InitGenesis
. - (x/slashing) #15580 Refactor the validator's missed block signing window to be a chunked bitmap instead of a "logical" bitmap, significantly reducing the storage footprint.
- (x/gov) #15554 Add proposal result log in
active_proposal
event. When a proposal passes but fails to execute, the proposal result is logged in theactive_proposal
event. - (x/consensus) #15553 Migrate consensus module to use collections.
- (server) #15358 Add
server.InterceptConfigsAndCreateContext
as alternative toserver.InterceptConfigsPreRunHandler
which does not set the server context and the default SDK logger. - (mempool) #15328 Improve the
PriorityNonceMempool
:- Support generic transaction prioritization, instead of
ctx.Priority()
- Improve construction through the use of a single
PriorityNonceMempoolConfig
instead of option functions
- Support generic transaction prioritization, instead of
- (x/authz) #15164 Add
MsgCancelUnbondingDelegation
to staking authorization. - (server) #15041 Remove unnecessary sleeps from gRPC and API server initiation. The servers will start and accept requests as soon as they're ready.
- (baseapp) #15023 & #15213 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 bycosmossdk.io/log.Logger
. - (x/staking) #14864
<appd> tx staking create-validator
CLI command now takes a json file as an arg instead of using required flags. - (x/auth) #14758 Allow transaction event queries to directly passed to Tendermint, which will allow for full query operator support, e.g.
>
. - (x/evidence) #14757 Evidence messages do not need to implement a
.Type()
anymore. - (x/auth/tx) #14751 Remove
.Type()
andRoute()
methods from all msgs andlegacytx.LegacyMsg
interface. - (cli) #14659 Added ability to query blocks by either height/hash
<app> q block --type=height|hash <height|hash>
. - (x/staking) #14590 Return undelegate amount in MsgUndelegateResponse.
- #14529 Add new property
BondDenom
toSimulationState
struct. - (store) #14439 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
.
- By default store has a no op metric gatherer, the application developer must set another metric gatherer or us the provided one in
- (store) #14438 Pass logger from baseapp to store.
- (baseapp) #14417 The store package no longer has a dependency on baseapp.
- (module) #14415 Loosen assertions in SetOrderBeginBlockers() and SetOrderEndBlockers().
- (store) #14410
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
tostore/types/..
. - (context)#14384 Refactor(context): Pass EventManager to the context as an interface.
- (types) #14354 Improve performance on Context.KVStore and Context.TransientStore by 40%.
- (crypto/keyring) #14151 Move keys presentation from
crypto/keyring
toclient/keys
- (signing) #14087 Add SignModeHandlerWithContext interface with a new
GetSignBytesWithContext
to get the sign bytes usingcontext.Context
as an argument to access state. - (server) #14062 Remove rosetta from server start.
- (crypto) #3129 New armor and keyring key derivation uses aead and encryption uses chacha20poly.
- (x/gov) #18146 Add denom check to reject denoms outside of those listed in
MinDeposit
. A newMinDepositRatio
param is added (with a default value of0.001
) and now deposits are required to be at leastMinDepositRatio*MinDeposit
to be accepted. - (x/group,x/gov) #16235 A group and gov proposal is rejected if the proposal metadata title and summary do not match the proposal title and summary.
- (baseapp) #15930 change vote info provided by prepare and process proposal to the one in the block.
- (x/staking) #15731 Introducing a new index to retrieve the delegations by validator efficiently.
- (x/staking) #15701 The
HistoricalInfoKey
has been updated to use a binary format. - (x/slashing) #15580 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.
- (x/staking) #14590
MsgUndelegateResponse
now includes undelegated amount.x/staking
module'skeeper.Undelegate
now returns 3 values (completionTime,undelegateAmount,error) instead of 2. - (x/feegrant) #14294 Moved the logic of rejecting duplicate grant from
msg_server
tokeeper
method.
- (x/auth) #17787 Remove Tip functionality.
- (types)
module.EndBlockAppModule
has been replaced by Core APIappmodule.HasEndBlocker
ormodule.HasABCIEndBlock
when needing validator updates. - (types)
module.BeginBlockAppModule
has been replaced by Core APIappmodule.HasBeginBlocker
. - (types) #17358 Remove deprecated
sdk.Handler
, usebaseapp.MsgServiceHandler
instead. - (client) #17197
keys.Commands
does not take a home directory anymore. It is inferred from the root command. - (x/staking) #17157
GetValidatorsByPowerIndexKey
andValidateBasic
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 addressGetConsAddr() ([]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
- (x/staking) #17098
NewMsgCreateValidator
,NewValidator
,NewMsgCancelUnbondingDelegation
,NewMsgUndelegate
,NewMsgBeginRedelegate
,NewMsgDelegate
andNewMsgEditValidator
takes a string instead ofsdk.ValAddress
orsdk.AccAddress
:NewRedelegation
andNewUnbondingDelegation
takes a validatorAddressCodec and a delegatorAddressCodec in order to decode the addresses.NewRedelegationResponse
takes a string instead ofsdk.ValAddress
orsdk.AccAddress
.NewMsgCreateValidator.Validate()
takes an address codec in order to decode the address.BuildCreateValidatorMsg
takes a ValidatorAddressCodec in order to decode addresses.
- (x/slashing) #17098
NewMsgUnjail
takes a string instead ofsdk.ValAddress
- (x/genutil) #17098
GenAppStateFromConfig
, AddGenesisAccountCmd andGenTxCmd
takes an addresscodec to decode addresses. - (x/distribution) #17098
NewMsgDepositValidatorRewardsPool
,NewMsgFundCommunityPool
,NewMsgWithdrawValidatorCommission
andNewMsgWithdrawDelegatorReward
takes a string instead ofsdk.ValAddress
orsdk.AccAddress
. - (x/staking) #16959 Add validator and consensus address codec as staking keeper arguments.
- (x/staking) #16958 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. - (testutil) #16899 The cli testutil
QueryBalancesExec
has been removed. Use the gRPC or REST query instead. - (x/staking) #16795
DelegationToDelegationResponse
,DelegationsToDelegationResponses
,RedelegationsToRedelegationResponses
are no longer exported. - (x/auth/vesting) #16741 Vesting account constructor now return an error with the result of their validate function.
- (x/auth) #16650 The cli testutil
QueryAccountExec
has been removed. Use the gRPC or REST query instead. - (x/auth) #16621 Pass address codec to auth new keeper constructor.
- (x/auth) #16423
helpers.AddGenesisAccount
has been moved tox/genutil
to remove the cyclic dependency betweenx/auth
andx/genutil
. - (baseapp) #16342 NewContext was renamed to NewContextLegacy. The replacement (NewContext) now does not take a header, instead you should set the header via
WithHeaderInfo
orWithBlockHeight
. Note thatWithBlockHeight
will soon be depreacted and its recommneded to useWithHeaderInfo
. - (x/mint) #16329 Use collections for state management:
- Removed: keeper
GetParams
,SetParams
,GetMinter
,SetMinter
.
- Removed: keeper
- (x/crisis) #16328 Use collections for state management:
- Removed: keeper
GetConstantFee
,SetConstantFee
- Removed: keeper
- (x/staking) #16324
NewKeeper
now takes aKVStoreService
instead of aStoreKey
, and methods in theKeeper
now take acontext.Context
instead of asdk.Context
and return anerror
. Notable changes:Validator
method now returnstypes.ErrNoValidatorFound
instead ofnil
when not found.
- (x/distribution) #16302 Use collections for FeePool state management.
- Removed: keeper
GetFeePool
,SetFeePool
,GetFeePoolCommunityCoins
- Removed: keeper
- (types) #16272
FeeGranter
in theFeeTx
interface returns[]byte
instead ofstring
. - (x/gov) #16268 Use collections for proposal state management (part 2):
- this finalizes the gov collections migration
- Removed: types all the key related functions
- Removed: keeper
InsertActiveProposalsQueue
,RemoveActiveProposalsQueue
,InsertInactiveProposalsQueue
,RemoveInactiveProposalsQueue
,IterateInactiveProposalsQueue
,IterateActiveProposalsQueue
,ActiveProposalsQueueIterator
,InactiveProposalsQueueIterator
- (x/slashing) #16246
NewKeeper
now takes aKVStoreService
instead of aStoreKey
, and methods in theKeeper
now take acontext.Context
instead of asdk.Context
and return anerror
.GetValidatorSigningInfo
now returns an error instead of afound bool
, the error can benil
(found),ErrNoSigningInfoFound
(not found) and any other error. - (module) #16227
manager.RunMigrations()
now take acontext.Context
instead of asdk.Context
. - (x/crisis) #16216
NewKeeper
now takes aKVStoreService
instead of aStoreKey
, methods in theKeeper
now take acontext.Context
instead of asdk.Context
and return anerror
instead of panicking. - (x/distribution) #16211 Use collections for params state management.
- (cli) #16209 Add API
StartCmdWithOptions
to create customized start command. - (x/mint) #16179
NewKeeper
now takes aKVStoreService
instead of aStoreKey
, and methods in theKeeper
now take acontext.Context
instead of asdk.Context
and return anerror
. - (x/gov) #16171 Use collections for proposal state management (part 1):
- Removed: keeper:
GetProposal
,UnmarshalProposal
,MarshalProposal
,IterateProposal
,GetProposal
,GetProposalFiltered
,GetProposals
,GetProposalID
,SetProposalID
- Removed: errors unused errors
- Removed: keeper:
- (x/gov) #16164 Use collections for vote state management:
- Removed: types
VoteKey
,VoteKeys
- Removed: keeper
IterateVotes
,IterateAllVotes
,GetVotes
,GetVote
,SetVote
- Removed: types
- (sims) #16155
simulation.NewOperationMsg
now marshals the operation msg as proto bytes instead of legacy amino JSON bytes.simulation.NewOperationMsg
is now 2-arity instead of 3-arity with the obsolete argumentcodec.ProtoCodec
removed.- The field
OperationMsg.Msg
is now of type[]byte
instead ofjson.RawMessage
.
- (x/gov) #16127 Use collections for deposit state management:
- The following methods are removed from the gov keeper:
GetDeposit
,GetAllDeposits
,IterateAllDeposits
. - The following functions are removed from the gov types:
DepositKey
,DepositsKey
.
- The following methods are removed from the gov keeper:
- (x/gov) #16118 Use collections for constituion and params state management.
- (x/gov) #16106 Remove gRPC query methods from gov keeper.
- (x/all) #16052
GetSignBytes
implementations on messages and global legacy amino codec definitions have been removed from all modules. - (sims) #16052
GetOrGenerate
no longer requires a codec argument is now 4-arity instead of 5-arity. - (types/math) #16040 Remove aliases in
types/math.go
(part 2). - (types/math) #16040 Remove aliases in
types/math.go
(part 1). - (x/auth) #16016 Use collections for accounts state management:
- removed: keeper
HasAccountByID
,AccountAddressByID
, `SetParams
- removed: keeper
- (x/genutil) #15999 Genutil now takes the
GenesisTxHanlder
interface instead of deliverTx. The interface is implemented on baseapp - (x/gov) #15988
NewKeeper
now takes aKVStoreService
instead of aStoreKey
, methods in theKeeper
now take acontext.Context
instead of asdk.Context
and return anerror
(instead of panicking or returning afound bool
). Iterators callback functions now return an error instead of abool
. - (x/auth) #15985 The
AccountKeeper
does not expose theQueryServer
andMsgServer
APIs anymore. - (x/authz) #15962
NewKeeper
now takes aKVStoreService
instead of aStoreKey
, methods in theKeeper
now take acontext.Context
instead of asdk.Context
. TheAuthorization
interface'sAccept
method now takes acontext.Context
instead of asdk.Context
. - (x/distribution) #15948
NewKeeper
now takes aKVStoreService
instead of aStoreKey
and methods in theKeeper
now take acontext.Context
instead of asdk.Context
. Keeper methods also now return anerror
. - (x/bank) #15891
NewKeeper
now takes aKVStoreService
instead of aStoreKey
and methods in theKeeper
now take acontext.Context
instead of asdk.Context
. AlsoFundAccount
andFundModuleAccount
from thetestutil
package accept acontext.Context
instead of asdk.Context
, and it's position was moved to the first place. - (x/slashing) #15875
x/slashing.NewAppModule
now requires anInterfaceRegistry
parameter. - (x/crisis) #15852 Crisis keeper now takes a instance of the address codec to be able to decode user addresses
- (x/auth) #15822 The type of struct field
ante.HandlerOptions.SignModeHandler
has been changed tox/tx/signing.HandlerMap
. - (client) #15822 The return type of the interface method
TxConfig.SignModeHandler
has been changed tox/tx/signing.HandlerMap
.- The signature of
VerifySignature
has been changed to accept ax/tx/signing.HandlerMap
and other structs fromx/tx
as arguments. - The signature of
NewTxConfigWithTextual
has been deprecated and its signature changed to accept aSignModeOptions
. - The signature of
NewSigVerificationDecorator
has been changed to accept ax/tx/signing.HandlerMap
.
- The signature of
- (x/bank) #15818
BaseViewKeeper
'sLogger
method now doesn't require a context.NewBaseKeeper
,NewBaseSendKeeper
andNewBaseViewKeeper
now also require alog.Logger
to be passed in. - (x/genutil) #15679
MigrateGenesisCmd
now takes aMigrationMap
instead of having the SDK genesis migration hardcoded. - (client) #15673 Move
client/keys.OutputFormatJSON
andclient/keys.OutputFormatText
toclient/flags
package. - (x/all) #15648 Make
SetParams
consistent across all modules and validate the params at the message handling instead ofSetParams
method. - (codec) #15600 #15873 add support for getting signers to
codec.Codec
andInterfaceRegistry
:InterfaceRegistry
is has unexported methods and implementsprotodesc.Resolver
plus theRangeFiles
andSigningContext
methods. All implementations ofInterfaceRegistry
by other users must now embed the official implementation.Codec
has new methodsInterfaceRegistry
,GetMsgAnySigners
,GetMsgV1Signers
, andGetMsgV2Signers
as well as unexported methods. All implementations ofCodec
by other users must now embed an official implementation from thecodec
package.AminoCodec
is marked as deprecated and no longer implements `Codec.
- (client) #15597
RegisterNodeService
now requires a config parameter. - (x/nft) #15588
NewKeeper
now takes aKVStoreService
instead of aStoreKey
and methods in theKeeper
now take acontext.Context
instead of asdk.Context
. - (baseapp) #15568
SetIAVLLazyLoading
is removed from baseapp. - (x/genutil) #15567
CollectGenTxsCmd
&GenTxCmd
takes a address.Codec to be able to decode addresses. - (x/bank) #15567
GenesisBalance.GetAddress
now returns a string instead ofsdk.AccAddress
MsgSendExec
test helper function now takes a address.Codec
- (x/auth) #15520
NewAccountKeeper
now takes aKVStoreService
instead of aStoreKey
and methods in theKeeper
now take acontext.Context
instead of asdk.Context
. - (baseapp) #15519
runTxMode
s were renamed toexecMode
.ModeDeliver
as changed toModeFinalize
and a newModeVoteExtension
was added for vote extensions. - (baseapp) #15519 Writing of state to the multistore was moved to
FinalizeBlock
.Commit
still handles the committing values to disk. - (baseapp) #15519 Calls to BeginBlock and EndBlock have been replaced with core api beginblock & endblock.
- (baseapp) #15519 BeginBlock and EndBlock are now internal to baseapp. For testing, user must call
FinalizeBlock
. BeginBlock and EndBlock calls are internal to Baseapp. - (baseapp) #15519 All calls to ABCI methods now accept a pointer of the abci request and response types
- (x/consensus) #15517
NewKeeper
now takes aKVStoreService
instead of aStoreKey
. - (x/bank) #15477
banktypes.NewMsgMultiSend
andkeeper.InputOutputCoins
only accept one input. - (server) #15358 Remove
server.ErrorCode
that was not used anywhere. - (x/capability) #15344 Capability module was removed and is now housed in IBC-GO.
- (mempool) #15328 The
PriorityNonceMempool
is now generic over typeC comparable
and takes a singlePriorityNonceMempoolConfig[C]
argument. SeeDefaultPriorityNonceMempoolConfig
for how to construct the configuration and aTxPriority
type. - #15299 Remove
StdTx
transaction and signing APIs. No SDK version has actually supportedStdTx
since before Stargate. - #15284
- (x/gov) #15284
NewKeeper
now requirescodec.Codec
. - (x/authx) #15284
NewKeeper
now requirescodec.Codec
.types/tx.Tx
no longer implementssdk.Tx
.sdk.Tx
now requires a new methodGetMsgsV2()
.sdk.Msg.GetSigners
was deprecated and is no longer supported. Use thecosmos.msg.v1.signer
protobuf annotation instead.TxConfig
has a new methodSigningContext() *signing.Context
.SigVerifiableTx.GetSigners()
now returns([][]byte, error)
instead of[]sdk.AccAddress
.AccountKeeper
now has anAddressCodec() address.Codec
method and the expectedAccountKeeper
forx/auth/ante
expects this method.
- #15211 Remove usage of
github.com/cometbft/cometbft/libs/bytes.HexBytes
in favor of[]byte
thorough the SDK. - (crypto) #15070
GenerateFromPassword
andCost
frombcrypt.go
now take auint32
instead of aint
type. - (types) #15067 Remove deprecated alias from
types/errors
. Usecosmossdk.io/errors
instead. - (server) #15041 Refactor how gRPC and API servers are started to remove unnecessary sleeps:
api.Server#Start
now accepts acontext.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 viaStartGRPCServer
which accepts acontext.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
toListenForQuitSignals
. Note, this function is no longer blocking. Thus the caller is expected to provide acontext.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. - (simapp) #14977 Move simulation helpers functions (
AppStateFn
andAppStateRandomizedFn
) totestutil/sims
. These takes an extra genesisState argument which is the default state of the app. - (x/bank) #14894 Allow a human readable denomination for coins when querying bank balances. Added a
ResolveDenom
parameter totypes.QueryAllBalancesRequest
. - #14847 App and ModuleManager methods
InitGenesis
,ExportGenesis
,BeginBlock
andEndBlock
now also return an error. - (x/upgrade) #14764 The
x/upgrade
module is extracted to have a separate go.mod file which allows it to be a standalone module. - (x/auth) #14758 Refactor transaction searching:
- Refactor
QueryTxsByEvents
to accept aquery
of typestring
instead ofevents
of type[]string
- Refactor CLI methods to accept
--query
flag instead of--events
- Pass
prove=false
to Tendermint'sTxSearch
RPC method
- Refactor
- (simulation) #14751 Remove the
MsgType
field fromsimulation.OperationInput
struct. - (store) #14746 Extract Store in its own go.mod and rename the package to
cosmossdk.io/store
. - (x/nft) #14725 Extract NFT in its own go.mod and rename the package to
cosmossdk.io/x/nft
. - (x/gov) #14720 Add an expedited field in the gov v1 proposal and
MsgNewMsgProposal
. - (x/feegrant) #14649 Extract Feegrant in its own go.mod and rename the package to
cosmossdk.io/x/feegrant
. - (tx) #14634 Move the
tx
go module tox/tx
. - (store/streaming)#14603
StoreDecoderRegistry
moved from store totypes/simulations
this breaks theAppModuleSimulation
interface. - (snapshots) #14597 Move
snapshots
tostore/snapshots
, rename and bump proto package to v1. - (x/staking) #14590
MsgUndelegateResponse
now includes undelegated amount.x/staking
module'skeeper.Undelegate
now returns 3 values (completionTime,undelegateAmount,error) instead of 2. - (crypto/keyring) #14151 Move keys presentation from
crypto/keyring
toclient/keys
- (baseapp) #14050 Refactor
ABCIListener
interface to accept Go contexts. - (x/auth) #13850 Remove
MarshalYAML
methods from module (x/...
) types. - (modules) #13850 and #14046 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
. - (crypto/keyring) #13734 The keyring's
Sign
method now takes a newsignMode
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.
- (signing) #13701 Add
context.Context
as an argumentx/auth/signing.VerifySignature
. - (store) #11825 Make extension snapshotter interface safer to use, renamed the util function
WriteExtensionItem
toWriteExtensionPayload
.
- (x/gov) #17910 Remove telemetry for counting votes and proposals. It was incorrectly counting votes. Use alternatives, such as state streaming.
- (abci) #15845 Remove duplicating events in
logs
. - (abci) #15845 Add
msg_index
to all event attributes to associate events and messages. - (x/staking) #15701
HistoricalInfoKey
now has a binary format. - (store/streaming) #15519 State Streaming removed emitting of beginblock, endblock and delivertx in favour of emitting FinalizeBlock.
- (baseapp) #15519 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.
- (grpc-web) #14652 Use same port for gRPC-Web and the API server.
- (all) The migration of modules to AutoCLI led to no changes in UX but a small change in CLI outputs where results can be nested.
- (all) Query pagination flags have been renamed with the migration to AutoCLI:
--reverse
->--page-reverse
--offset
->--page-offset
--limit
->--page-limit
--count-total
->--page-count-total
- (cli) #17184 All json keys returned by the
status
command are now snake case instead of pascal case. - (server) #17177 Remove
iavl-lazy-loading
configuration. - (x/gov) #16987 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
. - (x/bank) #16899 With the migration to AutoCLI some bank commands have been split in two:
- Use
total-supply
(ortotal
) for querying the total supply andtotal-supply-of
for querying the supply of a specific denom. - Use
denoms-metadata
for querying all denom metadata anddenom-metadata
for querying a specific denom metadata.
- Use
- (rosetta) #16276 Rosetta migration to standalone repo.
- (cli) #15826 Remove
<appd> q account
command. Use<appd> q auth account
instead. - (cli) #15299 Remove
--amino
flag fromsign
andmulti-sign
commands. AminoStdTx
has been deprecated for a while. Amino JSON signing still works as expected. - (x/gov) #14880 Remove
<app> tx gov submit-legacy-proposal cancel-software-upgrade
andsoftware-upgrade
commands. These commands are now in thex/upgrade
module and using gov v1. Usetx upgrade software-upgrade
instead. - (x/staking) #14864
<appd> tx staking create-validator
CLI command now takes a json file as an arg instead of using required flags. - (cli) #14659
<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>
. - (grpc-web) #14652 Remove
grpc-web.address
flag. - (client) #14342
<app> config
command is now a sub-command using Confix. Use<app> config --help
to learn more.
- (server) #18254 Don't hardcode gRPC address to localhost.
- (x/gov) #18173 Gov hooks now return an error and are blocking when they fail. Expect for
AfterProposalFailedMinDeposit
andAfterProposalVotingPeriodEnded
which log the error and continue. - (x/gov) #17873 Fail any inactive and active proposals that cannot be decoded.
- (x/slashing) #18016 Fixed builder function for missed blocks key (
validatorMissedBlockBitArrayPrefixKey
) in slashing/migration/v4. - (x/bank) #18107 Add missing keypair of SendEnabled to restore legacy param set before migration.
- (baseapp) #17769 Ensure we respect block size constraints in the
DefaultProposalHandler
'sPrepareProposal
handler when a nil or no-op mempool is used. We provide aTxSelector
type to assist in making transaction selection generalized. We also fix a comparison bug in tx selection whenreq.maxTxBytes
is reached. - (mempool) #17668 Fix
PriorityNonceIterator.Next()
nil pointer ref for min priority at the end of iteration. - (config) #17649 Fix
mempool.max-txs
configuration is invalid inapp.config
. - (baseapp) #17518 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.
- (baseapp) #17251 VerifyVoteExtensions and ExtendVote initialize their own contexts/states, allowing VerifyVoteExtensions being called without ExtendVote.
- (x/distribution) #17236 Using "validateCommunityTax" in "Params.ValidateBasic", preventing panic when field "CommunityTax" is nil.
- (x/bank) #17170 Avoid empty spendable error message on send coins.
- (x/group) #17146 Rename x/group legacy ORM package's error codespace from "orm" to "legacy_orm", preventing collisions with ORM's error codespace "orm".
- (types/query) #16905 Collections Pagination now applies proper count when filtering results.
- (x/bank) #16841 Correctly process legacy
DenomAddressIndex
values. - (x/auth/vesting) #16733 Panic on overflowing and negative EndTimes when creating a PeriodicVestingAccount.
- (x/consensus) #16713 Add missing ABCI param in
MsgUpdateParams
. - (baseapp) #16700 Fix consensus failure in returning no response to malformed transactions.
- #16639 Make sure we don't execute blocks beyond the halt height.
- (baseapp) #16613 Ensure each message in a transaction has a registered handler, otherwise
CheckTx
will fail. - (baseapp) #16596 Return error during
ExtendVote
andVerifyVoteExtension
if the request height is earlier thanVoteExtensionsEnableHeight
. - (baseapp) #16259 Ensure the
Context
block height is correct afterInitChain
and prior to the second block. - (x/gov) #16231 Fix Rawlog JSON formatting of proposal_vote option field.* (cli) #16138 Fix snapshot commands panic if snapshot don't exists.
- (x/staking) #16043 Call
AfterUnbondingInitiated
hook for new unbonding entries only and fixUnbondingDelegation
entries handling. This is a behavior change compared to Cosmos SDK v0.47.x, now the hook is called only for new unbonding entries. - (types) #16010 Let
module.CoreAppModuleBasicAdaptor
fallback to legacy genesis handling. - (types) #15691 Make
Coin.Validate()
check that.Amount
is not nil. - (x/crypto) #15258 Write keyhash file with permissions 0600 instead of 0555.
- (x/auth) #15059
ante.CountSubKeys
returns 0 when passing a nilPubkey
. - (x/capability) #15030 Prevent
x/capability
from consumingGasMeter
gas duringInitMemStore
- (types/coin) #14739 Deprecate the method
Coin.IsEqual
in favour ofCoin.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.
- (types) #16980 Deprecate
IntProto
andDecProto
. Instead,math.Int
andmath.LegacyDec
should be used respectively. Both types supportMarshal
andUnmarshal
for binary serialization. - (x/staking) #14567 The
delegator_address
field ofMsgCreateValidator
has been deprecated. The validator address bytes and delegator address bytes refer to the same account while creating validator (defer only in bech32 notation).