Skip to main content
This page tracks all releases and changes from the cosmos/ibc-go repository. For the latest development updates, see the UNRELEASED section.
2024-08-30
IBCRelease
v7.8.0

State Machine Breaking

  • (core/03-connection) #7128 Remove verification of self client and consensus state from connection handshake.
2024-07-29
IBCRelease
v7.7.0

Dependencies

  • #6943 Update Cosmos SDK to v0.47.13.

Features

  • (apps/transfer) #6877 Added the possibility to transfer the entire user balance of a particular denomination by using UnboundedSpendLimit as the token amount.
2024-06-20
IBCRelease
v7.6.0

State Machine Breaking

  • (apps/transfer, apps/27-interchain-accounts, app/29-fee) #4992 Set validation for length of string fields.
2024-06-20
IBCRelease
v7.5.2

Dependencies

  • #6613 Update Cosmos SDK to v0.47.12.

Improvements

  • (apps/27-interchain-accounts) #6436 Refactor ICA host keeper instantiation method to avoid panic related to proto files.
2024-05-22
IBCRelease
v7.5.1

Improvements

  • (core/ante) #6302 Performance: Skip app callbacks during RecvPacket execution in checkTx within the redundant relay ante handler.
  • (core/ante) #6280 Performance: Skip redundant proof checking in RecvPacket execution in reCheckTx within the redundant relay ante handler.
  • (core/ante) #6306 Performance: Skip misbehaviour checks in UpdateClient flow and skip signature checks in reCheckTx mode.
2024-05-14
IBCRelease
v7.5.0

Dependencies

  • #6254 Update Cosmos SDK to v0.47.11 and CometBFT to v0.37.5.

State Machine Breaking

  • (light-clients/07-tendermint) #6276 Fix: No-op to avoid panicking on UpdateState for invalid misbehaviour submissions.

Improvements

  • (apps/27-interchain-accounts) #6147 Emit an event signalling that the host submodule is disabled.
  • (testing) #6180 Add version to tm abci headers in ibctesting.
  • (apps/27-interchain-accounts, apps/transfer, apps/29-fee) #6253 Allow channel handshake to succeed if fee middleware is wired up on one side, but not the other.
  • (apps/transfer) #6268 Use memo strings instead of JSON keys in AllowedPacketData of transfer authorization.

Features

  • (apps/27-interchain-accounts) #5633 Allow new ICA channels to use unordered ordering.
  • (apps/27-interchain-accounts) #5785 Introduce a new tx message that ICA host submodule can use to query the chain (only those marked with module_query_safe) and write the responses to the acknowledgement.

Bug Fixes

  • (apps/29-fee) #6255 Delete already refunded fees from state if some fee(s) cannot be refunded on channel closure.
2024-01-31
IBCRelease
v7.3.2

Dependencies

  • #5717 Update Cosmos SDK to v0.47.8 and CometBFT to v0.37.4.

Improvements

  • (core) #5541 Enable emission of events on erroneous IBC application callbacks by appending a prefix to all event type and attribute keys.

Bug Fixes

  • (apps/27-interchain-accounts) #4944 Add missing proto interface registration.
2023-10-20
IBCRelease
v7.3.1

Dependencies

  • #4539 Update Cosmos SDK to v0.47.5.

Improvements

  • (apps/27-interchain-accounts) #4537 Add argument to generate-packet-data cli to choose the encoding format for the messages in the ICA packet data.

Bug Fixes

  • (apps/transfer) #4709 Order query service RPCs to fix availability of denom traces endpoint when no args are provided.
2023-08-31
IBCRelease
v7.3.0

Dependencies

  • #4122 Update Cosmos SDK to v0.47.4.

Improvements

  • #4187 Adds function WithICS4Wrapper to keepers to allow to set the middleware after the keeper’s creation.
  • (light-clients/06-solomachine) #4429 Remove IBC key from path of bytes signed by solomachine and not escape the path.

Features

  • (apps/27-interchain-accounts) #3796 Adds support for json tx encoding for interchain accounts.
  • #4188 Adds optional PacketDataUnmarshaler interface that allows a middleware to request the packet data to be unmarshaled by the base application.
  • #4199 Adds optional PacketDataProvider interface for retrieving custom packet data stored on behalf of another application.
  • #4200 Adds optional PacketData interface which application’s packet data may implement.

Bug Fixes

  • (04-channel) #4476 Use UTC time in log messages for packet timeout error.
  • (testing) #4483 Use the correct revision height when querying trusted validator set.
2024-01-31
IBCRelease
v7.2.3

Dependencies

  • #5716 Update Cosmos SDK to v0.47.8 and CometBFT to v0.37.4.

Improvements

  • (core) #5541 Enable emission of events on erroneous IBC application callbacks by appending a prefix to all event type and attribute keys.
2023-10-20
IBCRelease
v7.2.2

Dependencies

  • #4539 Update Cosmos SDK to v0.47.5.

Bug Fixes

  • (apps/transfer) #4709 Order query service RPCs to fix availability of denom traces endpoint when no args are provided.
2023-08-31
IBCRelease
v7.2.1

