Skip to content

chore(proto): regen pulsar API for ibc-go v10.6.0#190

Merged
traviolus merged 1 commit intomainfrom
chore/pulsar-ibc-v10
Apr 29, 2026
Merged

chore(proto): regen pulsar API for ibc-go v10.6.0#190
traviolus merged 1 commit intomainfrom
chore/pulsar-ibc-v10

Conversation

@traviolus
Copy link
Copy Markdown
Contributor

@traviolus traviolus commented Apr 28, 2026

Description

Closes: #XXXX


Author Checklist

All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.

I have...

  • included the correct type prefix in the PR title, you can find examples of the prefixes below:
  • confirmed ! in the type prefix if API or client breaking change
  • targeted the correct branch
  • provided a link to the relevant issue or specification
  • reviewed "Files changed" and left comments if necessary
  • included the necessary unit and integration tests
  • updated the relevant documentation or specification, including comments for documenting Go code
  • confirmed all CI checks have passed

Reviewers Checklist

All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.

I have...

  • confirmed the correct type prefix in the PR title
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic, API design and naming, documentation is accurate, tests and test coverage

Summary by CodeRabbit

  • New Features

    • Added IBC Client v2 implementation with new counterparty info and configuration support.
    • Added Channel v2 genesis support.
    • Added encoding field to transfer messages.
  • Removals

    • Removed legacy governance proposal message types.
    • Removed deprecated upgrade-related fields from channel messages.
    • Consolidated and reorganized transfer-related message definitions.

@traviolus traviolus requested a review from a team as a code owner April 28, 2026 11:06
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 28, 2026

Walkthrough

This pull request contains extensive protobuf-generated code updates across IBC modules, including message schema removals (fee acknowledgment, channel upgrade fields, legacy governance proposals), consolidation of transfer protocol versions (v2→v1), introduction of new client v2 APIs with updated message structures, and additions to existing messages (encoding field, client deletion support).

Changes

Cohort / File(s) Summary
Fee and Acknowledgment Removal
api/ibc/applications/fee/v1/ack.pulsar.go
Deleted entire generated protobuf file containing IncentivizedAcknowledgement message type, its reflection implementation, and file descriptor metadata.
Transfer Protocol Version Consolidation
api/ibc/applications/transfer/v1/packet.pulsar.go, api/ibc/applications/transfer/v1/transfer.pulsar.go
Migrated generated code from transfer v2 to v1 package identity. Removed DenomTrace message from transfer.pulsar.go entirely while updating packet descriptor references.
Transfer Message Structure Updates
api/ibc/applications/transfer/v1/denomtrace.pulsar.go, api/ibc/applications/transfer/v1/genesis.pulsar.go, api/ibc/applications/interchain_accounts/host/v1/tx.pulsar.go
Renamed Metadata struct to DenomTrace with field restructuring (FeeVersion/AppVersionPath/BaseDenom). Updated genesis field from DenomTraces to Denoms with type change to Denom. Minor descriptor byte updates to host tx file.
Token Message Complete Rewrite
api/ibc/applications/transfer/v1/token.pulsar.go
Replaced entire message schema from channel upgrade (Upgrade, UpgradeFields, ErrorReceipt) to transfer token structure (Token, Denom, Hop). Package changed from channelv1 to transferv1.
Transfer Method Extensions
api/ibc/applications/transfer/v1/tx.pulsar.go
Added optional encoding string field (field 9) to MsgTransfer with corresponding getter, reflection logic, and serialization support.
Channel v1 Cleanup
api/ibc/core/channel/v1/channel.pulsar.go, api/ibc/core/channel/v1/genesis.pulsar.go
Removed upgrade_sequence field from Channel and IdentifiedChannel. Deleted entire Params message. Removed State enum entries (STATE_FLUSHING, STATE_FLUSHCOMPLETE). Removed params field from genesis.
Channel v2 Genesis Addition
api/ibc/core/channel/v2/genesis.pulsar.go
New generated file defining GenesisState, PacketState, and PacketSequence messages with complete protobuf reflection and serialization support for v2 channel genesis data.
Client v1 Governance Cleanup
api/ibc/core/client/v1/client.pulsar.go
Removed legacy governance proposal messages (ClientUpdateProposal, UpgradeProposal) and associated reflection/serialization code.
Client v1 Feature Additions
api/ibc/core/client/v1/tx.pulsar.go
Added client_id field to MsgCreateClientResponse. Introduced new message types MsgDeleteClientCreator and MsgDeleteClientCreatorResponse with full protobuf support.
Client v1 Documentation
api/ibc/core/client/v1/genesis.pulsar.go
Updated docstring on GenesisMetadata struct to clarify export behavior.
Client v2 New Protocol
api/ibc/core/client/v2/config.pulsar.go, api/ibc/core/client/v2/counterparty.pulsar.go, api/ibc/core/client/v2/genesis.pulsar.go, api/ibc/core/client/v2/query.pulsar.go
Four new generated files introducing v2 client APIs: Config (with allowed_relayers), CounterpartyInfo (with merkle_prefix and client_id), v2 genesis messages, and query request/response message types.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

