Skip to content

Latest commit

 

History

History
769 lines (506 loc) · 62.4 KB

CHANGELOG.md

File metadata and controls

769 lines (506 loc) · 62.4 KB

Changelog

[Unreleased]

Dependencies

  • #1653 Bump SDK version to v0.46
  • #2124 Bump SDK version to v0.46.1

API Breaking

  • (testing)#2028 New interface ibctestingtypes.StakingKeeper added and set for the testing app StakingKeeper setup.
  • (core/04-channel) #1418 NewPacketId has been renamed to NewPacketID to comply with go linting rules.
  • (core/ante) #1418 AnteDecorator has been renamed to RedundancyDecorator to comply with go linting rules and to give more clarity to the purpose of the Decorator.
  • (core/ante) #1820 RedundancyDecorator has been renamed to RedundantRelayDecorator to make the name for explicit.
  • (testing) #1418 MockIBCApp has been renamed to IBCApp and MockEmptyAcknowledgement has been renamed to EmptyAcknowledgement to comply with go linting rules.
  • (light-clients/tendermint)#1768 Removed AllowUpdateAfterExpiry, AllowUpdateAfterMisbehaviour booleans as they are deprecated (see ADR026)
  • (06-solomachine) #1679 Remove types sub-package from 06-solomachine lightclient directory.
  • (07-tendermint) #1677 Remove types sub-package from 07-tendermint lightclient directory.
  • (06-solomachine) #1687 Bump 06-solomachine protobuf version from v2 to v3.
  • (06-solomachine) #1687 Removed DataType enum and associated message types from 06-solomachine. DataType has been removed from SignBytes and SignatureAndData in favour of path.
  • (02-client) #598 The client state and consensus state return value has been removed from VerifyUpgradeAndUpdateState. Light client implementations must update the client state and consensus state after verifying a valid client upgrade.
  • (06-solomachine) #1100 Remove GetClientID function from 06-solomachine Misbehaviour type.
  • (06-solomachine) #1100 Deprecate ClientId field in 06-solomachine Misbehaviour type.
  • (07-tendermint) #1097 Remove GetClientID function from 07-tendermint Misbehaviour type.
  • (07-tendermint) #1097 Deprecate ClientId field in 07-tendermint Misbehaviour type.
  • (modules/core/exported) #1107 Merging the Header and Misbehaviour interfaces into a single ClientMessage type.
  • (06-solomachine)#1906 Removed AllowUpdateAfterProposal boolean as it has been deprecated (see 01_concepts of the solo machine spec for more details).
  • (07-tendermint) #1896 Remove error return from IterateConsensusStateAscending in 07-tendermint.
  • (apps/27-interchain-accounts) #2035 Interchain accounts host and controller Keepers now expects a keeper which fulfills the expected ScopedKeeper interface for the capability keeper.
  • (transfer) #2034 Transfer Keeper now expects a keeper which fulfills the expected ScopedKeeper interface for the capability keeper.
  • (05-port) #2025 Port Keeper now expects a keeper which fulfills the expected ScopedKeeper interface for the capability keeper.
  • (04-channel) #2024 Channel Keeper now expects a keeper which fulfills the expected ScopedKeeper interface for the capability keeper.
  • (apps/27-interchain-accounts) #2058 Added MessageRouter interface and replaced *baseapp.MsgServiceRouter with it. The controller and host keepers of apps/27-interchain-accounts have been updated to use it.

State Machine Breaking

Improvements

  • (27-interchain-accounts) #1352 Add support for Cosmos-SDK simulation to ics27 module.
  • (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.
  • (linting) #1418 Fix linting errors, resulting compatiblity 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.
  • (modules/light-clients/07-tendermint) #1713 Allow client upgrade proposals to update TrustingPeriod. See ADR-026 for context.
  • (modules/core/02-client) #1188 Routing MsgSubmitMisbehaviour to UpdateClient keeper function. Deprecating SubmitMisbehaviour endpoint.
  • (modules/core/02-client) #1208 Replace CheckHeaderAndUpdateState usage in 02-client with calls to VerifyClientMessage, CheckForMisbehaviour, UpdateStateOnMisbehaviour and UpdateState.
  • (modules/light-clients/09-localhost) #1187 Removing localhost light client implementation as it is not functional. An upgrade handler is provided in modules/migrations/v5 to prune 09-localhost clients and consensus states from the store.
  • #1186 Removing GetRoot function from ConsensusState interface in 02-client. GetRoot is unused by core IBC.
  • (modules/core/02-client) #1196 Adding VerifyClientMessage to ClientState interface.
  • (modules/core/02-client) #1198 Adding UpdateStateOnMisbehaviour to ClientState interface.
  • (modules/core/02-client) #1170 Updating ClientUpdateProposal to set client state in lightclient implementations CheckSubstituteAndUpdateState methods.
  • (modules/core/02-client) #1197 Adding CheckForMisbehaviour to ClientState interface.
  • (modules/core/02-client) #1195 Removing CheckHeaderAndUpdateState from ClientState interface & associated light client implementations.
  • (modules/core/02-client) #1189 Removing CheckMisbehaviourAndUpdateState from ClientState interface & associated light client implementations.
  • (modules/core/exported) #1206 Adding new method UpdateState to ClientState interface.
  • (modules/core/02-client) #1741 Emitting a new upgrade_chain event upon setting upgrade consensus state.
  • (client) #724 IsRevisionFormat and IsClientIDFormat have been updated to disallow newlines before the dash used to separate the chainID and revision number, and the client type and client sequence.
  • (02-client/cli) #897 Remove GetClientID() from Misbehaviour interface. Submit client misbehaviour cli command requires an explicit client id now.
  • (06-solomachine) #1972 Solo machine implementation of ZeroCustomFields fn now panics as the fn is only used for upgrades which solo machine does not support.
  • (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) #2146 ICS27 controller now claims the channel capability passed via ibc core, and passes nil to the underlying app callback. The channel capability arg in SendTx is now ignored and looked up internally.
  • (apps/27-interchain-accounts) #2134 Adding upgrade handler to ICS27 controller submodule for migration of channel capabilities. This upgrade handler migrates ownership of channel capabilities from the underlying application to the ICS27 controller submodule.
  • (apps/27-interchain-accounts) #2157 Adding IsMiddlewareEnabled functionality to enforce calls to ICS27 msg server to not route to the underlying application.

Features

  • (apps/27-interchain-accounts) #2147 Adding a SubmitTx gRPC 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.

Bug Fixes

  • (makefile) #1785 Fetch the correct versions of protocol buffers dependencies from tendermint, cosmos-sdk, and ics23.
  • (light-clients/solomachine) #1839 Fixed usage of the new diversifier in validation of changing diversifiers for the solo machine. The current diversifier must sign over the new diversifier.
  • (light-clients/07-tendermint) #1674 Submitted ClientState is zeroed out before checking the proof in order to prevent the proposal from containing information governance is not actually voting on.
  • (modules/core/02-client)#1676 ClientState must be zeroed out for UpgradeProposals to pass validation. This prevents a proposal containing information governance is not actually voting on.

v4.0.0 - 2022-08-12

Dependencies

  • #1627 Bump Go version to 1.18
  • #1905 Bump SDK version to v0.45.7

API Breaking

  • (core/04-channel) #1792 Remove PreviousChannelID from NewMsgChannelOpenTry arguments. MsgChannelOpenTry.ValidateBasic() returns error if the deprecated PreviousChannelID is not empty.
  • (core/03-connection) #1797 Remove PreviousConnectionID from NewMsgConnectionOpenTry arguments. MsgConnectionOpenTry.ValidateBasic() returns error if the deprecated PreviousConnectionID is not empty.
  • (modules/core/03-connection) #1672 Remove crossing hellos from connection handshakes. The PreviousConnectionId in MsgConnectionOpenTry has been deprecated.
  • (modules/core/04-channel) #1317 Remove crossing hellos from channel handshakes. The PreviousChannelId in MsgChannelOpenTry has been deprecated.
  • (transfer) #1250 Deprecate GetTransferAccount since the transfer module account is never used.
  • (channel) #1283 The OnChanOpenInit application callback now returns a version string in line with the latest spec changes.
  • (modules/29-fee)#1338 Renaming Result field in IncentivizedAcknowledgement to AppAcknowledgement.
  • (modules/29-fee)#1343 Renaming KeyForwardRelayerAddress to KeyRelayerAddressForAsyncAck, and ParseKeyForwardRelayerAddress to ParseKeyRelayerAddressForAsyncAck.
  • (apps/27-interchain-accounts)#1432 Updating RegisterInterchainAccount to include an additional version argument, supporting ICS29 fee middleware functionality in ICS27 interchain accounts.
  • (apps/27-interchain-accounts)#1565 Removing NewErrorAcknowledgement in favour of channeltypes.NewErrorAcknowledgement.
  • (transfer)#1565 Removing NewErrorAcknowledgement in favour of channeltypes.NewErrorAcknowledgement.
  • (channel)#1565 Updating NewErrorAcknowledgement to accept an error instead of a string and removing the possibility of non-deterministic writes to application state.
  • (core/04-channel)#1636 Removing SplitChannelVersion and MergeChannelVersions functions 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 than go fmt ./...
  • (middleware) #1022 Add GetAppVersion to 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 NewPacketId and 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_packet events in OnRecvPacket and OnAcknowledgementPacket.
  • (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_interface to adhere to guidelines in Cosmos SDK ADR 019 for annotating google.protobuf.Any types

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.

v3.2.0 - 2022-08-12

Dependencies

  • #1627 Bump Go version to 1.18
  • #1905 Bump SDK version to v0.45.7

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_interface to adhere to guidelines in Cosmos SDK ADR 019 for annotating google.protobuf.Any types

Bug Fixes

  • (modules/core/04-channel)#1919 Fixed formatting of sequence for packet "acknowledgement written" logs.

v3.1.1 - 2022-08-02

Dependencies

  • #1525 Bump SDK version to v0.45.5

Improvements

  • (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
  • (core/client) #1740 Add cosmos_proto.implements_interface to adhere to guidelines in Cosmos SDK ADR 019 for annotating google.protobuf.Any types

v3.1.0 - 2022-06-14

Dependencies

  • #1300 Bump SDK version to v0.45.4

Improvements

  • (transfer) #1342 DenomTrace grpc now takes in either an ibc denom or a hash instead of only accepting a hash.
  • (modules/core/04-channel) #1160 Improve uint64 -> string performance in Logger.
  • (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.NewKeeper now panics if any of the keepers passed in is empty.
  • (transfer) #1414 Emitting Sender address from fungible_token_packet events in OnRecvPacket and OnAcknowledgementPacket.
  • (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
  • (modules/light-clients/07-tendermint) #1118 Deprecating AllowUpdateAfterExpiry and AllowUpdateAfterMisbehaviour. 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

  • (modules/core/04-channel) #1130 Call packet.GetSequence() rather than passing func in WriteAcknowledgement log output
  • (apps/transfer) #1451 Fixing the support for base denoms that contain slashes.

v3.0.2 - 2022-08-02

Improvements

  • (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
  • (core/client) #1740 Add cosmos_proto.implements_interface to adhere to guidelines in Cosmos SDK ADR 019 for annotating google.protobuf.Any types

v3.0.1 - 2022-06-14

Dependencies

  • #1300 Bump SDK version to v0.45.4

Improvements

  • (transfer) #1342 DenomTrace grpc now takes in either an ibc denom or a hash instead of only accepting a hash.
  • (modules/core/04-channel) #1160 Improve uint64 -> string performance in Logger.
  • (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper. ibckeeper.NewKeeper now panics if any of the keepers passed in is empty.
  • (transfer) #1414 Emitting Sender address from fungible_token_packet events in OnRecvPacket and OnAcknowledgementPacket.
  • (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 in WriteAcknowledgement log output

v3.0.0 - 2022-03-15

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 counterpartyChannelID argument to IBCModule.OnChanOpenAck
  • (channel) #848 Added ChannelId to MsgChannelOpenInitResponse
  • (testing) #813 The ack argument to the testing function RelayPacket has been removed as it is no longer needed.
  • (testing) #774 Added ChainID arg to SetupWithGenesisValSet on the testing app. Coordinator generated ChainIDs now starts at index 1
  • (transfer) #675 Transfer NewKeeper now 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 OnChanOpenTry IBC application module callback to return the negotiated app version. The version passed into the MsgChanOpenTry has been deprecated and will be ignored by core IBC.
  • (core) #629 Removes the GetProofSpecs from the ClientState interface. This function was previously unused by core IBC.
  • (transfer) #517 Separates the ICS 26 callback functions from AppModule into a new type IBCModule for ICS 20 transfer.
  • (modules/core/02-client) #536 GetSelfConsensusState return type changed from bool to error.
  • (channel) #644 Removes CounterpartyHops function 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 WriteAcknowledgement API now takes exported.Acknowledgement instead of a byte array
  • (modules/core/ante) #950 Replaces the channel keeper with the IBC keeper in the IBC AnteDecorator in 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 OnRecvPacket now include a deterministic ABCI code and error message.

Improvements

  • (client) #888 Add GetTimestampAtHeight to ClientState
  • (interchain-accounts) #1037 Add a function InitModule to the interchain accounts AppModule. 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 NewTestChain will create 4 validators in validator set by default. A new constructor function NewTestChainWithValSet is provided for test writers who want custom control over the validator set of test chains.
  • (testing) #904 Add ParsePacketFromEvents function 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 Endpoint type called RecvPacketWithResult. Performs the same functionality as the existing RecvPacket function but also returns the message result. path.RelayPacket no 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 IsRevisionFormat and IsClientIDFormat have been updated to disallow newlines before the dash used to separate the chainID and revision number, and the client type and client sequence.
  • (channel) #644 Adds GetChannelConnection to 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 MockIBCApp struct 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 in AcknowledgePacket log output

v2.4.0 - 2022-08-12

Dependencies

  • #1627 Bump Go version to 1.18
  • #1905 Bump SDK version to v0.45.7

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_interface to adhere to guidelines in Cosmos SDK ADR 019 for annotating google.protobuf.Any types

Bug Fixes

  • (modules/core/04-channel)#1919 Fixed formatting of sequence for packet "acknowledgement written" logs.

v2.3.1 - 2022-08-02

Dependencies

  • #1525 Bump SDK version to v0.45.5

Improvements

  • (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
  • (core/client) #1740 Add cosmos_proto.implements_interface to adhere to guidelines in Cosmos SDK ADR 019 for annotating google.protobuf.Any types

v2.3.0 - 2022-06-14

Dependencies

  • #404 Bump Go version to 1.17
  • #1300 Bump SDK version to v0.45.4

Improvements

  • (transfer) #1342 DenomTrace grpc now takes in either an ibc denom or a hash instead of only accepting a hash.
  • (modules/core/04-channel) #1160 Improve uint64 -> string performance in Logger.
  • (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper. ibckeeper.NewKeeper now panics if any of the keepers passed in is empty.
  • (transfer) #1414 Emitting Sender address from fungible_token_packet events in OnRecvPacket and OnAcknowledgementPacket.
  • (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
  • (modules/light-clients/07-tendermint) #1118 Deprecating AllowUpdateAfterExpiry and AllowUpdateAfterMisbehaviour. 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

  • (modules/core/04-channel) #1130 Call packet.GetSequence() rather than passing func in WriteAcknowledgement log output
  • (apps/transfer) #1451 Fixing the support for base denoms that contain slashes.

v2.2.2 - 2022-08-02

Improvements

  • (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
  • (core/client) #1740 Add cosmos_proto.implements_interface to adhere to guidelines in Cosmos SDK ADR 019 for annotating google.protobuf.Any types

v2.2.1 - 2022-06-14

Improvements

  • (transfer) #1342 DenomTrace grpc now takes in either an ibc denom or a hash instead of only accepting a hash.
  • (modules/core/04-channel) #1160 Improve uint64 -> string performance in Logger.
  • (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper. ibckeeper.NewKeeper now panics if any of the keepers passed in is empty.
  • (transfer) #1414 Emitting Sender address from fungible_token_packet events in OnRecvPacket and OnAcknowledgementPacket.
  • (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 in WriteAcknowledgement log output

v2.2.0 - 2022-03-15

Dependencies

  • #851 Bump SDK version to v0.45.1

v2.1.2 - 2022-08-02

Improvements

  • (core/02-client) #1570 Emitting an event when handling an upgrade client proposal.
  • (core/client) #1740 Add cosmos_proto.implements_interface to adhere to guidelines in Cosmos SDK ADR 019 for annotating google.protobuf.Any types

v2.1.1 - 2022-06-14

Dependencies

  • #1268 Bump SDK version to v0.44.8 and Tendermint to version 0.34.19

Improvements

  • (transfer) #1342 DenomTrace grpc now takes in either an ibc denom or a hash instead of only accepting a hash.
  • (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper. ibckeeper.NewKeeper now panics if any of the keepers passed in is empty.
  • (transfer) #1414 Emitting Sender address from fungible_token_packet events in OnRecvPacket and OnAcknowledgementPacket.
  • (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 in WriteAcknowledgement log output

v2.1.0 - 2022-03-15

Dependencies

  • #1084 Bump SDK version to v0.44.6
  • #948 Bump ics23/go to v0.7

State Machine Breaking

  • (transfer) #818 Error acknowledgements returned from Transfer OnRecvPacket now 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

  • (client) #941 Classify client states without consensus states as expired
  • (transfer) #978 Support base denoms with slashes in denom validation
  • (channel) #995 Call packet.GetSequence() rather than passing func in AcknowledgePacket log output

v2.0.3 - 2022-02-03

Improvements

  • (channel) #692 Minimize channel logging by only emitting the packet sequence, source port/channel, destination port/channel upon packet receives, acknowledgements and timeouts.

v2.0.2 - 2021-12-15

Dependencies

  • #589 Bump SDK version to v0.44.5

Bug Fixes

  • (modules/core) #603 Fix module name emitted as part of OnChanOpenInit event. Replacing connection module name with channel.

v2.0.1 - 2021-12-05

Dependencies

  • #567 Bump SDK version to v0.44.4

Improvements

  • (02-client) #568 In IBC transfer cli 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 buf from v1beta1 to v1.

Bug Fixes

  • (02-client) #500 Fix IBC update-client proposal cli command to expect correct number of args.

v2.0.0 - 2021-11-09

Dependencies

  • #489 Bump Tendermint to v0.34.14
  • #503 Bump SDK version to v0.44.3

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 NegotiateAppVersion method to IBCModule interface supported by a gRPC query service in 05-port. This provides routing of requests to the desired application module callback, which in turn performs application version negotiation.

v1.5.0 - 2022-06-14

Dependencies

  • #404 Bump Go version to 1.17
  • #1300 Bump SDK version to v0.45.4

Improvements

  • (transfer) #1342 DenomTrace grpc now takes in either an ibc denom or a hash instead of only accepting a hash.
  • (modules/core/04-channel) #1160 Improve uint64 -> string performance in Logger.
  • (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper. ibckeeper.NewKeeper now panics if any of the keepers passed in is empty.
  • (transfer) #1414 Emitting Sender address from fungible_token_packet events in OnRecvPacket and OnAcknowledgementPacket.
  • (modules/core/04-channel) #1464 Emit a channel close event when an ordered channel is closed.
  • (modules/light-clients/07-tendermint) #1118 Deprecating AllowUpdateAfterExpiry and AllowUpdateAfterMisbehaviour. 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

  • (modules/core/04-channel) #1130 Call packet.GetSequence() rather than passing func in WriteAcknowledgement log output
  • (apps/transfer) #1451 Fixing the support for base denoms that contain slashes.

v1.4.1 - 2022-06-14

Improvements

  • (transfer) #1342 DenomTrace grpc now takes in either an ibc denom or a hash instead of only accepting a hash.
  • (modules/core/04-channel) #1160 Improve uint64 -> string performance in Logger.
  • (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper. ibckeeper.NewKeeper now panics if any of the keepers passed in is empty.
  • (transfer) #1414 Emitting Sender address from fungible_token_packet events in OnRecvPacket and OnAcknowledgementPacket.
  • (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 in WriteAcknowledgement log output

v1.4.0 - 2022-03-15

Dependencies

  • #851 Bump SDK version to v0.45.1

v1.3.1 - 2022-06-14

Dependencies

  • #1267 Bump SDK version to v0.44.8 and Tendermint to version 0.34.19

Improvements

  • (transfer) #1342 DenomTrace grpc now takes in either an ibc denom or a hash instead of only accepting a hash.
  • (modules/core/04-channel) #1160 Improve uint64 -> string performance in Logger.
  • (modules/core/keeper) #1284 Add sanity check for the keepers passed into ibckeeper.NewKeeper. ibckeeper.NewKeeper now panics if any of the keepers passed in is empty.
  • (transfer) #1414 Emitting Sender address from fungible_token_packet events in OnRecvPacket and OnAcknowledgementPacket.
  • (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 in WriteAcknowledgement log output

v1.3.0 - 2022-03-15

Dependencies

  • #1073 Bump SDK version to v0.44.6
  • #948 Bump ics23/go to v0.7

State Machine Breaking

  • (transfer) #818 Error acknowledgements returned from Transfer OnRecvPacket now 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

  • (client) #941 Classify client states without consensus states as expired
  • (transfer) #978 Support base denoms with slashes in denom validation
  • (channel) #995 Call packet.GetSequence() rather than passing func in AcknowledgePacket log output

v1.2.6 - 2022-02-03

Improvements

  • (channel) #692 Minimize channel logging by only emitting the packet sequence, source port/channel, destination port/channel upon packet receives, acknowledgements and timeouts.

v1.2.5 - 2021-12-15

Dependencies

  • #589 Bump SDK version to v0.44.5

Bug Fixes

  • (modules/core) #603 Fix module name emitted as part of OnChanOpenInit event. Replacing connection module name with channel.

v1.2.4 - 2021-12-05

Dependencies

  • #567 Bump SDK version to v0.44.4

Improvements

  • #583 Move third_party/proto/confio/proofs.proto to third_party/proto/proofs.proto to enable proto service reflection. Migrate buf from v1beta1 to v1.

v1.2.3 - 2021-11-09

Dependencies

  • #489 Bump Tendermint to v0.34.14
  • #503 Bump SDK version to v0.44.3

v1.2.2 - 2021-10-15

Dependencies

  • #485 Bump SDK version to v0.44.2

v1.2.1 - 2021-10-04

Dependencies

  • #455 Bump SDK version to v0.44.1

v1.2.0 - 2021-09-10

State Machine Breaking

  • (24-host) #344 Increase port identifier limit to 128 characters.

Improvements

  • #373 Added optional field PacketCommitmentSequences to QueryPacketAcknowledgementsRequest to 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

v1.1.6 - 2022-01-25

Improvements

  • (channel) #692 Minimize channel logging by only emitting the packet sequence, source port/channel, destination port/channel upon packet receives, acknowledgements and timeouts.

v1.1.5 - 2021-12-15

Dependencies

  • #589 Bump SDK version to v0.44.5

Bug Fixes

  • (modules/core) #603 Fix module name emitted as part of OnChanOpenInit event. Replacing connection module name with channel.

v1.1.4 - 2021-12-05

Dependencies

  • #567 Bump SDK version to v0.44.4

Improvements

  • #583 Move third_party/proto/confio/proofs.proto to third_party/proto/proofs.proto to enable proto service reflection. Migrate buf from v1beta1 to v1.

v1.1.3 - 2021-11-09

Dependencies

  • #489 Bump Tendermint to v0.34.14
  • #503 Bump SDK version to v0.44.3

v1.1.2 - 2021-10-15

  • #485 Bump SDK version to v0.44.2

v1.1.1 - 2021-10-04

Dependencies

  • #455 Bump SDK version to v0.44.1

v1.1.0 - 2021-09-03

Dependencies

v1.0.1 - 2021-08-25

Improvements

  • #343 Create helper functions for publishing of packet sent and acknowledgement sent events.

v1.0.0 - 2021-08-10

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 header cli 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.AccAddress on OnRecvPacket, OnAcknowledgementPacket, OnTimeoutPacket module 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 v1 to v2.
  • (module/core/02-client) #165 Remove GetFrozenHeight from the ClientState interface.
  • (modules) #166 Remove GetHeight from the misbehaviour interface. The consensus_height attribute 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 ClientStatus route 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 MaxExpectedTimePerBlock to 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 defintions 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 Acknowledgement moved to its own file. Codec registration redundancy removed.
  • (modules/core/04-channel) #144 Introduced a packet_data_hex attribute 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. Original packet_data is DEPRECATED. All relayers and IBC event consumers are encouraged to switch to packet_data_hex as soon as possible.
  • (core/04-channel) #197 Introduced a packet_ack_hex attribute 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. Original packet_ack is DEPRECATED. All relayers and IBC event consumers are encouraged to switch to packet_ack_hex as 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-state cli command to self-consensus-state.

IBC in the Cosmos SDK Repository

The IBC module was originally released in v0.40.0 of the SDK. Please see the Release Notes.

The IBC module is also contained in the releases for v0.41.x and v0.42.x. Please see the Release Notes for v0.41.x and v0.42.x.

The IBC module was removed in the commit hash da064e13d56add466548135739c5860a9f7ed842 on the SDK. The release for SDK v0.43.0 will be the first release without the IBC module.

Backports should be made to the release/v0.42.x branch on the SDK.