Skip to content

Latest commit

 

History

History
346 lines (297 loc) · 38 KB

CHANGELOG.md

File metadata and controls

346 lines (297 loc) · 38 KB

Changelog

[Unreleased]

v0.47.3 - 2023-06-08

Features

  • (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 allow SetExtensionOptions with given extension options.

Improvements

  • (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 to TxExtensionOptionI to avoid breaking change.
  • (baseapp) #16193 Add Close method to BaseApp for custom app to cleanup resource in graceful shutdown.

Bug Fixes

  • 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.

API Breaking Changes

  • (testutil) #14991 The testutil/testdata_pulsar package has moved to testutil/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

Improvements

  • (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.

Bug Fixes

  • (baseapp) #15789 Ensure PrepareProposal and ProcessProposal respect InitialHeight 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

Features

  • (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 and ReadGovPropFlags functions.
  • (cli) #14655 Add a new command to list supported algos.
  • (x/genutil,cli) #15147 Add --initial-height flag to cli init cmd to provide genesis.json with user-defined initial block height.

Improvements

  • (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.

Bug Fixes

  • (baseapp) #15487 Reset state before calling PrepareProposal and ProcessProposal.
  • (cli) #15123 Fix the CLI offline mode behavior to be really offline. The API of clienttx.NewFactoryCLI is updated to return an error.

Deprecated

  • (x/genutil) #15316 Remove requirement on node & IP being included in a gentx.

v0.47.0 - 2023-03-14

Features

  • (x/gov) #15151 Add burn_vote_quorum, burn_proposal_deposit_prevote and burn_vote_veto params to allow applications to decide if they would like to burn deposits
  • (client) #14509 Added AddKeyringFlags function.
  • (x/bank) #14045 Add CLI command spendable-balances, which also accepts the flag --denom.
  • (x/slashing, x/staking) #14363 Add the infraction a validator commited type as an argument to a SlashWithInfractionReason keeper method.
  • (client) #14051 Add --grpc client option.
  • (x/genutil) #14149 Add genutilcli.GenesisCoreCommand command, which contains all genesis-related sub-commands.
  • (x/evidence) #13740 Add new proto field hash of type string to QueryEvidenceRequest which helps to decode the hash properly while using query API.
  • (core) #13306 Add a FormatCoins function to in core/coins to format sdk Coins following the Value Renderers spec.
  • (math) #13306 Add FormatInt and FormatDec functiosn in math to format integers and decimals following the Value Renderers spec.
  • (x/staking) #13122 Add UnbondingCanComplete and PutUnbondingOnHold to x/staking module.
  • #13437 Add new flag --modules-to-export in simd 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 of x/param. Legacy types remain in order to facilitate parameter migration from the deprecated x/params. App developers should ensure that they execute baseapp.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

Improvements

  • #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 coins sdk.Coins{} if both coins set are empty.
    • This is a behavior change, as previously sdk.Coins.Add would return nil in this case.
  • (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 folder cosmos/my/pkg/v1/*.proto relatively to the protoc import root folder (usually the root proto/ 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 and AppStateRandomizedFn) to testutil/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 method SetLazyLoading to CommitMultiStore 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.
  • (snapshots) #14608 Deprecate unused structs SnapshotKVItem and SnapshotSchema.
  • #15243 LatestBlockResponse & BlockByHeightResponse types' field sdk_block was incorrectly cast proposer_address bytes to validator operator address, now to consensus address
  • (x/group, x/gov) #14483 Add support for []string and []int in draft-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 and event.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 in v1beta1.Proposal.Content.
  • #13882 Add tx encode and decode 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 and nftID from the NFT module.
  • #13789 Add tx encode and decode 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 to cosmos/gogoproto.
  • #12995 Add FormatTime and ParseTimeString 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 the AppModuleSimulation 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 the AddTxFlagsToCmd API. There is no longer a need to explicitly register this flag on commands whens AddTxFlagsToCmd 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 and testutil/sims. They are now in their respective modules.
  • #12398 Refactor all x modules to unit-test via mocks and decouple simapp.
  • #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 against MaxMemoCharacters 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 the cosmossdk.io/core/appmodule.AppModule API via the new NewManagerFromMap constructor.
  • #14175 Add server.DefaultBaseappOptions(appopts) function to reduce boiler plate in root.go.

State Machine Breaking

  • (baseapp, x/auth/posthandler) #13940 Update PostHandler to receive the runTx 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) in AccountAddressByID grpc query is now deprecated, update to account-id(type of uint64) to use AccountAddressByID.
  • (codec) #13307 Register all modules' Msgs with group's ModuleCdc so that Amino sign bytes are correctly generated.* (x/gov)
  • (codec) #13196 Register all modules' Msgs 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 a MsgCommunityPoolSpend message via the new v1 x/gov module instead. This message can be used to directly fund the x/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 of x/params.
  • (x/auth) #12475 Migrate x/auth to self-managed parameters and deprecate its usage of x/params.
  • (x/slashing) #12399 Migrate x/slashing to self-managed parameters and deprecate its usage of x/params.
  • (x/mint) #12363 Migrate x/mint to self-managed parameters and deprecate it's usage of x/params.
  • (x/distribution) #12434 Migrate x/distribution to self-managed parameters and deprecate it's usage of x/params.
  • (x/crisis) #12445 Migrate x/crisis to self-managed parameters and deprecate it's usage of x/params.
  • (x/gov) #12631 Migrate x/gov to self-managed parameters and deprecate it's usage of x/params.
  • (x/staking) #12409 Migrate x/staking to self-managed parameters and deprecate it's usage of x/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.

API Breaking Changes

  • Migrate to CometBFT. Follow the migration instructions in the upgrade guide.
  • (simulation) #14728 Rename the ParamChanges field to LegacyParamChange and Contents to LegacyProposalContents in simulation.SimulationState. Additionally it adds a ProposalMsgs field to simulation.SimulationState.
  • (x/gov) #14782 Move the metadata argument in govv1.NewProposal alongside title and summary.
  • (x/upgrade) #14216 Change upgrade keeper receiver to upgrade keeper pointers.
  • (x/auth) #13780 Querying with id (type of int64) in AccountAddressByID grpc query now throws error, use account-id(type of uint64) instead.
  • (store) #13516 Update State Streaming APIs:
    • Add method ListenCommit to ABCIListener
    • Move ListeningEnabled and AddListener methods to CommitMultiStore
    • Remove CacheWrapWithListeners from CacheWrap and CacheWrapper 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 via panic
  • (x/auth) #13877 Rename AccountKeeper's GetNextAccountNumber to NextAccountNumber.
  • (x/evidence) #13740 The NewQueryEvidenceRequest function now takes hash as a HEX encoded string.
  • (server) #13485 The Application service now requires the RegisterNodeService 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) to testutil/sims.
  • (simapp) #13402 Move testutil/rest package to testutil.
  • (types) #13380 Remove deprecated sdk.NewLevelDB.
  • (simapp) #13378 Move simapp.App to runtime.AppI.
  • (tx) #12659 Remove broadcast mode block.
  • (simapp) #12747 Remove simapp.MakeTestEncodingConfig. Please use moduletestutil.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 pass nil for the same behavior as before, i.e. any recipient is allowed.
  • (x/bank) #12593 Add SpendableCoin method to BaseViewKeeper
  • (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 from SimApp struct as per migration of x/crisis to app wiring
  • (simapp) #12334 Move simapp.ConvertAddrsToValAddrs and simapp.CreateTestPubKeys to respectively simtestutil.ConvertAddrsToValAddrs and simtestutil.CreateTestPubKeys (testutil/sims)
  • (simapp) #12312 Move simapp.EmptyAppOptions to simtestutil.EmptyAppOptions (testutil/sims)
  • (simapp) #12312 Remove skipUpgradeHeights map[int64]bool and homePath string from NewSimApp constructor as per migration of x/upgrade to app-wiring.
  • (testutil) #12278 Move all functions from simapp/helpers to testutil/sims
  • (testutil) #12233 Move simapp.TestAddr to simtestutil.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 is prefix.NewWriter and making db.DBConnection and such into db.Connection
  • (x/distribution) #12434 x/distribution module SetParams keeper method definition is now updated to return error.
  • (x/staking) #12409 x/staking module SetParams keeper method definition is now updated to return error.
  • (x/crisis) #12445 x/crisis module SetConstantFee keeper method definition is now updated to return error.
  • (x/gov) #12631 x/gov module refactored to use Params as single struct instead of DepositParams, TallyParams & VotingParams.
  • (x/gov) #12631 Migrate x/gov to self-managed parameters and deprecate it's usage of x/params.
  • (x/bank) #12630 x/bank module SetParams keeper method definition is now updated to return error.
  • (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 and LegacyQuerierHandler 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 to WriteExtensionPayload.
  • (x/genutil)#12956 genutil.AppModuleBasic has a new attribute: genesis transaction validation function. The existing validation logic is implemented in genutiltypes.DefaultMessageValidator. Use genutil.NewAppModuleBasic to create a new genutil Module Basic.
  • (codec) #12964 ProtoCodec.MarshalInterface now returns an error when serializing unregistered types and a subsequent ProtoCodec.UnmarshalInterface would fail.
  • (x/staking) #12973 Removed stakingkeeper.RandomValidator. Use testutil.RandSliceElem(r, sk.GetAllValidators(ctx)) instead.
  • (x/gov) #13160 Remove custom marshaling of proposl and voteoption.
  • (types) #13430 Remove unused code ResponseCheckTx and ResponseDeliverTx
  • (store) #13529 Add method LatestVersion to MultiStore interface, add method SetQueryMultiStore to baesapp to support alternative MultiStore 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 type map[string]interface{} to support in parallel the new cosmossdk.io/core/appmodule.AppModule API.

CLI Breaking Changes

  • (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.

Bug Fixes

  • (x/auth/vesting) #15373 Add extra checks when creating a periodic vesting account.
  • (x/auth) #13838 Fix calling String() and MarshalYAML 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 converting Coins to DecCoins
  • (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.

Deprecated

  • (x/evidence) #13740 The evidence_hash field of QueryEvidenceRequest has been deprecated and now contains a new field hash with type string.
  • (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.

Previous Versions

CHANGELOG of previous versions.