This page tracks all releases and changes from the cosmos/ibc-go repository.
For the latest development updates, see the UNRELEASED section.
Features
- (light-clients/07-tendermint) #8185 Allow scaling of trusting period for client upgrades
Dependencies
- #8254 Bump github.com/cosmos/cosmos-sdk to 0.53.0
- #8326 Bump cosmossdk.io/x/upgrade to 0.2.0
- #8326 Bump cosmossdk.io/api to 0.9.2
- #8293 Bump cosmossdk.io/math to 1.5.3
- #8254 Bump cosmossdk.io/core to 0.11.3
- #8254 Bump cosmossdk.io/store to 1.1.2
- #8254 Bump cosmossdk.io/x/tx to 0.14.0
- #8253 Bump cosmossdk.io/errors to 1.0.2
- #8253 Bump cosmossdk.io/log to 1.5.1
- #8253 Bump github.com/cometbft/cometbft to 0.38.17
- #8264 Bump github.com/prysmaticlabs/prysm to v5.3.0
Bug Fixes
- #8287 rename total_escrow REST query from
denomstototal_escrow
Security Fixes
- Fix ISA-2025-001 security vulnerability.
- Fix ASA-2025-004 security vulnerability.
Features
- (core) #7505 Add IBC Eureka (IBC v2) implementation, enabling more efficient IBC packet handling without channel dependencies, bringing significant performance improvements.
- (apps/transfer) #7650 Add support for transfer of entire balance for vesting accounts.
- (apps/wasm) #5079 08-wasm light client proxy module for wasm clients by.
- (core/02-client) #7936 Clientv2 module.
- (core/04-channel) #7933 Channel-v2 genesis.
- (core/04-channel, core/api) #7934 - Callbacks Eureka.
- (light-clients/09-localhost) #6683 Make 09-localhost stateless.
- (core, app) #6902 Add channel version to core app callbacks.
Dependencies
- #8181 Bump github.com/cosmos/cosmos-sdk to 0.50.13
- #7932 Bump go to 1.23
- #7330 Bump cosmossdk.io/api to 0.7.6
- #6828 Bump cosmossdk.io/core to 0.11.1
- #7182 Bump cosmossdk.io/log to 1.4.1
- #7264 Bump cosmossdk.io/store to 1.1.1
- #7585 Bump cosmossdk.io/math to 1.4.0
- #7540 Bump github.com/cometbft/cometbft to 0.38.15
- #6828 Bump cosmossdk.io/x/upgrade to 0.1.4
- #8124 Bump cosmossdk.io/x/tx to 0.13.7
- #7942 Bump github.com/cosmos/cosmos-db to 1.1.1
- #7224 Bump github.com/cosmos/ics23/go to 0.11.0
API Breaking
- (core, apps) #7213 Remove capabilities from
SendPacket. - (core, apps) #7225 Remove capabilities from
WriteAcknowledgement. - (core, apps) #7232 Remove capabilities from channel handshake methods.
- (core, apps) #7270 Remove remaining dependencies on capability module.
- (core, apps) #4811 Use expected interface for legacy params subspace
- (core/04-channel) #7239 Removed function
LookupModuleByChannel - (core/05-port) #7252 Removed function
LookupModuleByPort - (core/24-host) #7239 Removed function
ChannelCapabilityPath - (apps/27-interchain-accounts) #7239 The following functions have been removed:
AuthenticateCapability,ClaimCapability - (apps/27-interchain-accounts) #7961 Removed
absolute-timeoutsflag fromsend-txin the ICA CLI. - (apps/transfer) #7239 The following functions have been removed:
BindPort,AuthenticateCapability,ClaimCapability - (capability) #7279 The module
capabilityhas been removed. - (testing) #7305 Added
TrustedValidatorsmap toTestChain. This removes the dependency on thex/stakingmodule for retrieving trusted validator sets at a given height, and removes theGetTrustedValidatorsmethod from theTestChainstruct. - (23-commitment) #7486 Remove unimplemented
BatchVerifyMembershipandBatchVerifyNonMembershipfunctions - (core/02-client, light-clients) #5806 Decouple light client routing from their encoding structure.
- (core/04-channel) #5991 The client CLI
QueryLatestConsensusStatehas been removed. - (light-clients/06-solomachine) #6037 Remove
Initializefunction fromClientStateand move logic toInitializefunction ofLightClientModule. - (light-clients/06-solomachine) #6230 Remove
GetTimestampAtHeight,StatusandUpdateStateOnMisbehaviourfunctions fromClientStateand move logic to functions ofLightClientModule. - (core/02-client) #6084 Removed
stakingKeeperas an argument toNewKeeperand replaced with aConsensusHostimplementation. - (testing) #6070 Remove
AssertEventsLegacyfunction. - (core) #6138 Remove
Routerreference from IBC core keeper and use instead the router on the existingPortKeeperreference. - (core/04-channel) #6023 Remove emission of non-hexlified event attributes
packet_dataandpacket_ack. - (core) #6320 Remove unnecessary
Proofinterface fromexportedpackage. - (core/05-port) #6341 Modify
UnmarshalPacketDatainterface to take in the context, portID, and channelID. This allows for packet data’s to be unmarshaled based on the channel version. - (apps/27-interchain-accounts) #6433 Use UNORDERED as the default ordering for new ICA channels.
- (apps/transfer) #6440 Remove
GetPrefixedDenom. - (apps/transfer) #6508 Remove the
DenomTracetype. - (apps/27-interchain-accounts) #6598 Mark the
requestsrepeated field ofMsgModuleQuerySafenon-nullable. - (23-commmitment) #6644 Introduce
commitment.v2.MerklePathto includerepeated bytesin favour ofrepeated string. This supports using merkle path keys which include non UTF-8 encoded runes. - (23-commmitment) #6870 Remove
commitment.v1.MerklePathin favour ofcommitment.v2.MerklePath. - (apps/27-interchain-accounts) #6749 The ICA controller
NewIBCMiddlewareconstructor function sets by default the auth module to nil. - (core, core/02-client) #6763 Move prometheus metric labels for 02-client and core into a separate
metricspackage on core. - (core/02-client) #6777 The
NewClientProposalHandlerof02-clienthas been removed. - (core/types) #6794 The composite interface
QueryServerhas been removed from packagecore/types. Please use the granularQueryServerinterfaces provided by each core submodule. - (light-clients/06-solomachine) #6888 Remove
TypeClientMisbehaviourconstant and theTypemethod onMisbehaviour. - (light-clients/06-solomachine, light-clients/07-tendermint) #6891 The
VerifyMembershipandVerifyNonMembershipfunctions of solomachine’sClientStatehave been made private. TheVerifyMembership,VerifyNonMembership,GetTimestampAtHeight,StatusandInitializefunctions of tendermint’sClientStatehave been made private. - (core/04-channel) #6902 Add channel version to core application callbacks.
- (core/03-connection, core/02-client) #6937 Remove ‘ConsensusHost’ interface, also removing self client and consensus state validation in the connection handshake.
- (core/24-host) #6882 All functions ending in
Pathhave been removed from 24-host in favour of their sybling functions ending inKey. - (23-commmitment) #6633 MerklePath has been changed to use
repeated bytesin favour ofrepeated strings. - (23-commmitment) #6644 Introduce
commitment.v2.MerklePathto includerepeated bytesin favour ofrepeated string. This supports using merkle path keys which include non UTF-8 encoded runes. - (23-commmitment) #6870 Remove
commitment.v1.MerklePathin favour ofcommitment.v2.MerklePath. - #6923 The JSON msg API for
VerifyMembershipMsgandVerifyNonMembershipMsgpayloads for client contractSudoMsghas been updated. The fieldpathhas been changed tomerkle_path. This change requires updates to 08-wasm client contracts for integration. - (apps/callbacks) #7000 Add base application version to contract keeper callbacks.
- (light-clients/08-wasm) #5154 Use bytes in wasm contract api instead of wrapped.
- (core, core/08-wasm) #5397 Add coordinator Setup functions to the Path type.
- (core/05-port) #6341 Modify
UnmarshalPacketDatainterface to take in the context, portID, and channelID. This allows for packet data’s to be unmarshaled based on the channel version. - (core/02-client) #6863 remove ClientStoreProvider interface in favour of concrete type.
- (core/05-port) #6988 Modify
UnmarshalPacketDatainterface to return the underlying application version. - (apps/27-interchain-accounts) #7053 Remove ICS27 channel capability migration introduced in v6.
- (apps/27-interchain-accounts) #8002 Remove ICS-29: fee middleware.
- (core/04-channel) #8053 Remove channel upgradability.
State Machine Breaking
- (light-clients/06-solomachine) #6313 Fix: No-op to avoid panicking on
UpdateStatefor invalid misbehaviour submissions. - (apps/callbacks) #8014 Callbacks will now return an error acknowledgement if the recvPacket callback fails. This reverts all app callback changes whereas before we only reverted the callback changes. We also error on all callbacks if the callback data is set but malformed whereas before we ignored the error and continued processing.
- (apps/callbacks) #5349 Check if clients params are duplicates.
- (apps/transfer) #6268 Use memo strings instead of JSON keys in
AllowedPacketDataof transfer authorization. - (light-clients/07-tendermint) Fix: No-op to avoid panicking on
UpdateStatefor invalid misbehaviour submissions. - (light-clients/06-solomachine) #6313 Fix: No-op to avoid panicking on
UpdateStatefor invalid misbehaviour submissions.
Improvements
- (testing)#7430 Update the block proposer in test chains for each block.
- (apps/27-interchain-accounts) #5533 ICA host sets the host connection ID on
OnChanOpenTry, so that ICA controller implementations are not obliged to set the value onOnChanOpenInitif they are not able. - (core/02-client, core/03-connection, apps/27-interchain-accounts) #6256 Add length checking of array fields in messages.
- (light-clients/08-wasm) #5146 Use global wasm VM instead of keeping an additional reference in keeper.
- (core/04-channels) #7935 Limit payload size for both v1 and v2 packet.
- (core/runtime) #7601 - IBC core runtime env.
- (core/08-wasm) #5294 Don’t panic during any store operations.
- (apps) #5305- Remove GetSigners from
sdk.Msgimplementations. - (apps) #/5778 Use json for marshalling/unmarshalling transfer packet data.
- (core/08-wasm) #5785 Allow module safe queries in ICA.
- (core/ante) #6278 Performance: Exclude pruning from tendermint client updates in ante handler executions.
- (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.
- #6716 Add
HasModuleto capability keeper to allow checking if a scoped module already exists.
Bug Fixes
- (apps/27-interchain-accounts) #7277 Use
GogoResolverwhen populating module query safe allow list to avoid panics from unresolvable protobuf dependencies. - (core/04-channel) #7342 Read Tx cmd flags including from address to avoid Address cannot be empty error when upgrade-channels via cli.
- (core/03-connection) #7397 Skip the genesis validation connectionID for localhost client.
- (apps/27-interchain-accounts) #6377 Generate ICA simtest proposals only for provided keepers.