Bug Fixes

  • (04-channel) #4476 Use UTC time in log messages for packet timeout error.
  • (testing) #4483 Use the correct revision height when querying trusted validator set.
2023-06-22
IBCRelease
v7.2.0

Dependencies

  • #3810 Update Cosmos SDK to v0.47.3.
  • #3862 Update CometBFT to v0.37.2.

State Machine Breaking

  • #3907 Re-implemented missing functions of LegacyMsg interface to fix transaction signing with ledger.
2023-06-09
IBCRelease
v7.1.0

Dependencies

  • #3542 Update Cosmos SDK to v0.47.2 and CometBFT to v0.37.1.
  • #3457 Update to ics23 v0.10.0.

Improvements

  • (apps/transfer) #3454 Support transfer authorization unlimited spending when the max uint256 value is provided as limit.

Features

  • (light-clients/09-localhost) #3229 Implementation of v2 of localhost loopback client.
  • (apps/transfer) #3019 Add state entry to keep track of total amount of tokens in escrow.

Bug Fixes

  • (core/04-channel) #3346 Properly handle ordered channels in UnreceivedPackets query.
  • (core/04-channel) #3593 SendPacket now correctly returns ErrClientNotFound in favour of ErrConsensusStateNotFound.
2023-05-25
IBCRelease
v7.0.1

Bug Fixes

  • #3346 Properly handle ordered channels in UnreceivedPackets query.
2023-03-17
IBCRelease
v7.0.0

Dependencies

  • #2672 Update to cosmos-sdk v0.47.
  • #3175 Migrate to cometbft v0.37.

API Breaking

  • (core) #2897 Remove legacy migrations required for upgrading from Stargate release line to ibc-go >= v1.x.x.
  • (core/02-client) #2856 Rename IterateClients to IterateClientStates. The function now takes a prefix argument which may be used for prefix iteration over the client store.
  • (light-clients/tendermint)#1768 Removed AllowUpdateAfterExpiry, AllowUpdateAfterMisbehaviour booleans as they are deprecated (see ADR026)
  • (06-solomachine) #1679 Remove types sub-package from 06-solomachine lightclient directory.
  • (07-tendermint) #1677 Remove types sub-package from 07-tendermint lightclient directory.
  • (06-solomachine) #1687 Bump 06-solomachine protobuf version from v2 to v3.
  • (06-solomachine) #1687 Removed DataType enum and associated message types from 06-solomachine. DataType has been removed from SignBytes and SignatureAndData in favour of path.
  • (02-client) #598 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.
  • (06-solomachine) #1100 Remove GetClientID function from 06-solomachine Misbehaviour type.
  • (06-solomachine) #1100 Deprecate ClientId field in 06-solomachine Misbehaviour type.
  • (07-tendermint) #1097 Remove GetClientID function from 07-tendermint Misbehaviour type.
  • (07-tendermint) #1097 Deprecate ClientId field in 07-tendermint Misbehaviour type.
  • (modules/core/exported) #1107 Merging the Header and Misbehaviour interfaces into a single ClientMessage type.
  • (06-solomachine)#1906 Removed AllowUpdateAfterProposal boolean as it has been deprecated (see 01_concepts of the solo machine spec for more details).
  • (07-tendermint) #1896 Remove error return from IterateConsensusStateAscending in 07-tendermint.
  • (apps/27-interchain-accounts) #2638 Interchain accounts host and controller Keepers now expects a keeper which fulfills the expected exported.ScopedKeeper interface for the capability keeper.
  • (06-solomachine) #2761 Removed deprecated ClientId field from Misbehaviour and allow_update_after_proposal field from ClientState.
  • (apps) #3154 Remove unused ProposalContents function.
  • (apps) #3149 Remove legacy interface function RandomizedParams, which is no longer used.
  • (light-clients/06-solomachine) #2941 Remove solomachine header sequence.
  • (core) #2982 Moved the ibc module name into the exported package.

State Machine Breaking

  • (06-solomachine) #2744 Misbehaviour.ValidateBasic() now only enforces that signature data does not match when the signature paths are different.
  • (06-solomachine) #2748 Adding sentinel value for header path in 06-solomachine.
  • (apps/29-fee) #2942 Check x/bank send enabled before escrowing fees.
  • (core/04-channel) #3009 Change check to disallow optimistic sends.

