Every module contains its own CHANGELOG.md. Please refer to the module you are interested in.
- (tests) #20013 Introduce system tests to run multi node local testnet in CI
- (runtime) #19953 Implement
core/transaction.Service
in runtime. - (client) #19905 Add grpc client config to
client.toml
. - (runtime) #19571 Implement
core/router.Service
in runtime. This service is present in all modules (when using depinject). - (types) #19164 Add a ValueCodec for the math.Uint type that can be used in collections maps.
- (types) #19281 Added a new method,
IsGT
, fortypes.Coin
. This method is used to check if atypes.Coin
is greater than anothertypes.Coin
. - (client) #18557 Add
--qrcode
flag tokeys show
command to support displaying keys address QR code. - (client) #18101 Add a
keyring-default-keyname
inclient.toml
for specifying a default key name, and skip the need to use the--from
flag when signing transactions. - (tests) #17868 Added helper method
SubmitTestTx
in testutil to broadcast test txns to test e2e tests. - (client) #17513 Allow overwriting
client.toml
. Useclient.CreateClientConfig
in place ofclient.ReadFromClientConfig
and provide a custom template and a custom config. - (runtime) #18475 Adds an implementation for core.branch.Service.
- (baseapp) #18499 Add
MsgRouter
response type from message name function. - (types) #18768 Add MustValAddressFromBech32 function.
- (gRPC) #19049 Add debug log prints for each gRPC request.
- (x/consensus) #19483 Add consensus messages registration to consensus module.
- (types) #19759 Align SignerExtractionAdapter in PriorityNonceMempool Remove.
- (client) #19870 Add new query command
wait-tx
. Aliasevent-query-tx-for
towait-tx
for backward compatibility. - (crypto/keyring) #20212 Expose the db keyring used in the keystore.
- (genutil) #19971 Allow manually setting the consensus key type in genesis
- (debug) #20328 Add consensus address for debug cmd.
- (types) #19869 Removed
Any
type fromcodec/types
and replaced it with an alias forcosmos/gogoproto/types/any
. - (server) #19854 Add customizability to start command.
- Add
StartCmdOptions
inserver.AddCommands
instead ofservertypes.ModuleInitFlags
. To set custom flags set them in theStartCmdOptions
struct on theAddFlags
field. - Add
StartCommandHandler
toStartCmdOptions
to allow custom start command handlers. Users now have total control over how the app starts.
- Add
- (types) #19672
PreBlock
now returns only an error for consistency with server/v2. The SDK has upgraded x/upgrade accordingly.ResponsePreBlock
hence has been removed. - (server) #19455 Allow calling back into the application struct in PostSetup.
- (types) #19512 The notion of basic manager does not exist anymore (and all related helpers).
- The module manager now can do everything that the basic manager was doing.
AppModuleBasic
has been deprecated for extension interfaces.- Modules can now implement
appmodule.HasRegisterInterfaces
,module.HasGRPCGateway
andmodule.HasAminoCodec
when relevant. - SDK modules now directly implement those extension interfaces on
AppModule
instead ofAppModuleBasic
.
- (client/keys) #18950 Improve
<appd> keys add
,<appd> keys import
and<appd> keys rename
by checking name validation. - (client/keys) #18745 Improve
<appd> keys export
and<appd> keys mnemonic
by adding --yes option to skip interactive confirmation. - (client/keys) #18743 Improve
<appd> keys add -i
by hiding inputting of bip39 passphrase. - (client/keys) #18703 Improve
<appd> keys add
and<appd> keys show
by checking whether there are duplicate keys in the multisig case.- Usage of
Must...
kind of functions are avoided in keeper methods.
- Usage of
- (client/keys) #18687 Improve
<appd> keys mnemonic
by displaying mnemonic discreetly on an alternate screen and adding--indiscreet
option to disable it. - (client/keys) #18684 Improve
<appd> keys export
by displaying unarmored hex private key discreetly on an alternate screen and adding--indiscreet
option to disable it. - (client/keys) #18663 Improve
<appd> keys add
by displaying mnemonic discreetly on an alternate screen and adding--indiscreet
option to disable it. - (types) #18440 Add
AmountOfNoValidation
tosdk.DecCoins
. - (client) #17503 Add
client.Context{}.WithAddressCodec
,WithValidatorAddressCodec
,WithConsensusAddressCodec
to provide address codecs to the client context. See the UPGRADING.md for more details. - (crypto/keyring) #17503 Simplify keyring interfaces to use
[]byte
instead ofsdk.Address
for addresses. - (all) #16537 Properly propagated
fmt.Errorf
errors and usingerrors.New
where appropriate. - (rpc) #17470 Avoid open 0.0.0.0 to public by default and add
listen-ip-address
argument fortestnet init-files
cmd. - (types) #17670 Use
ctx.CometInfo
in place ofctx.VoteInfos
- #17733 Ensure
buf export
exports all proto dependencies - (crypto/keys) #18026 Made public key generation constant time on
secp256k1
- (crypto | x/auth) #14372 Key checks on signatures antehandle.
- (types) #18963 Swap out amino json encoding of
ABCIMessageLogs
for std lib json encoding - (x/auth) #19651 Allow empty public keys in
GetSignBytesAdapter
. - (x/genutil) #19735 Update genesis api to match new
appmodule.HasGenesis
interface. - (server) #19966 Return BlockHeader by shallow copy in server Context.
- (proto) #20098 Use cosmos_proto added_in annotation instead of // Since comments.
- (baseapp) #20208 Skip running validateBasic for rechecking txs.
- (baseapp) #18727 Ensure that
BaseApp.Init
firstly returns any errors from a nil commit multistore instead of panicking on nil dereferencing and before sealing the app. - (client) #18622 Fixed a potential under/overflow from
uint64->int64
when computing gas fees as a LegacyDec. - (client/keys) #18562
keys delete
won't terminate when a key is not found. - (baseapp) #18383 Fixed a data race inside BaseApp.getContext, found by end-to-end (e2e) tests.
- (client/server) #18345 Consistently set viper prefix in client and server. It defaults for the binary name for both client and server.
- (simulation) #17911 Fix all problems with executing command
make test-sim-custom-genesis-fast
for simulation test. - (simulation) #18196 Fix the problem of
validator set is empty after InitGenesis
in simulation test. - (baseapp) #18551 Fix SelectTxForProposal the calculation method of tx bytes size is inconsistent with CometBFT
- (server) #18994 Update server context directly rather than a reference to a sub-object
- #19833 Fix some places in which we call Remove inside a Walk.
- #19851 Fix some places in which we call Remove inside a Walk (x/staking and x/gov).
- (cli) #20020 Make bootstrap-state command support both new and legacy genesis format.
- (baseapp) #20107 Allow height overwrite BlockHeight in header.
- (x/simulation)#20056
SimulateFromSeed
now takes an address codec as argument. - (x/crisis) #20043 Changed
NewMsgVerifyInvariant
to accept a string as argument instead of anAccAddress
. - (x/genutil) #19926 Removal of the Address.String() method and related changes:
- Added an address codec as an argument to
CollectTxs
,GenAppStateFromConfig
, andAddGenesisAccount
. - Removed the
ValidatorAddressCodec
argument fromCollectGenTxsCmd
, now utilizing the context for this purpose. - Changed
ValidateAccountInGenesis
to accept a string instead of anAccAddress
.
- Added an address codec as an argument to
- (server) #19854 Remove
servertypes.ModuleInitFlags
types and fromserver.AddCommands
asStartCmdOptions
already achieves the same goal. - (types) #19792 In
MsgSimulatorFn
sdk.Context
argument is replaced for anaddress.Codec
. It also returns an error. - (types) #19742 Removes the use of
Accounts.String
SimulationState
now has address and validator codecs as fields.
- (types) #19447
module.testutil.MakeTestEncodingConfig
now takesCodecOptions
as argument. - (types) #19512 Remove basic manager and all related functions (
module.BasicManager
,module.NewBasicManager
,module.NewBasicManagerFromManager
,NewGenesisOnlyAppModule
).- The module manager now can do everything that the basic manager was doing.
- When using runtime, just inject the module manager when needed using your app config.
- All
AppModuleBasic
structs have been removed.
- (x/consensus) #19488 Consensus module creation takes
appmodule.Environment
instead of individual services. - (server) #18303
x/genutil
now handles the application export.server.AddCommands
does not take anAppExporter
but insteadgenutilcli.Commands
does. - (x/gov/testutil) #17986
MsgDeposit
has been removed because of AutoCLI migration. - (x/staking/testutil) #17986
MsgRedelegateExec
,MsgUnbondExec
has been removed because of AutoCLI migration. - (x/bank/testutil) #17868
MsgSendExec
has been removed because of AutoCLI migration. - (app) #17838 Params module was removed from simapp and all imports of the params module removed throughout the repo.
- The Cosmos SDK has migrated away from using params, if your app still uses it, then you can leave it plugged into your app
- (types/simulation) #17737 Remove unused parameter from
RandomFees
- (client/keys) #17503
clientkeys.NewKeyOutput
,MkConsKeyOutput
,MkValKeyOutput
,MkAccKeyOutput
,MkAccKeysOutput
now take their corresponding address codec instead of using the global SDK config. - (types)
module.BeginBlockAppModule
has been replaced by Core APIappmodule.HasBeginBlocker
. - (types)
module.EndBlockAppModule
has been replaced by Core APIappmodule.HasEndBlocker
ormodule.HasABCIEndBlock
when needing validator updates. - (client) #17259 Remove deprecated
clientCtx.PrintObjectLegacy
. UseclientCtx.PrintProto
orclientCtx.PrintRaw
instead. - (types) #16918 Remove
IntProto
andDecProto
. Instead,math.Int
andmath.LegacyDec
should be used respectively. Both types supportMarshal
andUnmarshal
which should be used for binary marshaling. - (client) #17215
server.StartCmd
,server.ExportCmd
,server.NewRollbackCmd
,pruning.Cmd
,genutilcli.InitCmd
,genutilcli.GenTxCmd
,genutilcli.CollectGenTxsCmd
,genutilcli.AddGenesisAccountCmd
, do not take a home directory anymore. It is inferred from the root command. - (baseapp) #16244
SetProtocolVersion
has been renamed toSetAppVersion
. It now updates the consensus params in baseapp'sParamStore
. - (types) #17348 Remove the
WrapServiceResult
function.- The
*sdk.Result
returned by the msg server router will not contain the.Data
field.
- The
- (types) #17426
NewContext
does not take acmtproto.Header{}
any longer.WithChainID
/WithBlockHeight
/WithBlockHeader
must be used to set values on the context
- (types) #17738
WithBlockTime()
was removed &BlockTime()
were deprecated in favor ofWithHeaderInfo()
&HeaderInfo()
.BlockTime
now gets data fromHeaderInfo()
instead ofBlockHeader()
. - (client) #17746
txEncodeAmino
&txDecodeAmino
txs via grpc and rest were removedRegisterLegacyAmino
was removed fromAppModuleBasic
- (types) #17885
InitGenesis
&ExportGenesis
now takecontext.Context
instead ofsdk.Context
- (x/group) #17937 Groups module was moved to its own go.mod
cosmossdk.io/x/group
- (x/gov) #18197 Gov module was moved to its own go.mod
cosmossdk.io/x/gov
- (x/distribution) #18199 Distribution module was moved to its own go.mod
cosmossdk.io/x/distribution
- (x/slashing) #18201 Slashing module was moved to its own go.mod
cosmossdk.io/x/slashing
- (x/staking) #18257 Staking module was moved to its own go.mod
cosmossdk.io/x/staking
- (x/authz) #18265 Authz module was moved to its own go.mod
cosmossdk.io/x/authz
- (x/mint) #18283 Mint module was moved to its own go.mod
cosmossdk.io/x/mint
- (x/consensus) #18041
ToProtoConsensusParams()
returns an error - (x/slashing) #18115
NewValidatorSigningInfo
takes strings instead ofsdk.AccAddress
- (types) #18268 Remove global setting of basedenom. Use the staking module parameter instead
- (x/auth) #18351 Auth module was moved to its own go.mod
cosmossdk.io/x/auth
- (types) #18372 Removed global configuration for coin type and purpose. Setters and getters should be removed and access directly to defined types.
- (types) #18695 Removed global configuration for txEncoder.
- (types) #18607 Removed address verifier from global config, moved verifier function to bech32 codec.
- (server) #18909 Remove configuration endpoint on grpc reflection endpoint in favour of auth module bech32prefix endpoint already exposed.
- (crypto) #19541 The deprecated
FromTmProtoPublicKey
,ToTmProtoPublicKey
,FromTmPubKeyInterface
andToTmPubKeyInterface
functions have been removed. Use their replacements (Cmt
instead ofTm
) instead. - (types) #19652 and #19758
- Moved
types/module.HasRegisterInterfaces
tocosmossdk.io/core
. - Moved
RegisterInterfaces
andRegisterImplementations
fromInterfaceRegistry
tocosmossdk.io/core/registry.InterfaceRegistrar
interface.
- Moved
- (types) #19627 and #19735 All genesis interfaces now don't take
codec.JsonCodec
.- Every module has the codec already, passing it created an unneeded dependency.
- Additionally, to reflect this change, the module manager does not take a codec either.
- (runtime) #19747
runtime.ValidatorAddressCodec
andruntime.ConsensusAddressCodec
have been moved tocore
. - (baseapp) #19993 Indicate pruning with error code "not found" rather than "invalid request".
- (x/consensus) #20010 Move consensus module to be its own go.mod
- (server) #20140 Remove embedded grpc-web proxy in favor of standalone grpc-web proxy. Envoy Proxy
- (client) #20255 Use comet proofOp proto type instead of sdk version to avoid needing to translate to later be proven in the merkle proof runtime.
- (all) #19726 Integrate comet v1
- (runtime) #19040 Simplify app config implementation and deprecate
/cosmos/app/v1alpha1/config
query.
- (server) #18303
appd export
has moved with other genesis commands, useappd genesis export
instead.
- (simapp) #19146 Replace
--v
CLI option with--validator-count
/-n
. - (module) #19370 Deprecate
module.Configurator
, useappmodule.HasMigrations
andappmodule.HasServices
instead from Core API.
v0.50.6 - 2024-04-22
- (types) #19759 Align SignerExtractionAdapter in PriorityNonceMempool Remove.
- (client) #19870 Add new query command
wait-tx
. Aliasevent-query-tx-for
towait-tx
for backward compatibility.
- (telemetry) #19903 Conditionally emit metrics based on enablement.
- Introduction of
Now
Function: Added a new function calledNow
to the telemetry package. It returns the current system time if telemetry is enabled, or a zero time if telemetry is not enabled. - Atomic Global Variable: Implemented an atomic global variable to manage the state of telemetry's enablement. This ensures thread safety for the telemetry state.
- Conditional Telemetry Emission: All telemetry functions have been updated to emit metrics only when telemetry is enabled. They perform a check with
isTelemetryEnabled()
and return early if telemetry is disabled, minimizing unnecessary operations and overhead.
- Introduction of
- (deps) #19810 Upgrade prometheus version and fix API breaking change due to prometheus bump.
- (deps) #19810 Bump
cosmossdk.io/store
to v1.1.0. - (server) #19884 Add start customizability to start command options.
- (x/gov) #19853 Emit
depositor
inEventTypeProposalDeposit
. - (x/gov) #19844 Emit the proposer of governance proposals.
- (baseapp) #19616 Don't share gas meter in tx execution.
- (x/authz) #20114 Follow up of GHSA-4j93-fm92-rp4m for
x/authz
. - (crypto) #19691 Fix tx sign doesn't throw an error when incorrect Ledger is used.
- (baseapp) #19970 Fix default config values to use no-op mempool as default.
- (crypto) #20027 secp256r1 keys now implement gogoproto's customtype interface.
- (x/bank) #20028 Align query with multi denoms for send-enabled.
v0.50.5 - 2024-03-12
- (baseapp) #19626 Add
DisableBlockGasMeter
option toBaseApp
, which removes the block gas meter during transaction execution.
- (x/distribution) #19707 Add autocli config for
DelegationTotalRewards
for CLI consistency withq rewards
commands in previous versions. - (x/auth) #19651 Allow empty public keys in
GetSignBytesAdapter
.
- (x/gov) #19725 Fetch a failed proposal tally from proposal.FinalTallyResult in the gprc query.
- (types) #19709 Fix skip staking genesis export when using
CoreAppModuleAdaptor
/CoreAppModuleBasicAdaptor
for it. - (x/auth) #19549 Accept custom get signers when injecting
x/auth/tx
. - (x/staking) Fix a possible bypass of delegator slashing: GHSA-86h5-xcpx-cfqc
- (baseapp) Fix a bug in
baseapp.ValidateVoteExtensions
helper (GHSA-95rx-m9m5-m94v). The helper has been fixed and for avoiding API breaking changescurrentHeight
andchainID
arguments are ignored. Those arguments are removed from the helper in v0.51+.
v0.50.4 - 2023-02-19
- (server) #19280 Adds in-place testnet CLI command.
- (client) #19393 Add
ReadDefaultValuesFromDefaultClientConfig
to populate the default values from the default client config in client.Context without creating a app folder.
- (x/auth/vesting) GHSA-4j93-fm92-rp4m Add
BlockedAddr
check inCreatePeriodicVestingAccount
. - (baseapp) #19338 Set HeaderInfo in context when calling
setState
. - (baseapp): #19200 Ensure that sdk side ve math matches cometbft.
- #19106 Allow empty public keys when setting signatures. Public keys aren't needed for every transaction.
- (baseapp) #19198 Remove usage of pointers in logs in all optimistic execution goroutines.
- (baseapp) #19177 Fix baseapp
DefaultProposalHandler
same-sender non-sequential sequence. - (crypto) #19371 Avoid CLI redundant log in stdout, log to stderr instead.
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) #
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 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 initializing 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
.
- #18204 Use streaming json parser to parse chain-id from genesis file.
- (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 modified 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 deprecated and its recommended 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 constitution 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).
v0.47.11 - 2024-04-22
- (x/feegrant,x/authz) #20114 Follow up of GHSA-4j93-fm92-rp4m. The same issue was found in
x/feegrant
andx/authz
modules. - (crypto) #20027 secp256r1 keys now implement gogoproto's customtype interface.
- (x/gov) #19725 Fetch a failed proposal tally from
proposal.FinalTallyResult
in the gprc query. - (crypto) #19691 Throw an error when signing with incorrect Ledger.
v0.47.10 - 2024-02-27
- (x/staking) Fix a possible bypass of delagator slashing: GHSA-86h5-xcpx-cfqc
- (server) #19573 Use proper
db_backend
type when reading chain-id
v0.47.9 - 2024-02-19
- (x/auth/vesting) GHSA-4j93-fm92-rp4m Add
BlockedAddr
check inCreatePeriodicVestingAccount
. - (baseapp) #19177 Fix baseapp
DefaultProposalHandler
same-sender non-sequential sequence.
v0.47.8 - 2024-01-22
- (client/tx) #18852 Add
WithFromName
to tx factory. - (types) #18875 Speedup coins.Sort() if len(coins) <= 1.
- (types) #18888 Speedup DecCoin.Sort() if len(coins) <= 1
- (testutil) #18930 Add NodeURI for clientCtx.
- #19106 Allow empty public keys when setting signatures. Public keys aren't needed for every transaction.
- (server) #18920 Fixes consensus failure while restart node with wrong
chainId
in genesis.
v0.47.7 - 2023-12-20
- (x/gov) #18707 Improve genesis validation.
- (server) #18478 Add command flag to disable colored logs.
- (baseapp) #18609 Fixed accounting in the block gas meter after BeginBlock and before DeliverTx, ensuring transaction processing always starts with the expected zeroed out block gas meter.
- (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. - (client/tx) #18472 Utilizes the correct Pubkey when simulating a transaction.
v0.47.6 - 2023-11-14
- (server) #18110 Start gRPC & API server in standalone mode.
- (baseapp) #17954 Add
Mempool()
method onBaseApp
to allow access to the mempool. - (x/gov) #17780 Recover panics and turn them into errors when executing x/gov proposals.
- (server) #18254 Don't hardcode gRPC address to localhost.
- (server) #18251 Call
baseapp.Close()
when app started as grpc only. - (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. - (config) #17649 Fix
mempool.max-txs
configuration is invalid inapp.config
. - (mempool) #17668 Fix
PriorityNonceIterator.Next()
nil pointer ref for min priority at the end of iteration. - (x/auth) #17902 Remove tip posthandler.
- (x/bank) #18107 Add missing keypair of SendEnabled to restore legacy param set before migration.
- (x/gov) #17910 Remove telemetry for counting votes and proposals. It was incorrectly counting votes. Use alternatives, such as state streaming.
v0.47.5 - 2023-09-01
- (client/rpc) #17274 Add
QueryEventForTxCmd
cmd to subscribe and wait event for transaction by hash. - (keyring) #17424 Allows to import private keys encoded in hex.
- (x/gov) #17387 Add
MsgSubmitProposal
SetMsgs
method. - (x/gov) #17354 Emit
VoterAddr
inproposal_vote
event. - (x/group, x/gov) #17220 Add
--skip-metadata
flag indraft-proposal
to skip metadata prompt. - (x/genutil) #17296 Add
MigrateHandler
to allow reuse migrate genesis related function.- In v0.46, v0.47 this function is additive to the
genesis migrate
command. However in v0.50+, adding custom migrations to thegenesis migrate
command is directly possible.
- In v0.46, v0.47 this function is additive to the
- (server) #17181 Fix
db_backend
lookup fallback fromconfig.toml
. - (runtime) #17284 Properly allow to combine depinject-enabled modules and non-depinject-enabled modules in app v2.
- (baseapp) #17159 Validators can propose blocks that exceed the gas limit.
- (baseapp) #16547 Ensure a transaction's gas limit cannot exceed the block gas limit.
- (x/gov,x/group) #17220 Do not try validate
msgURL
as web URL indraft-proposal
command. - (cli) #17188 Fix
--output-document
flag intx multi-sign
. - (x/auth) #17209 Internal error on AccountInfo when account's public key is not set.
v0.47.4 - 2023-07-17
- (sims) #16656 Add custom max gas for block for sim config with unlimited as default.
- (cli) #16856 Improve
simd prune
UX by using the app default home directory and set pruning method as first variable argument (defaults to default).pruning.PruningCmd
rest unchanged for API compatibility, usepruning.Cmd
instead. - (testutil) #16704 Make app config configurator for testing configurable with external modules.
- (deps) #16565 Bump CometBFT to v0.37.2.
- (x/auth) #16994 Fix regression where querying transactions events with
<=
or>=
would not work. - (server) #16827 Properly use
--trace
flag (before it was setting the trace level instead of displaying the stacktraces). - (x/auth) #16554
ModuleAccount.Validate
now reports a nil.BaseAccount
instead of panicking. - #16588 Propagate snapshotter failures to the caller, (it would create an empty snapshot silently before).
- (x/slashing) #16784 Emit event with the correct reason in
SlashWithInfractionReason
.
v0.47.3 - 2023-06-08
- (baseapp) #16290 Add circuit breaker setter in baseapp.
- (x/group) #16191 Add EventProposalPruned event to group module whenever a proposal is pruned.
- (tx) #15992 Add
WithExtensionOptions
in tx Factory to allowSetExtensionOptions
with given extension options.
- (baseapp) #16407 Make
DefaultProposalHandler.ProcessProposalHandler
return a ProcessProposal NoOp when using none or a NoOp mempool. - (deps) #16083 Bumps
proto-builder
image to 0.13.0. - (client) #16075 Partly revert #15953 and
factory.Prepare
now does nothing in offline mode. - (server) #15984 Use
cosmossdk.io/log
package for logging instead of CometBFT logger. NOTE: v0.45 and v0.46 were not using CometBFT logger either. This keeps the same underlying logger (zerolog) as in v0.45.x+ and v0.46.x+ but now properly supporting filtered logging. - (gov) #15979 Improve gov error message when failing to convert v1 proposal to v1beta1.
- (store) #16067 Add local snapshots management commands.
- (server) #16061 Add Comet bootstrap command.
- (snapshots) #16060 Support saving and restoring snapshot locally.
- (x/staking) #16068 Update simulation to allow non-EOA accounts to stake.
- (server) #16142 Remove JSON Indentation from the GRPC to REST gateway's responses. (Saving bandwidth)
- (types) #16145 Rename interface
ExtensionOptionI
back toTxExtensionOptionI
to avoid breaking change. - (baseapp) #16193 Add
Close
method toBaseApp
for custom app to cleanup resource in graceful shutdown.
- Fix barberry security vulnerability.
- (server) #16395 Do not override some Comet config is purposely set differently in
InterceptConfigsPreRunHandler
. - (store) #16449 Fix StateSync Restore by excluding memory store.
- (cli) #16312 Allow any addresses in
client.ValidatePromptAddress
. - (x/group) #16017 Correctly apply account number in group v2 migration.
- (testutil) #14991 The
testutil/testdata_pulsar
package has moved totestutil/testdata/testpb
. Chains will not notice this breaking change as this package contains testing utilities only used by the SDK internally.
v0.47.2 - 2023-04-27
- (x/evidence) #15908 Update the equivocation handler to work with ICS by removing a pubkey check that was performing a no-op for consumer chains.
- (x/slashing) #15908 Remove the validators' pubkey check in the signature handler in order to work with ICS.
- (deps) #15957 Bump CometBFT to v0.37.1.
- (store) #15683
rootmulti.Store.CacheMultiStoreWithVersion
now can handle loading archival states that don't persist any of the module stores the current state has. - #15448 Automatically populate the block timestamp for historical queries. In contexts where the block timestamp is needed for previous states, the timestamp will now be set. Note, when querying against a node it must be re-synced in order to be able to automatically populate the block timestamp. Otherwise, the block timestamp will be populated for heights going forward once upgraded.
- #14019 Remove the interface casting to allow other implementations of a
CommitMultiStore
. - (simtestutil) #15903 Add
AppStateFnWithExtendedCbs
with moduleStateCb callback function to allow access moduleState.
- (baseapp) #15789 Ensure
PrepareProposal
andProcessProposal
respectInitialHeight
set by CometBFT when set to a value greater than 1. - (types) #15433 Allow disabling of account address caches (for printing bech32 account addresses).
- (client/keys) #15876 Fix the JSON output
<appd> keys list --output json
when there are no keys.
v0.47.1 - 2023-03-23
- (x/bank) #15265 Update keeper interface to include
GetAllDenomMetaData
. - (x/groups) #14879 Add
Query/Groups
query to get all the groups. - (x/gov,cli) #14718 Added
AddGovPropFlagsToCmd
andReadGovPropFlags
functions. - (cli) #14655 Add a new command to list supported algos.
- (x/genutil,cli) #15147 Add
--initial-height
flag to cli init cmd to providegenesis.json
with user-defined initial block height.
- (x/distribution) #15462 Add delegator address to the event for withdrawing delegation rewards.
- #14609 Add
RetryForBlocks
method to use in tests that require waiting for a transaction to be included in a block.
- (baseapp) #15487 Reset state before calling PrepareProposal and ProcessProposal.
- (cli) #15123 Fix the CLI
offline
mode behavior to be really offline. The API ofclienttx.NewFactoryCLI
is updated to return an error.
- (x/genutil) #15316 Remove requirement on node & IP being included in a gentx.
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 committed 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
functions 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. - #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.
v0.46.16 - 2023-11-07
EOL notice. This is the last release of the v0.46.x
line. Per this version, the v0.46.x line reached its end-of-life.
- (server) #18254 Don't hardcode gRPC address to localhost.
v0.46.15 - 2023-08-21
- (x/gov) #17387 Add
MsgSubmitProposal
SetMsgs
method. - (x/gov) #17354 Emit
VoterAddr
inproposal_vote
event. - (x/genutil) #17296 Add
MigrateHandler
to allow reuse migrate genesis related function.- In v0.46, v0.47 this function is additive to the
genesis migrate
command. However in v0.50+, adding custom migrations to thegenesis migrate
command is directly possible.
- In v0.46, v0.47 this function is additive to the
- (server) #17181 Fix
db_backend
lookup fallback fromconfig.toml
.
v0.46.14 - 2023-07-17
- (sims) #16656 Add custom max gas for block for sim config with unlimited as default.
- (cli) #16856 Improve
simd prune
UX by using the app default home directory and set pruning method as first variable argument (defaults to default).pruning.PruningCmd
rest unchanged for API compatibility, usepruning.Cmd
instead. - (deps) #16553 Bump CometBFT to v0.34.29.
- (x/auth) #16994 Fix regression where querying transactions events with
<=
or>=
would not work. - (x/auth) #16554
ModuleAccount.Validate
now reports a nil.BaseAccount
instead of panicking. - #16588 Propagate snapshotter failures to the caller, (it would create an empty snapshot silently before).
- (types) #15433 Allow disabling of account address caches (for printing bech32 account addresses).
v0.46.13 - 2023-06-08
- (snapshots) #16060 Support saving and restoring snapshot locally.
- (baseapp) #16290 Add circuit breaker setter in baseapp.
- (x/group) #16191 Add EventProposalPruned event to group module whenever a proposal is pruned.
- (deps) #15973 Bump CometBFT to v0.34.28.
- (store) #15683
rootmulti.Store.CacheMultiStoreWithVersion
now can handle loading archival states that don't persist any of the module stores the current state has. - (simapp) #15903 Add
AppStateFnWithExtendedCbs
with moduleStateCb callback function to allow access moduleState. Note, this function is present insimtestutil
fromv0.47.2+
. - (gov) #15979 Improve gov error message when failing to convert v1 proposal to v1beta1.
- (server) #16061 Add Comet bootstrap command.
- (store) #16067 Add local snapshots management commands.
- (baseapp) #16193 Add
Close
method toBaseApp
for custom app to cleanup resource in graceful shutdown.
- Fix barberry security vulnerability.
- (cli) #16312 Allow any addresses in
client.ValidatePromptAddress
. - (store/iavl) #15717 Upstream error on empty version (this change was present on all version but v0.46).
v0.46.12 - 2023-04-04
- (x/groups) #14879 Add
Query/Groups
query to get all the groups.
- (simapp) #15305 Add
AppStateFnWithExtendedCb
with callback function to extend rawState andAppStateRandomizedFnWithState
with extra genesisState argument which is the genesis state of the app. - (x/distribution) #15462 Add delegator address to the event for withdrawing delegation rewards.
- #14019 Remove the interface casting to allow other implementations of a
CommitMultiStore
.
v0.46.11 - 2023-03-03
- (deps) Migrate to CometBFT. Follow the instructions in the release notes.
- (store) #15152 Remove unmaintained and experimental
store/v2alpha1
. - (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.
- #15243
LatestBlockResponse
&BlockByHeightResponse
types' fieldsdk_block
was incorrectly castproposer_address
bytes to validator operator address, now to consensus address.
v0.46.10 - 2023-02-16
- (cli) #14953 Enable profiling block replay during abci handshake with
--cpu-profile
.
v0.46.9 - 2023-02-07
-
(store/cache) #13881 Optimize iteration on nested cached KV stores and other operations in general.
-
(deps) #14846 Bump btcd.
-
(deps) Bump Tendermint version to v0.34.26.
-
(store/cache) #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.- A new field has been added to the app.toml. This allows nodes with larger databases to startup quicker
# IAVLLazyLoading enable/disable the lazy loading of iavl store. # Default is false. iavl-lazy-loading = ""
- (cli) #14919 Fix never assigned error when write validators.
- (store) #14798 Copy btree to avoid the problem of modify while iteration.
- (cli) #14799 Fix Evidence CLI query flag parsing (backport #13458)
v0.46.8 - 2023-01-23
- (store/cache) #13881 Optimize iteration on nested cached KV stores and other operations in general.
- (x/gov) #14347 Support
v1.Proposal
message inv1beta1.Proposal.Content
. - (deps) Use Informal System fork of Tendermint version to v0.34.24.
- (x/group) #14526 Fix wrong address set in
EventUpdateGroupPolicy
. - (ante) #14448 Return anteEvents when postHandler fail.
- (x/gov) #14422 Remove
Migrate_V046_6_To_V046_7
function which shouldn't be used for chains which already migrated to 0.46.
v0.46.7 - 2022-12-13
- (client) #14051 Add
--grpc
client option.
- (deps) Bump Tendermint version to v0.34.24.
- #13651 Update
server/config/config.GetConfig
function. - #14175 Add
server.DefaultBaseappOptions(appopts)
function to reduce boiler plate in root.go.
- (x/gov) #14214 Fix gov v0.46 migration to v1 votes.
- Also provide a helper function
govv046.Migrate_V0466_To_V0467
for migrating a chain already on v0.46 with versions <=v0.46.6 to the latest v0.46.7 correct state.
- Also provide a helper function
- (x/group) #14071 Don't re-tally proposal after voting period end if they have been marked as ACCEPTED or REJECTED.
- (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
- (store) #13529 Add method
LatestVersion
toMultiStore
interface, add methodSetQueryMultiStore
to baesapp to support alternativeMultiStore
implementation for query service.
- (baseapp) #13983 Don't emit duplicate ante-handler events when a post-handler is defined.
- (baseapp) #14049 Fix state sync when interval is zero.
- (store) #13516 Fix state listener that was observing writes at wrong time.
v0.46.6 - 2022-11-18
- (config) #13894 Support state streaming configuration in
app.toml
template and default configuration.
- (x/gov) #13918 Fix propagation of message errors when executing a proposal.
v0.46.5 - 2022-11-17
- (x/bank) #13891 Provide a helper function
Migrate_V0464_To_V0465
for migrating a chain already on v0.46 with versions <=v0.46.4 to the latest v0.46.5 correct state.
- #13826 Support custom
GasConfig
configuration for applications. - (deps) Bump Tendermint version to v0.34.23.
- (x/group) #13876 Fix group MinExecutionPeriod that is checked on execution now, instead of voting period end.
- (x/group) #13876 Add
GetMinExecutionPeriod
method on DecisionPolicy interface.
- (x/group) #13869 Group members weight must be positive and a finite number.
- (x/bank) #13821 Fix bank store migration of coin metadata.
- (x/group) #13808 Fix propagation of message events to the current context in
EndBlocker
. - (x/gov) #13728 Fix propagation of message events to the current context in
EndBlocker
. - (store) #13803 Add an error log if IAVL set operation failed.
- #13861 Allow
_
characters in tx event queries, i.e.GetTxsEvent
.
v0.46.4 - 2022-11-01
- (x/auth) #13612 Add
Query/ModuleAccountByName
endpoint for accessing the module account info by module name.
- (deps) Bump IAVL version to v0.19.4.
- (x/auth/tx) #12474 Remove condition in GetTxsEvent that disallowed multiple equal signs, which would break event queries with base64 strings (i.e. query by signature).
- (store) #13530 Fix app-hash mismatch if upgrade migration commit is interrupted.
- #13656 Rename
server.FlagIAVLFastNode
toserver.FlagDisableIAVLFastNode
for clarity.
- (context) #13063 Update
Context#CacheContext
to automatically emit all events on the parent context'sEventManager
.
v0.46.3 - 2022-10-20
ATTENTION:
This is a security release for the Dragonberry security advisory.
All users should upgrade immediately.
Users must add a replace directive in their go.mod for the new ics23
package in the SDK:
replace github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0
- #13435 Extend error context when a simulation fails.
- (grpc) #13485 Implement a new gRPC query,
/cosmos/base/node/v1beta1/config
, which provides operator configuration. - (cli) #13147 Add the
--append
flag to thesign-batch
CLI cmd to combine the messages and sign those txs which are created with--generate-only
. - (cli) #13454
sign-batch
CLI can now read multiple transaction files.
- #13586 Bump Tendermint to
v0.34.22
. - (auth) #13460 The
q auth address-by-id
CLI command has been renamed toq auth address-by-acc-num
to be more explicit. However, the oldaddress-by-id
version is still kept as an alias, for backwards compatibility. - #13433 Remove dead code in cacheMergeIterator
Domain()
.
- Implement dragonberry security patch.
- For applying the patch please refer to the RELEASE NOTES
- (store) #13459 Don't let state listener observe the uncommitted writes.
- #12548 Prevent signing from wrong key while using multisig.
- (server) #13485 The
Application
service now requires theRegisterNodeService
method to be implemented.
v0.46.2 - 2022-10-03
- (cli) #13089 Fix rollback command don't actually delete multistore versions, added method
RollbackToVersion
to interfaceCommitMultiStore
and added methodCommitMultiStore
toApplication
interface. - (cli) #13089
NewRollbackCmd
now takes anappCreator types.AppCreator
.
- (cli) #13207 Reduce user's password prompts when calling keyring
List()
function. - (cli) #13353 Add
tx group draft-proposal
command for generating group proposal JSONs (skeleton). - (cli) #13304 Add
tx gov draft-proposal
command for generating proposal JSONs (skeleton). - (x/authz) #13047 Add a GetAuthorization function to the keeper.
- (cli) #12742 Add the
prune
CLI cmd to manually prune app store history versions based on the pruning options.
- #13323 Ensure
withdraw_rewards
rewards are emitted from all actions that result in rewards being withdrawn. - #13233 Add
--append
toadd-genesis-account
sub-command to append new tokens after an account is already created. - (x/group) #13214 Add
withdraw-proposal
command to group module's CLI transaction commands. - (x/auth) #13048 Add handling of AccountNumberStoreKeyPrefix to the simulation decoder.
- (simapp) #13107 Call
SetIAVLCacheSize
with the configured value in simapp. - #13301 Keep the balance query endpoint compatible with legacy blocks
- #13321 Add flag to disable fast node migration and usage.
- (types) #13265 Correctly coalesce coins even with repeated denominations & simplify logic.
- (x/auth) #13200 Fix wrong sequences in
sign-batch
. - (export) #13029 Fix exporting the blockParams regression.
- #13046 Fix missing return statement in BaseApp.Query.
- (store) #13336 Call streaming listeners for deliver tx event, it was removed accidentally.
- (grpc) #13417 fix grpc query panic that could crash the node (backport #13352).
- (grpc) #13418 Add close for grpc only mode.
v0.46.1 - 2022-08-24
- #12953 Change the default priority mechanism to be based on gas price.
- #12981 Return proper error when parsing telemetry configuration.
- #12969 Bump Tendermint to
v0.34.21
and IAVL tov0.19.1
. - #12885 Amortize cost of processing cache KV store.
- (events) #12850 Add a new
fee_payer
attribute to thetx
event that is emitted from theDeductFeeDecorator
AnteHandler decorator. - (x/params) #12615 Add
GetParamSetIfExists
function to paramsSubspace
to prevent panics on breaking changes. - (x/bank) #12674 Add convenience function
CreatePrefixedAccountStoreKey()
to construct key to access account's balance for a given denom. - #12877 Bumped cosmossdk.io/math to v1.0.0-beta.3
- #12693 Make sure the order of each node is consistent when emitting proto events.
- (x/group) #12888 Fix event propagation to the current context of
x/group
message execution[]sdk.Result
. - (x/upgrade) #12906 Fix upgrade failure by moving downgrade verification logic after store migration.
v0.46.0 - 2022-07-26
- (types) #11985 Add a
Priority
field onsdk.Context
, which represents the CheckTx priority field. It is only used during CheckTx. - (gRPC) #11889 Support custom read and write gRPC options in
app.toml
. Seemax-recv-msg-size
andmax-send-msg-size
respectively. - (cli) #11738 Add
tx auth multi-sign
as alias oftx auth multisign
for consistency withmulti-send
. - (cli) #11738 Add
tx bank multi-send
command for bulk send of coins to multiple accounts. - (grpc) #11642 Implement
ABCIQuery
in the Tendermint gRPC service, which proxies ABCIQuery
requests directly to the application. - (x/upgrade) #11551 Update
ScheduleUpgrade
for chains to schedule an automated upgrade onBeginBlock
without having to go though governance. - (tx) #11533 Register
EIP191
as an availableSignMode
for chains to use. - (x/genutil) #11500 Fix GenTx validation and adjust error messages
- #11430 Introduce a new
grpc-only
flag, such that when enabled, will start the node in a query-only mode. Note, gRPC MUST be enabled with this flag. - (x/bank) #11417 Introduce a new
SpendableBalances
gRPC query that retrieves an account's total (paginated) spendable balances. - #11441 Added a new method,
IsLTE
, fortypes.Coin
. This method is used to check if atypes.Coin
is less than or equal to anothertypes.Coin
. - (x/upgrade) #11116
MsgSoftwareUpgrade
andMsgCancelUpgrade
have been added to support v1beta2 msgs-based gov proposals. - #10977 Now every cosmos message protobuf definition must be extended with a
cosmos.msg.v1.signer
option to signal the signer fields in a language agnostic way. - #10710 Chain-id shouldn't be required for creating a transaction with both --generate-only and --offline flags.
- #10703 Create a new grantee account, if the grantee of an authorization does not exist.
- #10592 Add a
DecApproxEq
function that checks to see if|d1 - d2| < tol
for some Decd1, d2, tol
. - #9933 Introduces the notion of a Cosmos "Scalar" type, which would just be simple aliases that give human-understandable meaning to the underlying type, both in Go code and in Proto definitions.
- #9884 Provide a new gRPC query handler,
/cosmos/params/v1beta1/subspaces
, that allows the ability to query for all registered subspaces and their respective keys. - #9776 Add flag
staking-bond-denom
to specify the staking bond denomination value when initializing a new chain. - #9533 Added a new gRPC method,
DenomOwners
, inx/bank
to query for all account holders of a specific denomination. - (bank) #9618 Update bank.Metadata: add URI and URIHash attributes.
- (store) #8664 Implementation of ADR-038 file StreamingService
- #9837
--generate-only
flag can be used with a keyname from the keyring. - #10326
x/authz
add all grants by granter query. - #10944
x/authz
add all grants by grantee query - #10348 Add
fee.{payer,granter}
andtip
fields to StdSignDoc for signing tipped transactions. - #10208 Add
TipsTxMiddleware
for transferring tips. - #10379 Add validation to
x/upgrade
CLIsoftware-upgrade
command--plan-info
value. - #10507 Add antehandler for tx priority.
- #10311 Adds cli to use tips transactions. It adds an
--aux
flag to all CLI tx commands to generate the aux signer data (with optional tip), and a newtx aux-to-fee
subcommand to let the fee payer gather aux signer data and broadcast the tx - #11019 Add
MsgCreatePermanentLockedAccount
and CLI method for creating permanent locked account - #10947 Add
AllowancesByGranter
query to the feegrant module - #10407 Add validation to
x/upgrade
module'sBeginBlock
to check accidental binary downgrades - (gov) #11036 Add in-place migrations for 0.43->0.46. Add a
migrate v0.46
CLI command for v0.43->0.46 JSON genesis migration. - #11006 Add
debug pubkey-raw
command to allow inspecting of pubkeys in legacy bech32 format - (x/authz) #10714 Add support for pruning expired authorizations
- #11179 Add state rollback command.
- #11234 Add
GRPCClient
field to Client Context. IfGRPCClient
field is set to nil, theInvoke
method would use ABCI query, otherwise use gprc. - (authz)#11060 Support grant with no expire time.
- (rosetta) #11590 Add fee suggestion for rosetta and enable offline mode. Also force set events about Fees to Success to pass reconciliation test.
- (types) #11959 Added
sdk.Coins.Find
helper method to find a coin by denom. - (upgrade) #12603 feat: Move AppModule.BeginBlock and AppModule.EndBlock to extension interfaces
- (telemetry) #12405 Add query calls metric to telemetry.
- (query) #12253 Add
GenericFilteredPaginate
to thequery
package to improve UX.
- (x/auth/ante) #11985 The
MempoolFeeDecorator
has been removed. Instead, theDeductFeeDecorator
takes a new argument of typeTxFeeChecker
, to define custom fee models. Ifnil
is passed to thisTxFeeChecker
argument, then it will default tocheckTxFeeWithValidatorMinGasPrices
, which is the exact same behavior as the oldMempoolFeeDecorator
(i.e. checking fees against validator's own min gas price). - (x/auth/ante) #11985 The
ExtensionOptionsDecorator
takes an argument of typeExtensionOptionChecker
. For backwards-compatibility, you can passnil
, which defaults to the old behavior of rejecting all tx extensions. - (crypto/keyring) #11932 Remove
Unsafe*
interfaces from keyring package. Please use interface casting if you wish to access those unsafe functions. - (types) #11881 Rename
AccAddressFromHex
toAccAddressFromHexUnsafe
. - (types) #11788 The
Int
andUint
types have been moved to their own dedicated module,math
. Aliases are kept in the SDK's roottypes
package, however, it is encouraged to utilize the newmath
module. As a result, theInt#ToDec
API has been removed. - (grpc) #11642 The
RegisterTendermintService
method in thetmservice
package now requires aabciQueryFn
query function parameter. - #11496 Refactor abstractions for snapshot and pruning; snapshot intervals eventually pruned; unit tests.
- (types) #11689 Make
Coins#Sub
andCoins#SafeSub
consistent withCoins#Add
. - (store)#11152 Remove
keep-every
from pruning options. - #10950 Add
envPrefix
parameter tocmd.Execute
. - (x/mint) #10441 The
NewAppModule
function now accepts an inflation calculation function as an argument. - #9695 Migrate keys from
Info
(serialized as amino) ->Record
(serialized as proto)- Add new
codec.Codec
argument in:keyring.NewInMemory
keyring.New
- Rename:
SavePubKey
toSaveOfflineKey
.NewMultiInfo
,NewLedgerInfo
toNewLegacyMultiInfo
,newLegacyLedgerInfo
respectively. Move them intolegacy_info.go
.NewOfflineInfo
tonewLegacyOfflineInfo
and move it tomigration_test.go
.
- Return:
_
keyring.Record, error
inSaveOfflineKey
,SaveLedgerKey
,SaveMultiSig
,Key
andKeyByAddress
. _keyring.Record
instead ofInfo
inNewMnemonic
andList
. - Remove
algo
argument from :SaveOfflineKey
- Take
keyring.Record
instead ofInfo
as first argument in:MkConsKeyOutput
MkValKeyOutput
MkAccKeyOutput
- Add new
- #10022
AuthKeeper
interface inx/auth
now includes a functionHasAccount
. - #9759
NewAccountKeeeper
inx/auth
now takes an additionalbech32Prefix
argument that representssdk.Bech32MainPrefix
. - #9628 Rename
x/{mod}/legacy
tox/{mod}/migrations
. - #9571 Implemented error handling for staking hooks, which now return an error on failure.
- #9427 Move simapp
FundAccount
andFundModuleAccount
tox/bank/testutil
- (client/tx) #9421
BuildUnsignedTx
,BuildSimTx
,PrintUnsignedStdTx
functions are moved to the Tx Factory as methods. - (client/keys) #9601 Added
keys rename
CLI command andKeyring.Rename
interface method to rename a key in the keyring. - (x/slashing) #9458 Coins burned from slashing is now returned from Slash function and included in Slash event.
- #9246 The
New
method for the network package now returns an error. - #9519
DeleteDeposits
renamed toDeleteAndBurnDeposits
,RefundDeposits
renamed toRefundAndDeleteDeposits
- (codec) #9521 Removed deprecated
clientCtx.JSONCodec
fromclient.Context
. - (codec) #9521 Rename
EncodingConfig.Marshaler
toCodec
. - #9594
RESTHandlerFn
argument is removed from thegov/NewProposalHandler
. - #9594
types/rest
package moved totestutil/rest
. - #9432
ConsensusParamsKeyTable
moved fromparams/keeper
toparams/types
- #9576 Add debug error message to
sdkerrors.QueryResult
when enabled - #9650 Removed deprecated message handler implementation from the SDK modules.
- #10248 Remove unused
KeyPowerReduction
variable from x/staking types. - (x/bank) #9832
AddressFromBalancesStore
renamed toAddressAndDenomFromBalancesStore
. - (tests) #9938
simapp.Setup
accepts additionaltesting.T
argument. - (baseapp) #11979 Rename baseapp simulation helper methods
baseapp.{Check,Deliver}
tobaseapp.Sim{Check,Deliver}
. - (x/gov) #10373 Removed gov
keeper.{MustMarshal, MustUnmarshal}
. - #10348 StdSignBytes takes a new argument of type
*tx.Tip
for signing over tips using LEGACY_AMINO_JSON. - #10208 The
x/auth/signing.Tx
interface now also includes a newGetTip() *tx.Tip
method for verifying tipped transactions. Thex/auth/types
expected BankKeeper interface now expects theSendCoins
method too. - #10612
baseapp.NewBaseApp
constructor function doesn't take thesdk.TxDecoder
anymore. This logic has been moved into the TxDecoderMiddleware. - #10692
SignerData
takes 2 new fields,Address
andPubKey
, which need to get populated when using SIGN_MODE_DIRECT_AUX. - #10748 Move legacy
x/gov
api tov1beta1
directory. - #10816 Reuse blocked addresses from the bank module. No need to pass them to distribution.
- #10852 Move
x/gov/types
tox/gov/types/v1beta2
. - #10922, /#10957 Move key
server.Generate*
functions to testutil and support custom mnemonics in in-process testing network. MovedTestMnemonic
fromtestutil
package totestdata
. - (x/bank) #10771 Add safety check on bank module perms to allow module-specific mint restrictions (e.g. only minting a certain denom).
- (x/bank) #10771 Add
bank.BaseKeeper.WithMintCoinsRestriction
function to restrict use of bankMintCoins
usage. - #10868, #10989 The Gov keeper accepts now 2 more mandatory arguments, the ServiceMsgRouter and a maximum proposal metadata length.
- #10868, #10989, #11093 The Gov keeper accepts now 2 more mandatory arguments, the ServiceMsgRouter and a gov Config including the max metadata length.
- #11124 Add
GetAllVersions
to application store - (x/authz) #10447 authz
NewGrant
takes a new argument: block time, to correctly validate expire time. - #10961 Support third-party modules to add extension snapshots to state-sync.
- #11274
types/errors.New
now is an alias fortypes/errors.Register
and should only be used in initialization code. - (authz)#11060
authz.NewMsgGrant
expiration
is now a pointer. Whennil
is used then no expiration will be set (grant won't expire). - (x/distribution)#11457 Add amount field to
distr.MsgWithdrawDelegatorRewardResponse
anddistr.MsgWithdrawValidatorCommissionResponse
. - #11334 Move
x/gov/types/v1beta2
tox/gov/types/v1
. - (x/auth/middleware) #11413 Refactor tx middleware to be extensible on tx fee logic. Merged
MempoolFeeMiddleware
andTxPriorityMiddleware
functionalities intoDeductFeeMiddleware
, make the logic extensible using theTxFeeChecker
option, the current fee logic is preserved by the defaultcheckTxFeeWithValidatorMinGasPrices
implementation. ChangeRejectExtensionOptionsMiddleware
toNewExtensionOptionsMiddleware
which is extensible with theExtensionOptionChecker
option. Unpack the tx extension optionsAny
s to interfaceTxExtensionOptionI
. - (migrations) #11556 Remove migration code from 0.42 and below. To use previous migrations, checkout previous versions of the cosmos-sdk.
- #11797 Remove all RegisterRESTRoutes (previously deprecated)
- #11089 interacting with the node through
grpc.Dial
requires clients to pass a codec refer to doc. - #9594 Remove legacy REST API. Please see the REST Endpoints Migration guide to migrate to the new REST endpoints.
- #9995 Increased gas cost for creating proposals.
- #11029 The deprecated Vote Option field is removed in gov v1beta2 and nil in v1beta1. Use Options instead.
- #11013 The
tx gov submit-proposal
command has changed syntax to support the new Msg-based gov proposals. To access the old CLI command, please usetx gov submit-legacy-proposal
. - #11170 Fixes issue related to grpc-gateway of supply by ibc-denom.
- (cli) #11818 CLI transactions preview now respect the chosen
--output
flag format (json or text). - #9695
<app> keys migrate
CLI command now takes no arguments. - #9246 Removed the CLI flag
--setup-config-only
from thetestnet
command and added the subcommandinit-files
. - #9780 Use sigs.k8s.io for yaml, which might lead to minor YAML output changes
- #10625 Rename
--fee-account
CLI flag to--fee-granter
- #10684 Rename
edit-validator
command's--moniker
flag to--new-moniker
- (authz)#11060 Changed the default value of the
--expiration
tx grant
CLI Flag: was now + 1year, update: null (no expire date).
- (types) #12201 Add
MustAccAddressFromBech32
util function - #11696 Rename
helpers.GenTx
toGenSignedMockTx
to avoid confusion with genutil'sGenTxCmd
. - (x/auth/vesting) #11652 Add util functions for
Period(s)
- #11630 Add SafeSub method to sdk.Coin.
- #11511 Add api server flags to start command.
- #11484 Implement getter for keyring backend option.
- #11449 Improved error messages when node isn't synced.
- #11349 Add
RegisterAminoMsg
function that checks that a msg name is <40 chars (else this would break ledger nano signing) then registers the concrete msg type with amino, it should be used for registeringsdk.Msg
s with amino instead ofcdc.RegisterConcrete
. - #11089 Now cosmos-sdk consumers can upgrade gRPC to its newest versions.
- #10439 Check error for
RegisterQueryHandlerClient
in all modulesRegisterGRPCGatewayRoutes
. - #9780 Remove gogoproto
moretags
YAML annotations and addsigs.k8s.io/yaml
for YAML marshalling. - (x/bank) #10134 Add
HasDenomMetadata
function to bankKeeper
to check if a client coin denom metadata exists in state. - (x/bank) #10022
BankKeeper.SendCoins
now takes less execution time. - (deps) #9987 Bump Go version minimum requirement to
1.17
- (cli) #9856 Overwrite
--sequence
and--account-number
flags with default flag values when used withoffline=false
insign-batch
command. - (rosetta) #10001 Add documentation for rosetta-cli dockerfile and rename folder for the rosetta-ci dockerfile
- #9699 Add
:
,.
,-
, and_
as allowed characters in the default denom regular expression. - (genesis) #9697 Ensure
InitGenesis
returns with non-empty validator set. - #10468 Allow futureOps to queue additional operations in simulations
- #10625 Add
--fee-payer
CLI flag - (cli) #10683 In CLI, allow 1 SIGN_MODE_DIRECT signer in transactions with multiple signers.
- (deps) #10706 Bump rosetta-sdk-go to v0.7.2 and rosetta-cli to v0.7.3
- (types/errors) #10779 Move most functionality in
types/errors
to a standaloneerrors
go module, except theRootCodespace
errors and ABCI response helpers. All functions and types that used to live intypes/errors
are now aliased so this is not a breaking change. - (gov) #10854 v1beta2's vote doesn't include the deprecate
option VoteOption
anymore. Instead, it only usesWeightedVoteOption
. - (types) #11004 Added mutable versions of many of the sdk.Dec types operations. This improves performance when used by avoiding reallocating a new bigint for each operation.
- (x/auth) #10880 Added a new query to the tx query service that returns a block with transactions fully decoded.
- (types) #11200 Added
Min()
andMax()
operations on sdk.Coins. - (gov) #11287 Fix error message when no flags are provided while executing
submit-legacy-proposal
transaction. - (x/auth) #11482 Improve panic message when attempting to register a method handler for a message that does not implement sdk.Msg
- (x/staking) #11596 Add (re)delegation getters
- (errors) #11960 Removed 'redacted' error message from defaultErrEncoder
- (ante) #12013 Index ante events for failed tx.
- #12668 Add
authz_msg_index
event attribute to message events emitted when executing viaMsgExec
throughx/authz
. - #12626 Upgrade IAVL to v0.19.0 with fast index and error propagation. NOTE: first start will take a while to propagate into new model.
- #12576 Remove dependency on cosmos/keyring and upgrade to 99designs/keyring v1.2.1
- #12590 Allow zero gas in simulation mode.
- #12453 Add
NewInMemoryWithKeyring
function which allows the creation of in memorykeystore
instances with a specified set of existing items. - #11390
LatestBlockResponse
&BlockByHeightResponse
types'Block
filed has been deprecated and they now contains new fieldsdk_block
withproposer_address
asstring
- #12089 Mark the
TipDecorator
as beta, don't include it in simapp by default. - #12153 Add a new
NewSimulationManagerFromAppModules
constructor, to simplify simulation wiring.
- #11969 Fix the panic error in
x/upgrade
whenAppVersion
is not set. - (tests) #11940 Fix some client tests in the
x/gov
module - #11772 Limit types.Dec length to avoid overflow.
- #11724 Fix data race issues with api.Server
- #11693 Add validation for gentx cmd.
- #11645 Fix
--home
flag ignored when running help. - #11558 Fix
--dry-run
not working when using tx command. - #11354 Added missing pagination flag for
bank q total
query. - #11197 Signing with multisig now works with multisig address which is not in the keyring.
- (makefile) #11285 Fix lint-fix make target.
- (client) #11283 Support multiple keys for tx simulation and setting automatic gas for txs.
- (store) #11177 Update the prune
everything
strategy to store the last two heights. - #10844 Automatic recovering non-consistent keyring storage during public key import.
- (store) #11117 Fix data race in store trace component
- (cli) #11065 Ensure the
tendermint-validator-set
query command respects the-o
output flag. - (grpc) #10985 The
/cosmos/tx/v1beta1/txs/{hash}
endpoint returns a 404 when a tx does not exist. - (rosetta) #10340 Use
GenesisChunked(ctx)
insteadGenesis(ctx)
to get genesis block height - #9651 Change inconsistent limit of
0
toMaxUint64
on InfiniteGasMeter and add GasRemaining func to GasMeter. - #9639 Check store keys length before accessing them by making sure that
key
is of lengthm+1
(forkey[n:m]
) - (types) #9627 Fix nil pointer panic on
NewBigIntFromInt
- (x/genutil) #9574 Actually use the
gentx
client tx flags (like--keyring-dir
) - (x/distribution) #9599 Withdraw rewards event now includes a value attribute even if there are 0 rewards (due to situations like 100% commission).
- (x/genutil) #9638 Added missing validator key save when recovering from mnemonic
- #9762 The init command uses the chain-id from the client config if --chain-id is not provided
- #9980 Returning the error when the invalid argument is passed to bank query total supply cli.
- (server) #10016 Fix marshaling of index-events into server config file.
- #10184 Fixed CLI tx commands to no longer explicitly require the chain-id flag as this value can come from a user config.
- (x/upgrade) #10189 Removed potential sources of non-determinism in upgrades
- #10258 Fixes issue related to segmentation fault on mac m1 arm64
- #10466 Fixes error with simulation tests when genesis start time is randomly created after the year 2262
- #10394 Fixes issue related to grpc-gateway of account balance by ibc-denom.
- #10842 Fix error when
--generate-only
,--max-msgs
fags set while executingWithdrawAllRewards
command. - #10897 Fix: set a non-zero value on gas overflow.
- #9790 Fix behavior of
DecCoins.MulDecTruncate
. - #10990 Fixes missing
iavl-cache-size
config parsing inGetConfig
method. - (x/authz) #10447 Fix authz
NewGrant
expiration check. - (x/authz) #10633 Fixed authorization not found error when executing message.
- #11222 reject query with block height in the future
- #11229 Handled the error message of
transaction encountered error
from tendermint. - (x/authz) #11252 Allow insufficient funds error for authz simulation
- (cli) #11313 Fixes
--gas auto
when executing CLI transactions in--generate-only
mode - (cli) #11337 Fixes
show-address
cli cmd - (crypto) #11298 Fix cgo secp signature verification and update libscep256k1 library.
- (x/authz) #11512 Fix response of a panic to error, when subtracting balances.
- (rosetta) #11590
/block
returns an error with nil pointer when a request has both of index and hash and increase timeout for huge genesis. - (x/feegrant) #11813 Fix pagination total count in
AllowancesByGranter
query. - (simapp) #11855 Use
sdkmath.Int
instead ofint64
forSimulationState.InitialStake
. - (x/capability) #11737 Use a fixed length encoding of
Capability
pointer forFwdCapabilityKey
- #11983 (x/feegrant, x/authz) rename grants query commands to
grants-by-grantee
,grants-by-granter
cmds. - (testutil/sims) #12374 fix the non-determinstic behavior in simulations caused by
GenSignedMockTx
and check empty coins slice before it is used to createbanktype.MsgSend
. - #12448 Start telemetry independently from the API server.
- #12509 Fix
Register{Tx,Tendermint}Service
not being called, resulting in some endpoints like the Simulate endpoint not working. - #12416 Prevent zero gas transactions in the
DeductFeeDecorator
AnteHandler decorator. - (x/mint) #12384 Ensure
GoalBonded
must be positive when performingx/mint
parameter validation. - (x/auth) #12261 Deprecate pagination in GetTxsEventRequest/Response in favor of page and limit to align with tendermint
SignClient.TxSearch
- (vesting) #12190 Replace cosmos#12190 to use
NewBaseAccountWithAddress
in all vesting account message handlers. - (linting) #12132 Change sdk.Int to math.Int
- (cli) #12127 Fix the CLI not always taking into account
--fee-payer
and--fee-granter
flags. - (migrations) #12028 Fix v0.45->v0.46 in-place store migrations.
- (baseapp) #12089 Include antehandler and runMsgs events in SimulateTx.
- (cli) #12095 Fix running a tx with --dry-run returns an error
- (x/auth) #12108 Fix GetBlockWithTxs error when querying block with 0 tx
- (genutil) #12140 Fix staking's genesis JSON migrate in the
simd migrate v0.46
CLI command. - (types) #12154 Add
baseAccountGetter
to avoid invalid account error when create vesting account. - (x/crisis) #12208 Fix progress index of crisis invariant assertion logs.
- (types) #12229 Increase sdk.Dec maxApproxRootIterations to 300
- (x/gov) #13576 Proposals in voting period are tracked in a separate store.
- (baseapp) #11985 Add a
postHandler
to baseapp. ThispostHandler
is like antehandler, but is run after therunMsgs
execution. It is in the same store branch thatrunMsgs
, meaning that bothrunMsgs
andpostHandler
- (x/gov) #11998 Tweak the
x/gov
ModuleAccountInvariant
invariant to ensure deposits are<=
total module account balance instead of strictly equal. - (x/upgrade) #11800 Fix
GetLastCompleteUpgrade
to properly return the latest upgrade. - #10564 Fix bug when updating allowance inside AllowedMsgAllowance
- (x/auth)#9596 Enable creating periodic vesting accounts with a transactions instead of requiring them to be created in genesis.
- (x/bank) #9611 Introduce a new index to act as a reverse index between a denomination and address allowing to query for token holders of a specific denomination.
DenomOwners
is updated to use the new reverse index. - (x/bank) #9832 Account balance is stored as
sdk.Int
rather thansdk.Coin
. - (x/bank) #9890 Remove duplicate denom from denom metadata key.
- (x/upgrade) #10189 Removed potential sources of non-determinism in upgrades
- #10422 and #10529 Add
MinCommissionRate
param tox/staking
module. - (x/gov) #10763 modify the fields in
TallyParams
to usestring
instead ofbytes
- #10770 revert tx when block gas limit exceeded
- (x/gov) #10868 Bump gov to v1. Both v1beta1 and v1beta2 queries and Msgs are accepted.
- #11011 Remove burning of deposits when qourum is not reached on a governance proposal and when the deposit is not fully met.
- #11019 Add
MsgCreatePermanentLockedAccount
and CLI method for creating permanent locked account - (x/staking) [#10885] (cosmos#10885) Add new
CancelUnbondingDelegation
transaction tox/staking
module. Delegators can now cancel unbonding delegation entry and delegate back to validator. - (x/feegrant) #10830 Expired allowances will be pruned from state.
- (x/authz,x/feegrant) #11214 Fix Amino JSON encoding of authz and feegrant Msgs to be consistent with other modules.
- (authz)#11060 Support grant with no expire time.
- (x/upgrade) #9906 Deprecate
UpgradeConsensusState
gRPC query since this functionality is only used for IBC, which now has its own IBC replacement - (types) #10948 Deprecate the types.DBBackend variable and types.NewLevelDB function. They are replaced by a new entry in
app.toml
:app-db-backend
andtendermint/tm-db
sNewDB
function. Ifapp-db-backend
is defined, then it is used. Otherwise, iftypes.DBBackend
is defined, it is used (until removed: #11241). Otherwise, Tendermint config'sdb-backend
is used.
v0.45.16 - 2023-05-11
- (x/feegrant) #16097 Fix infinite feegrant allowance bug.
v0.45.15 - 2023-03-22
- (deps) Migrate to CometBFT. Follow the instructions in the release process.
- (deps) #15127 Bump btcd.
- (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.
v0.45.14 - 2023-02-16
- #14583 Add support for Core API.
- (deps) Bump Tendermint version to v0.34.26.
- (store) #14798 Copy btree to avoid the problem of modify while iteration.
- #13881 Optimize iteration on nested cached KV stores and other operations in general.
- (store) #11646 Add store name in tracekv-emitted store traces
- (deps) Bump Tendermint version to v0.34.24 and use Informal Systems fork.
- (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
- (store) #12945 Fix nil end semantics in store/cachekv/iterator when iterating a dirty cache.
- (store) #13516 Fix state listener that was observing writes at wrong time.
- #13896 Queries on pruned height returns error instead of empty values.
- (deps) Bump Tendermint version to v0.34.23.
- (deps) Bump IAVL version to v0.19.4.
- #13673 Fix
--dry-run
flag not working when using tx command.
- #13656 Rename
server.FlagIAVLFastNode
toserver.FlagDisableIAVLFastNode
for clarity.
- #13673 The
GetFromFields
function now takesContext
as an argument and removesgenOnly
.
v0.45.10 - 2022-10-24
- (grpc) #13485 Implement a new gRPC query,
/cosmos/base/node/v1beta1/config
, which provides operator configuration. Applications that wish to expose operator minimum gas prices via gRPC should have their application implement theApplicationQueryService
interface (seeSimApp#RegisterNodeService
as an example). - #13557 - Add
GenSignedMockTx
. This can be used as workaround for #12437 revertion.v0.46+
contains as well aGenSignedMockTx
that behaves the same way. - (x/auth) #13612 Add
Query/ModuleAccountByName
endpoint for accessing the module account info by module name.
- #13585 Bump Tendermint to
v0.34.22
.
- #13588 Fix regression in distribution.WithdrawDelegationRewards when rewards are zero.
- #13564 - Fix
make proto-gen
. - (server) #13610 Read the pruning-keep-every field again.
v0.45.9 - 2022-10-14
ATTENTION:
This is a security release for the Dragonberry security advisory.
All users should upgrade immediately.
Users must add a replace directive in their go.mod for the new ics23
package in the SDK:
replace github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0
- #13435 Extend error context when a simulation fails.
- #13369 Improve UX for
keyring.List
by returning all retrieved keys. - #13323 Ensure
withdraw_rewards
rewards are emitted from all actions that result in rewards being withdrawn. - #13321 Add flag to disable fast node migration and usage.
- (store) #13326 Implementation of ADR-038 file StreamingService, backport #8664.
- (store) #13540 Default fastnode migration to false to prevent surprises. Operators must enable it, unless they have it enabled already.
- (cli) #13089 Fix rollback command don't actually delete multistore versions, added method
RollbackToVersion
to interfaceCommitMultiStore
and added methodCommitMultiStore
toApplication
interface.
- Implement dragonberry security patch.
- For applying the patch please refer to the RELEASE PROCESS
- (store) #13459 Don't let state listener observe the uncommitted writes.
Reverted #12437 due to API breaking changes.
v0.45.8 - 2022-08-25
- #12981 Return proper error when parsing telemetry configuration.
- #12885 Amortize cost of processing cache KV store.
- #12970 Bump Tendermint to
v0.34.21
and IAVL tov0.19.1
. - #12693 Make sure the order of each node is consistent when emitting proto events.
- #13046 Fix missing return statement in BaseApp.Query.
v0.45.7 - 2022-08-04
- (upgrade) #12603 feat: Move AppModule.BeginBlock and AppModule.EndBlock to extension interfaces
- (events) #12850 Add a new
fee_payer
attribute to thetx
event that is emitted from theDeductFeeDecorator
AnteHandler decorator. - (x/params) #12724 Add
GetParamSetIfExists
function to paramsSubspace
to prevent panics on breaking changes. - #12668 Add
authz_msg_index
event attribute to message events emitted when executing viaMsgExec
throughx/authz
. - #12697 Upgrade IAVL to v0.19.0 with fast index and error propagation. NOTE: first start will take a while to propagate into new model.
- Note: after upgrading to this version it may take up to 15 minutes to migrate from 0.17 to 0.19. This time is used to create the fast cache introduced into IAVL for performance
- #12784 Upgrade Tendermint to 0.34.20.
- (x/bank) #12674 Add convenience function
CreatePrefixedAccountStoreKey()
to construct key to access account's balance for a given denom.
- (x/mint) #12384 Ensure
GoalBonded
must be positive when performingx/mint
parameter validation. - (simapp) #12437 fix the non-determinstic behavior in simulations caused by
GenTx
and check empty coins slice before it is used to createbanktype.MsgSend
. - (x/capability) 12818 Use fixed length hex for pointer at FwdCapabilityKey.
v0.45.6 - 2022-06-28
- (simapp) #12314 Increase
DefaultGenTxGas
from1000000
to10000000
- #12371 Update min required Golang version to 1.18.
- #12317 Rename
edit-validator
command's--moniker
flag to--new-moniker
- (x/upgrade) #12264 Fix
GetLastCompleteUpgrade
to properly return the latest upgrade. - (x/crisis) #12208 Fix progress index of crisis invariant assertion logs.
- (query) #12253 Add
GenericFilteredPaginate
to thequery
package to improve UX.
v0.45.5 - 2022-06-09
- (x/feegrant) #11813 Fix pagination total count in
AllowancesByGranter
query. - (errors) #12002 Removed 'redacted' error message from defaultErrEncoder.
- (ante) #12017 Index ante events for failed tx (backport #12013).
- #12153 Add a new
NewSimulationManagerFromAppModules
constructor, to simplify simulation wiring.
- #11796 Handle EOF error case in
readLineFromBuf
, which allows successful reading of passphrases from STDIN. - #11772 Limit types.Dec length to avoid overflow.
- #10947 Add
AllowancesByGranter
query to the feegrant module - #9639 Check store keys length before accessing them by making sure that
key
is of lengthm+1
(forkey[n:m]
) - #11983 (x/feegrant, x/authz) rename grants query commands to
grants-by-grantee
,grants-by-granter
cmds.
- #11886 Improve error messages
v0.45.4 - 2022-04-25
- #11624 Handle the error returned from
NewNode
in theserver
package. - #11724 Fix data race issues with
api.Server
.
- (types) #12201 Add
MustAccAddressFromBech32
util function - #11693 Add validation for gentx cmd.
- #11686 Update the min required Golang version to
1.17
. - (x/auth/vesting) #11652 Add util functions for
Period(s)
v0.45.3 - 2022-04-12
- #11562 Updated Tendermint to v0.34.19;
unsafe-reset-all
command has been moved to thetendermint
sub-command.
- (x/upgrade) #11551 Update
ScheduleUpgrade
for chains to schedule an automated upgrade onBeginBlock
without having to go though governance.
v0.45.2 - 2022-04-05
- (tx) #11533 Register
EIP191
as an availableSignMode
for chains to use. - #11430 Introduce a new
grpc-only
flag, such that when enabled, will start the node in a query-only mode. Note, gRPC MUST be enabled with this flag. - (x/bank) #11417 Introduce a new
SpendableBalances
gRPC query that retrieves an account's total (paginated) spendable balances. - (x/bank) #10771 Add safety check on bank module perms to allow module-specific mint restrictions (e.g. only minting a certain denom).
- (x/bank) #10771 Add
bank.BankKeeper.WithMintCoinsRestriction
function to restrict use of bankMintCoins
usage. This function is not on the bankKeeper
interface, so it's not API-breaking, but only additive on the keeper implementation. - #10944
x/authz
add all grants by grantee query - #11124 Add
GetAllVersions
to application store - (x/auth) #10880 Added a new query to the tx query service that returns a block with transactions fully decoded.
- #11314 Add state rollback command.
- #11354 Added missing pagination flag for
bank q total
query. - #11197 Signing with multisig now works with multisig address which is not in the keyring.
- (client) #11283 Support multiple keys for tx simulation and setting automatic gas for txs.
- (store) #11177 Update the prune
everything
strategy to store the last two heights. - (store) #11117 Fix data race in store trace component
- (x/authz) #11252 Allow insufficient funds error for authz simulation
- (crypto) #11298 Fix cgo secp signature verification and update libscep256k1 library.
- (crypto) #12122 Fix keyring migration issue.
- #9576 Add debug error message to query result when enabled
- (types) #11200 Added
Min()
andMax()
operations on sdk.Coins. - #11267 Add hooks to allow app modules to add things to state-sync (backport #10961).
v0.45.1 - 2022-02-03
- (grpc) #10985 The
/cosmos/tx/v1beta1/txs/{hash}
endpoint returns a 404 when a tx does not exist. - #10990 Fixes missing
iavl-cache-size
config parsing inGetConfig
method. - #11222 reject query with block height in the future
- #10407 Added validation to
x/upgrade
module'sBeginBlock
to check accidental binary downgrades - #10768 Extra logging in in-place store migrations.
v0.45.0 - 2022-01-18
- #10833 fix reported tx gas used when block gas limit exceeded.
- (auth) #10536 Enable
SetSequence
forModuleAccount
. - (store) #10218 Charge gas even when there are no entries while seeking.
- (store) #10247 Charge gas for the key length in gas meter.
- (x/gov) #10740 Increase maximum proposal description size from 5k characters to 10k characters.
- #10814 revert tx when block gas limit exceeded.
- #10561 The
CommitMultiStore
interface contains a newSetIAVLCacheSize
method - #10922, /#10956 Deprecate key
server.Generate*
functions and move them totestutil
and support custom mnemonics in in-process testing network. MovedTestMnemonic
fromtestutil
package totestdata
. - #11049 Add custom tendermint config variables into root command. Allows App developers to set config.toml variables.
- #10614 Support in-place migration ordering
- #10486 store/cachekv's
Store.Write
conservatively looks up keys, but also uses the map clearing idiom to reduce the RAM usage, CPU time usage, and garbage collection pressure from clearing maps, instead of allocating new maps. - (module) #10711 Panic at startup if the app developer forgot to add modules in the
SetOrder{BeginBlocker, EndBlocker, InitGenesis, ExportGenesis}
functions. This means that all modules, even those who have empty implementations for those methods, need to be added toSetOrder*
. - (types) #10076 Significantly speedup and lower allocations for
Coins.String()
. - (auth) #10022
AuthKeeper
interface inx/auth
now includes a functionHasAccount
. - #10393 Add
HasSupply
method to bank keeper to ensure that input denom actually exists on chain.
- (std/codec) /#10595 Add evidence to std/codec to be able to decode evidence in client interactions.
- (types) #9627 Fix nil pointer panic on
NewBigIntFromInt
. - #10725 populate
ctx.ConsensusParams
for begin/end blockers. - #9829 Fixed Coin denom sorting not being checked during
Balance.Validate
check. Refactored the Validation logic to useCoins.Validate
forBalance.Coins
- #10061 and #10515 Ensure that
LegacyAminoPubKey
struct correctly unmarshals from JSON
v0.44.8 - 2022-04-12
- #11563 Updated Tendermint to v0.34.19;
unsafe-reset-all
command has been moved to thetendermint
sub-command.
v0.44.7 - 2022-04-04
- (x/bank) #10771 Add safety check on bank module perms to allow module-specific mint restrictions (e.g. only minting a certain denom).
- (x/bank) #10771 Add
bank.BankKeeper.WithMintCoinsRestriction
function to restrict use of bankMintCoins
usage. This function is not on the bankKeeper
interface, so it's not API-breaking, but only additive on the keeper implementation.
- #11354 Added missing pagination flag for
bank q total
query. - (store) #11177 Update the prune
everything
strategy to store the last two heights. - (store) #11117 Fix data race in store trace component
- (x/authz) #11252 Allow insufficient funds error for authz simulation
- #9576 Add debug error message to query result when enabled
v0.44.6 - 2022-02-02
- #11124 Add
GetAllVersions
to application store
- (grpc) #10985 The
/cosmos/tx/v1beta1/txs/{hash}
endpoint returns a 404 when a tx does not exist. - (std/codec) /#10595 Add evidence to std/codec to be able to decode evidence in client interactions.
- #10725 populate
ctx.ConsensusParams
for begin/end blockers. - #10061 and #10515 Ensure that
LegacyAminoPubKey
struct correctly unmarshals from JSON
- #10823 updated ambiguous cli description for creating feegrant.
v0.44.5-patch - 2021-10-14
ATTENTION:
This is a security release for the Dragonberry security advisory.
All users should upgrade immediately.
Users must add a replace directive in their go.mod for the new ics23
package in the SDK:
replace github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0
v0.44.5 - 2021-12-02
- (baseapp) #10631 Emit ante events even for the failed txs.
- (store) #10741 Significantly speedup iterator creation after delete heavy workloads. Significantly improves IBC migration times.
- #10648 Upgrade IAVL to 0.17.3 to solve race condition bug in IAVL.
v0.44.4 - 2021-11-25
- (types) #10630 Add an
Events
field to theTxResponse
type that captures all events emitted by a transaction, unlikeLogs
which only contains events emitted during message execution. - (x/upgrade) #10532 Add
keeper.DumpUpgradeInfoWithInfoToDisk
to includePlan.Info
in the upgrade-info file. - (store) #10544 Use the new IAVL iterator structure which significantly improves iterator performance.
- #10827 Create query
Context
with requested block height - #10414 Use
sdk.GetConfig().GetFullBIP44Path()
insteadsdk.FullFundraiserPath
to generate key - (bank) #10394 Fix: query account balance by ibc denom.
- \10608 Change the order of module migration by pushing x/auth to the end. Auth module depends on other modules and should be run last. We have updated the documentation to provide more details how to change module migration order. This is technically a breaking change, but only impacts updates between the upgrades with version change, hence migrating from the previous patch release doesn't cause new migration and doesn't break the state.
- #10674 Fix issue with
Error.Wrap
andError.Wrapf
usage witherrors.Is
.
v0.44.3 - 2021-10-21
- #10768 Added extra logging for tracking in-place store migrations
- #10262 Remove unnecessary logging in
x/feegrant
simulation. - #10327 Add null guard for possible nil
Amount
in tx feeCoins
- #10339 Improve performance of
removeZeroCoins
by only allocating memory when necessary - #10045 Revert #8549. Do not route grpc queries through Tendermint.
- (deps) #10375 Bump Tendermint to v0.34.14.
- #10024
store/cachekv
performance improvement by reduced growth factor for iterator ranging by using binary searches to find dirty items when unsorted key count >= 1024.
- (client) #10226 Fix --home flag parsing.
- (rosetta) #10340 Use
GenesisChunked(ctx)
insteadGenesis(ctx)
to get genesis block height
v0.44.2 - 2021-10-12
Security Release. No breaking changes related to 0.44.x.
v0.44.1 - 2021-09-29
- (store) #10040 Bump IAVL to v0.17.1 which includes performance improvements on a batch load.
- (types) #10021 Speedup coins.AmountOf(), by removing many intermittent regex calls.
- #10077 Remove telemetry on
GasKV
andCacheKV
store Get/Set operations, significantly improving their performance. - (store) #10026 Improve CacheKVStore datastructures / algorithms, to no longer take O(N^2) time when interleaving iterators and insertions.
- #9969 fix: use keyring in config for add-genesis-account cmd.
- (x/genutil) #10104 Ensure the
init
command reads the--home
flag value correctly. - (x/feegrant) #10049 Fixed the error message when
period
orperiod-limit
flag is not set on a feegrant grant transaction.
- #9879 Modify ABCI Queries to use
abci.QueryRequest
Height field if it is non-zero, otherwise continue using context height.
v0.44.0 - 2021-09-01
- #9860 Emit transaction fee in ante handler fee decorator. The event type is
tx
and the attribute isfee
.
- (x/upgrade) #9906 Deprecate
UpgradeConsensusState
gRPC query since this functionality is only used for IBC, which now has its own IBC replacement
- #9965 Fixed
simd version
command output to report the right release tag. - (x/upgrade) #10189 Removed potential sources of non-determinism in upgrades.
- #10041 Remove broadcast & encode legacy REST endpoints. Please see the REST Endpoints Migration guide to migrate to the new REST endpoints.
v0.43.0 - 2021-08-10
- #6711 Make integration test suites reusable by apps, tests are exported in each module's
client/testutil
package. - #8077 Added support for grpc-web, enabling browsers to communicate with a chain's gRPC server
- #8965 cosmos reflection now provides more information on the application such as: deliverable msgs, sdk.Config info etc (still in alpha stage).
- #8520 Add support for permanently locked vesting accounts.
- #8559 Added Protobuf compatible secp256r1 ECDSA signatures.
- #8786 Enabled secp256r1 in x/auth.
- (rosetta) #8729 Data API fully supports balance tracking. Construction API can now construct any message supported by the application.
- #8754 Added support for reverse iteration to pagination.
- (types) #9079 Add
AddAmount
/SubAmount
methods tosdk.Coin
. - #9088 Added implementation to ADR-28 Derived Addresses.
- #9133 Added hooks for governance actions.
- (x/staking) #9214 Added
new_shares
attribute insideEventTypeDelegate
event. - #9382 feat: add Dec.Float64() function.
- #9457 Add amino support for x/authz and x/feegrant Msgs.
- #9498 Added
Codec: codec.Codec
attribute toclient/Context
structure. - #9540 Add output flag for query txs command.
- (errors) #8845 Add
Error.Wrap
handy method - #8518 Help users of multisig wallets debug signature issues.
- #9573 ADR 040 implementation: New DB interface
- #9952 ADR 040: Implement in-memory DB backend
- #9848 ADR-040: Implement BadgerDB backend
- #9851 ADR-040: Implement RocksDB backend
- #10308 ADR-040: Implement DBConnection.Revert
- #9892 ADR-040: KV Store with decoupled storage and state commitment
- #8363 Addresses no longer have a fixed 20-byte length. From the SDK modules' point of view, any 1-255 bytes-long byte array is a valid address.
- (crypto/ed25519) [#8690] Adopt zip1215 ed2559 verification rules.
- #8849 Upgrade module no longer supports time based upgrades.
- #7477 Changed Bech32 Public Key serialization in the client facing functionality (CLI, MsgServer, QueryServer):
- updated the keyring display structure (it uses protobuf JSON serialization) - the output is more verbose.
- Renamed
MarshalAny
andUnmarshalAny
toMarshalInterface
andUnmarshalInterface
respectively. These functions must take an interface as parameter (not a concrete type norAny
object). Underneath they useAny
wrapping for correct protobuf serialization. - CLI: removed
--text
flag fromshow-node-id
command; the text format for public keys is not used any more - instead we use ProtoJSON.
- (store) #8790 Reduce gas costs by 10x for transient store operations.
- #9139 Querying events:
- via
ServiceMsg
TypeURLs (e.g.message.action='/cosmos.bank.v1beta1.Msg/Send'
) does not work anymore, - via legacy
msg.Type()
(e.g.message.action='send'
) is being deprecated, newMsg
s won't emit these events. - Please use concrete
Msg
TypeURLs instead (e.g.message.action='/cosmos.bank.v1beta1.MsgSend'
).
- via
- #9859 The
default
pruning strategy now keeps the last 362880 blocks instead of 100. 362880 equates to roughly enough blocks to cover the entire unbonding period assuming a 21 day unbonding period and 5s block time. - #9785 Missing coin denomination in logs
- (keyring) #8662
NewMnemonic
now receives an additionalpassphrase
argument to secure the key generated by the bip39 mnemonic. - (x/bank) #8473 Bank keeper does not expose unsafe balance changing methods such as
SetBalance
,SetSupply
etc. - (x/staking) #8473 On genesis init, if non bonded pool and bonded pool balance, coming from the bank module, does not match what is saved in the staking state, the initialization will panic.
- (x/gov) #8473 On genesis init, if the gov module account balance, coming from bank module state, does not match the one in gov module state, the initialization will panic.
- (x/distribution) #8473 On genesis init, if the distribution module account balance, coming from bank module state, does not match the one in distribution module state, the initialization will panic.
- (client/keys) #8500
InfoImporter
interface is removed from legacy keybase. - (x/staking) #8505
sdk.PowerReduction
has been renamed tosdk.DefaultPowerReduction
, and most staking functions relying on power reduction take a new function argument, instead of relying on that global variable. - #8629 Deprecated
SetFullFundraiserPath
fromConfig
in favor ofSetPurpose
andSetCoinType
. - (x/upgrade) #8673 Remove IBC logic from x/upgrade. Deprecates IBC fields in an Upgrade Plan, an error will be thrown if they are set. IBC upgrade logic moved to 02-client and an IBC UpgradeProposal is added.
- (x/bank) #8517
SupplyI
interface andSupply
are removed and usessdk.Coins
for supply tracking - (x/upgrade) #8743
UpgradeHandler
includes a new argumentVersionMap
which helps facilitate in-place migrations. - (x/auth) #8129 Updated
SigVerifiableTx.GetPubKeys
method signature to return error. - (x/upgrade) \7487 Upgrade
Keeper
takes new argumentProtocolVersionSetter
which implements setting a protocol version on baseapp. - (baseapp) \7487 BaseApp's fields appVersion and version were swapped to match Tendermint's fields.
- #8682
ante.NewAnteHandler
updated to receive all positional params asante.HandlerOptions
struct. If required fields aren't set, throws error accordingly. - (x/staking/types) #7447 Remove bech32 PubKey support:
ValidatorI
interface update:GetConsPubKey
renamed toTmConsPubKey
(this is to clarify the return type: consensus public key must be a tendermint key);TmConsPubKey
,GetConsAddr
methods return error.Validator
updated according to theValidatorI
changes described above.ToTmValidator
function: addederror
to return values.Validator.ConsensusPubkey
type changed fromstring
tocodectypes.Any
.MsgCreateValidator.Pubkey
type changed fromstring
tocodectypes.Any
.
- (client) #8926
client/tx.PrepareFactory
has been converted to a private function, as it's only used internally. - (auth/tx) #8926 The
ProtoTxProvider
interface used as a workaround for transaction simulation has been removed. - (x/bank) #8798
GetTotalSupply
is removed in favour ofGetPaginatedTotalSupply
- (keyring) #8739 Rename InfoImporter -> LegacyInfoImporter.
- (x/bank/types) #9061
AddressFromBalancesStore
now returns an error for invalid key instead of panic. - (x/auth) #9144 The
NewTxTimeoutHeightDecorator
antehandler has been converted from a struct to a function. - (codec) #9226 Rename codec interfaces and methods, to follow a general Go interfaces:
codec.Marshaler
→codec.Codec
(this defines objects which serialize other objects)codec.BinaryMarshaler
→codec.BinaryCodec
codec.JSONMarshaler
→codec.JSONCodec
- Removed
BinaryBare
suffix fromBinaryCodec
methods (MarshalBinaryBare
,UnmarshalBinaryBare
, ...) - Removed
Binary
infix fromBinaryCodec
methods (MarshalBinaryLengthPrefixed
,UnmarshalBinaryLengthPrefixed
, ...)
- #9139
ServiceMsg
TypeURLs (e.g./cosmos.bank.v1beta1.Msg/Send
) have been removed, as they don't comply to the ProbobufAny
spec. Please useMsg
type TypeURLs (e.g./cosmos.bank.v1beta1.MsgSend
). This has multiple consequences:- The
sdk.ServiceMsg
struct has been removed. sdk.Msg
now only containsValidateBasic
andGetSigners
methods. The remaining methodsGetSignBytes
,Route
andType
are moved tolegacytx.LegacyMsg
.- The
RegisterCustomTypeURL
function and thecosmos.base.v1beta1.ServiceMsg
interface have been removed from the interface registry.
- The
- (codec) #9251 Rename
clientCtx.JSONMarshaler
toclientCtx.JSONCodec
as per #9226. - (x/bank) #9271 SendEnabledCoin(s) renamed to IsSendEnabledCoin(s) to better reflect its functionality.
- (x/bank) #9550
server.InterceptConfigsPreRunHandler
now takes 2 additional arguments: customAppConfigTemplate and customAppConfig. If you don't need to customize these, simply put""
andnil
. - #8245 Removed
simapp.MakeCodecs
and usesimapp.MakeTestEncodingConfig
instead. - (x/capability) #9836 Removed
InitializeAndSeal(ctx sdk.Context)
and replaced withSeal()
. App must add x/capability module to the begin blockers which will assure that the x/capability keeper is properly initialized. The x/capability begin blocker must be run before any other module which uses x/capability.
- (x/{bank,distrib,gov,slashing,staking}) #8363 Store keys have been modified to allow for variable-length addresses.
- (x/evidence) #8502
HandleEquivocationEvidence
persists the evidence to state. - (x/gov) #7733 ADR 037 Implementation: Governance Split Votes, use
MsgWeightedVote
to send a split vote. Sending a regularMsgVote
will convert the underlying vote option into a weighted vote with weight 1. - (x/bank) #8656 balance and supply are now correctly tracked via
coin_spent
,coin_received
,coinbase
andburn
events. - (x/bank) #8517 Supply is now stored and tracked as
sdk.Coins
- (x/bank) #9051 Supply value is stored as
sdk.Int
rather thanstring
.
- #8880 The CLI
simd migrate v0.40 ...
command has been renamed tosimd migrate v0.42
. - #8628 Commands no longer print outputs using
stderr
by default - #9134 Renamed the CLI flag
--memo
to--note
. - #9291 Migration scripts prior to v0.38 have been removed from the CLI
migrate
command. The oldest supported migration is v0.39->v0.42. - #9371 Non-zero default fees/Server will error if there's an empty value for min-gas-price in app.toml
- #9827 Ensure input parity of validator public key input between
tx staking create-validator
andgentx
. - #9621 Rollback #9371 and log warning if there's an empty value for min-gas-price in app.toml
- (store) #8012 Implementation of ADR-038 WriteListener and listen.KVStore
- (x/bank) #8614 Add
Name
andSymbol
fields to denom metadata - (x/auth) #8522 Allow to query all stored accounts
- (crypto/types) #8600
CompactBitArray
: optimize theNumTrueBitsBefore
method and add anEqual
method. - (x/upgrade) #8743 Add tracking module versions as per ADR-041
- (types) #8962 Add
Abs()
method tosdk.Int
. - (x/bank) #8950 Improve efficiency on supply updates.
- (store) #8811 store/cachekv: use typed
types/kv.List
instead ofcontainer/list.List
. The change brings time spent on the time assertion cummulatively to 580ms down from 6.88s. - (keyring) #8826 add trust to macOS Keychain for calling apps by default, avoiding repeating keychain popups that appears when dealing with keyring (key add, list, ...) operations.
- (makefile) #7933 Use Docker to generate swagger files.
- (crypto/types) #9196 Fix negative index accesses in CompactUnmarshal,GetIndex,SetIndex
- (makefile) #9192 Reuse proto containers in proto related jobs.
- #9205 Improve readability in
abci
handleQueryP2P - #9231 Remove redundant staking errors.
- #9314 Update Rosetta SDK to upstream's latest release.
- (gRPC-Web) #9493 Add
EnableUnsafeCORS
flag to grpc-web config. - (x/params) #9481 Speedup simulator for parameter change proposals.
- (x/staking) #9423 Staking delegations now returns empty list instead of rpc error when no records found.
- (x/auth) #9553 The
--multisig
flag now accepts both a name and address. - #8549 Make gRPC requests go through tendermint Query
- #8093 Limit usage of context.background.
- #8460 Ensure b.ReportAllocs() in all the benchmarks
- #8461 Fix upgrade tx commands not showing up in CLI
- (gRPC) #8945 gRPC reflection now works correctly.
- (keyring) #8635 Remove hardcoded default passphrase value on
NewMnemonic
- (x/bank) #8434 Fix legacy REST API
GET /bank/total
andGET /bank/total/{denom}
in swagger - (x/slashing) #8427 Fix query signing infos command
- (x/bank/types) #9112 fix AddressFromBalancesStore address length overflow
- (x/bank) #9229 Now zero coin balances cannot be added to balances & supply stores. If any denom becomes zero corresponding key gets deleted from store. State migration: #9664.
- #9363 Check store key uniqueness in app wiring.
- #9460 Fix lint error in
MigratePrefixAddress
. - #9480 Fix added keys when using
--dry-run
. - (types) #9511 Change
maxBitLen
ofsdk.Int
andsdk.Dec
to handle max ERC20 value. - #9454 Fix testnet command with --node-dir-prefix accepts
-
and changenode-dir-prefix token
totesttoken
. - (keyring) #9562 fix keyring kwallet backend when using with empty wallet.
- (keyring) #9583 Fix correct population of legacy
Vote.Option
field for votes with 1 VoteOption of weight 1. - (x/distinction) #8918 Fix module's parameters validation.
- (x/gov/types) #8586 Fix bug caused by NewProposal that unnecessarily creates a Proposal object that’s discarded on any error.
- #8580 Use more cheaper method from the math/big package that provides a way to trivially check if a value is zero with .BitLen() == 0
- #8567 Fix bug by introducing pagination to GetValidatorSetByHeight response
- (x/bank) #8531 Fix bug caused by ignoring errors returned by Balance.GetAddress()
- (server) #8399 fix gRPC-web flag default value
- #8282 fix zero time checks
- (cli) #9593 Check if chain-id is blank before verifying signatures in multisign and error.
- #9720 Feegrant grant cli granter now accepts key name as well as address in general and accepts only address in --generate-only mode
- #9793 Fixed ECDSA/secp256r1 transaction malleability.
- (server) #9704 Start GRPCWebServer in goroutine, avoid blocking other services from starting.
- (bank) #9687 fixes #9159. Added migration to prune balances with zero coins.
- (grpc) #8926 The
tx
field inSimulateRequest
has been deprecated, prefer to passtx_bytes
instead. - (sdk types) #9498
clientContext.JSONCodec
will be removed in the next version. useclientContext.Codec
instead.
v0.42.10 - 2021-09-28
- (store) #10026 Improve CacheKVStore datastructures / algorithms, to no longer take O(N^2) time when interleaving iterators and insertions.
- (store) #10040 Bump IAVL to v0.17.1 which includes performance improvements on a batch load.
- #10211 Backport of the mechanism to reject redundant IBC transactions from ibc-go #235.
- #9969 fix: use keyring in config for add-genesis-account cmd.
- #9879 Modify ABCI Queries to use
abci.QueryRequest
Height field if it is non-zero, otherwise continue using context height.
- #10077 Remove telemetry on
GasKV
andCacheKV
store Get/Set operations, significantly improving their performance.
v0.42.9 - 2021-08-04
- #9835 Moved capability initialization logic to BeginBlocker to fix nondeterminsim issue mentioned in #9800. Applications must now include the capability module in their BeginBlocker order before any module that uses capabilities gets run.
- #9201 Fixed
<app> init --recover
flag.
- #9835 The
InitializeAndSeal
API has not changed, however it no longer initializes the in-memory state.InitMemStore
has been introduced to serve this function, which will be called either inInitChain
orBeginBlock
(whichever is first after app start). Nodes may run this version on a network running 0.42.x, however, they must update their app.go files to include the capability module in their begin blockers.
- #9781 Improve
withdraw-all-rewards
UX when broadcast modeasync
orasync
is used.
v0.42.8 - 2021-07-30
- #9750 Emit events for tx signature and sequence, so clients can now query txs by signature (
tx.signature='<base64_sig>'
) or by address and sequence combo (tx.acc_seq='<addr>/<seq>'
).
- (cli) #9717 Added CLI flag
--output json/text
totx
cli commands.
- #9766 Fix hardcoded ledger signing algorithm on
keys add
command.
v0.42.7 - 2021-07-09
- (baseapp) #9578 Return
Baseapp
'strace
value for logging error stack traces.
- (x/ibc) #9640 Fix IBC Transfer Ack Success event as it was initially emitting opposite value.
- #9645 Use correct Prometheus format for metric labels.
- #9299 Fix
[appd] keys parse cosmos1...
freezing. - (keyring) #9563 fix keyring kwallet backend when using with empty wallet.
- (x/capability) #9392 initialization fix, which fixes the consensus error when using statesync.
v0.42.6 - 2021-06-18
- #9428 Optimize bank InitGenesis. Added
k.initBalances
. - #9429 Add
cosmos_sdk_version
to node_info - #9541 Bump tendermint dependency to v0.34.11.
- #9385 Fix IBC
query ibc client header
cli command. Support historical queries for query header/node-state commands. - #9401 Fixes incorrect export of IBC identifier sequences. Previously, the next identifier sequence for clients/connections/channels was not set during genesis export. This resulted in the next identifiers being generated on the new chain to reuse old identifiers (the sequences began again from 0).
- #9408 Update simapp to use correct default broadcast mode.
- #9513 Fixes testnet CLI command. Testnet now updates the supply in genesis. Previously, when using add-genesis-account and testnet together, inconsistent genesis files would be produced, as only add-genesis-account was updating the supply.
- (x/gov) #8813 fix
GET /cosmos/gov/v1beta1/proposals/{proposal_id}/deposits
to include initial deposit
- #9383 New CLI command
query ibc-transfer escrow-address <port> <channel id>
to get the escrow address for a channel; can be used to then query balance of escrowed tokens - (baseapp, types) #9390 Add current block header hash to
Context
- (store) #9403 Add
RefundGas
function toGasMeter
interface
v0.42.5 - 2021-05-18
- #9514 Fix panic when retrieving the
BlockGasMeter
on(Re)CheckTx
mode. - #9235 CreateMembershipProof/CreateNonMembershipProof now returns an error if input key is empty, or input data contains empty key.
- #9108 Fixed the bug with querying multisig account, which is not showing threshold and public_keys.
- #9345 Fix ARM support.
- #9040 Fix ENV variables binding to CLI flags for client config.
- #8953 Add the
config
CLI subcommand back to the SDK, which saves client-side configuration in aclient.toml
file.
v0.42.4 - 2021-04-08
- #9026 By default, the
tx sign
andtx sign-batch
CLI commands use SIGN_MODE_DIRECT to sign transactions for local pubkeys. For multisigs and ledger keys, the default LEGACY_AMINO_JSON is used.
- (gRPC) #9015 Fix invalid status code when accessing gRPC endpoints.
- #9026 Fixed the bug that caused the
gentx
command to fail for Ledger keys.
- #9081 Upgrade Tendermint to v0.34.9 that includes a security issue fix for Tendermint light clients.
v0.42.3 - 2021-03-24
This release fixes a security vulnerability identified in x/bank.
v0.42.2 - 2021-03-19
- (grpc) #8815 Add orderBy parameter to
TxsByEvents
endpoint. - (cli) #8826 Add trust to macOS Keychain for caller app by default.
- (store) #8811 store/cachekv: use typed types/kv.List instead of container/list.List
- (crypto) #8841 Fix legacy multisig amino marshaling, allowing migrations to work between v0.39 and v0.40+.
- (cli tx) \8873 add missing
--output-document
option toapp tx multisign-batch
.
v0.42.1 - 2021-03-10
This release fixes security vulnerability identified in the simapp.
v0.42.0 - 2021-03-08
IMPORTANT: This release contains an important security fix for all non Cosmos Hub chains running Stargate version of the Cosmos SDK (>0.40). Non-hub chains should not be using any version of the SDK in the v0.40.x or v0.41.x release series. See #8461 for more details.
- (x/ibc) #8624 Emit full header in IBC UpdateClient message.
- (x/crisis) #8621 crisis invariants names now print to loggers.
- (x/evidence) #8461 Fix bech32 prefix in evidence validator address conversion
- (x/gov) #8806 Fix q gov proposals command's mishandling of the --status parameter's values.
v0.41.4 - 2021-03-02
IMPORTANT: Due to a bug in the v0.41.x series with how evidence handles validator consensus addresses #8461, SDK based chains that are not using the default bech32 prefix (cosmos, aka all chains except for t he Cosmos Hub) should not use this release or any release in the v0.41.x series. Please see #8668 for tracking & timeline for the v0.42.0 release, which will include a fix for this issue.
- #7787 Add multisign-batch command.
- #8730 Allow REST endpoint to query txs with multisig addresses.
- #8680 Fix missing timestamp in GetTxsEvent response #8732.
- #8681 Fix missing error message when calling GetTxsEvent #8732
- (server) #8641 Fix Tendermint and application configuration reading from file
- (client/keys) #8639 Fix keys migrate for mulitisig, offline, and ledger keys. The migrate command now takes a positional old_home_dir argument.
- (store/cachekv), (x/bank/types) #8719 algorithmically fix pathologically slow code
- #8701 Upgrade tendermint v0.34.8.
- #8714 Allow accounts to have a balance of 0 at genesis.
v0.41.3 - 2021-02-18
- #8617 Fix build failures caused by a small API breakage introduced in tendermint v0.34.7.
v0.41.2 - 2021-02-18
- Bump tendermint dependency to v0.34.7.
v0.41.1 - 2021-02-17
- (grpc) #8549 Make gRPC requests go through ABCI and disallow concurrency.
- (x/staking) #8546 Fix caching bug where concurrent calls to GetValidator could cause a node to crash
- (server) #8481 Don't create files when running
{appd} tendermint show-*
subcommands. - (client/keys) #8436 Fix keybase->keyring keys migration.
- (crypto/hd) #8607 Make DerivePrivateKeyForPath error and not panic on trailing slashes.
- (x/ibc) #8458 Add
packet_connection
attribute to ibc events to enable relayer filtering - #8396 Add support for ARM platform
- (x/bank) #8479 Additional client denom metadata validation for
base
anddisplay
denoms. - (codec/types) #8605 Avoid unnecessary allocations for NewAnyWithCustomTypeURL on error.
v0.41.0 - 2021-01-26
- (x/ibc) #8266 Add amino JSON support for IBC MsgTransfer in order to support Ledger text signing transfer transactions.
- (x/ibc) #8404 Reorder IBC
ChanOpenAck
andChanOpenConfirm
handler execution to perform core handler first, followed by application callbacks.
- (simapp) #8418 Add balance coin to supply when adding a new genesis account
- (x/bank) #8417 Validate balances and coin denom metadata on genesis
v0.40.1 - 2021-01-19
- (x/bank) #8302 Add gRPC and CLI queries for client denomination metadata.
- (tendermint) Bump Tendermint version to v0.34.3.
- #8085 fix zero time checks
- #8280 fix GET /upgrade/current query
- (x/auth) #8287 Fix
tx sign --signature-only
to return correct sequence value in signature. - (build) \8300, \8301 Fix reproducible builds
- (types/errors) #8355 Fix errorWrap
Is
method. - (x/ibc) #8341 Fix query latest consensus state.
- (proto) #8350, #8361 Update gogo proto deps with v1.3.2 security fixes
- (x/ibc) #8359 Add missing UnpackInterfaces functions to IBC Query Responses. Fixes 'cannot unpack Any' error for IBC types.
- (x/bank) #8317 Fix panic when querying for a not found client denomination metadata.
v0.40.0 - 2021-01-08
v0.40.0, known as the Stargate release of the Cosmos SDK, is one of the largest releases of the Cosmos SDK since launch. Please read through this changelog and release notes to make sure you are aware of any relevant breaking changes.
- CLI
- (client/keys) #5889 remove
keys update
command. - (x/auth) #5844
tx sign
command now returns an error when signing is attempted with offline/multisig keys. - (x/auth) #6108
tx sign
command's--validate-signatures
flag is migrated into atx validate-signatures
standalone command. - (x/auth) #7788 Remove
tx auth
subcommands, all auth subcommands exist astx <subcommand>
- (x/genutil) #6651 The
gentx
command has been improved. No longer are--from
and--name
flags required. Instead, a single argument,name
, is required which refers to the key pair in the Keyring. In addition, an optional--moniker
flag can be provided to override the moniker found inconfig.toml
. - (x/upgrade) #7697 Rename flag name "--time" to "--upgrade-time", "--info" to "--upgrade-info", to keep it consistent with help message.
- (client/keys) #5889 remove
- REST / Queriers
- (api) #6426 The ability to start an out-of-process API REST server has now been removed. Instead, the API server is now started in-process along with the application and Tendermint. Configuration options have been added to
app.toml
to enable/disable the API server along with additional HTTP server options. - (client) #7246 The rest server endpoint
/swagger-ui/
is replaced by/swagger/
, and contains swagger documentation for gRPC Gateway routes in addition to legacy REST routes. Swagger API is exposed only if set inapp.toml
. - (x/auth) #5702 The
x/auth
querier route has changed from"acc"
to"auth"
. - (x/bank) #5572 The
/bank/balances/{address}
endpoint now returns all account balances or a single balance by denom when thedenom
query parameter is present. - (x/evidence) #5952 Remove CLI and REST handlers for querying
x/evidence
parameters. - (x/gov) #6295 Fix typo in querying governance params.
- (api) #6426 The ability to start an out-of-process API REST server has now been removed. Instead, the API server is now started in-process along with the application and Tendermint. Configuration options have been added to
- General
- (baseapp) #6384 The
Result.Data
is now a Protocol Buffer encoded binary blob of typeTxData
. TheTxData
containsData
which contains a list of Protocol Buffer encoded message data and the corresponding message type. - (client) #5783 Unify all coins representations on JSON client requests for governance proposals.
- (crypto) #7419 The SDK doesn't use Tendermint's
crypto.PubKey
interface anymore, and uses instead it's ownPubKey
interface, defined incrypto/types
. Replace all instances ofcrypto.PubKey
bycryptotypes.Pubkey
. - (store/rootmulti) #6390 Proofs of empty stores are no longer supported.
- (store/types) #5730 store.types.Cp() is removed in favour of types.CopyBytes().
- (x/auth) #6054 Remove custom JSON marshaling for base accounts as multsigs cannot be bech32 decoded.
- (x/auth/vesting) #6859 Custom JSON marshaling of vesting accounts was removed. Vesting accounts are now marshaled using their default proto or amino JSON representation.
- (x/bank) #5785 In x/bank errors, JSON strings coerced to valid UTF-8 bytes at JSON marshalling time are now replaced by human-readable expressions. This change can potentially break compatibility with all those client side tools that parse log messages.
- (x/evidence) #7538 The ABCI's
Result.Data
field forMsgSubmitEvidence
responses does not contain the raw evidence's hash, but the protobuf encodedMsgSubmitEvidenceResponse
struct. - (x/gov) #7533 The ABCI's
Result.Data
field forMsgSubmitProposal
responses does not contain a raw binary encoding of theproposalID
, but the protobuf encodedMsgSubmitSubmitProposalResponse
struct. - (x/gov) #6859
ProposalStatus
andVoteOption
are now JSON serialized using its protobuf name, so expect names likePROPOSAL_STATUS_DEPOSIT_PERIOD
as opposed toDepositPeriod
. - (x/staking) #7499
BondStatus
is now a protobufenum
instead of anint32
, and JSON serialized using its protobuf name, so expect names likeBOND_STATUS_UNBONDING
as opposed toUnbonding
. - (x/staking) #7556 The ABCI's
Result.Data
field forMsgBeginRedelegate
andMsgUndelegate
responses does not contain custom binary marshaledcompletionTime
, but the protobuf encodedMsgBeginRedelegateResponse
andMsgUndelegateResponse
structs respectively
- (baseapp) #6384 The
- Baseapp / Client
- (AppModule) #7518 #7584 Rename
AppModule.RegisterQueryServices
toAppModule.RegisterServices
, as this method now registers multiple services (the gRPC query service and the protobuf Msg service). AConfigurator
struct is used to hold the different services. - (baseapp) #5865 The
SimulationResponse
returned from tx simulation is now JSON encoded instead of Amino binary. - (client) #6290
CLIContext
is renamed toContext
.Context
and all related methods have been moved from package context to client. - (client) #6525 Removed support for
indent
in JSON responses. Clients should consider piping to an external tool such asjq
. - (client) #8107 Renamed
PrintOutput
andPrintOutputLegacy
methods of thecontext.Client
object toPrintProto
andPrintObjectLegacy
. - (client/flags) #6632 Remove NewCompletionCmd(), the function is now available in tendermint.
- (client/input) #5904 Removal of unnecessary
GetCheckPassword
,PrintPrefixed
functions. - (client/keys) #5889 Rename
NewKeyBaseFromDir()
->NewLegacyKeyBaseFromDir()
. - (client/keys) #5820 Removed method CloseDB from Keybase interface.
- (client/rpc) #6290
client
package and subdirs reorganization. - (client/lcd) #6290
CliCtx
of structRestServer
in package client/lcd has been renamed toClientCtx
. - (codec) #6330
codec.RegisterCrypto
has been moved to thecrypto/codec
package and the globalcodec.Cdc
Amino instance has been deprecated and moved to thecodec/legacy_global
package. - (codec) #8080 Updated the
codec.Marshaler
interface- Moved
MarshalAny
andUnmarshalAny
helper functions tocodec.Marshaler
and renamed toMarshalInterface
andUnmarshalInterface
respectively. These functions must take interface as a parameter (not a concrete type norAny
object). Underneath they useAny
wrapping for correct protobuf serialization.
- Moved
- (crypto) #6780 Move ledger code to its own package.
- (crypto/types/multisig) #6373
multisig.Multisignature
has been renamed toAminoMultisignature
- (codec)
*codec.LegacyAmino
is now a wrapper around Amino which provides backwards compatibility with protobufAny
. ALL legacy code should use*codec.LegacyAmino
instead of*amino.Codec
directly - (crypto) #5880 Merge
crypto/keys/mintkey
intocrypto
. - (crypto/hd) #5904
crypto/keys/hd
moved tocrypto/hd
. - (crypto/keyring):
_ #5866 Rename
crypto/keys/
tocrypto/keyring/
. _ #5904Keybase
->Keyring
interfaces migration.LegacyKeybase
interface is added in order to guarantee limited backward compatibility with the old Keybase interface for the sole purpose of migrating keys across the new keyring backends.NewLegacy
constructor is provided #5889 to allow for smooth migration of keys from the legacy LevelDB based implementation to new keyring backends. Plus, the package and the new keyring no longer depends on the sdk.Config singleton. Please consult the package documentation for more information on how to implement the newKeyring
interface. * #5858 Make Keyring store keys by name and address's hexbytes representation. - (export) #5952
AppExporter
now returns ABCI consensus parameters to be included in marshaled exported state. These parameters must be returned from the application via theBaseApp
. - (simapp) Deprecating and renaming
MakeEncodingConfig
toMakeTestEncodingConfig
(both insimapp
andsimapp/params
packages). - (store) #5803 The
store.CommitMultiStore
interface now includes the newsnapshots.Snapshotter
interface as well. - (types) #5579 The
keepRecent
field has been removed from thePruningOptions
type. ThePruningOptions
type now only includes fieldsKeepEvery
andSnapshotEvery
, whereKeepEvery
determines which committed heights are flushed to disk andSnapshotEvery
determines which of these heights are kept after pruning. TheIsValid
method should be called whenever using these options. MethodsSnapshotVersion
andFlushVersion
accept a version argument and determine if the version should be flushed to disk or kept as a snapshot. Note,KeepRecent
is automatically inferred from the options and provided directly the IAVL store. - (types) #5533 Refactored
AppModuleBasic
andAppModuleGenesis
to now accept acodec.JSONMarshaler
for modular serialization of genesis state. - (types/rest) #5779 Drop unused Parse{Int64OrReturnBadRequest,QueryParamBool}() functions.
- (AppModule) #7518 #7584 Rename
- Modules
- (modules) #7243 Rename
RegisterCodec
toRegisterLegacyAminoCodec
andcodec.New()
is now renamed tocodec.NewLegacyAmino()
- (modules) #6564 Constant
DefaultParamspace
is removed from all modules, use ModuleName instead. - (modules) #5989
AppModuleBasic.GetTxCmd
now takes a singleCLIContext
parameter. - (modules) #5664 Remove amino
Codec
from simulationStoreDecoder
, which now returns a function closure in order to unmarshal the key-value pairs. - (modules) #5555 Move
x/auth/client/utils/
types and functions tox/auth/client/
. - (modules) #5572 Move account balance logic and APIs from
x/auth
tox/bank
. - (modules) #6326
AppModuleBasic.GetQueryCmd
now takes a singleclient.Context
parameter. - (modules) #6336
AppModuleBasic.RegisterQueryService
method was added to support gRPC queries, andQuerierRoute
andNewQuerierHandler
were deprecated. - (modules) #6311 Remove
alias.go
usage - (modules) #6447 Rename
blacklistedAddrs
toblockedAddrs
. - (modules) #6834 Add
RegisterInterfaces
method toAppModuleBasic
to support registration of protobuf interface types. - (modules) #6734 Add
TxEncodingConfig
parameter toAppModuleBasic.ValidateGenesis
command to support JSON tx decoding ingenutil
. - (modules) #7764 Added module initialization options:
server/types.AppExporter
requires extra argument:AppOptions
.server.AddCommands
requires extra argument:addStartFlags types.ModuleInitFlags
x/crisis.NewAppModule
has a new attribute:skipGenesisInvariants
. PR
- (types) #6327
sdk.Msg
now inheritsproto.Message
, as a result allsdk.Msg
types now use pointer semantics. - (types) #7032 All types ending with
ID
(e.g.ProposalID
) now end withId
(e.g.ProposalId
), to match default Protobuf generated format. Also see #7033 for more details. - (x/auth) #6029 Module accounts have been moved from
x/supply
tox/auth
. - (x/auth) #6443 Move
FeeTx
andTxWithMemo
interfaces fromx/auth/ante
totypes
. - (x/auth) #7006 All
AccountRetriever
methods now takeclient.Context
as a parameter instead of as a struct member. - (x/auth) #6270 The passphrase argument has been removed from the signature of the following functions and methods:
BuildAndSign
,MakeSignature
,SignStdTx
,TxBuilder.BuildAndSign
,TxBuilder.Sign
,TxBuilder.SignStdTx
- (x/auth) #6428:
NewAnteHandler
andNewSigVerificationDecorator
both now take aSignModeHandler
parameter.SignatureVerificationGasConsumer
now has the signature:func(meter sdk.GasMeter, sig signing.SignatureV2, params types.Params) error
.- The
SigVerifiableTx
interface now has aGetSignaturesV2() ([]signing.SignatureV2, error)
method and no longer has theGetSignBytes
method.
- (x/auth/tx) #8106 change related to missing append functionality in
client transaction signing
- added
overwriteSig
argument tox/auth/client.SignTx
andclient/tx.Sign
functions. - removed
x/auth/tx.go:wrapper.GetSignatures
. Thewrapper
providesTxBuilder
functionality, and it's a private structure. That function was not used at all and it's not exposed through theTxBuilder
interface.
- added
- (x/bank) #7327 AddCoins and SubtractCoins no longer return a resultingValue and will only return an error.
- (x/capability) #7918 Add x/capability safety checks:
- All outward facing APIs will now check that capability is not nil and name is not empty before performing any state-machine changes
SetIndex
has been renamed toInitializeIndex
- (x/evidence) #7251 New evidence types and light client evidence handling. The module function names changed.
- (x/evidence) #5952 Remove APIs for getting and setting
x/evidence
parameters.BaseApp
now uses aParamStore
to manage Tendermint consensus parameters which is managed via thex/params
Substore
type. - (x/gov) #6147 The
Content
field onProposal
andMsgSubmitProposal
is nowAny
in concordance with ADR 019 andGetContent
should now be used to retrieve the actual proposalContent
. Also theNewMsgSubmitProposal
constructor now may return anerror
- (x/ibc) #6374
VerifyMembership
andVerifyNonMembership
now take aspecs []string
argument to specify the proof format used for verification. Most SDK chains can simply usecommitmenttypes.GetSDKSpecs()
for this argument. - (x/params) #5619 The
x/params
keeper now accepts acodec.Marshaller
instead of a reference to an amino codec. Amino is still used for JSON serialization. - (x/staking) #6451
DefaultParamspace
andParamKeyTable
in staking module are moved from keeper to types to enforce consistency. - (x/staking) #7419 The
TmConsPubKey
method on ValidatorI has been removed and replaced instead byConsPubKey
(which returns a SDKcryptotypes.PubKey
) andTmConsPublicKey
(which returns a Tendermint proto PublicKey). - (x/staking/types) #7447 Remove bech32 PubKey support:
ValidatorI
interface update.GetConsPubKey
renamed toTmConsPubKey
(consensus public key must be a tendermint key).TmConsPubKey
,GetConsAddr
methods return error.Validator
update. Methods changed inValidatorI
(as described above) andToTmValidator
return error.Validator.ConsensusPubkey
type changed fromstring
tocodectypes.Any
.MsgCreateValidator.Pubkey
type changed fromstring
tocodectypes.Any
.
- (x/supply) #6010 All
x/supply
types and APIs have been moved tox/bank
. - #6409 Rename all IsEmpty methods to Empty across the codebase and enforce consistency.
- #6231 Simplify
AppModule
interface,Route
andNewHandler
methods become onlyRoute
and returns a newRoute
type. - (x/slashing) #6212 Remove
Get*
prefixes from key construction functions - (server) #6079 Remove
UpgradeOldPrivValFile
(deprecated in Tendermint Core v0.28). - #5719 Bump Go requirement to 1.14+
- (modules) #7243 Rename
-
General
-
Modules
- (modules) #5572 Separate balance from accounts per ADR 004.
_ Account balances are now persisted and retrieved via the
x/bank
module. _ Vesting account interface has been modified to account for changes. _ Callers toNewBaseVestingAccount
are responsible for verifying account balance in relation to the original vesting amount. _ TheSendKeeper
andViewKeeper
interfaces inx/bank
have been modified to account for changes. - (x/auth) #5533 Migrate the
x/auth
module to use Protocol Buffers for state serialization instead of Amino. _ TheBaseAccount.PubKey
field is now represented as a Bech32 string instead of acrypto.Pubkey
. _NewBaseAccountWithAddress
now returns a reference to aBaseAccount
. _ Thex/auth
module now accepts aCodec
interface which extends thecodec.Marshaler
interface by requiring a concrete codec to know how to serialize accounts. _ TheAccountRetriever
type now accepts aCodec
in its constructor in order to know how to serialize accounts. - (x/bank) #6518 Support for global and per-denomination send enabled flags.
- Existing send_enabled global flag has been moved into a Params structure as
default_send_enabled
. - An array of:
{denom: string, enabled: bool}
is added to bank Params to support per-denomination override of global default value.
- Existing send_enabled global flag has been moved into a Params structure as
- (x/distribution) #5610 Migrate the
x/distribution
module to use Protocol Buffers for state serialization instead of Amino. The exact codec used iscodec.HybridCodec
which utilizes Protobuf for binary encoding and Amino for JSON encoding. _ValidatorHistoricalRewards.ReferenceCount
is now of typesuint32
instead ofuint16
. _ValidatorSlashEvents
is now a struct withslashevents
. _ValidatorOutstandingRewards
is now a struct withrewards
. _ValidatorAccumulatedCommission
is now a struct withcommission
. * TheKeeper
constructor now takes acodec.Marshaler
instead of a concrete Amino codec. This exact type provided is specified byModuleCdc
. - (x/evidence) #5634 Migrate the
x/evidence
module to use Protocol Buffers for state serialization instead of Amino. _ Theinternal
sub-package has been removed in order to expose the types proto file. _ The module now accepts aCodec
interface which extends thecodec.Marshaler
interface by requiring a concrete codec to know how to serializeEvidence
types. * TheMsgSubmitEvidence
message has been removed in favor ofMsgSubmitEvidenceBase
. The application-level codec must now define the concreteMsgSubmitEvidence
type which must implement the module'sMsgSubmitEvidence
interface. - (x/evidence) #5952 Remove parameters from
x/evidence
genesis and module state. Thex/evidence
module now solely uses Tendermint consensus parameters to determine of evidence is valid or not. - (x/gov) #5737 Migrate the
x/gov
module to use Protocol Buffers for state serialization instead of Amino. _MsgSubmitProposal
will be removed in favor of the application-level proto-definedMsgSubmitProposal
which implements theMsgSubmitProposalI
interface. Applications should extend theNewMsgSubmitProposalBase
type to define their own concreteMsgSubmitProposal
types. _ The module now accepts aCodec
interface which extends thecodec.Marshaler
interface by requiring a concrete codec to know how to serializeProposal
types. - (x/mint) #5634 Migrate the
x/mint
module to use Protocol Buffers for state serialization instead of Amino. * Theinternal
sub-package has been removed in order to expose the types proto file. - (x/slashing) #5627 Migrate the
x/slashing
module to use Protocol Buffers for state serialization instead of Amino. The exact codec used iscodec.HybridCodec
which utilizes Protobuf for binary encoding and Amino for JSON encoding. * TheKeeper
constructor now takes acodec.Marshaler
instead of a concrete Amino codec. This exact type provided is specified byModuleCdc
. - (x/staking) #6844 Validators are now inserted into the unbonding queue based on their unbonding time and height. The relevant keeper APIs are modified to reflect these changes by now also requiring a height.
- (x/staking) #6061 Allow a validator to immediately unjail when no signing info is present due to falling below their minimum self-delegation and never having been bonded. The validator may immediately unjail once they've met their minimum self-delegation.
- (x/staking) #5600 Migrate the
x/staking
module to use Protocol Buffers for state serialization instead of Amino. The exact codec used iscodec.HybridCodec
which utilizes Protobuf for binary encoding and Amino for JSON encoding. _BondStatus
is now of typeint32
instead ofbyte
. _ Types ofint16
in theParams
type are now of typeint32
. _ Every reference ofcrypto.Pubkey
in context of aValidator
is now of type string.GetPubKeyFromBech32
must be used to get thecrypto.Pubkey
. _ TheKeeper
constructor now takes acodec.Marshaler
instead of a concrete Amino codec. This exact type provided is specified byModuleCdc
. - (x/staking) #7979 keeper pubkey storage serialization migration from bech32 to protobuf.
- (x/supply) #6010 Removed the
x/supply
module by merging the existing types and APIs into thex/bank
module. - (x/supply) #5533 Migrate the
x/supply
module to use Protocol Buffers for state serialization instead of Amino. _ Theinternal
sub-package has been removed in order to expose the types proto file. _ Thex/supply
module now accepts aCodec
interface which extends thecodec.Marshaler
interface by requiring a concrete codec to know how to serializeSupplyI
types. * TheSupplyI
interface has been modified to no longer returnSupplyI
on methods. Instead the concrete type's receiver should modify the type. - (x/upgrade) #5659 Migrate the
x/upgrade
module to use Protocol Buffers for state serialization instead of Amino. _ Theinternal
sub-package has been removed in order to expose the types proto file. _ Thex/upgrade
module now accepts acodec.Marshaler
interface.
- (modules) #5572 Separate balance from accounts per ADR 004.
_ Account balances are now persisted and retrieved via the
- Baseapp / Client / REST
- (x/auth) #6213 Introduce new protobuf based path for transaction signing, see ADR020 for more details
- (x/auth) #6350 New sign-batch command to sign StdTx batch files.
- (baseapp) #5803 Added support for taking state snapshots at regular height intervals, via options
snapshot-interval
andsnapshot-keep-recent
. - (baseapp) #7519 Add
ServiceMsgRouter
to BaseApp to handle routing of protobuf serviceMsg
s. The two new types defined in ADR 031,sdk.ServiceMsg
andsdk.MsgRequest
are introduced with this router. - (client) #5921 Introduce new gRPC and gRPC Gateway based APIs for querying app & module data. See ADR021 for more details
- (cli) #7485 Introduce a new optional
--keyring-dir
flag that allows clients to specify a Keyring directory if it does not reside in the directory specified by--home
. - (cli) #7221 Add the option of emitting amino encoded json from the CLI
- (codec) #7519
InterfaceRegistry
now inheritsjsonpb.AnyResolver
, and has aRegisterCustomTypeURL
method to support ADR 031 packing ofAny
s.AnyResolver
is now a required parameter toRejectUnknownFields
. - (coin) #6755 Add custom regex validation for
Coin
denom by overwritingCoinDenomRegex
when using/types/coin.go
. - (config) #7265 Support Tendermint block pruning through a new
min-retain-blocks
configuration that can be set in eitherapp.toml
or via the CLI. This parameter is used in conjunction with other criteria to determine the height at which Tendermint should prune blocks. - (events) #7121 The application now derives what events are indexed by Tendermint via the
index-events
configuration inapp.toml
, which is a list of events taking the form{eventType}.{attributeKey}
. - (tx) #6089 Transactions can now have a
TimeoutHeight
set which allows the transaction to be rejected if it's committed at a height greater than the timeout. - (rest) #6167 Support
max-body-bytes
CLI flag for the REST service. - (genesis) #7089 The
export
command now adds ainitial_height
field in the exported JSON. Baseapp'sCommitMultiStore
now also has aSetInitialVersion
setter, so it can set the initial store version insideInitChain
and start a new chain from a given height.
- General
- (crypto/multisig) #6241 Add Multisig type directly to the repo. Previously this was in tendermint.
- (codec/types) #8106 Adding
NewAnyWithCustomTypeURL
to correctly marshal Messages in TxBuilder. - (tests) #6489 Introduce package
testutil
, new in-process testing network framework for use in integration and unit tests. - (tx) Add new auth/tx gRPC & gRPC-Gateway endpoints for basic querying & broadcasting support
- (tx) #7688 Add a new Tx gRPC service with methods
Simulate
andGetTx
(by hash). - (store) #5803 Added
rootmulti.Store
methods for taking and restoring snapshots, based oniavl.Store
export/import. - (store) #6324 IAVL store query proofs now return CommitmentOp which wraps an ics23 CommitmentProof
- (store) #6390
RootMulti
store query proofs now returnCommitmentOp
which wrapsCommitmentProofs
store.Query
now only returns chainedics23.CommitmentProof
wrapped inmerkle.Proof
ProofRuntime
only decodes and verifiesics23.CommitmentProof
- Modules
- (modules) #5921 Introduction of Query gRPC service definitions along with REST annotations for gRPC Gateway for each module
- (modules) #7540 Protobuf service definitions can now be used for
packing
Msg
s in transactions as defined in ADR 031. All modules now define aMsg
protobuf service. - (x/auth/vesting) #7209 Create new
MsgCreateVestingAccount
message type along with CLI handler that allows for the creation of delayed and continuous vesting types. - (x/capability) #5828 Capability module integration as outlined in ADR 3 - Dynamic Capability Store.
- (x/crisis)
x/crisis
has a new function:AddModuleInitFlags
, which will register optional crisis module flags for the start command. - (x/ibc) #5277
x/ibc
changes from IBC alpha. See ICS specs below:- ICS 002 - Client Semantics subpackage
- ICS 003 - Connection Semantics subpackage
- ICS 004 - Channel and Packet Semantics subpackage
- ICS 005 - Port Allocation subpackage
- ICS 006 - Solo Machine Client subpackage
- ICS 007 - Tendermint Client subpackage
- ICS 009 - Loopback Client subpackage
- ICS 020 - Fungible Token Transfer subpackage
- ICS 023 - Vector Commitments subpackage
- ICS 024 - Host State Machine Requirements subpackage
- (x/ibc) #6374 ICS-23 Verify functions will now accept and verify ics23 CommitmentProofs exclusively
- (x/params) #6005 Add new CLI command for querying raw x/params parameters by subspace and key.
- Baseapp / Client / REST
- (client) #5964
--trust-node
is now false by default - for real. Users must ensure it is set to true if they don't want to enable the verifier. - (client) #6402 Fix
keys add
--algo
flag which only worked for Tendermint'ssecp256k1
default key signing algorithm. - (client) #7699 Fix panic in context when setting invalid nodeURI.
WithNodeURI
does not set theClient
in the context. - (export) #6510 Field TimeIotaMs now is included in genesis file while exporting.
- (rest) #5906 Fix an issue that make some REST calls panic when sending invalid or incomplete requests.
- (crypto) #7966
Bip44Params
String()
function now correctly returns the absolute HD path by adding them/
prefix. - (crypto/keyring) #5844
Keyring.Sign()
methods no longer decode amino signatures when method receivers are offline/multisig keys. - (store) #7415 Allow new stores to be registered during on-chain upgrades.
- (client) #5964
- Modules
_ (modules) #5569
InitGenesis
, for the relevant modules, now ensures module accounts exist. _ (x/auth) #5892 AddRegisterKeyTypeCodec
to register new types (eg. keys) to theauth
module internal amino codec. _ (x/bank) #6536 Fix bug inWriteGeneratedTxResponse
function used by multiple REST endpoints. Now it writes a Tx in StdTx format. _ (x/genutil) #5938 FixInitializeNodeValidatorFiles
error handling. _ (x/gentx) #8183 change gentx cmd amount to arg from flag _ (x/gov) #7641 Fix tally calculation precision error. _ (x/staking) #6529 Export validator addresses (previously was empty). _ (x/staking) #5949 Skip stakingHistoricalInfoKey
in simulations as headers are not exported. * (x/staking) #6061 Allow a validator to immediately unjail when no signing info is present due to falling below their minimum self-delegation and never having been bonded. The validator may immediately unjail once they've met their minimum self-delegation. - General
- Baseapp / Client / REST
- (baseapp) #6186 Support emitting events during
AnteHandler
execution. - (baseapp) #6053 Customizable panic recovery handling added for
app.runTx()
method (as proposed in the ADR 22). Adds ability for developers to register custom panic handlers extending standard ones. - (client) #5810 Added a new
--offline
flag that allows commands to be executed without an internet connection. Previously,--generate-only
served this purpose in addition to only allowing txs to be generated. Now,--generate-only
solely allows txs to be generated without being broadcasted and disallows Keybase use and--offline
allows the use of Keybase but does not allow any functionality that requires an online connection. - (cli) #7764 Update x/banking and x/crisis InitChain to improve node startup time
- (client) #5856 Added the possibility to set
--offline
flag with config command. - (client) #5895 show config options in the config command's help screen.
- (client/keys) #8043 Add support for export of unarmored private key
- (client/tx) #7801 Update sign-batch multisig to work online
- (x/genutil) #8099
init
now supports a--recover
flag to recover the private validator key from a given mnemonic
- (baseapp) #6186 Support emitting events during
- Modules
- (x/auth) #5702 Add parameter querying support for
x/auth
. - (x/auth/ante) #6040
AccountKeeper
interface used forNewAnteHandler
and handler's decorators to add support of using customAccountKeeper
implementations. - (x/evidence) #5952 Tendermint Consensus parameters can now be changed via parameter change proposals through
x/gov
. - (x/evidence) #5961 Add
StoreDecoder
simulation for evidence module. - (x/ibc) #5948 Add
InitGenesis
andExportGenesis
functions foribc
module. - (x/ibc-transfer) #6871 Implement ADR 001 - Coin Source Tracing.
- (x/staking) #6059 Updated
HistoricalEntries
parameter default to 100. - (x/staking) #5584 Add util function
ToTmValidator
that converts astaking.Validator
type to*tmtypes.Validator
. - (x/staking) #6163 CLI and REST call to unbonding delegations and delegations now accept pagination.
- (x/staking) #8178 Update default historical header number for stargate
- (x/auth) #5702 Add parameter querying support for
- General
- (crypto) #7987 Fix the inconsistency of CryptoCdc, only use
codec/legacy.Cdc
. - (logging) #8072 Refactor logging:
_ Use zerolog over Tendermint's go-kit logging wrapper.
_ Introduce Tendermint's
--log_format=plain|json
flag. Using formatjson
allows for emitting structured JSON logs which can be consumed by an external logging facility (e.g. Loggly). Both formats log to STDERR. * The existing--log_level
flag and it's default value now solely relates to the global logging level (e.g.info
,debug
, etc...) instead of<module>:<level>
. - (rest) #7649 Return an unsigned tx in legacy GET /tx endpoint when signature conversion fails
- (simulation) #6002 Add randomized consensus params into simulation.
- (store) #6481 Move
SimpleProofsFromMap
from Tendermint into the SDK. - (store) #6719 Add validity checks to stores for nil and empty keys.
- (SDK) Updated dependencies
- Updated iavl dependency to v0.15.3
- Update tendermint to v0.34.1
- (types) #7027
Coin(s)
andDecCoin(s)
updates:- Bump denomination max length to 128
- Allow uppercase letters and numbers in denominations to support ADR 001
- Added
Validate
function that returns a descriptive error
- (types) #5581 Add convenience functions {,Must}Bech32ifyAddressBytes.
- (types/module) #5724 The
types/module
package does no longer depend onx/simulation
. - (types) #5585 IBC additions:
Coin
denomination max length has been increased to 32.- Added
CapabilityKey
alias forStoreKey
to match IBC spec.
- (types/rest) #5900 Add Check*Error function family to spare developers from replicating tons of boilerplate code.
- (types) #6128 Add
String()
method toGasMeter
. - (types) #6195 Add codespace to broadcast(sync/async) response.
- (types) #6897 Add KV type from tendermint to
types
directory. - (version) #7848 #7941
version --long
output now shows the list of build dependencies and replaced build dependencies.
- (crypto) #7987 Fix the inconsistency of CryptoCdc, only use
CHANGELOG of previous versions (pre Stargate).