This page tracks all releases and changes from the
cosmos/ibc-go repository. For the latest
development updates, see the
UNRELEASED
section.
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 fromSendPacket
. * (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-timeouts
flag from send-tx
in the ICA CLI. * (apps/transfer)
#7239 The following functions
have been removed: BindPort
, AuthenticateCapability
, ClaimCapability
*
(capability) #7279 The module
capability
has been removed. * (testing)
#7305 Added TrustedValidators
map to TestChain
. This removes the dependency on the x/staking
module for
retrieving trusted validator sets at a given height, and removes the
GetTrustedValidators
method from the TestChain
struct. * (23-commitment)
#7486 Remove unimplemented
BatchVerifyMembership
and BatchVerifyNonMembership
functions *
(core/02-client, light-clients)
#5806 Decouple light client
routing from their encoding structure. * (core/04-channel)
#5991 The client CLI
QueryLatestConsensusState
has been removed. * (light-clients/06-solomachine)
#6037 Remove Initialize
function from ClientState
and move logic to Initialize
function of
LightClientModule
. * (light-clients/06-solomachine)
#6230 Remove
GetTimestampAtHeight
, Status
and UpdateStateOnMisbehaviour
functions
from ClientState
and move logic to functions of LightClientModule
. *
(core/02-client) #6084 Removed
stakingKeeper
as an argument to NewKeeper
and replaced with a
ConsensusHost
implementation. * (testing)
#6070 Remove
AssertEventsLegacy
function. * (core)
#6138 Remove Router
reference
from IBC core keeper and use instead the router on the existing PortKeeper
reference. * (core/04-channel)
#6023 Remove emission of
non-hexlified event attributes packet_data
and packet_ack
. * (core)
#6320 Remove unnecessary
Proof
interface from exported
package. * (core/05-port)
#6341 Modify
UnmarshalPacketData
interface 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 theDenomTrace
type. * (apps/27-interchain-accounts) #6598 Mark therequests
repeated field ofMsgModuleQuerySafe
non-nullable. * (23-commmitment) #6644 Introducecommitment.v2.MerklePath
to includerepeated bytes
in favour ofrepeated string
. This supports using merkle path keys which include non UTF-8 encoded runes. * (23-commmitment) #6870 Removecommitment.v1.MerklePath
in favour ofcommitment.v2.MerklePath
. * (apps/27-interchain-accounts) #6749 The ICA controllerNewIBCMiddleware
constructor 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 separatemetrics
package on core. * (core/02-client) #6777 TheNewClientProposalHandler
of02-client
has been removed. * (core/types) #6794 The composite interfaceQueryServer
has been removed from packagecore/types
. Please use the granularQueryServer
interfaces provided by each core submodule. * (light-clients/06-solomachine) #6888 RemoveTypeClientMisbehaviour
constant and theType
method onMisbehaviour
. * (light-clients/06-solomachine, light-clients/07-tendermint) #6891 TheVerifyMembership
andVerifyNonMembership
functions of solomachine’sClientState
have been made private. TheVerifyMembership
,VerifyNonMembership
,GetTimestampAtHeight
,Status
andInitialize
functions of tendermint’sClientState
have 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 inPath
have been removed from 24-host in favour of their sybling functions ending inKey
. * (23-commmitment) #6633 MerklePath has been changed to userepeated bytes
in favour ofrepeated strings
. * (23-commmitment) #6644 Introducecommitment.v2.MerklePath
to includerepeated bytes
in favour ofrepeated string
. This supports using merkle path keys which include non UTF-8 encoded runes. * (23-commmitment) #6870 Removecommitment.v1.MerklePath
in favour ofcommitment.v2.MerklePath
. * #6923 The JSON msg API forVerifyMembershipMsg
andVerifyNonMembershipMsg
payloads for client contractSudoMsg
has been updated. The fieldpath
has 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 ModifyUnmarshalPacketData
interface 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
UnmarshalPacketData
interface 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
UpdateState
for 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 inAllowedPacketData
of transfer authorization. * (light-clients/07-tendermint) Fix: No-op to avoid panicking onUpdateState
for invalid misbehaviour submissions. * (light-clients/06-solomachine) #6313 Fix: No-op to avoid panicking onUpdateState
for 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 onOnChanOpenTry
, so that ICA controller implementations are not obliged to set the value onOnChanOpenInit
if 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 fromsdk.Msg
implementations. * (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 AddHasModule
to capability keeper to allow checking if a scoped module already exists. ### Bug Fixes * (apps/27-interchain-accounts) #7277 UseGogoResolver
when 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. ### Testing API * #7688 AddedSendMsgsWithSender
toTestChain
. * #7430 Update block proposer in testing * #5493 Add IBCClientHeader func for endpoint and update tests * #6685 Configure relayers to watch only channels associated with an individual test * #6758 Tokens are successfully forwarded from A to C through B