cosmos-sdk v0.46.0 Release Notes

Release Date: 2022-07-26 // almost 2 years ago
  • 🔋 Features

    • (types) #11985 Add a Priority field on sdk.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. See max-recv-msg-size and max-send-msg-size respectively.
    • (cli) #11738 Add tx auth multi-sign as alias of tx auth multisign for consistency with multi-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 ABCI Query requests directly to the application.
    • ⚡️ (x/upgrade) #11551 Update ScheduleUpgrade for chains to schedule an automated upgrade on BeginBlock without having to go though governance.
    • (tx) #11533 Register EIP191 as an available SignMode 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, for types.Coin. This method is used to check if a types.Coin is less than or equal to another types.Coin.
    • ⬆️ (x/upgrade) #11116 MsgSoftwareUpgrade and MsgCancelUpgrade have been added to support v1beta2 msgs-based gov proposals.
    • 📇 #11308 Added a mandatory metadata field to Vote in x/gov v1beta2.
    • 🚦 #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 Dec d1, 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, in x/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} and tip fields to StdSignDoc for signing tipped transactions.
    • #10208 Add TipsTxMiddleware for transferring tips.
    • ⬆️ #10379 Add validation to x/upgrade CLI software-upgrade command --plan-info value.
    • #10507 Add middleware 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 new tx aux-to-fee subcommand to let the fee payer gather aux signer data and broadcast the tx
    • #10430 ADR-040: Add store/v2 MultiStore implementation
    • #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's BeginBlock 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
    • #10015 ADR-040: ICS-23 proofs for SMT store
    • #11240 Replace various modules ModuleCdc with the global legacy.Cdc
    • #11179 Add state rollback command.
    • 🔀 #10794 ADR-040: Add State Sync to V2 Store
    • #11234 Add GRPCClient field to Client Context. If GRPCClient field is set to nil, the Invoke method would use ABCI query, otherwise use gprc.
    • #10962 ADR-040: Add state migration from iavl (v1Store) to smt (v2Store)
    • (types) #10948 Add app-db-backend to the app.toml config to replace the compile-time types.DBbackend variable.
    • 👍 (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 the query package to improve UX.

    API Breaking Changes

    • 🚚 (x/auth/ante) #11985 The MempoolFeeDecorator has been removed. Instead, the DeductFeeDecorator takes a new argument of type TxFeeChecker, to define custom fee models. If nil is passed to this TxFeeChecker argument, then it will default to checkTxFeeWithValidatorMinGasPrices, which is the exact same behavior as the old MempoolFeeDecorator (i.e. checking fees against validator's own min gas price).
    • 0️⃣ (x/auth/ante) #11985 The ExtensionOptionsDecorator takes an argument of type ExtensionOptionChecker. For backwards-compatibility, you can pass nil, 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 to AccAddressFromHexUnsafe.
    • 📦 (types) #11788 The Int and Uint types have been moved to their own dedicated module, math. Aliases are kept in the SDK's root types package, however, it is encouraged to utilize the new math module. As a result, the Int#ToDec API has been removed.
    • 📦 (grpc) #11642 The RegisterTendermintService method in the tmservice package now requires a abciQueryFn query function parameter.
    • 🔨 #11496 Refactor abstractions for snapshot and pruning; snapshot intervals eventually pruned; unit tests.
    • (types) #11689 Make Coins#Sub and Coins#SafeSub consistent with Coins#Add.
    • 🚚 (store)#11152 Remove keep-every from pruning options.
    • #10950 Add envPrefix parameter to cmd.Execute.
    • (x/mint) #10441 The NewAppModule function now accepts an inflation calculation function as an argument.
    • 🚚 #10295 Remove store type aliases from /types
    • #9695 Migrate keys from Info (serialized as amino) -> Record (serialized as proto)
      • Add new codec.Codec argument in:
        • keyring.NewInMemory
        • keyring.New
      • Rename:
        • SavePubKey to SaveOfflineKey.
        • NewMultiInfo, NewLedgerInfo to NewLegacyMultiInfo, newLegacyLedgerInfo respectively. Move them into legacy_info.go.
        • NewOfflineInfo to newLegacyOfflineInfo and move it to migration_test.go.
      • Return: *keyring.Record, error in SaveOfflineKey, SaveLedgerKey, SaveMultiSig, Key and KeyByAddress. *keyring.Record instead of Info in NewMnemonic and List.
      • Remove algo argument from :
        • SaveOfflineKey
      • Take keyring.Record instead of Info as first argument in:
        • MkConsKeyOutput
        • MkValKeyOutput
        • MkAccKeyOutput
    • #10022 AuthKeeper interface in x/auth now includes a function HasAccount.
    • #9759 NewAccountKeeeper in x/auth now takes an additional bech32Prefix argument that represents sdk.Bech32MainPrefix.
    • #9628 Rename x/{mod}/legacy to x/{mod}/migrations.
    • #9571 Implemented error handling for staking hooks, which now return an error on failure.
    • 🚚 #9427 Move simapp FundAccount and FundModuleAccount to x/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 and Keyring.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 to DeleteAndBurnDeposits, RefundDeposits renamed to RefundAndDeleteDeposits
    • 🚚 (codec) #9521 Removed deprecated clientCtx.JSONCodec from client.Context.
    • (codec) #9521 Rename EncodingConfig.Marshaler to Codec.
    • 🚚 #9594 RESTHandlerFn argument is removed from the gov/NewProposalHandler.
    • 📦 #9594 types/rest package moved to testutil/rest.
    • 🚚 #9432 ConsensusParamsKeyTable moved from params/keeper to params/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 to AddressAndDenomFromBalancesStore.
    • ✅ (tests) #9938 simapp.Setup accepts additional testing.T argument.
    • (baseapp) #11979 Rename baseapp simulation helper methods baseapp.{Check,Deliver} to baseapp.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 new GetTip() *tx.Tip method for verifying tipped transactions. The x/auth/types expected BankKeeper interface now expects the SendCoins method too.
    • 🚚 #10612 baseapp.NewBaseApp constructor function doesn't take the sdk.TxDecoder anymore. This logic has been moved into the TxDecoderMiddleware.
    • #10692 SignerData takes 2 new fields, Address and PubKey, which need to get populated when using SIGN_MODE_DIRECT_AUX.
    • 🚚 #10748 Move legacy x/gov api to v1beta1 directory.
    • #10816 Reuse blocked addresses from the bank module. No need to pass them to distribution.
    • 🚚 #10852 Move x/gov/types to x/gov/types/v1beta2.
    • 📦 #10922, /#10957 Move key server.Generate* functions to testutil and support custom mnemonics in in-process testing network. Moved TestMnemonic from testutil package to testdata.
    • (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 bank MintCoins 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 for types/errors.Register and should only be used in initialization code.
    • (authz)#11060 authz.NewMsgGrant expiration is now a pointer. When nil is used then no expiration will be set (grant won't expire).
    • (x/distribution)#11457 Add amount field to distr.MsgWithdrawDelegatorRewardResponse and distr.MsgWithdrawValidatorCommissionResponse.
    • 🚚 #11334 Move x/gov/types/v1beta2 to x/gov/types/v1.
    • 🔨 (x/auth/middleware) #11413 Refactor tx middleware to be extensible on tx fee logic. Merged MempoolFeeMiddleware and TxPriorityMiddleware functionalities into DeductFeeMiddleware, make the logic extensible using the TxFeeChecker option, the current fee logic is preserved by the default checkTxFeeWithValidatorMinGasPrices implementation. Change RejectExtensionOptionsMiddleware to NewExtensionOptionsMiddleware which is extensible with the ExtensionOptionChecker option. Unpack the tx extension options Anys to interface TxExtensionOptionI.
    • 🚚 (migrations) #11556 Remove migration code from 0.42 and below. To use previous migrations, checkout previous versions of the cosmos-sdk.

    Client Breaking Changes

    • 🚚 #11797 Remove all RegisterRESTRoutes (previously deprecated)
    • 📄 #11089 interacting with the node through grpc.Dial requires clients to pass a codec refer to [doc](docs/run-node/interact-node.md).
    • 👀 #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 use tx gov submit-legacy-proposal.
    • 🛠 #11170 Fixes issue related to grpc-gateway of supply by ibc-denom.

    CLI Breaking Changes

    • (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 the testnet command and added the subcommand init-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).

    👌 Improvements

    • (types) #12201 Add MustAccAddressFromBech32 util function
    • #11696 Rename helpers.GenTx to GenSignedMockTx to avoid confusion with genutil's GenTxCmd.
    • (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 registering sdk.Msgs with amino instead of cdc.RegisterConcrete.
    • ⬆️ #11089 Now cosmos-sdk consumers can upgrade gRPC to its newest versions.
    • #10439 Check error for RegisterQueryHandlerClient in all modules RegisterGRPCGatewayRoutes.
    • 🚚 #9780 Remove gogoproto moretags YAML annotations and add sigs.k8s.io/yaml for YAML marshalling.
    • 📇 (x/bank) #10134 Add HasDenomMetadata function to bank Keeper 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
    • 0️⃣ (cli) #9856 Overwrite --sequence and --account-number flags with default flag values when used with offline=false in sign-batch command.
    • 📚 (rosetta) #10001 Add documentation for rosetta-cli dockerfile and rename folder for the rosetta-ci dockerfile
    • 0️⃣ #9699 Add :, ., -, and _ as allowed characters in the default denom regular expression.
    • (genesis) #9697 Ensure InitGenesis returns with non-empty validator set.
    • 📦 #10341 Move from io/ioutil to io and os packages.
    • #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 standalone errors go module, except the RootCodespace errors and ABCI response helpers. All functions and types that used to live in types/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 uses WeightedVoteOption.
    • 🐎 (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() and Max() 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 via MsgExec through x/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.
    • #12649 Bump tendermint to v0.34.20.
    • ⬆️ #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 memory keystore instances with a specified set of existing items.
    • #11390 LatestBlockResponse & BlockByHeightResponse types' Block filed has been deprecated and they now contains new field sdk_block with proposer_address as string
    • 🚀 (deps) Downgrade to Tendermint v0.34.20-rc0.
    • 0️⃣ #12089 Mark the TipDecorator as beta, don't include it in simapp by default.
    • #12153 Add a new NewSimulationManagerFromAppModules constructor, to simplify simulation wiring.

    🐛 Bug Fixes

    • ⬆️ #11969 Fix the panic error in x/upgrade when AppVersion 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) instead Genesis(ctx) to get genesis block height
    • 📚 #10180 Documentation: make references to Cosmos SDK consistent
    • #9651 Change inconsistent limit of 0 to MaxUint64 on InfiniteGasMeter and add GasRemaining func to GasMeter.
    • #9639 Check store keys length before accessing them by making sure that key is of length m+1 (for key[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
    • 🛠 #9854 Fixed the make proto-gen to get dynamic container name based on project name for the cosmos based sdks.
    • #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.
    • 📇 #10239 Fixed x/bank/044 migrateDenomMetadata.
    • ⬆️ (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.
    • ⚡️ #10593 Update swagger-ui to v4.1.0 to fix xss vulnerability.
    • #10842 Fix error when --generate-only, --max-msgs fags set while executing WithdrawAllRewards 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 in GetConfig method.
    • 🚚 (crypto) [#11027] Remove dependency on Tendermint core for xsalsa20symmetric.
    • (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-adress 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 of int64 for SimulationState.InitialStake.
    • 🛠 (x/capability) #11737 Use a fixed length encoding of Capability pointer for FwdCapabilityKey
    • #11983 (x/feegrant, x/authz) rename grants query commands to grants-by-grantee, grants-by-granter cmds.
    • (protos) #12701 Fix tendermint and ics23 versions used in Makefile. Run "make proto-gen".
    • ✅ (testutil/sims) #12374 fix the non-determinstic behavior in simulations caused by GenSignedMockTx and check empty coins slice before it is used to create banktype.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 performing x/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 https://github.com/cosmos/cosmos-sdk/pull/12190 to use NewBaseAccountWithAddress in all vesting account message handlers.
    • 👕 (linting) #12135 Fix variable naming issues per enabled linters. Run gofumpt to ensure easy reviews of ongoing linting work.
    • 👕 (linting) #12132 Change sdk.Int to math.Int, run gofumpt -w -l ., and golangci-lint run ./... --fix
    • (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

    State Machine Breaking

    • (baseapp) #11985 Add a postHandler to baseapp. This postHandler is like antehandler, but is run after the runMsgs execution. It is in the same store branch that runMsgs, meaning that both runMsgs and postHandler
    • (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 than sdk.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 to x/staking module.
    • (x/gov) #10763 modify the fields in TallyParams to use string instead of bytes
    • #10770 revert tx when block gas limit exceeded
    • (x/gov) #10868 Bump gov to v1beta2. 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 Add new CancelUnbondingDelegation transaction to x/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/gov) #10868 Bump gov to v1.

    🗄 Deprecated

    • ⬆️ (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 and tendermint/tm-dbs NewDB function. If app-db-backend is defined, then it is used. Otherwise, if types.DBBackend is defined, it is used (until removed: #11241). Otherwise, Tendermint config's db-backend is used.