Releases: cosmos/ibc-go
v6.1.2
UPDATES
- 5th April 2024: This release is NOT recommended since it is impacted by the ASA-2024-007 security advisory. Please use version >= 6.3.0.
We present here a summary of the most relevant changes, please see the v6.1.2 changelog for the full set of changes included in this release.
apps/transfer
- The REST endpoints
/ibc/apps/transfer/v1/denom_traces/{hash}
and/ibc/apps/transfer/v1/denom_hashes/{trace}
accept now values forhash
andtrace
that contain slashes.
Special thanks to our external contributors in this release: @emidev98
To learn more about ibc-go versioning, please read our RELEASES.md.
IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.46.7 and ibc-go v6.1.2, please follow:
v5.3.2
UPDATES
- 5th April 2024: This release is NOT recommended since it is impacted by the ASA-2024-007 security advisory. Please use version >= 5.4.0.
We present here a summary of the most relevant changes, please see the v5.3.2 changelog for the full set of changes included in this release.
apps/transfer
- The REST endpoints
/ibc/apps/transfer/v1/denom_traces/{hash}
and/ibc/apps/transfer/v1/denom_hashes/{trace}
accept now values forhash
andtrace
that contain slashes.
Special thanks to our external contributors in this release: @emidev98
To learn more about ibc-go versioning, please read our RELEASES.md.
IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.46.12 and ibc-go v5.3.2, please follow:
v4.5.1
UPDATES
- 5th April 2024: This release is NOT recommended since it is impacted by the ASA-2024-007 security advisory. Please use version >= 4.6.0.
We present here a summary of the most relevant changes, please see the v4.5.1 changelog for the full set of changes included in this release.
apps/transfer
- The REST endpoints
/ibc/apps/transfer/v1/denom_traces/{hash}
and/ibc/apps/transfer/v1/denom_hashes/{trace}
accept now values forhash
andtrace
that contain slashes.
Special thanks to our external contributors in this release: @emidev98
Please note that the v4 release line contains a bug where fee-enabled Interchain Accounts channels cannot be reopened in case of channel closure due to packet timeout. Regular Interchain Accounts channels (i.e. non fee-enabled) can be reopened. In order to be able to reopen fee-enabled Interchain Accounts channels, please upgrade to v5.3.1 or above.
To learn more about ibc-go versioning, please read our RELEASES.md.
IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.45.16 and ibc-go v4.5.1, please follow:
v4.4.3
UPDATES
- 5th April 2024: This release is NOT recommended since it is impacted by the ASA-2024-007 security advisory. Please use version >= 4.6.0.
We present here a summary of the most relevant changes, please see the v4.4.3 changelog for the full set of changes included in this release.
apps/transfer
- The REST endpoints
/ibc/apps/transfer/v1/denom_traces/{hash}
and/ibc/apps/transfer/v1/denom_hashes/{trace}
accept now values forhash
andtrace
that contain slashes.
Special thanks to our external contributors in this release: @emidev98
Please note that the v4 release line contains a bug where fee-enabled Interchain Accounts channels cannot be reopened in case of channel closure due to packet timeout. Regular Interchain Accounts channels (i.e. non fee-enabled) can be reopened. In order to be able to reopen fee-enabled Interchain Accounts channels, please upgrade to v5.3.1 or above.
To learn more about ibc-go versioning, please read our RELEASES.md.
IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.45.15 and ibc-go v4.4.3, please follow:
v4.5.0
UPDATES
- 5th April 2024: This release is NOT recommended since it is impacted by the ASA-2024-007 security advisory. Please use version >= 4.6.0.
We present here a summary of the most relevant changes, please see the v4.5.0 changelog for the full set of changes included in this release.
dependencies
Please note that the v4 release line contains a bug where fee-enabled Interchain Accounts channels cannot be reopened in case of channel closure due to packet timeout. Regular Interchain Accounts channels (i.e. non fee-enabled) can be reopened. In order to be able to reopen fee-enabled Interchain Accounts channels, please upgrade to v5.2.1 or above.
To learn more about ibc-go versioning, please read our RELEASES.md.
IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.45.16 and ibc-go v4.5.0, please follow:
v7.3.0
UPDATES
- 5th April 2024: This release is NOT recommended since it is impacted by the ASA-2024-007 security advisory. Please use version >= 7.4.0.
This release main additions are:
Support for JSON encoding of ICA transactions
We have added support for JSON encoding of transactions in the Interchain Accounts packet data. During ICA channel handshake it is possible, using the encoding
of the channel version metadata , to indicate that the ICA transactions in the data
field of InterchainAccountPacketData
will be proto3 JSON encoded. See the Transaction Encoding section in the documentation for more information.
Support for ADR 8 middleware
We have added a set of optional interfaces that IBC applications can implement, so that the callbacks middleware can target these interfaces in order to get the desired callback addresses on the source and destination chains and execute actions on packet lifecycle events. See the Callbacks Middleware section in the documentation for more information.
Shout-out to @srdtrk for all the 🌟🦄 amazing🥇🙇 work on both features.
Please see the v7.3.0 changelog for the full set of changes included in this release. Please also note that this release requires a coordinated upgrade. We present here a summary of other relevant changes included in this release:
dependencies
- Cosmos SDK has been bumped to v0.47.4.
light-clients/06-solomachine
- Solo machines are now expected to sign data on a path that 1) does not include a connection prefix (e.g.
ibc
) and 2) does not escape any characters. Because of this change we recommend NOT using the solo machine light client of versions lower than v7.3.0.
To learn more about ibc-go versioning, please read our RELEASES.md.
IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.47.4 and ibc-go v7.3.0, please follow:
- The migration from SDK 0.41.x or 0.42.x to the IBC module in the ibc-go repository based on the SDK v0.44.x.
- The migration from ibc-go v1 to v2.
- The migration from ibc-go v2 to v3.
- The migration from ibc-go v3 to v4.
- The migration from ibc-go v4 to v5.
- The migration from ibc-go v5 to v6.
- The migration from ibc-go v6 to v7.
- The migration from ibc-go v7 to v7.1.
- The migration from ibc-go v7.2 to v7.3.
v7.2.1
UPDATES
- 5th April 2024: This release is NOT recommended since it is impacted by the ASA-2024-007 security advisory. Please use version >= 7.4.0.
Please see the v7.2.1 changelog for the full set of changes included in this release.
Special thanks to our external contributors on this release: @GAtom22
To learn more about ibc-go versioning, please read our RELEASES.md.
IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.47.3 and ibc-go v7.2.1, please follow:
- The migration from SDK 0.41.x or 0.42.x to the IBC module in the ibc-go repository based on the SDK v0.44.x.
- The migration from ibc-go v1 to v2.
- The migration from ibc-go v2 to v3.
- The migration from ibc-go v3 to v4.
- The migration from ibc-go v4 to v5.
- The migration from ibc-go v5 to v6.
- The migration from ibc-go v6 to v7.
- The migration from ibc-go v7 to v7.1.
modules/apps/callbacks/v0.1.0+ibc-go-v7.3
This is the first release of the much awaited 🥁🎺 callbacks middleware 🌈🤩
I never heard of this before 🙈 what's this callbacks middleware?
The callbacks middleware is an IBC module that implements ADR-008, which means that the module is charged with superpowers to execute callbacks in any execution environment (like the Wasm or EVM execution frameworks) on packet lifecycle events. We have added the ContractKeeper
interface defining the entry points exposed to the execution environment. The execution environment is expected to execute its custom logic within these entry points.
Read the documentation or this blog post by @adiraviraj for more information.
Hmm, ok... that sounds pretentious and a bit vague 🤔 what can I do with it?
I am glad you asked: the callbacks middleware opens up endless possibilities to implement use cases of the form send X, do Y programmatically
. The main benefit for smart contract developers is the ability to leverage existing IBC app and to build new and unique apps for use cases of the form transfer + action
or ICA + action
. For example, the following will be possible to execute in a single user flow:
- Send tokens from chain A to B. If the transfer was successful, then send an ICA packet to stake/LP/swap tokens.
- Execute arbitrary smart contract logic upon receiving an ICS-20 packet.
Wow 😮 this is pretty cool, how can use it like... today?
This pre-release is compatible with ibc-go v7.3 (v7.3.0 is the first available release at the time of publishing), so the chain will need to be running at least this version. Please check out the relevant section of the documentation to learn how to wire up the middleware. Additionally, the chain should be running a version of the execution environment that implements the ContractKeeper
interface (for example, for CosmWasm chains the Confio team is aiming to add support for this in x/wasm
during Q4; and the Evmos team is also planning to add support for this in their EVM chain). Until those VM execution environments are updated, the middleware can nonetheless be used with custom Cosmos SDK modules that implement the ContractKeeper
interface.
This is a fine piece of engineering work 🛠️ who are the masterminds behind such thing?
The 🔈shout-out 🗣️ goes for the IBC team at Interchain, but specially to:
- @AdityaSripal for designing ADR-008 🧠
- @srdtrk for writing the implementation and enhancing ADR-008 ✍️
- @colin-axner for reviewing and proposing countless improvements ♾️
But we would not have been able to achieve this without the invaluable help, feedback and support of:
- @alpe from Confio 🙇
- @nicolaslara from Osmosis 🧪 Their ibc-hooks middleware inspired the design and served as a starting point for the callbacks middleware.
modules/apps/[email protected]+ibc-go-v7.3-rc1
This is the first pre-release of the much awaited 🥁🎺 callbacks middleware 🌈🤩
I never heard of this before 🙈 what's this callbacks middleware?
The callbacks middleware is an IBC module that implements ADR-008, which means that the module is charged with superpowers to execute callbacks in any execution environment (like the Wasm or EVM execution frameworks) on packet lifecycle events. We have added the ContractKeeper
interface defining the entry points exposed to the execution environment. The execution environment is expected to execute its custom logic within these entry points.
Read the documentation or this blog post by @adiraviraj for more information.
Hmm, ok... that sounds pretentious and a bit vague 🤔 what can I do with it?
I am glad you asked: the callbacks middleware opens up endless possibilities to implement use cases of the form send X, do Y programmatically
. The main benefit for smart contract developers is the ability to leverage existing IBC app and to build new and unique apps for use cases of the form transfer + action
or ICA + action
. For example, the following will be possible to execute in a single user flow:
- Send tokens from chain A to B. If the transfer was successful, then send an ICA packet to stake/LP/swap tokens.
- Execute arbitrary smart contract logic upon receiving an ICS-20 packet.
Wow 😮 this is pretty cool, how can use it like... today?
This pre-release is compatible with ibc-go v7.3 (v7.3.0-rc1 is the latest pre-release available at the time of publishing), so the chain will need to be running at least this version. Please check out the relevant section of the documentation to learn how to wire up the middleware. Additionally, the chain should be running a version of the execution environment that implements the ContractKeeper
interface (the Confio team is aiming to add support for this in x/wasm
during Q4 2023).
This is a fine piece of engineering work 🛠️ who are the masterminds behind such thing?
The 🔈shout-out 🗣️ goes for the IBC team at Interchain, but specially to:
- @AdityaSripal for designing ADR-008 🧠
- @srdtrk for writing the implementation and enhancing ADR-008 ✍️
- @colin-axner for reviewing and proposing countless improvements ♾️
But we would not have been able to achieve this without the invaluable help, feedback and support of:
- @alpe from Confio 🙇
- @nicolaslara from Osmosis 🧪. Their ibc-hooks middleware inspired the design and served as a starting point for the callbacks middleware.
v7.3.0-rc1
This pre-release main additions are:
Support for JSON encoding of ICA transactions
We have added support for JSON encoding of transactions in the Interchain Accounts packet data. During ICA channel handshake it is possible, using the encoding
of the channel version metadata , to indicate that the ICA transactions in the data
field of InterchainAccountPacketData
will be proto3 JSON encoded. See the Transaction Encoding section in the documentation for more information.
Support for ADR 8 middleware
We have added a set of optional interfaces that IBC applications can implement, so that the callbacks middleware (link to v1.0.0 release not available yet) can target these interfaces in order to get the desired callback addresses on the source and destination chains and execute actions on packet lifecycle events. See the Callbacks Middleware section in the documentation for more information.
Shout-out to @srdtrk for all the 🌟🦄 amazing🥇🙇 work on both features.
Additionally, this release also makes an improvement to light-clients/06-solomachine
: solo machines are now expected to sign data on a path that 1) does not include a connection prefix (e.g. ibc
) and 2) does not escape any characters.
Please see the v7.3.0-rc1 changelog for the full set of changes included in this pre-release.
To learn more about ibc-go versioning, please read our RELEASES.md.
IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.47.4 and ibc-go v7.3.0-rc1, please follow:
- The migration from SDK 0.41.x or 0.42.x to the IBC module in the ibc-go repository based on the SDK v0.44.x.
- The migration from ibc-go v1 to v2.
- The migration from ibc-go v2 to v3.
- The migration from ibc-go v3 to v4.
- The migration from ibc-go v4 to v5.
- The migration from ibc-go v5 to v6.
- The migration from ibc-go v6 to v7.
- The migration from ibc-go v7 to v7.1.