Improvements

  • (core) #3082 Add HasConnection and HasChannel methods.
  • (tests) #2926 Lint tests
  • (apps/transfer) #2643 Add amount, denom, and memo to transfer event emission.
  • (core) #2746 Allow proof height to be zero for all core IBC sdk.Msg types that contain proofs.
  • (light-clients/06-solomachine) #2746 Discard proofHeight for solo machines and use the solo machine sequence instead.
  • (modules/light-clients/07-tendermint) #1713 Allow client upgrade proposals to update TrustingPeriod. See ADR-026 for context.
  • (modules/core/02-client) #1188 Routing MsgSubmitMisbehaviour to UpdateClient keeper function. Deprecating SubmitMisbehaviour endpoint.
  • (modules/core/02-client) #1208 Replace CheckHeaderAndUpdateState usage in 02-client with calls to VerifyClientMessage, CheckForMisbehaviour, UpdateStateOnMisbehaviour and UpdateState.
  • (modules/light-clients/09-localhost) #1187 Removing localhost light client implementation as it is not functional. An upgrade handler is provided in modules/migrations/v5 to prune 09-localhost clients and consensus states from the store.
  • (modules/core/02-client) #1186 Removing GetRoot function from ConsensusState interface in 02-client. GetRoot is unused by core IBC.
  • (modules/core/02-client) #1196 Adding VerifyClientMessage to ClientState interface.
  • (modules/core/02-client) #1198 Adding UpdateStateOnMisbehaviour to ClientState interface.
  • (modules/core/02-client) #1170 Updating ClientUpdateProposal to set client state in lightclient implementations CheckSubstituteAndUpdateState methods.
  • (modules/core/02-client) #1197 Adding CheckForMisbehaviour to ClientState interface.
  • (modules/core/02-client) #1210 Removing CheckHeaderAndUpdateState from ClientState interface & associated light client implementations.
  • (modules/core/02-client) #1212 Removing CheckMisbehaviourAndUpdateState from ClientState interface & associated light client implementations.
  • (modules/core/exported) #1206 Adding new method UpdateState to ClientState interface.
  • (modules/core/02-client) #1741 Emitting a new upgrade_chain event upon setting upgrade consensus state.
  • (client) #724 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.
  • (02-client/cli) #897 Remove GetClientID() from Misbehaviour interface. Submit client misbehaviour cli command requires an explicit client id now.
  • (06-solomachine) #1972 Solo machine implementation of ZeroCustomFields fn now panics as the fn is only used for upgrades which solo machine does not support.
  • (light-clients/06-solomachine) Moving verifyMisbehaviour function from update.go to misbehaviour_handle.go.
  • #2434 Removed all TypeMsg constants
  • (modules/core/exported) #2539 Removing GetVersions from ConnectionI interface.
  • (core/02-connection) #2419 Add optional proof data to proto definitions of MsgConnectionOpenTry and MsgConnectionOpenAck for host state machines that are unable to introspect their own consensus state.
  • (light-clients/07-tendermint) #3046 Moved non-verification misbehaviour checks to CheckForMisbehaviour.
  • (apps/29-fee) #2975 Adding distribute fee events to ics29.
  • (light-clients/07-tendermint) #2965 Prune expired 07-tendermint consensus states on duplicate header updates.
  • (light-clients) #2736 Updating VerifyMembership and VerifyNonMembership methods to use Path interface.
  • (light-clients) #3113 Align light client module names.

Features

  • (apps/transfer) #3079 Added authz support for ics20.
  • (core/02-client) #2824 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.
  • (core/24-host) #2856 Add PrefixedClientStorePath and PrefixedClientStoreKey functions to 24-host
  • (core/02-client) #2819 Add automatic in-place store migrations to remove the localhost client and migrate existing solo machine definitions.
  • (light-clients/06-solomachine) #2826 Add AppModuleBasic for the 06-solomachine client and remove solo machine type registration from core IBC. Chains must register the AppModuleBasic of light clients.
  • (light-clients/07-tendermint) #2825 Add AppModuleBasic for the 07-tendermint client and remove tendermint type registration from core IBC. Chains must register the AppModuleBasic of light clients.
  • (light-clients/07-tendermint) #2800 Add optional in-place store migration function to prune all expired tendermint consensus states.
  • (core/24-host) #2820 Add MustParseClientStatePath which parses the clientID from a client state key path.
  • (testing/simapp) #2842 Adding the new upgrade handler for v6 -> v7 to simapp which prunes expired Tendermint consensus states.
  • (testing) #2829 Add AssertEvents which asserts events against expected event map.

Bug Fixes

  • (testing) #3295 The function SetupWithGenesisValSet will set the baseapp chainID before running InitChain
  • (light-clients/solomachine) #1839 Fixed usage of the new diversifier in validation of changing diversifiers for the solo machine. The current diversifier must sign over the new diversifier.
  • (light-clients/07-tendermint) #1674 Submitted ClientState is zeroed out before checking the proof in order to prevent the proposal from containing information governance is not actually voting on.
  • (modules/core/02-client)#1676 ClientState must be zeroed out for UpgradeProposals to pass validation. This prevents a proposal containing information governance is not actually voting on.
  • (core/02-client) #2510 Fix client ID validation regex to conform closer to spec.
  • (apps/transfer) #3045 Allow value with slashes in URL template.
  • (apps/27-interchain-accounts) #2601 Remove bech32 check from owner address on ICA controller msgs RegisterInterchainAccount and SendTx.
  • (apps/transfer) #2651 Skip emission of unpopulated memo field in ics20.
  • (apps/27-interchain-accounts) #2682 Avoid race conditions in ics27 handshakes.
  • (light-clients/06-solomachine) #2741 Added check for empty path in 06-solomachine.
  • (light-clients/07-tendermint) #3022 Correctly close iterator in 07-tendermint store.
  • (core/02-client) #3010 Update Paginate to use FilterPaginate in ClientStates and ConnectionChannels grpc queries.