Skip to content

modules/apps/[email protected]+ibc-go-v7.3-rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@crodriguezvega crodriguezvega released this 30 Aug 11:18
· 5 commits to callbacks/release/v0.1.x+ibc-go-v7.3.x since this release
84dca76

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: