This guide provides instructions for migrating to version v7.1.0
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.
In the previous release of ibc-go, the localhost v1
light client module was deprecated and removed. The ibc-go v7.1.0
release introduces v2
of the 09-localhost light client module.
An automatic migration handler is configured in the core IBC module to set the localhost ClientState
and sentinel ConnectionEnd
in state.
In order to use the 09-localhost client chains must update the AllowedClients
parameter in the 02-client submodule of core IBC. This can be configured directly in the application upgrade handler or alternatively updated via the legacy governance parameter change proposal.
We strongly recommend chains to perform this action so that intra-ledger communication can be carried out using the familiar IBC interfaces.
See the upgrade handler code sample provided below or follow this link for the upgrade handler used by the ibc-go simapp.
func CreateV7LocalhostUpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
clientKeeper clientkeeper.Keeper,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
// explicitly update the IBC 02-client params, adding the localhost client type
params := clientKeeper.GetParams(ctx)
params.AllowedClients = append(params.AllowedClients, exported.Localhost)
clientKeeper.SetParams(ctx, params)
return mm.RunMigrations(ctx, configurator, vm)
}
}
An automatic migration handler is configured in the transfer module to set the total amount in escrow for all denominations of coins that have been sent out. For each denomination a state entry is added with the total amount of coins in escrow regardless of the channel from which they were transferred.
- No relevant changes were made in this release.
The event attribute packet_connection
(connectiontypes.AttributeKeyConnection
) has been deprecated.
Please use the connection_id
attribute (connectiontypes.AttributeKeyConnectionID
) which is emitted by all channel events.
Only send packet, receive packet, write acknowledgement, and acknowledge packet events used packet_connection
previously.
- No relevant changes were made in this release.