v0.47.0 - 2023-03-14
- (x/gov) #15151 Add
burn_vote_quorum
,burn_proposal_deposit_prevote
andburn_vote_veto
params to allow applications to decide if they would like to burn deposits - (client) #14509 Added
AddKeyringFlags
function. - (x/bank) #14045 Add CLI command
spendable-balances
, which also accepts the flag--denom
. - (x/slashing, x/staking) #14363 Add the infraction a validator commited type as an argument to a
SlashWithInfractionReason
keeper method. - (client) #14051 Add
--grpc
client option. - (x/genutil) #14149 Add
genutilcli.GenesisCoreCommand
command, which contains all genesis-related sub-commands. - (x/evidence) #13740 Add new proto field
hash
of typestring
toQueryEvidenceRequest
which helps to decode the hash properly while using query API. - (core) #13306 Add a
FormatCoins
function to incore/coins
to format sdk Coins following the Value Renderers spec. - (math) #13306 Add
FormatInt
andFormatDec
functiosn inmath
to format integers and decimals following the Value Renderers spec. - (x/staking) #13122 Add
UnbondingCanComplete
andPutUnbondingOnHold
tox/staking
module. - #13437 Add new flag
--modules-to-export
insimd export
command to export only selected modules. - #13298 Add
AddGenesisAccount
helper func in x/auth module which helps adding accounts to genesis state. - (x/authz) #12648 Add an allow list, an optional list of addresses allowed to receive bank assets via authz MsgSend grant.
- (sdk.Coins) #12627 Make a Denoms method on sdk.Coins.
- (testutil) #12973 Add generic
testutil.RandSliceElem
function which selects a random element from the list. - (client) #12936 Add capability to preprocess transactions before broadcasting from a higher level chain.
- (cli) #13064 Add
debug prefixes
to list supported HRP prefixes via . - (ledger) #12935 Generalize Ledger integration to allow for different apps or keytypes that use SECP256k1.
- (x/bank) #11981 Create the
SetSendEnabled
endpoint for managing the bank's SendEnabled settings. - (x/auth) #13210 Add
Query/AccountInfo
endpoint for simplified access to basic account info. - (x/consensus) #12905 Create a new
x/consensus
module that is now responsible for maintaining Tendermint consensus parameters instead ofx/param
. Legacy types remain in order to facilitate parameter migration from the deprecatedx/params
. App developers should ensure that they executebaseapp.MigrateParams
during their chain upgrade. These legacy types will be removed in a future release. - (client/tx) #13670 Add validation in
BuildUnsignedTx
to prevent simple inclusion of valid mnemonics
- #14995 Allow unknown fields in
ParseTypedEvent
. - (store) #14931 Exclude in-memory KVStores, i.e.
StoreTypeMemory
, from CommitInfo commitments. - (cli) #14919 Fix never assigned error when write validators.
- (x/group) #14923 Fix error while using pagination in
x/group
from CLI. - (types/coin) #14715
sdk.Coins.Add
now returns an empty set of coinssdk.Coins{}
if both coins set are empty.- This is a behavior change, as previously
sdk.Coins.Add
would returnnil
in this case.
- This is a behavior change, as previously
- (reflection) #14838 We now require that all proto files' import path (i.e. the OS path) matches their fully-qualified package name. For example, proto files with package name
cosmos.my.pkg.v1
should live in the foldercosmos/my/pkg/v1/*.proto
relatively to the protoc import root folder (usually the rootproto/
folder). - (baseapp) #14505 PrepareProposal and ProcessProposal now use deliverState for the first block in order to access changes made in InitChain.
- (x/group) #14527 Fix wrong address set in
EventUpdateGroupPolicy
. - (cli) #14509 Added missing options to keyring-backend flag usage.
- (server) #14441 Fix
--log_format
flag not working. - (ante) #14448 Return anteEvents when postHandler fail.
- (baseapp) #13983 Don't emit duplicate ante-handler events when a post-handler is defined.
- (x/staking) #14064 Set all fields in
redelegation.String()
. - (x/upgrade) #13936 Make downgrade verification work again.
- (x/group) #13742 Fix
validate-genesis
when group policy accounts exist. - (store) #13516 Fix state listener that was observing writes at wrong time.
- (simstestutil) #15305 Add
AppStateFnWithExtendedCb
with callback function to extend rawState. - (simapp) #14977 Move simulation helpers functions (
AppStateFn
andAppStateRandomizedFn
) totestutil/sims
. These takes an extra genesisState argument which is the default state of the app. - (cli) #14953 Enable profiling block replay during abci handshake with
--cpu-profile
. - (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. - (store) #14189 Add config
iavl-lazy-loading
to enable lazy loading of iavl store, to improve start up time of archive nodes, add methodSetLazyLoading
toCommitMultiStore
interface. - (deps) #14830 Bump to IAVL
v0.19.5-rc.1
. - (tools) #14793 Dockerfile optimization.
- (x/gov) #13010 Partial cherry-pick of this issue for adding proposer migration.
- #14691 Change behavior of
sdk.StringifyEvents
to not flatten events attributes by events type.- This change only affects ABCI message logs, and not the events field.
- #14692 Improve RPC queries error message when app is at height 0.
- #14017 Simplify ADR-028 and
address.Module
.- This updates the ADR-028 and enhance the
address.Module
API to support module addresses and sub-module addresses in a backward compatible way.
- This updates the ADR-028 and enhance the
- (snapshots) #14608 Deprecate unused structs
SnapshotKVItem
andSnapshotSchema
. - #15243
LatestBlockResponse
&BlockByHeightResponse
types' fieldsdk_block
was incorrectly castproposer_address
bytes to validator operator address, now to consensus address - (x/group, x/gov) #14483 Add support for
[]string
and[]int
indraft-proposal
prompt. - (protobuf) #14476 Clean up protobuf annotations
{accepts,implements}_interface
. - (x/gov, x/group) #14472 The recommended metadata format for x/gov and x/group proposals now uses an array of strings (instead of a single string) for the
authors
field. - (crypto) #14460 Check the signature returned by a ledger device against the public key in the keyring.
- #14356 Add
events.GetAttributes
andevent.GetAttribute
methods to simplify the retrieval of an attribute from event(s). - (types) #14332 Reduce state export time by 50%.
- (types) #14163 Refactor
(coins Coins) Validate()
to avoid unnecessary map. - #13881 Optimize iteration on nested cached KV stores and other operations in general.
- (x/gov) #14347 Support
v1.Proposal
message inv1beta1.Proposal.Content
. - #13882 Add tx
encode
anddecode
endpoints to amino tx service.Note: These endpoints encodes and decodes only amino txs.
- (config) #13894 Support state streaming configuration in
app.toml
template and default configuration. - (x/nft) #13836 Remove the validation for
classID
andnftID
from the NFT module. - #13789 Add tx
encode
anddecode
endpoints to tx service.Note: These endpoints will only encode and decode proto messages, Amino encoding and decoding is not supported.
- #13619 Add new function called LogDeferred to report errors in defers. Use the function in x/bank files.
- (deps) #13397 Bump Go version minimum requirement to
1.19
. - #13070 Migrate from
gogo/protobuf
tocosmos/gogoproto
. - #12995 Add
FormatTime
andParseTimeString
methods. - #12952 Replace keyring module to Cosmos fork.
- #12352 Move the
RegisterSwaggerAPI
logic into a separate helper function in the server package. - #12876 Remove proposer-based rewards.
- #12846 Remove
RandomizedParams
from theAppModuleSimulation
interface which is no longer needed. - (ci) #12854 Use ghcr.io to host the proto builder image. Update proto builder image to go 1.19
- (x/bank) #12706 Added the
chain-id
flag to theAddTxFlagsToCmd
API. There is no longer a need to explicitly register this flag on commands whensAddTxFlagsToCmd
is already called. - #12717 Use injected encoding params in simapp.
- #12634 Move
sdk.Dec
to math package. - #12187 Add batch operation for x/nft module.
- #12455 Show attempts count in error for signing.
- #13101 Remove weights from
simapp/params
andtestutil/sims
. They are now in their respective modules. - #12398 Refactor all
x
modules to unit-test via mocks and decouplesimapp
. - #13144 Add validator distribution info grpc gateway get endpoint.
- #13168 Migrate tendermintdev/proto-builder to ghcr.io. New image
ghcr.io/cosmos/proto-builder:0.8
- #13178 Add
cosmos.msg.v1.service
protobuf annotation to allow tooling to distinguish between Msg and Query services via reflection. - #13236 Integrate Filter Logging
- #13528 Update
ValidateMemoDecorator
to only check memo againstMaxMemoCharacters
param when a memo is present. - #13651 Update
server/config/config.GetConfig
function. - #13781 Remove
client/keys.KeysCdc
. - #13802 Add --output-document flag to the export CLI command to allow writing genesis state to a file.
- #13794
types/module.Manager
now supports thecosmossdk.io/core/appmodule.AppModule
API via the newNewManagerFromMap
constructor. - #14019 Remove the interface casting to allow other implementations of a
CommitMultiStore
. - #14175 Add
server.DefaultBaseappOptions(appopts)
function to reduce boiler plate in root.go.
- (baseapp, x/auth/posthandler) #13940 Update
PostHandler
to receive therunTx
success boolean. - (store) #14378 The
CacheKV
store is thread-safe again, which includes improved iteration and deletion logic. Iteration is on a strictly isolated view now, which is breaking from previous behavior. - (x/bank) #14538 Validate denom in bank balances GRPC queries.
- (x/group) #14465 Add title and summary to proposal struct.
- (x/gov) #14390 Add title, proposer and summary to proposal struct.
- (x/group) #14071 Don't re-tally proposal after voting period end if they have been marked as ACCEPTED or REJECTED.
- (x/group) #13742 Migrate group policy account from module accounts to base account.
- (x/auth)#13780
id
(type of int64) inAccountAddressByID
grpc query is now deprecated, update to account-id(type of uint64) to useAccountAddressByID
. - (codec) #13307 Register all modules'
Msg
s with group's ModuleCdc so that Amino sign bytes are correctly generated.* (x/gov) - (codec) #13196 Register all modules'
Msg
s with gov's ModuleCdc so that Amino sign bytes are correctly generated. - (group) #13592 Fix group types registration with Amino.
- (x/distribution) #12852 Deprecate
CommunityPoolSpendProposal
. Please execute aMsgCommunityPoolSpend
message via the new v1x/gov
module instead. This message can be used to directly fund thex/gov
module account. - (x/bank) #12610
MsgMultiSend
now allows only a single input. - (x/bank) #12630 Migrate
x/bank
to self-managed parameters and deprecate its usage ofx/params
. - (x/auth) #12475 Migrate
x/auth
to self-managed parameters and deprecate its usage ofx/params
. - (x/slashing) #12399 Migrate
x/slashing
to self-managed parameters and deprecate its usage ofx/params
. - (x/mint) #12363 Migrate
x/mint
to self-managed parameters and deprecate it's usage ofx/params
. - (x/distribution) #12434 Migrate
x/distribution
to self-managed parameters and deprecate it's usage ofx/params
. - (x/crisis) #12445 Migrate
x/crisis
to self-managed parameters and deprecate it's usage ofx/params
. - (x/gov) #12631 Migrate
x/gov
to self-managed parameters and deprecate it's usage ofx/params
. - (x/staking) #12409 Migrate
x/staking
to self-managed parameters and deprecate it's usage ofx/params
. - (x/bank) #11859 Move the SendEnabled information out of the Params and into the state store directly.
- (x/gov) #12771 Initial deposit requirement for proposals at submission time.
- (x/staking) #12967
unbond
now creates only one unbonding delegation entry when multiple unbondings exist at a single height (e.g. through multiple messages in a transaction). - (x/auth/vesting) #13502 Add Amino Msg registration for
MsgCreatePeriodicVestingAccount
.
- Migrate to CometBFT. Follow the migration instructions in the upgrade guide.
- (simulation) #14728 Rename the
ParamChanges
field toLegacyParamChange
andContents
toLegacyProposalContents
insimulation.SimulationState
. Additionally it adds aProposalMsgs
field tosimulation.SimulationState
. - (x/gov) #14782 Move the
metadata
argument ingovv1.NewProposal
alongsidetitle
andsummary
. - (x/upgrade) #14216 Change upgrade keeper receiver to upgrade keeper pointers.
- (x/auth) #13780 Querying with
id
(type of int64) inAccountAddressByID
grpc query now throws error, use account-id(type of uint64) instead. - (store) #13516 Update State Streaming APIs:
- Add method
ListenCommit
toABCIListener
- Move
ListeningEnabled
andAddListener
methods toCommitMultiStore
- Remove
CacheWrapWithListeners
fromCacheWrap
andCacheWrapper
interfaces - Remove listening APIs from the caching layer (it should only listen to the
rootmulti.Store
) - Add three new options to file streaming service constructor.
- Modify
ABCIListener
such that any error from any method will always halt the app viapanic
- Add method
- (x/auth) #13877 Rename
AccountKeeper
'sGetNextAccountNumber
toNextAccountNumber
. - (x/evidence) #13740 The
NewQueryEvidenceRequest
function now takeshash
as a HEX encodedstring
. - (server) #13485 The
Application
service now requires theRegisterNodeService
method to be implemented. - #13437 Add a list of modules to export argument in
ExportAppStateAndValidators
. - (simapp) #13402 Move simulation flags to
x/simulation/client/cli
. - (simapp) #13402 Move simulation helpers functions (
SetupSimulation
,SimulationOperations
,CheckExportSimulation
,PrintStats
,GetSimulationLog
) totestutil/sims
. - (simapp) #13402 Move
testutil/rest
package totestutil
. - (types) #13380 Remove deprecated
sdk.NewLevelDB
. - (simapp) #13378 Move
simapp.App
toruntime.AppI
. - (tx) #12659 Remove broadcast mode
block
. - (simapp) #12747 Remove
simapp.MakeTestEncodingConfig
. Please usemoduletestutil.MakeTestEncodingConfig
(types/module/testutil
) in tests instead. - (x/bank) #12648
NewSendAuthorization
takes a new argument of an optional list of addresses allowed to receive bank assests via authz MsgSend grant. You can passnil
for the same behavior as before, i.e. any recipient is allowed. - (x/bank) #12593 Add
SpendableCoin
method toBaseViewKeeper
- (x/slashing) #12581 Remove
x/slashing
legacy querier. - (types) #12355 Remove the compile-time
types.DBbackend
variable. Removes usage of the same in server/util.go - (x/gov) #12368 Gov keeper is now passed by reference instead of copy to make post-construction mutation of Hooks and Proposal Handlers possible at a framework level.
- (simapp) #12270 Remove
invCheckPeriod uint
attribute fromSimApp
struct as per migration ofx/crisis
to app wiring - (simapp) #12334 Move
simapp.ConvertAddrsToValAddrs
andsimapp.CreateTestPubKeys
to respectivelysimtestutil.ConvertAddrsToValAddrs
andsimtestutil.CreateTestPubKeys
(testutil/sims
) - (simapp) #12312 Move
simapp.EmptyAppOptions
tosimtestutil.EmptyAppOptions
(testutil/sims
) - (simapp) #12312 Remove
skipUpgradeHeights map[int64]bool
andhomePath string
fromNewSimApp
constructor as per migration ofx/upgrade
to app-wiring. - (testutil) #12278 Move all functions from
simapp/helpers
totestutil/sims
- (testutil) #12233 Move
simapp.TestAddr
tosimtestutil.TestAddr
(testutil/sims
) - (x/staking) #12102 Staking keeper now is passed by reference instead of copy. Keeper's SetHooks no longer returns keeper. It updates the keeper in place instead.
- (linting) #12141 Fix usability related linting for database. This means removing the infix Prefix from
prefix.NewPrefixWriter
and such so that it isprefix.NewWriter
and makingdb.DBConnection
and such intodb.Connection
- (x/distribution) #12434
x/distribution
moduleSetParams
keeper method definition is now updated to returnerror
. - (x/staking) #12409
x/staking
moduleSetParams
keeper method definition is now updated to returnerror
. - (x/crisis) #12445
x/crisis
moduleSetConstantFee
keeper method definition is now updated to returnerror
. - (x/gov) #12631
x/gov
module refactored to useParams
as single struct instead ofDepositParams
,TallyParams
&VotingParams
. - (x/gov) #12631 Migrate
x/gov
to self-managed parameters and deprecate it's usage ofx/params
. - (x/bank) #12630
x/bank
moduleSetParams
keeper method definition is now updated to returnerror
. - (x/bank) #11859 Move the SendEnabled information out of the Params and into the state store directly. The information can now be accessed using the BankKeeper. Setting can be done using MsgSetSendEnabled as a governance proposal. A SendEnabled query has been added to both GRPC and CLI.
- (appModule) Remove
Route
,QuerierRoute
andLegacyQuerierHandler
from AppModule Interface. - (x/modules) Remove all LegacyQueries and related code from modules
- (store) #11825 Make extension snapshotter interface safer to use, renamed the util function
WriteExtensionItem
toWriteExtensionPayload
. - (x/genutil)#12956
genutil.AppModuleBasic
has a new attribute: genesis transaction validation function. The existing validation logic is implemented ingenutiltypes.DefaultMessageValidator
. Usegenutil.NewAppModuleBasic
to create a new genutil Module Basic. - (codec) #12964
ProtoCodec.MarshalInterface
now returns an error when serializing unregistered types and a subsequentProtoCodec.UnmarshalInterface
would fail. - (x/staking) #12973 Removed
stakingkeeper.RandomValidator
. Usetestutil.RandSliceElem(r, sk.GetAllValidators(ctx))
instead. - (x/gov) #13160 Remove custom marshaling of proposl and voteoption.
- (types) #13430 Remove unused code
ResponseCheckTx
andResponseDeliverTx
- (store) #13529 Add method
LatestVersion
toMultiStore
interface, add methodSetQueryMultiStore
to baesapp to support alternativeMultiStore
implementation for query service. - (pruning) #13609 Move pruning package to be under store package
- #13794 Most methods on
types/module.AppModule
have been moved to extension interfaces.module.Manager.Modules
is now of typemap[string]interface{}
to support in parallel the newcosmossdk.io/core/appmodule.AppModule
API.
- (genesis) #14149 Add
simd genesis
command, which contains all genesis-related sub-commands. - (x/genutil) #13535 Replace in
simd init
, the--staking-bond-denom
flag with--default-denom
which is used for all default denomination in the genesis, instead of only staking.
- (x/auth/vesting) #15373 Add extra checks when creating a periodic vesting account.
- (x/auth) #13838 Fix calling
String()
andMarshalYAML
panics when pubkey is set on a `BaseAccount``. - (x/evidence) #13740 Fix evidence query API to decode the hash properly.
- (bank) #13691 Fix unhandled error for vesting account transfers, when total vesting amount exceeds total balance.
- #13553 Ensure all parameter validation for decimal types handles nil decimal values.
- #13145 Fix panic when calling
String()
to a Record struct type. - #13116 Fix a dead-lock in the
Group-TotalWeight
x/group
invariant. - (types) #12154 Add
baseAccountGetter
to avoid invalid account error when create vesting account. - (x/staking) #12303 Use bytes instead of string comparison in delete validator queue
- (store/rootmulti) #12487 Fix non-deterministic map iteration.
- (sdk/dec_coins) #12903 Fix nil
DecCoin
creation when convertingCoins
toDecCoins
- (store) #12945 Fix nil end semantics in store/cachekv/iterator when iterating a dirty cache.
- (x/gov) #13051 In SubmitPropsal, when a legacy msg fails it's handler call, wrap the error as ErrInvalidProposalContent (instead of ErrNoProposalHandlerExists).
- (snapshot) #13400 Fix snapshot checksum issue in golang 1.19.
- (server) #13778 Set Cosmos SDK default endpoints to localhost to avoid unknown exposure of endpoints.
- (x/auth) #13877 Handle missing account numbers during
InitGenesis
. - (x/gov) #13918 Propagate message errors when executing a proposal.
- (x/evidence) #13740 The
evidence_hash
field ofQueryEvidenceRequest
has been deprecated and now contains a new fieldhash
with typestring
. - (x/bank) #11859 The Params.SendEnabled field is deprecated and unusable. The information can now be accessed using the BankKeeper. Setting can be done using MsgSetSendEnabled as a governance proposal. A SendEnabled query has been added to both GRPC and CLI.