---
# System prepended metadata

title: Changelog

---

<!--
Usage:

Change log entries are generated by git cliff ref: https://github.com/orhun/git-cliff
This can be run using "make changelog tag=vx.y.z"

Each commit should be conventional, the following message groups are supported.

* feat, feature
* imp
* bug, fix
* deprecated
* (api)!
* (statemachine)!

Types of changes (Stanzas):

"Features" for new features. (feat, feature)
"Improvements" for changes in existing functionality. (imp)
"Deprecated" for soon-to-be removed features.
"Bug Fixes" for any bug fixes. (bug, fix)
"API Breaking" for breaking exported APIs used by developers building on SDK. Add (api)! e.g. fix(api)!: api breaking fix
"State Machine Breaking" for any changes that result in a different AppState given the same genesisState and txList. Add (statemachine)! e.g. fix(statemachine)!: state machine breaking fix
Ref: https://keepachangelog.com/en/1.0.0/
-->

# Changelog
All notable changes to this project will be documented in this file.
## [7.0.0-beta3] - 2023-01-26

### Dependencies

* Update to Cosmos SDK v0.47 ([#2672](https://github.com/cosmos/ibc-go/issues/2672))

### API Breaking

* Rename `IterateClients` to `IterateClientStates`. The function now takes a prefix argument which may be used for prefix iteration over the client store. ([#2856](https://github.com/cosmos/ibc-go/pull/2856))
* Remove legacy migrations required for upgrading from Stargate release line to ibc-go >= v1.x.x. ([#2897](https://github.com/cosmos/ibc-go/issues/2897))
* Removing solomachine header sequence ([#2941](https://github.com/cosmos/ibc-go/issues/2941))
* Removed deprecated `ClientId` field from `Misbehaviour` and `allow_update_after_proposal` field from 06-solomachine `ClientState` ([#2761](https://github.com/cosmos/ibc-go/issues/2761))
* ([#1768](https://github.com/cosmos/ibc-go/issues/1768)) Removed `AllowUpdateAfterExpiry`, `AllowUpdateAfterMisbehaviour` booleans as they are deprecated (see ADR026)
* Remove `types` sub-package from `06-solomachine` lightclient directory. ([#1679](https://github.com/cosmos/ibc-go/pull/1679))
* Bump `06-solomachine` protobuf version from `v2` to `v3`. ([#1687](https://github.com/cosmos/ibc-go/pull/1687))
* Removed `DataType` enum and associated message types from `06-solomachine`. `DataType` has been removed from `SignBytes` and `SignatureAndData` in favour of `path`. ([#1687](https://github.com/cosmos/ibc-go/pull/1687))
* The client state and consensus state return value has been removed from `VerifyUpgradeAndUpdateState`. Light client implementations must update the client state and consensus state after verifying a valid client upgrade. ([#598](https://github.com/cosmos/ibc-go/pull/598))
* Remove `GetClientID` function from 06-solomachine `Misbehaviour` type. ([#1100](https://github.com/cosmos/ibc-go/pull/1100))
* Deprecate `ClientId` field in 06-solomachine `Misbehaviour` type. ([#1100](https://github.com/cosmos/ibc-go/pull/1100))
* Remove `GetClientID` function from 07-tendermint `Misbehaviour` type. ([#1097](https://github.com/cosmos/ibc-go/pull/1097))
* Deprecate `ClientId` field in 07-tendermint `Misbehaviour` type. ([#1097](https://github.com/cosmos/ibc-go/pull/1097))
* Merging the `Header` and `Misbehaviour` interfaces into a single `ClientMessage` type. ([#1107](https://github.com/cosmos/ibc-go/pull/1107))
* Removed `AllowUpdateAfterProposal` boolean as it has been deprecated (see 01_concepts of the solo machine spec for more details). ([#1906](https://github.com/cosmos/ibc-go/pull/1906/files))
* Remove error return from `IterateConsensusStateAscending` in `07-tendermint`. ([#1896](https://github.com/cosmos/ibc-go/pull/1896))
* Interchain accounts host and controller Keepers now expects a keeper which fulfills the expected `exported.ScopedKeeper` interface for the capability keeper. ([#2638](https://github.com/cosmos/ibc-go/pull/2638))
* Removing localhost light client implementation as it is not functional. ([#1187](https://github.com/cosmos/ibc-go/pull/1187/))


### State Machine Breaking

* 06-solomachine `Misbehaviour.ValidateBasic()` now only enforces that signature data does not match when the signature paths are different. ([#2744](https://github.com/cosmos/ibc-go/issues/2744))
* Adding sentinel value for header path in 06-solomachine. ([#2748](https://github.com/cosmos/ibc-go/pull/2748))
* Check x/bank send enabled before escrowing fees. ([#2942](https://github.com/cosmos/ibc-go/pull/2942))
* Write channel state before invoking app callbacks in ack and confirm channel handshake steps ([#2973](https://github.com/cosmos/ibc-go/issues/2973))

### Improvements

* Allow proof height to be zero for all core IBC `sdk.Msg` types that contain proofs.
* Discard proofHeight for solo machines and use the solo machine sequence instead.
* Add amount, denom, and memo to transfer event emission.
* Add `AssertEvents` which asserts events against expected event map. ([#2829](https://github.com/cosmos/ibc-go/issues/2829))
* Allow chains that can't introspect their own `ConsensusState` support IBC
* Allow client upgrade proposals to update `TrustingPeriod`. See ADR-026 for context. ([#1713](https://github.com/cosmos/ibc-go/pull/1713))
* Routing `MsgSubmitMisbehaviour` to `UpdateClient` keeper function. Deprecating `SubmitMisbehaviour` endpoint. ([#1188](https://github.com/cosmos/ibc-go/pull/1188))
* Replace `CheckHeaderAndUpdateState` usage in 02-client with calls to `VerifyClientMessage`, `CheckForMisbehaviour`, `UpdateStateOnMisbehaviour` and `UpdateState`. ([#1208](https://github.com/cosmos/ibc-go/pull/1208))
* Removing `GetRoot` function from ConsensusState interface in `02-client`. `GetRoot` is unused by core IBC. ([#1186](https://github.com/cosmos/ibc-go/pull/1186))
* Adding VerifyClientMessage to ClientState interface. ([#1196](https://github.com/cosmos/ibc-go/pull/1196))
* Adding UpdateStateOnMisbehaviour to ClientState interface. ([#1198](https://github.com/cosmos/ibc-go/pull/1198))
* Updating `ClientUpdateProposal` to set client state in lightclient implementations `CheckSubstituteAndUpdateState` methods. ([#1170](https://github.com/cosmos/ibc-go/pull/1170))
* Adding `CheckForMisbehaviour` to `ClientState` interface. ([#1197](https://github.com/cosmos/ibc-go/pull/1197))
* Removing `CheckHeaderAndUpdateState` from `ClientState` interface & associated light client implementations. ([#1195](https://github.com/cosmos/ibc-go/pull/1210))
* Removing `CheckMisbehaviourAndUpdateState` from `ClientState` interface & associated light client implementations. ([#1189](https://github.com/cosmos/ibc-go/pull/1212))
* Adding new method `UpdateState` to `ClientState` interface. ([#1206](https://github.com/cosmos/ibc-go/pull/1206))
* Emitting a new `upgrade_chain` event upon setting upgrade consensus state. ([#1741](https://github.com/cosmos/ibc-go/pull/1741))
* `IsRevisionFormat` and `IsClientIDFormat` have been updated to disallow newlines before the dash used to separate the chainID and revision number, and the client type and client sequence. ([#724](https://github.com/cosmos/ibc-go/pull/724))
* Remove `GetClientID()` from `Misbehaviour` interface. Submit client misbehaviour cli command requires an explicit client id now. ([#897](https://github.com/cosmos/ibc-go/pull/897))
* Removing `GetVersions` from `ConnectionI` interface. ([#1689](https://github.com/cosmos/ibc-go/pull/2539))
* Add optional proof data to proto definitions of `MsgConnectionOpenTry` and `MsgConnectionOpenAck` for host state machines that are unable to introspect their own consensus state. ([#2419](https://github.com/cosmos/ibc-go/pull/2419))

### Features
* Allow governance to update the TrustingPeriod of the 07-tendermint light client ([#1713](https://github.com/cosmos/ibc-go/issues/1713))
* Adding connection params grpc and cli query ([#2745](https://github.com/cosmos/ibc-go/issues/2745))
* Add `MustParseClientStatePath` which parses the clientID from a client state key path.
* Add optional migration pruning for tendermint consensus states ([#2800](https://github.com/cosmos/ibc-go/issues/2800))
* Add optional in-place store migration function to prune all expired tendermint consensus states.
* Add `AppModuleBasic` for the 07-tendermint client and remove tendermint type registration from core IBC. Chains must register the `AppModuleBasic` of light clients. ([#2825](https://github.com/cosmos/ibc-go/issues/2825))
* Add `AppModuleBasic` for the 06-solomachine client and remove solo machine type registration from core IBC. Chains must register the `AppModuleBasic` of light clients. ([#2826](https://github.com/cosmos/ibc-go/issues/2826))
* Add automatic in-place store migrations to remove the localhost client and migrate existing solo machine definitions. ([#2819](https://github.com/cosmos/ibc-go/issues/2819))
* Add `PrefixedClientStorePath` and `PrefixedClientStoreKey` functions to 24-host.
* Add genesis migrations for v6 to v7. The migration migrates the solo machine client state definition, removes all solo machine consensus states and removes the localhost client. ([#2824](https://github.com/cosmos/ibc-go/issues/2824))

### Bug Fixes

* Fix request wiring for `UpgradedConsensusState` in core query server. ([#2745](https://github.com/cosmos/ibc-go/pull/2745))
* Allow zero proof height, solo machine discards provided proof height in favor of sequence ([#2746](https://github.com/cosmos/ibc-go/issues/2746))
* Fix clientID validation regex to conform closer to spec ([#2510](https://github.com/cosmos/ibc-go/issues/2510))
* Correctly close iterator in `07-tendermint` store  ([#3022](https://github.com/cosmos/ibc-go/issues/3022))
* Change check to disallow optimistic sends ([#3009](https://github.com/cosmos/ibc-go/issues/3009))
* Update `Paginate` to use `FilterPaginate` in `ClientStates` and `ConnectionChannels` grpc queries ([#3010](https://github.com/cosmos/ibc-go/issues/3010))

### Documentation

* Adding light client [developer guide](https://ibc.cosmos.network/main/ibc/light-clients/overview.html).
* Added [solomachine docs](https://ibc.cosmos.network/main/ibc/light-clients/solomachine/solomachine.html).


### Miscellaneous Tasks

* Updating `VerifyMembership` and `VerifyNonMembership` methods to use `Path` interface ([#2736](https://github.com/cosmos/ibc-go/issues/2736))
* Adding sentinel path for solomachine header ([#2748](https://github.com/cosmos/ibc-go/issues/2748))
* Adding migration doc for v6 to vuepress config ([#2788](https://github.com/cosmos/ibc-go/issues/2788))
* Add upgrade handler to simapp for v6 -> v7 ([#2842](https://github.com/cosmos/ibc-go/issues/2842))
* Prune expired `07-tendermint` consensus states on duplicate header updates ([#2965](https://github.com/cosmos/ibc-go/issues/2965))
* Moved the ibc module name into the exported package ([#2982](https://github.com/cosmos/ibc-go/issues/2982))
* Adding distribute fee events to ics29 ([#2975](https://github.com/cosmos/ibc-go/pull/2975))


### Refactor

* Remove crossing hellos from 03-connection ([#1672](https://github.com/cosmos/ibc-go/issues/1672))
* Panic on ZeroCustomFields for solo machine implementation ([#1972](https://github.com/cosmos/ibc-go/issues/1972))
* Remove unused GetHeight function from tendermint `Misbehaviour` ([#1966](https://github.com/cosmos/ibc-go/issues/1966))
* Adapting transfer metadata bytes field to memo string ([#2595](https://github.com/cosmos/ibc-go/issues/2595))
* Allow for serialization of proto message without fulfillment of sdk.Msg interface ([#2607](https://github.com/cosmos/ibc-go/issues/2607))
* Rename IterateClients to IterateClientStates, add a prefix ([#2856](https://github.com/cosmos/ibc-go/issues/2856))
* Simplify automatic migration code by using client keeper functions ([#2864](https://github.com/cosmos/ibc-go/issues/2864))
* Simplify optional tendermint pruning migrations ([#2862](https://github.com/cosmos/ibc-go/issues/2862))
* Require light clients to set the initial client state and consensus state via the client state `Initialize` method ([#2936](https://github.com/cosmos/ibc-go/issues/2936))

<!-- generated by git-cliff -->
