chore(proto): regen pulsar API for ibc-go v10.6.0#190
Conversation
WalkthroughThis 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
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ 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:
|
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
api/ibc/core/channel/v1/channel.pulsar.go (1)
5716-5718: TheTimeoutcomment still mixes up height and sequence.
Heightis an IBC client height, not a packet sequence. Since this text is generated, the fix should happen in the sourcechannel.protocomment 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
⛔ Files ignored due to path filters (11)
api/ibc/applications/fee/v1/query_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/applications/fee/v1/tx_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/applications/transfer/v1/query_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/core/channel/v1/query_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/core/channel/v1/tx_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/core/channel/v2/query_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/core/channel/v2/tx_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/core/client/v1/query_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/core/client/v1/tx_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/core/client/v2/query_grpc.pb.gois excluded by!**/*.pb.goapi/ibc/core/client/v2/tx_grpc.pb.gois excluded by!**/*.pb.go
📒 Files selected for processing (37)
api/ibc/applications/fee/v1/ack.pulsar.goapi/ibc/applications/fee/v1/genesis.pulsar.goapi/ibc/applications/fee/v1/query.pulsar.goapi/ibc/applications/interchain_accounts/host/v1/tx.pulsar.goapi/ibc/applications/transfer/v1/denomtrace.pulsar.goapi/ibc/applications/transfer/v1/genesis.pulsar.goapi/ibc/applications/transfer/v1/packet.pulsar.goapi/ibc/applications/transfer/v1/query.pulsar.goapi/ibc/applications/transfer/v1/token.pulsar.goapi/ibc/applications/transfer/v1/transfer.pulsar.goapi/ibc/applications/transfer/v1/tx.pulsar.goapi/ibc/core/channel/v1/channel.pulsar.goapi/ibc/core/channel/v1/genesis.pulsar.goapi/ibc/core/channel/v1/query.pulsar.goapi/ibc/core/channel/v1/tx.pulsar.goapi/ibc/core/channel/v2/genesis.pulsar.goapi/ibc/core/channel/v2/packet.pulsar.goapi/ibc/core/channel/v2/query.pulsar.goapi/ibc/core/channel/v2/tx.pulsar.goapi/ibc/core/client/v1/client.pulsar.goapi/ibc/core/client/v1/genesis.pulsar.goapi/ibc/core/client/v1/query.pulsar.goapi/ibc/core/client/v1/tx.pulsar.goapi/ibc/core/client/v2/config.pulsar.goapi/ibc/core/client/v2/counterparty.pulsar.goapi/ibc/core/client/v2/genesis.pulsar.goapi/ibc/core/client/v2/query.pulsar.goapi/ibc/core/client/v2/tx.pulsar.goapi/ibc/core/commitment/v1/commitment.pulsar.goapi/ibc/core/commitment/v2/commitment.pulsar.goapi/ibc/core/connection/v1/connection.pulsar.goapi/ibc/core/connection/v1/tx.pulsar.goapi/ibc/core/types/v1/genesis.pulsar.goapi/ibc/lightclients/localhost/v2/localhost.pulsar.goapi/ibc/lightclients/solomachine/v2/solomachine.pulsar.goapi/ibc/lightclients/solomachine/v3/solomachine.pulsar.goapi/ibc/lightclients/tendermint/v1/tendermint.pulsar.go
💤 Files with no reviewable changes (1)
- api/ibc/applications/fee/v1/ack.pulsar.go
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...
!in the type prefix if API or client breaking changeReviewers 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...
Summary by CodeRabbit
New Features
Removals