Skip to main content
Version: Next

Migrating from v8 to v9

This guide provides instructions for migrating to a new version of ibc-go.

There are four sections based on the four potential user groups of this document:

Note: ibc-go supports golang semantic versioning and therefore all imports must be updated on major version releases.

Chains

  • No relevant changes were made in this release.

IBC Apps

API removals

The exported.ChannelI and exported.CounterpartyChannelI interfaces have been removed. Please use the concrete types. The exported.ConnectionI and exported.CounterpartyConnectionI interfaces have been removed. Please use the concrete types.

The functions GetState(), GetOrdering(), GetCounterparty(), GetConnectionHops(), GetVersion() of the Channel type have been removed. The functions GetPortID(), GetChannelID() of the CounterpartyChannel type have been removed. The functions GetClientID(), GetState(), GetCounterparty(), GetVersions(), and GetDelayPeriod of the Connection type have been removed. The functions GetClientID(), GetConnectionID(), and GetPrefix() of the CounterpartyConnection type have been removed.

API deprecation notice

The testing package functions coordinator.Setup, coordinator.SetupClients, coordinator.SetupConnections, coordinator.CreateConnections, and coordinator.CreateChannels have been deprecated and will be removed in v10. Please use the new functions path.Setup, path.SetupClients, path.SetupConnections, path.CreateConnections, path.CreateChannels.

IBC testing package

  • The mock.PV type has been removed in favour of cmttypes.MockPV (#5709).
  • Functions ConstructUpdateTMClientHeader and ConstructUpdateTMClientHeaderWithTrustedHeight of TestChain type have been replaced with IBCClientHeader. This function will construct a 07-tendermint header to update the light client on the counterparty chain. The trusted height must be passed in as a non-zero height.
  • GetValsAtHeight has been renamed to GetTrustedValidators

Relayers

  • Renaming of event attribute keys in #5603.

IBC Light Clients

API removals

The ExportMetadata interface function has been removed from the ClientState interface. Core IBC will export all key/value's within the 02-client store.

07-tendermint

The IterateConsensusMetadata function has been removed.

08-wasm

The ExportMetadataMsg struct has been removed and is no longer required for contracts to implement. Core IBC will handle exporting all key/value's written to the store by a light client contract. The ZeroCustomFields interface function has been removed from the ClientState interface. Core IBC only used this function to set tendermint client states when scheduling an IBC software upgrade. The interface function has been replaced by a type assertion.