This page tracks all releases and changes from the cosmos/ibc-go repository.
For the latest development updates, see the UNRELEASED section.
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
UnboundedSpendLimitas the token amount.
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.
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
UpdateStatefor 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
AllowedPacketDataof 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.
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.
Dependencies
- #4539 Update Cosmos SDK to v0.47.5.
Improvements
- (apps/27-interchain-accounts) #4537 Add argument to
generate-packet-datacli 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.
Dependencies
- #4122 Update Cosmos SDK to v0.47.4.
Improvements
- #4187 Adds function
WithICS4Wrapperto 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
PacketDataUnmarshalerinterface that allows a middleware to request the packet data to be unmarshaled by the base application. - #4199 Adds optional
PacketDataProviderinterface for retrieving custom packet data stored on behalf of another application. - #4200 Adds optional
PacketDatainterface which application’s packet data may implement.
Bug Fixes
Dependencies
Improvements
- (apps/transfer) #3454 Support transfer authorization unlimited spending when the max
uint256value 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
Dependencies
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
IterateClientstoIterateClientStates. The function now takes a prefix argument which may be used for prefix iteration over the client store. - (light-clients/tendermint)#1768 Removed
AllowUpdateAfterExpiry,AllowUpdateAfterMisbehaviourbooleans as they are deprecated (see ADR026) - (06-solomachine) #1679 Remove
typessub-package from06-solomachinelightclient directory. - (07-tendermint) #1677 Remove
typessub-package from07-tendermintlightclient directory. - (06-solomachine) #1687 Bump
06-solomachineprotobuf version fromv2tov3. - (06-solomachine) #1687 Removed
DataTypeenum and associated message types from06-solomachine.DataTypehas been removed fromSignBytesandSignatureAndDatain favour ofpath. - (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
GetClientIDfunction from 06-solomachineMisbehaviourtype. - (06-solomachine) #1100 Deprecate
ClientIdfield in 06-solomachineMisbehaviourtype. - (07-tendermint) #1097 Remove
GetClientIDfunction from 07-tendermintMisbehaviourtype. - (07-tendermint) #1097 Deprecate
ClientIdfield in 07-tendermintMisbehaviourtype. - (modules/core/exported) #1107 Merging the
HeaderandMisbehaviourinterfaces into a singleClientMessagetype. - (06-solomachine)#1906 Removed
AllowUpdateAfterProposalboolean as it has been deprecated (see 01_concepts of the solo machine spec for more details). - (07-tendermint) #1896 Remove error return from
IterateConsensusStateAscendingin07-tendermint. - (apps/27-interchain-accounts) #2638 Interchain accounts host and controller Keepers now expects a keeper which fulfills the expected
exported.ScopedKeeperinterface for the capability keeper. - (06-solomachine) #2761 Removed deprecated
ClientIdfield fromMisbehaviourandallow_update_after_proposalfield fromClientState. - (apps) #3154 Remove unused
ProposalContentsfunction. - (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/banksend enabled before escrowing fees. - (core/04-channel) #3009 Change check to disallow optimistic sends.
Improvements
- (core) #3082 Add
HasConnectionandHasChannelmethods. - (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.Msgtypes 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
MsgSubmitMisbehaviourtoUpdateClientkeeper function. DeprecatingSubmitMisbehaviourendpoint. - (modules/core/02-client) #1208 Replace
CheckHeaderAndUpdateStateusage in 02-client with calls toVerifyClientMessage,CheckForMisbehaviour,UpdateStateOnMisbehaviourandUpdateState. - (modules/light-clients/09-localhost) #1187 Removing localhost light client implementation as it is not functional. An upgrade handler is provided in
modules/migrations/v5to prune09-localhostclients and consensus states from the store. - (modules/core/02-client) #1186 Removing
GetRootfunction from ConsensusState interface in02-client.GetRootis 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
ClientUpdateProposalto set client state in lightclient implementationsCheckSubstituteAndUpdateStatemethods. - (modules/core/02-client) #1197 Adding
CheckForMisbehaviourtoClientStateinterface. - (modules/core/02-client) #1210 Removing
CheckHeaderAndUpdateStatefromClientStateinterface & associated light client implementations. - (modules/core/02-client) #1212 Removing
CheckMisbehaviourAndUpdateStatefromClientStateinterface & associated light client implementations. - (modules/core/exported) #1206 Adding new method
UpdateStatetoClientStateinterface. - (modules/core/02-client) #1741 Emitting a new
upgrade_chainevent upon setting upgrade consensus state. - (client) #724
IsRevisionFormatandIsClientIDFormathave 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()fromMisbehaviourinterface. Submit client misbehaviour cli command requires an explicit client id now. - (06-solomachine) #1972 Solo machine implementation of
ZeroCustomFieldsfn now panics as the fn is only used for upgrades which solo machine does not support. - (light-clients/06-solomachine) Moving
verifyMisbehaviourfunction from update.go to misbehaviour_handle.go. - #2434 Removed all
TypeMsgconstants - (modules/core/exported) #2539 Removing
GetVersionsfromConnectionIinterface. - (core/02-connection) #2419 Add optional proof data to proto definitions of
MsgConnectionOpenTryandMsgConnectionOpenAckfor 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-tendermintconsensus states on duplicate header updates. - (light-clients) #2736 Updating
VerifyMembershipandVerifyNonMembershipmethods to usePathinterface. - (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
PrefixedClientStorePathandPrefixedClientStoreKeyfunctions 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
AppModuleBasicfor the 06-solomachine client and remove solo machine type registration from core IBC. Chains must register theAppModuleBasicof light clients. - (light-clients/07-tendermint) #2825 Add
AppModuleBasicfor the 07-tendermint client and remove tendermint type registration from core IBC. Chains must register theAppModuleBasicof 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
MustParseClientStatePathwhich 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
AssertEventswhich asserts events against expected event map.
Bug Fixes
- (testing) #3295 The function
SetupWithGenesisValSetwill set the baseapp chainID before runningInitChain - (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
UpgradeProposalsto 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-tendermintstore. - (core/02-client) #3010 Update
Paginateto useFilterPaginateinClientStatesandConnectionChannelsgrpc queries.