mukan-ibc/modules/apps/callbacks
Mukan Erkin Törük 88dd97a9f8
Some checks failed
CodeQL / Analyze (push) Waiting to run
golangci-lint / lint (push) Waiting to run
Tests / Code Coverage / build (amd64) (push) Waiting to run
Tests / Code Coverage / build (arm64) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[additional-args:-tags="test_e2e" name:e2e path:./e2e]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:08-wasm path:./modules/light-clients/08-wasm]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:ibc-go path:.]) (push) Waiting to run
Docker Build & Push Simapp (main) / docker-build (push) Has been cancelled
refactor: replace all github.com upstream refs with git.cw.tr/mukan-network
2026-05-11 03:36:22 +03:00
..
internal refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00
testing/simapp refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00
types refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00
v2 refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00
callbacks_test.go refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00
CHANGELOG.md initial: sovereign Mukan Network fork 2026-05-11 03:18:28 +03:00
ibc_middleware.go refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00
ibc_middleware_test.go refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00
ica_test.go refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00
README.md initial: sovereign Mukan Network fork 2026-05-11 03:18:28 +03:00
replay_test.go refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00
transfer_test.go refactor: replace all github.com upstream refs with git.cw.tr/mukan-network 2026-05-11 03:36:22 +03:00

Callbacks Middleware

IBC was designed with callbacks between core IBC and IBC applications. IBC apps would send a packet to core IBC, and receive a callback on every step of that packet's lifecycle. This allows IBC applications to be built on top of core IBC, and to be able to execute custom logic on packet lifecycle events (e.g. unescrow tokens for ICS-20).

This setup worked well for off-chain users interacting with IBC applications. However, we are now seeing the desire for secondary applications (e.g. smart contracts, modules) to call into IBC apps as part of their state machine logic and then do some actions on packet lifecycle events.

The Callbacks Middleware allows for this functionality by allowing the packets of the underlying IBC applications to register callbacks to secondary applications for lifecycle events. These callbacks are then executed by the Callbacks Middleware when the corresponding packet lifecycle event occurs.

After much discussion, the design was expanded to an ADR, and the Callbacks Middleware is an implementation of that ADR.

Version Matrix

The callbacks middleware has no stable releases yet. To use it, you need to import the git commit that contains the module with the compatible version of ibc-go. To do so, run the following command with the desired git commit in your project:

go get github.com/cosmos/ibc-go/modules/apps/callbacks@342c00b0f8bd7feeebf0780f208a820b0faf90d1

You can find the version matrix for the callbacks middleware here