🐰 Hops through channels, traces consolidated,
Fees acknowledged, version navigated,
Tokens reborn, v2 clients arise,
Messages restructured beneath protocol skies!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the primary change: regenerating pulsar API protobuf files for ibc-go v10.6.0, which is reflected across all modified files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/pulsar-ibc-v10

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 28, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 43.39%. Comparing base (4fa78a2) to head (176530c).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #190   +/-   ##
=======================================
  Coverage   43.39%   43.39%           
=======================================
  Files          74       74           
  Lines        7369     7369           
=======================================
  Hits         3198     3198           
  Misses       3586     3586           
  Partials      585      585           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (1)
api/ibc/core/channel/v1/channel.pulsar.go (1)

5716-5718: The Timeout comment still mixes up height and sequence.

Height is an IBC client height, not a packet sequence. Since this text is generated, the fix should happen in the source channel.proto comment so the wording does not keep propagating to generated targets.

Also applies to: 5724-5727

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@api/ibc/core/channel/v1/channel.pulsar.go` around lines 5716 - 5718, The
generated comment for the Timeout type incorrectly describes Height as a packet
sequence; update the source comment in channel.proto for the Timeout message to
say that Height is an IBC client height (not a packet sequence) and that a valid
Timeout contains one or both of a timestamp and a client height. Edit the
Timeout message comment in channel.proto (the proto docstring above the Timeout
message) so the corrected wording propagates to generated targets (this will fix
the comments that appear near the Timeout type in generated files such as
channel.pulsar.go).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@api/ibc/applications/transfer/v1/genesis.pulsar.go`:
- Around line 811-813: The genesis field tag 2 was changed from the old
DenomTrace type to Denoms []*Denom which is incompatible; add a migration that
converts old serialized/genesis JSON denom_traces -> new Denoms by mapping
DenomTrace.Path/DenomTrace.BaseDenom to the new Denom.Trace and Denom.Base (or
equivalent field names) during genesis load/upgrade. Implement this in the
module upgrade/migration entry (e.g., in your module's Migrator/ApplyUpgrade
handler) to detect legacy genesis bytes or JSON, deserialize into the old
DenomTrace slice, transform each DenomTrace -> Denom, and then continue using
the updated GenesisState (with PortId, Denoms []*Denom, Params). Also update
JSON unmarshal helpers to accept the legacy field name "denom_traces" for
backwards compatibility and add an upgrade note documenting the breaking change
and the migration path.

In `@api/ibc/applications/transfer/v1/token.pulsar.go`:
- Around line 159-163: fastReflection_Token.Get currently calls
x.Denom.ProtoReflect() unconditionally which will panic when x.Denom is nil;
change Get (for case "ibc.applications.transfer.v1.Token.denom") to check
x.Denom for nil and if nil return protoreflect.ValueOfMessage((/* zero-value
Token message for denom */ &TokenDenomZero).ProtoReflect()) or otherwise return
protoreflect.ValueOfMessage(x.Denom.ProtoReflect()); in other words, guard the
nil pointer on x.Denom in fastReflection_Token.Get so an unpopulated singular
message field yields an empty read-only message view instead of panicking (refer
to fastReflection_Token.Get and the denom field).

In `@api/ibc/core/channel/v1/channel.pulsar.go`:
- Around line 64-69: This change removes exported API (Channel/IdentifiedChannel
upgrade-sequence accessors GetUpgradeSequence/UpgradeSequence, channelv1.Params
type and UpgradeTimeout, and JSON field names upgrade_sequence/upgrade_timeout)
which is a breaking change for external consumers; to fix, either (A) restore
backwards-compatible shims: reintroduce the exported symbols (methods
GetUpgradeSequence/UpgradeSequence on Channel and IdentifiedChannel, the
channelv1.Params type with UpgradeTimeout field) marked deprecated and
implemented to return the new/internal values or zero defaults and preserve the
old JSON struct tags for unmarshalling, or (B) if you intend to remove them, add
an explicit breaking-change note in the project release
notes/CHANGELOG/UPGRADING docs referencing these symbols and the JSON field
names so downstream users can migrate; choose one of these approaches and update
the code/comments/docs accordingly.

In `@api/ibc/core/channel/v2/genesis.pulsar.go`:
- Around line 2064-2068: The generated file
api/ibc/core/channel/v2/genesis.pulsar.go is stale (shows protoc-gen-go v1.27.0
and protoc (unknown)); regenerate all protobuf outputs using the pinned
toolchain and update the generated headers by running the current
protoc/protoc-gen-go used by the repo (use the existing protocgen-pulsar.sh as a
helper). Also pin the protoc binary version by adding an explicit protoc
download/version reference in your generation script (protocgen-pulsar.sh) or in
proto/buf.yaml/proto/buf.gen.pulsar.yaml so builds are reproducible, then commit
the regenerated .go files (including genesis.pulsar.go) so the header reflects
the correct protoc and protoc-gen-go versions.

---

Nitpick comments:
In `@api/ibc/core/channel/v1/channel.pulsar.go`:
- Around line 5716-5718: The generated comment for the Timeout type incorrectly
describes Height as a packet sequence; update the source comment in
channel.proto for the Timeout message to say that Height is an IBC client height
(not a packet sequence) and that a valid Timeout contains one or both of a
timestamp and a client height. Edit the Timeout message comment in channel.proto
(the proto docstring above the Timeout message) so the corrected wording
propagates to generated targets (this will fix the comments that appear near the
Timeout type in generated files such as channel.pulsar.go).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9e30ff59-360e-4023-8228-654fb8069381

📥 Commits

Reviewing files that changed from the base of the PR and between 4fa78a2 and 176530c.

⛔ Files ignored due to path filters (11)
  • api/ibc/applications/fee/v1/query_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/applications/fee/v1/tx_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/applications/transfer/v1/query_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/core/channel/v1/query_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/core/channel/v1/tx_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/core/channel/v2/query_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/core/channel/v2/tx_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/core/client/v1/query_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/core/client/v1/tx_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/core/client/v2/query_grpc.pb.go is excluded by !**/*.pb.go
  • api/ibc/core/client/v2/tx_grpc.pb.go is excluded by !**/*.pb.go
📒 Files selected for processing (37)
  • api/ibc/applications/fee/v1/ack.pulsar.go
  • api/ibc/applications/fee/v1/genesis.pulsar.go
  • api/ibc/applications/fee/v1/query.pulsar.go
  • api/ibc/applications/interchain_accounts/host/v1/tx.pulsar.go
  • api/ibc/applications/transfer/v1/denomtrace.pulsar.go
  • api/ibc/applications/transfer/v1/genesis.pulsar.go
  • api/ibc/applications/transfer/v1/packet.pulsar.go
  • api/ibc/applications/transfer/v1/query.pulsar.go
  • api/ibc/applications/transfer/v1/token.pulsar.go
  • api/ibc/applications/transfer/v1/transfer.pulsar.go
  • api/ibc/applications/transfer/v1/tx.pulsar.go
  • api/ibc/core/channel/v1/channel.pulsar.go
  • api/ibc/core/channel/v1/genesis.pulsar.go
  • api/ibc/core/channel/v1/query.pulsar.go
  • api/ibc/core/channel/v1/tx.pulsar.go
  • api/ibc/core/channel/v2/genesis.pulsar.go
  • api/ibc/core/channel/v2/packet.pulsar.go
  • api/ibc/core/channel/v2/query.pulsar.go
  • api/ibc/core/channel/v2/tx.pulsar.go
  • api/ibc/core/client/v1/client.pulsar.go
  • api/ibc/core/client/v1/genesis.pulsar.go
  • api/ibc/core/client/v1/query.pulsar.go
  • api/ibc/core/client/v1/tx.pulsar.go
  • api/ibc/core/client/v2/config.pulsar.go
  • api/ibc/core/client/v2/counterparty.pulsar.go
  • api/ibc/core/client/v2/genesis.pulsar.go
  • api/ibc/core/client/v2/query.pulsar.go
  • api/ibc/core/client/v2/tx.pulsar.go
  • api/ibc/core/commitment/v1/commitment.pulsar.go
  • api/ibc/core/commitment/v2/commitment.pulsar.go
  • api/ibc/core/connection/v1/connection.pulsar.go
  • api/ibc/core/connection/v1/tx.pulsar.go
  • api/ibc/core/types/v1/genesis.pulsar.go
  • api/ibc/lightclients/localhost/v2/localhost.pulsar.go
  • api/ibc/lightclients/solomachine/v2/solomachine.pulsar.go
  • api/ibc/lightclients/solomachine/v3/solomachine.pulsar.go
  • api/ibc/lightclients/tendermint/v1/tendermint.pulsar.go
💤 Files with no reviewable changes (1)
  • api/ibc/applications/fee/v1/ack.pulsar.go

Comment thread api/ibc/applications/transfer/v1/genesis.pulsar.go
Comment thread api/ibc/applications/transfer/v1/token.pulsar.go
Comment thread api/ibc/core/channel/v1/channel.pulsar.go
Comment thread api/ibc/core/channel/v2/genesis.pulsar.go
Copy link
Copy Markdown
Member

@beer-1 beer-1 left a comment

Choose a reason for hiding this comment

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

LGTM

@traviolus traviolus merged commit 7df13df into main Apr 29, 2026
11 checks passed
@traviolus traviolus deleted the chore/pulsar-ibc-v10 branch April 29, 2026 06:23
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.

2 participants