Skip to content

IBCv2 Integration#64

Open
TxCorpi0x wants to merge 8 commits intomasterfrom
mehdi/ibcv2-integration
Open

IBCv2 Integration#64
TxCorpi0x wants to merge 8 commits intomasterfrom
mehdi/ibcv2-integration

Conversation

@TxCorpi0x
Copy link
Contributor

@TxCorpi0x TxCorpi0x commented Jan 29, 2026

Description

This pull request introduces support for IBC v2 (Inter-Blockchain Communication version 2) in the application, particularly focusing on the transfer module and related middleware. It updates imports, configures new IBC v2 stacks and routers, and ensures deterministic gas configuration for new IBC v2 channel messages.

IBC v2 Integration and Configuration:

  • Added imports for IBC v2 modules, including ibccallbacksv2, transferv2, and the new IBC API, to support v2 functionality in app/app.go.

  • Created and configured the IBC v2 transfer stack and middleware, and set up a dedicated IBC v2 router using SetRouterV2 in the application initialization logic in app/app.go.

  • Created Integration Test for the IBC v2 complete flow.

Reviewers checklist:

  • Try to write more meaningful comments with clear actions to be taken.
  • Nit-picking should be unblocking. Focus on core issues.

Authors checklist

  • Provide a concise and meaningful description
  • Review the code yourself first, before making the PR.
  • Annotate your PR in places that require explanation.
  • Think and try to split the PR to smaller PR if it is big.

This change is Reviewable

@TxCorpi0x TxCorpi0x requested a review from a team as a code owner January 29, 2026 10:09
@TxCorpi0x TxCorpi0x requested review from akhlopiachyi, masihyeganeh, metalarm10, miladz68 and ysv and removed request for a team January 29, 2026 10:09
masihyeganeh
masihyeganeh previously approved these changes Feb 5, 2026
Copy link
Contributor

@masihyeganeh masihyeganeh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@masihyeganeh reviewed 4 files and all commit messages, and made 1 comment.
Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @akhlopiachyi, @metalarm10, @miladz68, @TxCorpi0x, and @ysv).


x/deterministicgas/config.go line 357 at r1 (raw file):

			// ibc/core/channel/v2
			// TODO: MsgSendPacket is the user-facing message that initiates the transfer, so it should be deterministic.

Should we calculate this one?

Copy link
Contributor Author

@TxCorpi0x TxCorpi0x left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TxCorpi0x made 1 comment.
Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @akhlopiachyi, @metalarm10, @miladz68, and @ysv).


x/deterministicgas/config.go line 357 at r1 (raw file):

Previously, masihyeganeh (Masih Yeganeh) wrote…

Should we calculate this one?

I am not sure, May be @ysv or @miladz68 are the best person to ask.
IMO this would be hard to estimate at the moment, since the current Hermes version does not support v2 transfers, i am not sure how we are going to estimate it in a working blockchain. We can do this by just running the send packet and measure it. but i think it is better to define a task for the future so we can rethink this

Copy link
Contributor

@miladz68 miladz68 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@miladz68 partially reviewed 2 files and made 3 comments.
Reviewable status: 1 of 4 files reviewed, 3 unresolved discussions (waiting on akhlopiachyi, masihyeganeh, metalarm10, TxCorpi0x, and ysv).


x/deterministicgas/config.go line 357 at r1 (raw file):

Previously, TxCorpi0x wrote…

I am not sure, May be @ysv or @miladz68 are the best person to ask.
IMO this would be hard to estimate at the moment, since the current Hermes version does not support v2 transfers, i am not sure how we are going to estimate it in a working blockchain. We can do this by just running the send packet and measure it. but i think it is better to define a task for the future so we can rethink this

I think they should be un-deterministic.


a discussion (no related file):
let's merge this PR after v6 release.


integration-tests/ibc/ibc_v2_test.go line 70 at r1 (raw file):

	gaiaChain := chains.Gaia

	// --- Step 1: Relayer accounts ---

please remove numbered steps, it makes future maintenance harder.

Copy link
Contributor

@miladz68 miladz68 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@miladz68 partially reviewed 2 files.
Reviewable status: 1 of 4 files reviewed, 3 unresolved discussions (waiting on akhlopiachyi, masihyeganeh, metalarm10, TxCorpi0x, and ysv).

Copy link
Contributor Author

@TxCorpi0x TxCorpi0x left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TxCorpi0x made 3 comments and resolved 1 discussion.
Reviewable status: 0 of 4 files reviewed, 2 unresolved discussions (waiting on akhlopiachyi, masihyeganeh, metalarm10, miladz68, and ysv).


a discussion (no related file):

Previously, miladz68 (milad) wrote…

let's merge this PR after v6 release.

Sure


integration-tests/ibc/ibc_v2_test.go line 70 at r1 (raw file):

Previously, miladz68 (milad) wrote…

please remove numbered steps, it makes future maintenance harder.

Done


x/deterministicgas/config.go line 357 at r1 (raw file):

Previously, miladz68 (milad) wrote…

I think they should be un-deterministic.

Done, Todo removed

miladz68
miladz68 previously approved these changes Feb 19, 2026
Copy link
Contributor

@miladz68 miladz68 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@miladz68 reviewed 4 files and all commit messages, made 1 comment, and resolved 2 discussions.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on akhlopiachyi, metalarm10, and ysv).


x/deterministicgas/config.go line 357 at r1 (raw file):

Previously, TxCorpi0x wrote…

Done, Todo removed

Maybe I have misunderstood, MsgSendPacket replaces MsgTransfer ? I thought MsgSendPacket is handled by relayers.

Copy link
Contributor Author

@TxCorpi0x TxCorpi0x left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TxCorpi0x made 1 comment.
Reviewable status: 3 of 4 files reviewed, all discussions resolved (waiting on akhlopiachyi, metalarm10, miladz68, and ysv).


x/deterministicgas/config.go line 357 at r1 (raw file):

Previously, miladz68 (milad) wrote…

Maybe I have misunderstood, MsgSendPacket replaces MsgTransfer ? I thought MsgSendPacket is handled by relayers.

MsgSendPacket will be called by User/DAPP, the rest of the messages called by relayers,
MsgRecvPacket,MsgAckPacket,MsgTimeoutPacket

Copy link
Contributor

@miladz68 miladz68 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@miladz68 reviewed 1 file and all commit messages, and made 1 comment.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on akhlopiachyi, metalarm10, and ysv).


x/deterministicgas/config.go line 357 at r1 (raw file):

Previously, TxCorpi0x wrote…

MsgSendPacket will be called by User/DAPP, the rest of the messages called by relayers,
MsgRecvPacket,MsgAckPacket,MsgTimeoutPacket

if it is user facing, then we should try to make it deterministic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments