v0.50.0-rc.0 - 2023-08-18
- (keyring) #17424 Allows to import private keys encoded in hex.
- (client/rpc) #17274 Add
QueryEventForTxCmd
cmd to subscribe and wait event for transaction by hash. - (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) #16795 Add
DenomMetadataByQueryString
query in bank module to support metadata query by query string. - (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. It is however NOT enabled by default, and should only be used for TESTING purposes until
SIGN_MODE_TEXTUAL
is fully released. - (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. - #13473 ADR-038: Go plugin system proposal.
- (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()
- (x/group, x/gov) #17220 Add
--skip-metadata
flag indraft-proposal
to skip metadata prompt. - (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.
- (cli) #16856 Improve
simd prune
UX by using the app default home directory and set pruning method as first variable argument (defaults to default). - (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
create-validator
CLI command now takes a json file as an arg instead of having a bunch of required flags to it. - (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 pacakge 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/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.
- (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
: - (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
.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/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 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 commiting 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
.
- (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
. Additonally, 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
create-validator
CLI command now takes a json file as an arg instead of having a bunch of required flags to it. - (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. Use<app> config --help
to learn more.
- (runtime) #17284 Properly allow to combine depinject-enabled modules and non-depinject-enabled modules in app v2.
- (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/auth) #17209 Internal error on AccountInfo when account's public key is not set.
- (server) #17181 Fix
db_backend
lookup fallback fromconfig.toml
. - (x/bank) #17170 Avoid empty spendable error message on send coins.
- (baseapp) #17159 Validators can propose blocks that exceed the gas limit.
- (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
. - #16547 Ensure a transaction's gas limit cannot exceed the block gas limit.
- (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).