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.
Testing API
Improvements
- (core/04-channel) #6871 Add channel ordering to write acknowledgement event.
Features
- (apps/transfer) #6877 Added the possibility to transfer the entire user balance of a particular denomination by using UnboundedSpendLimitas the token amount.
Bug Fixes
- (core/04-channel) #6935 Check upgrade compatibility in ChanUpgradeConfirm.
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
- #6300 Bump Cosmos SDK to v0.50.6 and CometBFT to v0.38.7.
State Machine Breaking
- (light-clients/07-tendermint) #6276 Fix: No-op to avoid panicking on UpdateStatefor invalid misbehaviour submissions.
Improvements
- (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/27-interchain-accounts) #6251 Use UNORDEREDas the default ordering for new ICA channels.
- (apps/transfer) #6268 Use memo strings instead of JSON keys in AllowedPacketDataof transfer authorization.
- (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.
Features
- (core) #6055 Introduce a new interface ConsensusHostused to validate an IBCClientStateandConsensusStateagainst the host chain’s underlying consensus parameters.
- (core/02-client) #5821 Add rpc VerifyMembershipProof(querier approach for conditional clients).
- (core/04-channel) #5788 Add NewErrorAcknowledgementWithCodespaceto allow codespaces in ack errors.
- (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/27-interchain-accounts) #6167 Fixed an edge case bug where migrating params for a pre-existing ica module which implemented controller functionality only could panic when migrating params for newly added host, and align controller param migration with host.
- (app/29-fee) #6255 Delete refunded fees from state if some fee(s) cannot be refunded on channel closure.
Dependencies
- #5663 Bump Cosmos SDK to v0.50.3 and CometBFT to v0.38.2.
State Machine Breaking
- (apps/27-interchain-accounts) #5442 Increase the maximum allowed length for the memo field of InterchainAccountPacketData.
Improvements
- (core/02-client) #5429 Add wildcard "*"to allow all clients inAllowedClientsparam.
- (core) #5541 Enable emission of events on erroneous IBC application callbacks by appending a prefix to all event type and attribute keys.
Features
- (core/04-channel) #1613 Channel upgradability.
- (apps/transfer) #5280 Add list of allowed packet data keys to AllocationofTransferAuthorization.
- (apps/27-interchain-accounts) #5633 Allow setting new and upgrading existing ICA (ordered) channels to use unordered ordering.
Bug Fixes
Dependencies
API Breaking
- (core) #4703 Make PortKeeperfield ofIBCKeepera pointer.
- (core/23-commitment) #4459 Remove PrettyandStringcustom implementations ofMerklePath.
- #3205 Make event emission functions unexported.
- (apps/27-interchain-accounts, apps/transfer) #3253 Rename IsBoundtoHasCapability.
- (apps/27-interchain-accounts, apps/transfer) #3303 Make HasCapabilityprivate.
- #3303 Add missing/remove unnecessary gogoproto directive.
- (apps/27-interchain-accounts) #3967 Add encoding type as argument to ICA encoding/decoding functions.
- (core) #3867 Remove unnecessary event attribute from INIT handshake msgs.
- (core/04-channel) #3806 Remove unused EventTypeTimeoutPacketOnClose.
- (testing) #4018 Allow failure expectations when using chain.SendMsgs.
State Machine Breaking
- (apps/transfer, apps/27-interchain-accounts, app/29-fee) #4992 Set validation for length of string fields.
Improvements
- #3304 Remove unnecessary defer func statements.
- (apps/29-fee) #3054 Add page result to ics29-fee queries.
- (apps/27-interchain-accounts, apps/transfer) #3077 Add debug level logging for the error message which is discarded when generating a failed acknowledgement.
- (core/03-connection) #3244 Cleanup 03-connection msg validate basic test.
- (core/02-client) #3514 Add check for the client status in CreateClient.
- (apps/29-fee) #4100 Adding MetadataFromVersionto29-feepackagetypes.
- (apps/29-fee) #4290 Use types.MetadataFromVersionhelper function for callback handlers.
- (core/04-channel) #4155 Adding IsOpenandIsClosedmethods toChanneltype.
- (core/03-connection) #4110 Remove Versioninterface and casting functions from 03-connection.
- (core) #4835 Use expected interface for legacy params subspace parameter of keeper constructor functions.
Features
- (capability) #3097 Migrate capability module from Cosmos SDK to ibc-go.
- (core/02-client) #3640 Migrate client params to be self managed.
- (core/03-connection) #3650 Migrate connection params to be self managed.
- (apps/transfer) #3553 Migrate transfer parameters to be self managed (#3553)
- (apps/27-interchain-accounts) #3520 Migrate ica/controller parameters to be self managed (#3590)
- (apps/27-interchain-accounts) #3520 Migrate ica/host to params to be self managed.
- (apps/transfer) #3104 Add metadata for IBC tokens.
- #4620 Migrate to gov v1 via the additions of MsgRecoverClientandMsgIBCSoftwareUpgrade. The legacy proposal typesClientUpdateProposalandUpgradeProposalhave been deprecated and will be removed in the next major release.
Bug Fixes
- (apps/transfer) #4709 Order query service RPCs to fix availability of denom traces endpoint when no args are provided.
- (core/04-channel) #3357 Handle unordered channels in NextSequenceReceivequery.
- (e2e) #3402 Allow retries for messages signed by relayer.
- (core/04-channel) #3417 Add missing query for next sequence send.
- (testing) #4630 Update testconfigto use revision formatted chain IDs.
- (core/04-channel) #4706 Retrieve correct next send sequence for packets in unordered channels.
- (core/02-client) #4746 Register implementations against govtypes.Contentinterface.
- (apps/27-interchain-accounts) #4944 Add missing proto interface registration.
- (core/02-client) #5020 Fix expect pointer error when unmarshalling misbehaviour file.
Documentation
Testing
- #3138 Use testing.TBinstead oftesting.Tto support benchmarks and fuzz tests.
- #3980 Change sdk.Eventsusage to[]abci.Eventin the testing package.
- #3986 Add function RelayPacketWithResults.
- #4182 Return current validator set when requesting current height in GetValsAtHeight.
- #4319 Fix in TimeoutPacketfunction to use counterpartyportID/channelIDinGetNextSequenceRecvquery.
- #4180 Remove unused function simapp.SetupWithGenesisAccounts.
Miscellaneous Tasks
- (apps/27-interchain-accounts) #4677 Remove ica store key.
- #4724 Add HasValidateBasiccompiler assertions to messages.
- #4725 Add fzf selection for config files.
- #4741 Panic with error.
- #3186 Migrate all SDK errors to the new errors go module.
- #3216 Modify simappto fulfill the SDKruntime.AppIinterface.
- #3290 Remove gogoprotoyaml tags from proto files.
- #3439 Use nil pointer pattern to check for interface compliance.
- #3433 Add tests for acknowledgement.Acknowledgement().
- (core, apps/29-fee) #3462 Add missing nilcheck and corresponding tests for query handlers.
- (light-clients/07-tendermint, light-clients/06-solomachine) #3571 Delete unused GetProofSpecsfunctions.
- (core) #3616 Add debug log for redundant relay.
- (core) #3892 Add deprecated option to create_localhostfield.
- (core) #3893 Add deprecated option to MsgSubmitMisbehaviour.
- (apps/transfer, apps/29-fee) #4570 Remove GetSignBytesfrom 29-fee and transfer msgs.
- #3630 Add annotation to Msg service.
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.
Dependencies
- #3393 Bump Cosmos SDK to v0.46.12 and replace Tendermint with CometBFT v0.34.37.
Improvements
- (core) #3082 Add HasConnectionandHasChannelmethods.
- (apps/transfer) #3454 Support transfer authorization unlimited spending when the max uint256value is provided as limit.
Features
- #3079 Add authz support for ics20.
Bug Fixes
- #3346 Properly handle ordered channels in UnreceivedPacketsquery.
Dependencies
- #2868 Bump ICS 23 to v0.9.0.
- #2458 Bump Cosmos SDK to v0.46.2
- #2784 Bump Cosmos SDK to v0.46.6 and Tendermint to v0.34.23.
API Breaking
- (apps/27-interchain-accounts) #2607 SerializeCosmosTxnow takes in a[]proto.Messageinstead of[]sdk.Msg.
- (apps/transfer) #2446 Remove SendTransferfunction in favor of a privatesendTransferfunction. All IBC transfers must be initiated withMsgTransfer.
- (apps/29-fee) #2395 Remove param space from ics29 NewKeeper function. The field was unused.
- (apps/27-interchain-accounts) #2133 Generates genesis protos in a separate directory to avoid circular import errors. The protobuf package name has changed for the genesis types.
- (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.
- (transfer) #2638 Transfer Keeper now expects a keeper which fulfills the expected exported.ScopedKeeperinterface for the capability keeper.
- (05-port) #2638 Port Keeper now expects a keeper which fulfills the expected exported.ScopedKeeperinterface for the capability keeper.
- (04-channel) #2638 Channel Keeper now expects a keeper which fulfills the expected exported.ScopedKeeperinterface for the capability keeper.
- (core/04-channel)#1703 Update SendPacketAPI to take in necessary arguments and construct rest of packet rather than taking in entire packet. The generated packet sequence is returned by theSendPacketfunction.
- (modules/apps/27-interchain-accounts) #2433 Renamed icatypes.PortPrefix to icatypes.ControllerPortPrefix & icatypes.PortID to icatypes.HostPortID
- (testing) #2567 Modify SendPacketAPI ofEndpointto match the API ofSendPacketin 04-channel.
State Machine Breaking
- (apps/transfer) #2651 Introduce mustProtoMarshalJSONfor ics20 packet data marshalling which will skip emission (marshalling) of the memo field if unpopulated (empty).
- (27-interchain-accounts) #2590 Removing port prefix requirement from the ICA host channel handshake
- (transfer) #2377 Adding sequencetoMsgTransferResponse.
- (light-clients/07-tendermint) #2555 Forbid negative values for TrustingPeriod,UnbondingPeriodandMaxClockDrift(as specified in ICS-07).
- (core/04-channel) #2973 Write channel state before invoking app callbacks in ack and confirm channel handshake steps.
Improvements
- (apps/27-interchain-accounts) #2134 Adding upgrade handler to ICS27 controllersubmodule for migration of channel capabilities. This upgrade handler migrates ownership of channel capabilities from the underlying application to the ICS27controllersubmodule.
- (apps/27-interchain-accounts) #2102 ICS27 controller middleware now supports a nil underlying application. This allows chains to make use of interchain accounts with existing auth mechanisms such as x/group and x/gov.
- (apps/27-interchain-accounts) #2157 Adding IsMiddlewareEnabledfunctionality to enforce calls to ICS27 msg server to not route to the underlying application.
- (apps/27-interchain-accounts) #2146 ICS27 controller now claims the channel capability passed via ibc core, and passes nilto the underlying app callback. The channel capability arg inSendTxis now ignored and looked up internally.
- (apps/27-interchain-accounts) #2177 Adding IsMiddlewareEnabledflag to interchain accountsActiveChannelgenesis type.
- (apps/27-interchain-accounts) #2140 Adding migration handler to ICS27 controllersubmodule to assert ownership of channel capabilities and set middleware enabled flag for existing channels. The ICS27 module consensus version has been bumped from 1 to 2.
- (core/04-channel) #2304 Adding GetAllChannelsWithPortPrefixfunction which filters channels based on a provided port prefix.
- (apps/27-interchain-accounts) #2248 Adding call to underlying app in OnChanCloseConfirmcallback of the controller submodule and adding relevant unit tests.
- (apps/27-interchain-accounts) #2251 Adding msgServerstruct to controller submodule that embeds theKeeperstruct.
- (apps/27-interchain-accounts) #2290 Changed DefaultParamsfunction inhostsubmodule to allow all messages by default. Defined a constant namedAllowAllHostMsgsforhostmodule to keep wildcard ”*” string which allows all messages.
- (apps/27-interchain-accounts) #2297 Adding cli command to generate ICS27 packet data.
- (modules/core/keeper) #1728 Updated channel callback errors to include portID & channelID for better identification of errors.
- (testing) #2657 Carry ProposerAddressthrough committed blocks. AllowDefaultGenTxGasto be modified.
- (core/03-connection) #2745 Adding ConnectionParamsgrpc query and CLI to 03-connection.
- (apps/29-fee) #2786 Save gas by checking key existence with KVStore’sHasmethod.
Features
- (apps/27-interchain-accounts) #2147 Adding a SubmitTxgRPC endpoint for the ICS27 Controller module which allows owners of interchain accounts to submit transactions. This replaces the previously existing need for authentication modules to implement this standard functionality.
- (testing/simapp) #2190 Adding the new x/groupcosmos-sdk module to simapp.
- (apps/transfer) #2595 Adding optional memo field to FungibleTokenPacketDataandMsgTransfer.
Bug Fixes
Dependencies
- #2647 Bump Cosmos SDK to v0.46.4 and Tendermint to v0.34.22.
State Machine Breaking
- (apps/transfer) #2651 Introduce mustProtoMarshalJSONfor ics20 packet data marshalling which will skip emission (marshalling) of the memo field if unpopulated (empty).
- (27-interchain-accounts) #2590 Removing port prefix requirement from the ICA host channel handshake
- (transfer) #2377 Adding sequencetoMsgTransferResponse.
Improvements
- (testing) #2657 Carry ProposerAddressthrough committed blocks. AllowDefaultGenTxGasto be modified.
Features
- (apps/transfer) #2595 Adding optional memo field to FungibleTokenPacketDataandMsgTransfer.
Bug Fixes
- (apps/transfer) #2679 Check x/banksend enabled.
Dependencies
API Breaking
- (testing)#2028 New interface ibctestingtypes.StakingKeeperadded and set for the testing appStakingKeepersetup.
- (core/04-channel) #1418 NewPacketIdhas been renamed toNewPacketIDto comply with go linting rules.
- (core/ante) #1418 AnteDecoratorhas been renamed toRedundancyDecoratorto comply with go linting rules and to give more clarity to the purpose of the Decorator.
- (core/ante) #1820 RedundancyDecoratorhas been renamed toRedundantRelayDecoratorto make the name for explicit.
- (testing) #1418 MockIBCApphas been renamed toIBCAppandMockEmptyAcknowledgementhas been renamed toEmptyAcknowledgementto comply with go linting rules
- (apps/27-interchain-accounts) #2058 Added MessageRouterinterface and replaced*baseapp.MsgServiceRouterwith it. The controller and host keepers of apps/27-interchain-accounts have been updated to use it.
- (apps/27-interchain-accounts)#2302 Handle unwrapping of channel version in interchain accounts channel reopening handshake flow. The hostsubmoduleKeepernow requires anICS4Wrappersimilarly to thecontrollersubmodule.
Improvements
- (27-interchain-accounts) #1352 Add support for Cosmos-SDK simulation to ics27 module.
- (linting) #1418 Fix linting errors, resulting compatibility with go1.18 linting style, golangci-lint 1.46.2 and the revivie linter. This caused breaking changes in core/04-channel, core/ante, and the testing library.
Features
- (apps/27-interchain-accounts) #2193 Adding InterchainAccountgRPC query endpoint to ICS27controllersubmodule to allow users to retrieve registered interchain account addresses.
Bug Fixes
- (27-interchain-accounts) #2308 Nil checks have been added to ensure services are not registered for nil host or controller keepers.
- (makefile) #1785 Fetch the correct versions of protocol buffers dependencies from tendermint, cosmos-sdk, and ics23.
- (modules/core/04-channel)#1919 Fixed formatting of sequence for packet “acknowledgement written” logs.
Dependencies
State Machine Breaking
- (core/04-channel) #2973 Write channel state before invoking app callbacks in ack and confirm channel handshake steps.
Improvements
- (apps/29-fee) #2786 Save gas on IsFeeEnabled.
Bug Fixes
- (apps/29-fee) #2942 Check x/banksend enabled before escrowing fees.
Documentation
- #2737 Fix migration/docs for ICA controller middleware.
Miscellaneous Tasks
- #2772 Integrated git cliff into the code base to automate generation of changelogs.
Dependencies
- #2588 Bump SDK version to v0.45.10 and Tendermint to v0.34.22.
State Machine Breaking
- (apps/transfer) #2651 Introduce mustProtoMarshalJSONfor ics20 packet data marshalling which will skip emission (marshalling) of the memo field if unpopulated (empty).
- (27-interchain-accounts) #2590 Removing port prefix requirement from the ICA host channel handshake
- (transfer) #2377 Adding sequencetoMsgTransferResponse.
Features
- (apps/transfer) #2595 Adding optional memo field to FungibleTokenPacketDataandMsgTransfer.
Bug Fixes
- (apps/transfer) #2679 Check x/banksend enabled.
Dependencies
- #2288 Bump SDK version to v0.45.8 and Tendermint to v0.34.21.
Features
- (apps/27-interchain-accounts) #2193 Adding InterchainAccountgRPC query endpoint to ICS27controllersubmodule to allow users to retrieve registered interchain account addresses.
Bug Fixes
- (27-interchain-accounts) #2308 Nil checks have been added to ensure services are not registered for nil host or controller keepers.
Dependencies
API Breaking
- (core/04-channel) #1792 Remove PreviousChannelIDfromNewMsgChannelOpenTryarguments.MsgChannelOpenTry.ValidateBasic()returns error if the deprecatedPreviousChannelIDis not empty.
- (core/03-connection) #1797 Remove PreviousConnectionIDfromNewMsgConnectionOpenTryarguments.MsgConnectionOpenTry.ValidateBasic()returns error if the deprecatedPreviousConnectionIDis not empty.
- (modules/core/03-connection) #1672 Remove crossing hellos from connection handshakes. The PreviousConnectionIdinMsgConnectionOpenTryhas been deprecated.
- (modules/core/04-channel) #1317 Remove crossing hellos from channel handshakes. The PreviousChannelIdinMsgChannelOpenTryhas been deprecated.
- (transfer) #1250 Deprecate GetTransferAccountsince thetransfermodule account is never used.
- (channel) #1283 The OnChanOpenInitapplication callback now returns a version string in line with the latest spec changes.
- (modules/29-fee)#1338 Renaming Resultfield inIncentivizedAcknowledgementtoAppAcknowledgement.
- (modules/29-fee)#1343 Renaming KeyForwardRelayerAddresstoKeyRelayerAddressForAsyncAck, andParseKeyForwardRelayerAddresstoParseKeyRelayerAddressForAsyncAck.
- (apps/27-interchain-accounts)#1432 Updating RegisterInterchainAccountto include an additionalversionargument, supporting ICS29 fee middleware functionality in ICS27 interchain accounts.
- (apps/27-interchain-accounts)#1565 Removing NewErrorAcknowledgementin favour ofchanneltypes.NewErrorAcknowledgement.
- (transfer)#1565 Removing NewErrorAcknowledgementin favour ofchanneltypes.NewErrorAcknowledgement.
- (channel)#1565 Updating NewErrorAcknowledgementto accept an error instead of a string and removing the possibility of non-deterministic writes to application state.
- (core/04-channel)#1636 Removing SplitChannelVersionandMergeChannelVersionsfunctions since they are not used.
State Machine Breaking
- (apps/transfer) #1907 Blocked module account addresses are no longer allowed to send IBC transfers.
- (apps/27-interchain-accounts) #1882 Explicitly check length of interchain account packet data in favour of nil check.
Improvements
- (app/20-transfer) #1680 Adds migration to correct any malformed trace path information of tokens with denoms that contains slashes. The transfer module consensus version has been bumped to 2.
- (app/20-transfer) #1730 parse the ics20 denomination provided via a packet using the channel identifier format specified by ibc-go.
- (cleanup) #1335 gofumpt -w -l .to standardize the code layout more strictly thango fmt ./...
- (middleware) #1022 Add GetAppVersionto the ICS4Wrapper interface. This function should be used by IBC applications to obtain their own version since the version set in the channel structure may be wrapped many times by middleware.
- (modules/core/04-channel) #1232 Updating params on NewPacketIdand moving to bottom of file.
- (app/29-fee) #1305 Change version string for fee module to ics29-1
- (app/29-fee) #1341 Check if the fee module is locked and if the fee module is enabled before refunding all fees
- (transfer) #1414 Emitting Sender address from fungible_token_packetevents inOnRecvPacketandOnAcknowledgementPacket.
- (testing/simapp) #1397 Adding mock module to maccperms and adding check to ensure mock module is not a blocked account address.
- (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
- (modules/light-clients/07-tendermint) #1713 Allow client upgrade proposals to update TrustingPeriod. See ADR-026 for context.
- (core/client) #1740 Add cosmos_proto.implements_interfaceto adhere to guidelines in Cosmos SDK ADR 019 for annotatinggoogle.protobuf.Anytypes
Features
- #276 Adding the Fee Middleware module v1
- (apps/29-fee) #1229 Adding CLI commands for getting all unrelayed incentivized packets and packet by packet-id.
- (apps/29-fee) #1224 Adding Query/CounterpartyAddress and CLI to ICS29 fee middleware
- (apps/29-fee) #1225 Adding Query/FeeEnabledChannel and Query/FeeEnabledChannels with CLIs to ICS29 fee middleware.
- (modules/apps/29-fee) #1230 Adding CLI command for getting incentivized packets for a specific channel-id.
Bug Fixes
- (apps/29-fee) #1774 Change non nil relayer assertion to non empty to avoid import/export issues for genesis upgrades.
- (apps/29-fee) #1278 The URI path for the query to get all incentivized packets for a specific channel did not follow the same format as the rest of queries.
- (modules/core/04-channel)#1919 Fixed formatting of sequence for packet “acknowledgement written” logs.
Dependencies
- #2589 Bump SDK version to v0.45.10 and Tendermint to v0.34.22.
State Machine Breaking
- (apps/transfer) #2651 Introduce mustProtoMarshalJSONfor ics20 packet data marshalling which will skip emission (marshalling) of the memo field if unpopulated (empty).
- (27-interchain-accounts) #2590 Removing port prefix requirement from the ICA host channel handshake
- (transfer) #2377 Adding sequencetoMsgTransferResponse.
Features
- (apps/transfer) #2595 Adding optional memo field to FungibleTokenPacketDataandMsgTransfer.
Bug Fixes
- (apps/transfer) #2679 Check x/banksend enabled.
Dependencies
- #2286 Bump SDK version to v0.45.8 and Tendermint to v0.34.21.
Features
- (apps/27-interchain-accounts) #2193 Adding InterchainAccountgRPC query endpoint to ICS27controllersubmodule to allow users to retrieve registered interchain account addresses.
Bug Fixes
- (27-interchain-accounts) #2308 Nil checks have been added to ensure services are not registered for nil host or controller keepers.
Dependencies
State Machine Breaking
- (apps/transfer) #1907 Blocked module account addresses are no longer allowed to send IBC transfers.
- (apps/27-interchain-accounts) #1882 Explicitly check length of interchain account packet data in favour of nil check.
Improvements
- (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
- (modules/light-clients/07-tendermint) #1713 Allow client upgrade proposals to update TrustingPeriod. See ADR-026 for context.
- (app/20-transfer) #1680 Adds migration to correct any malformed trace path information of tokens with denoms that contains slashes. The transfer module consensus version has been bumped to 2.
- (app/20-transfer) #1730 parse the ics20 denomination provided via a packet using the channel identifier format specified by ibc-go.
- (core/client) #1740 Add cosmos_proto.implements_interfaceto adhere to guidelines in Cosmos SDK ADR 019 for annotatinggoogle.protobuf.Anytypes
Bug Fixes
- (modules/core/04-channel)#1919 Fixed formatting of sequence for packet “acknowledgement written” logs.
Dependencies
- #1300 Bump SDK version to v0.45.4
Improvements
- (transfer) #1342 DenomTracegrpc now takes in either anibc denomor ahashinstead of only accepting ahash.
- (modules/core/04-channel) #1160 Improve uint64 -> stringperformance inLogger.
- (modules/core/04-channel) #1279 Add selected channel version to MsgChanOpenInitResponse and MsgChanOpenTryResponse. Emit channel version during OpenInit/OpenTry
- (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper.ibckeeper.NewKeepernow panics if any of the keepers passed in is empty.
- (transfer) #1414 Emitting Sender address from fungible_token_packetevents inOnRecvPacketandOnAcknowledgementPacket.
- (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
- (modules/light-clients/07-tendermint) #1118 Deprecating AllowUpdateAfterExpiryandAllowUpdateAfterMisbehaviour. See ADR-026 for context.
Features
- (modules/core/02-client) #1336 Adding Query/ConsensusStateHeights gRPC for fetching the height of every consensus state associated with a client.
- (modules/apps/transfer) #1416 Adding gRPC endpoint for getting an escrow account for a given port-id and channel-id.
- (modules/apps/27-interchain-accounts) #1512 Allowing ICA modules to handle all message types with ”*”.
Bug Fixes
Improvements
- (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
- (core/client) #1740 Add cosmos_proto.implements_interfaceto adhere to guidelines in Cosmos SDK ADR 019 for annotatinggoogle.protobuf.Anytypes
Dependencies
- #1300 Bump SDK version to v0.45.4
Improvements
- (transfer) #1342 DenomTracegrpc now takes in either anibc denomor ahashinstead of only accepting ahash.
- (modules/core/04-channel) #1160 Improve uint64 -> stringperformance inLogger.
- (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper.ibckeeper.NewKeepernow panics if any of the keepers passed in is empty.
- (transfer) #1414 Emitting Sender address from fungible_token_packetevents inOnRecvPacketandOnAcknowledgementPacket.
- (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
Bug Fixes
- (modules/core/04-channel) #1130 Call packet.GetSequence()rather than passing func inWriteAcknowledgementlog output
Dependencies
- #404 Bump Go version to 1.17
- #851 Bump SDK version to v0.45.1
- #948 Bump ics23/go to v0.7
- (core) #709 Replace github.com/pkg/errors with stdlib errors
API Breaking
- (testing) #939 Support custom power reduction for testing.
- (modules/core/05-port) #1086 Added counterpartyChannelIDargument to IBCModule.OnChanOpenAck
- (channel) #848 Added ChannelIdto MsgChannelOpenInitResponse
- (testing) #813 The ackargument to the testing functionRelayPackethas been removed as it is no longer needed.
- (testing) #774 Added ChainIDarg toSetupWithGenesisValSeton the testing app.Coordinatorgenerated ChainIDs now starts at index 1
- (transfer) #675 Transfer NewKeepernow takes in an ICS4Wrapper. The ICS4Wrapper may be the IBC Channel Keeper when ICS20 is not used in a middleware stack. The ICS4Wrapper is required for applications wishing to connect middleware to ICS20.
- (core) #650 Modify OnChanOpenTryIBC application module callback to return the negotiated app version. The version passed into theMsgChanOpenTryhas been deprecated and will be ignored by core IBC.
- (core) #629 Removes the GetProofSpecsfrom the ClientState interface. This function was previously unused by core IBC.
- (transfer) #517 Separates the ICS 26 callback functions from AppModuleinto a new typeIBCModulefor ICS 20 transfer.
- (modules/core/02-client) #536 GetSelfConsensusStatereturn type changed from bool to error.
- (channel) #644 Removes CounterpartyHopsfunction from the ChannelKeeper.
- (testing) #776 Adding helper fn to generate capability name for testing callbacks
- (testing) #892 IBC Mock modules store the scoped keeper and portID within the IBCMockApp. They also maintain reference to the AppModule to update the AppModule’s list of IBC applications it references. Allows for the mock module to be reused as a base application in middleware stacks.
- (channel) #882 The WriteAcknowledgementAPI now takesexported.Acknowledgementinstead of a byte array
- (modules/core/ante) #950 Replaces the channel keeper with the IBC keeper in the IBC AnteDecoratorin order to execute the entire message and be able to reject redundant messages that are in the same block as the non-redundant messages.
State Machine Breaking
- (transfer) #818 Error acknowledgements returned from Transfer OnRecvPacketnow include a deterministic ABCI code and error message.
Improvements
- (client) #888 Add GetTimestampAtHeighttoClientState
- (interchain-accounts) #1037 Add a function InitModuleto the interchain accountsAppModule. This function should be called within the upgrade handler when adding the interchain accounts module to a chain. It should be called in place of InitGenesis (set the consensus version in the version map).
- (testing) #942 NewTestChainwill create 4 validators in validator set by default. A new constructor functionNewTestChainWithValSetis provided for test writers who want custom control over the validator set of test chains.
- (testing) #904 Add ParsePacketFromEventsfunction to the testing package. Useful when sending/relaying packets via the testing package.
- (testing) #893 Support custom private keys for testing.
- (testing) #810 Additional testing function added to Endpointtype calledRecvPacketWithResult. Performs the same functionality as the existingRecvPacketfunction but also returns the message result.path.RelayPacketno longer uses the provided acknowledgement argument and instead obtains the acknowledgement via MsgRecvPacket events.
- (connection) #721 Simplify connection handshake error messages when unpacking client state.
- (channel) #692 Minimize channel logging by only emitting the packet sequence, source port/channel, destination port/channel upon packet receives, acknowledgements and timeouts.
- #383 Adds helper functions for merging and splitting middleware versions from the underlying app version.
- (modules/core/05-port) #288 Making the 05-port keeper function IsBound public. The IsBound function checks if the provided portID is already binded to a module.
- (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.
- (channel) #644 Adds GetChannelConnectionto the ChannelKeeper. This function returns the connectionID and connection state associated with a channel.
- (channel) \647 Reorganizes channel handshake handling to set channel state after IBC application callbacks.
- (interchain-accounts) #1466 Emit event when there is an acknowledgement during OnRecvPacket.
Features
- #432 Introduce MockIBCAppstruct to the mock module. Allows the mock module to be reused to perform custom logic on each IBC App interface function. This might be useful when testing out IBC applications written as middleware.
- #380 Adding the Interchain Accounts module v1
- #679 New CLI command query ibc-transfer denom-hash <denom trace>to get the denom hash for a denom trace; this might be useful for debug
Bug Fixes
- (testing) #884 Add and use in simapp a custom ante handler that rejects redundant transactions
- (transfer) #978 Support base denoms with slashes in denom validation
- (client) #941 Classify client states without consensus states as expired
- (channel) #995 Call packet.GetSequence()rather than passing func inAcknowledgePacketlog output
Dependencies
- #2578 Bump SDK version to v0.45.10 and Tendermint to v0.34.22.
State Machine Breaking
- (apps/transfer) #2651 Introduce mustProtoMarshalJSONfor ics20 packet data marshalling which will skip emission (marshalling) of the memo field if unpopulated (empty).
- (transfer) #2377 Adding sequencetoMsgTransferResponse.
Features
- (apps/transfer) #2595 Adding optional memo field to FungibleTokenPacketDataandMsgTransfer.
Bug Fixes
- (apps/transfer) #2679 Check x/banksend enabled.
Dependencies
State Machine Breaking
- (apps/transfer) #1907 Blocked module account addresses are no longer allowed to send IBC transfers.
Improvements
- (modules/light-clients/07-tendermint) #1713 Allow client upgrade proposals to update TrustingPeriod. See ADR-026 for context.
- (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
- (app/20-transfer) #1680 Adds migration to correct any malformed trace path information of tokens with denoms that contains slashes. The transfer module consensus version has been bumped to 2.
- (app/20-transfer) #1730 parse the ics20 denomination provided via a packet using the channel identifier format specified by ibc-go.
- (core/client) #1740 Add cosmos_proto.implements_interfaceto adhere to guidelines in Cosmos SDK ADR 019 for annotatinggoogle.protobuf.Anytypes
Bug Fixes
- (modules/core/04-channel)#1919 Fixed formatting of sequence for packet “acknowledgement written” logs.
Dependencies
Improvements
- (transfer) #1342 DenomTracegrpc now takes in either anibc denomor ahashinstead of only accepting ahash.
- (modules/core/04-channel) #1160 Improve uint64 -> stringperformance inLogger.
- (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper.ibckeeper.NewKeepernow panics if any of the keepers passed in is empty.
- (transfer) #1414 Emitting Sender address from fungible_token_packetevents inOnRecvPacketandOnAcknowledgementPacket.
- (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
- (modules/light-clients/07-tendermint) #1118 Deprecating AllowUpdateAfterExpiryandAllowUpdateAfterMisbehaviour. See ADR-026 for context.
Features
- (modules/core/02-client) #1336 Adding Query/ConsensusStateHeights gRPC for fetching the height of every consensus state associated with a client.
- (modules/apps/transfer) #1416 Adding gRPC endpoint for getting an escrow account for a given port-id and channel-id.
Bug Fixes
Improvements
- (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
- (core/client) #1740 Add cosmos_proto.implements_interfaceto adhere to guidelines in Cosmos SDK ADR 019 for annotatinggoogle.protobuf.Anytypes
Improvements
- (transfer) #1342 DenomTracegrpc now takes in either anibc denomor ahashinstead of only accepting ahash.
- (modules/core/04-channel) #1160 Improve uint64 -> stringperformance inLogger.
- (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper.ibckeeper.NewKeepernow panics if any of the keepers passed in is empty.
- (transfer) #1414 Emitting Sender address from fungible_token_packetevents inOnRecvPacketandOnAcknowledgementPacket.
- (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
Bug Fixes
- (modules/core/04-channel) #1130 Call packet.GetSequence()rather than passing func inWriteAcknowledgementlog output
Improvements
- (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
- (core/client) #1740 Add cosmos_proto.implements_interfaceto adhere to guidelines in Cosmos SDK ADR 019 for annotatinggoogle.protobuf.Anytypes
Dependencies
- #1268 Bump SDK version to v0.44.8 and Tendermint to version 0.34.19
Improvements
- (transfer) #1342 DenomTracegrpc now takes in either anibc denomor ahashinstead of only accepting ahash.
- (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper.ibckeeper.NewKeepernow panics if any of the keepers passed in is empty.
- (transfer) #1414 Emitting Sender address from fungible_token_packetevents inOnRecvPacketandOnAcknowledgementPacket.
- (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
Bug Fixes
- (modules/core/04-channel) #1130 Call packet.GetSequence()rather than passing func inWriteAcknowledgementlog output
Dependencies
State Machine Breaking
- (transfer) #818 Error acknowledgements returned from Transfer OnRecvPacketnow include a deterministic ABCI code and error message.
Features
- #679 New CLI command query ibc-transfer denom-hash <denom trace>to get the denom hash for a denom trace; this might be useful for debug
Bug Fixes
Dependencies
- #567 Bump SDK version to v0.44.4
Improvements
- (02-client) #568 In IBC transfercli command use local clock time as reference for relative timestamp timeout if greater than the block timestamp queried from the latest consensus state corresponding to the counterparty channel.
- #583 Move third_party/proto/confio/proofs.proto to third_party/proto/proofs.proto to enable proto service reflection. Migrate buffrom v1beta1 to v1.
Bug Fixes
- (02-client) #500 Fix IBC update-client proposalcli command to expect correct number of args.
Dependencies
API Breaking
- (core) #227 Remove sdk.Result from application callbacks
- (transfer) #350 Change FungibleTokenPacketData to use a string for the Amount field. This enables token transfers with amounts previously restricted by uint64. Up to the maximum uint256 value is supported.
Features
- #384 Added NegotiateAppVersionmethod toIBCModuleinterface supported by a gRPC query service in05-port. This provides routing of requests to the desired application module callback, which in turn performs application version negotiation.
Dependencies
Improvements
- (transfer) #1342 DenomTracegrpc now takes in either anibc denomor ahashinstead of only accepting ahash.
- (modules/core/04-channel) #1160 Improve uint64 -> stringperformance inLogger.
- (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper.ibckeeper.NewKeepernow panics if any of the keepers passed in is empty.
- (transfer) #1414 Emitting Sender address from fungible_token_packetevents inOnRecvPacketandOnAcknowledgementPacket.
- (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
- (modules/light-clients/07-tendermint) #1118 Deprecating AllowUpdateAfterExpiryandAllowUpdateAfterMisbehaviour. See ADR-026 for context.
Features
- (modules/core/02-client) #1336 Adding Query/ConsensusStateHeights gRPC for fetching the height of every consensus state associated with a client.
- (modules/apps/transfer) #1416 Adding gRPC endpoint for getting an escrow account for a given port-id and channel-id.
Bug Fixes
Improvements
- (transfer) #1342 DenomTracegrpc now takes in either anibc denomor ahashinstead of only accepting ahash.
- (modules/core/04-channel) #1160 Improve uint64 -> stringperformance inLogger.
- (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper.ibckeeper.NewKeepernow panics if any of the keepers passed in is empty.
- (transfer) #1414 Emitting Sender address from fungible_token_packetevents inOnRecvPacketandOnAcknowledgementPacket.
- (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
Bug Fixes
- (modules/core/04-channel) #1130 Call packet.GetSequence()rather than passing func inWriteAcknowledgementlog output
Dependencies
- #1267 Bump SDK version to v0.44.8 and Tendermint to version 0.34.19
Improvements
- (transfer) #1342 DenomTracegrpc now takes in either anibc denomor ahashinstead of only accepting ahash.
- (modules/core/04-channel) #1160 Improve uint64 -> stringperformance inLogger.
- (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper.ibckeeper.NewKeepernow panics if any of the keepers passed in is empty.
- (transfer) #1414 Emitting Sender address from fungible_token_packetevents inOnRecvPacketandOnAcknowledgementPacket.
- (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
Bug Fixes
- (modules/core/04-channel) #1130 Call packet.GetSequence()rather than passing func inWriteAcknowledgementlog output
Dependencies
State Machine Breaking
- (transfer) #818 Error acknowledgements returned from Transfer OnRecvPacketnow include a deterministic ABCI code and error message.
Features
- #679 New CLI command query ibc-transfer denom-hash <denom trace>to get the denom hash for a denom trace; this might be useful for debug
Bug Fixes
State Machine Breaking
- (24-host) #344 Increase port identifier limit to 128 characters.
Improvements
- #373 Added optional field PacketCommitmentSequencestoQueryPacketAcknowledgementsRequestto provide filtering of packet acknowledgements.
Features
- #372 New CLI command query ibc client status <client id>to get the current activity status of a client.
Dependencies
- #386 Bump tendermint from v0.34.12 to v0.34.13.
Dependencies
- #367 Bump cosmos-sdk from 0.43 to 0.44.
Bug Fixes
- (07-tendermint) #241 Ensure tendermint client state latest height revision number matches chain id revision number.
- (07-tendermint) #234 Use sentinel value for the consensus state root set during a client upgrade. This prevents genesis validation from failing.
- (modules) #223 Use correct Prometheus format for metric labels.
- (06-solomachine) #214 Disable defensive timestamp check in SendPacket for solo machine clients.
- (07-tendermint) #210 Export all consensus metadata on genesis restarts for tendermint clients.
- (core) #200 Fixes incorrect export of IBC identifier sequences. Previously, the next identifier sequence for clients/connections/channels was not set during genesis export. This resulted in the next identifiers being generated on the new chain to reuse old identifiers (the sequences began again from 0).
- (02-client) #192 Fix IBC query ibc client headercli command. Support historical queries for query header/node-state commands.
- (modules/light-clients/06-solomachine) #153 Fix solo machine proof height sequence mismatch bug.
- (modules/light-clients/06-solomachine) #122 Fix solo machine merkle prefix casting bug.
- (modules/light-clients/06-solomachine) #120 Fix solo machine handshake verification bug.
- (modules/light-clients/06-solomachine) #153 fix solo machine connection handshake failure at ConnectionOpenAck.
API Breaking
- (04-channel) #220 Channel legacy handler functions were removed. Please use the MsgServer functions or directly call the channel keeper’s handshake function.
- (modules) #206 Expose relayer sdk.AccAddressonOnRecvPacket,OnAcknowledgementPacket,OnTimeoutPacketmodule callbacks to enable incentivization.
- (02-client) #181 Remove ‘InitialHeight’ from UpdateClient Proposal. Only copy over latest consensus state from substitute client.
- (06-solomachine) #169 Change FrozenSequence to boolean in solomachine ClientState. The solo machine proto package has been bumped from v1tov2.
- (module/core/02-client) #165 Remove GetFrozenHeight from the ClientState interface.
- (modules) #166 Remove GetHeight from the misbehaviour interface. The consensus_heightattribute has been removed from Misbehaviour events.
- (modules) #162 Remove deprecated Handler types in core IBC and the ICS 20 transfer module.
- (modules/core) #161 Remove Type(), Route(), GetSignBytes() from 02-client, 03-connection, and 04-channel messages.
- (modules) #140 IsFrozen() client state interface changed to Status(). gRPC ClientStatusroute added.
- (modules/core) #109 Remove connection and channel handshake CLI commands.
- (modules) #107 Modify OnRecvPacket callback to return an acknowledgement which indicates if it is successful or not. Callback state changes are discarded for unsuccessful acknowledgements only.
- (modules) #108 All message constructors take the signer as a string to prevent upstream bugs. The String()function for an SDK Acc Address relies on external context.
- (transfer) #275 Remove ‘ChanCloseInit’ function from transfer keeper. ICS20 does not close channels.
State Machine Breaking
- (modules/light-clients/07-tendermint) #99 Enforce maximum chain-id length for tendermint client.
- (modules/light-clients/07-tendermint) #141 Allow a new form of misbehaviour that proves counterparty chain breaks time monotonicity, automatically enforce monotonicity in UpdateClient and freeze client if monotonicity is broken.
- (modules/light-clients/07-tendermint) #141 Freeze the client if there’s a conflicting header submitted for an existing consensus state.
- (modules/core/02-client) #8405 Refactor IBC client update governance proposals to use a substitute client to update a frozen or expired client.
- (modules/core/02-client) #8673 IBC upgrade logic moved to 02-client and an IBC UpgradeProposal is added.
- (modules/core/03-connection) #171 Introduces a new parameter MaxExpectedTimePerBlockto allow connections to calculate and enforce a block delay that is proportional to time delay set by connection.
- (core) #268 Perform a no-op on redundant relay messages. Previous behaviour returned an error. Now no state change will occur and no error will be returned.
Improvements
- (04-channel) #220 Channel handshake events are now emitted with the channel keeper.
- (core/02-client) #205 Add in-place and genesis migrations from SDK v0.42.0 to ibc-go v1.0.0. Solo machine protobuf definitions are migrated from v1 to v2. All solo machine consensus states are pruned. All expired tendermint consensus states are pruned.
- (modules/core) #184 Improve error messages. Uses unique error codes to indicate already relayed packets.
- (07-tendermint) #182 Remove duplicate checks in upgrade logic.
- (modules/core/04-channel) #7949 Standardized channel Acknowledgementmoved to its own file. Codec registration redundancy removed.
- (modules/core/04-channel) #144 Introduced a packet_data_hexattribute to emit the hex-encoded packet data in events. This allows for raw binary (proto-encoded message) to be sent over events and decoded correctly on relayer. Originalpacket_datais DEPRECATED. All relayers and IBC event consumers are encouraged to switch topacket_data_hexas soon as possible.
- (core/04-channel) #197 Introduced a packet_ack_hexattribute to emit the hex-encoded acknowledgement in events. This allows for raw binary (proto-encoded message) to be sent over events and decoded correctly on relayer. Originalpacket_ackis DEPRECATED. All relayers and IBC event consumers are encouraged to switch topacket_ack_hexas soon as possible.
- (modules/light-clients/07-tendermint) #125 Implement efficient iteration of consensus states and pruning of earliest expired consensus state on UpdateClient.
- (modules/light-clients/07-tendermint) #141 Return early in case there’s a duplicate update call to save Gas.
- (modules/core/ante) #235 Introduces a new IBC Antedecorator that will reject transactions that only contain redundant packet messages (and accompany UpdateClient msgs). This will prevent relayers from wasting fees by submitting messages for packets that have already been processed by previous relayer(s). The Antedecorator is only applied on CheckTx and RecheckTx and is therefore optional for each node.
Features
- #198 New CLI command query ibc-transfer escrow-address <port> <channel id>to get the escrow address for a channel; can be used to then query balance of escrowed tokens
Client Breaking Changes
- (02-client/cli) #196 Rename node-statecli command toself-consensus-state.