github cosmos/ibc-go modules/apps/callbacks/v0.1.0-rc0+ibc-go-v7.3-rc1
modules/apps/callbacks@v0.1.0-rc0+ibc-go-v7.3-rc1

latest releases: v8.5.1, v6.2.3, ibc-eureka-alpha.0...
pre-release12 months ago

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:

Don't miss a new ibc-go release

NewReleases is sending notifications on new releases.