Skip to content

feat: Cosmos SDK v0.54 migration#63

Draft
trevormil wants to merge 3 commits intofeat/v30from
feat/sdk-v0.54-upgrade
Draft

feat: Cosmos SDK v0.54 migration#63
trevormil wants to merge 3 commits intofeat/v30from
feat/sdk-v0.54-upgrade

Conversation

@trevormil
Copy link
Copy Markdown
Collaborator

Summary

  • Bump Cosmos SDK v0.53.6 → v0.54.0, IBC-Go v10 → v11, CometBFT v0.38 → v0.39
  • Migrate all imports: evidence, feegrant, upgrade, x/tx, log/v2, IBC v11 (70 files)
  • Apply IBC v11 keeper changes: remove ParamSubspace, add AddressCodec to transfer/PFM/ICA keepers
  • Add bank first in endBlockers (required for BlockSTM support)
  • Remove x/group (Cosmos Enterprise) and x/crisis (contrib) from app wiring
  • Mark group + crisis stores as deleted in v29 upgrade handler
  • Replace deprecated NewUncachedContext with NewNextBlockContext

Blocked on

  • cosmos/evm: v0.6.0 and v1.0.0-rc2 still target SDK v0.53 / IBC v10. When a v0.54-compatible release ships, update the dep, tidy, and this should compile.

To finish when cosmos/evm is ready

  1. go get github.com/cosmos/evm@<v0.54-compatible>
  2. Handle any remaining circuit module proto path changes
  3. go mod tidy && go build ./... && make test

Test plan

  • go build ./... passes (blocked on cosmos/evm)
  • make test passes
  • Binary initializes genesis correctly
  • Upgrade from v28 binary to v29 binary succeeds on local testnet

🤖 Generated with Claude Code

trevormil and others added 2 commits April 17, 2026 10:17
Applies Cosmos SDK v0.53→v0.54 migration guide changes:
- Bump cosmos-sdk to v0.54.0, ibc-go to v11, log to v2, client to v2.11.0, api to v1.0.0
- Migrate x/evidence, x/feegrant, x/upgrade, x/tx imports to github.com/cosmos/cosmos-sdk/x/*
- Migrate cosmossdk.io/log to cosmossdk.io/log/v2 (24 files)
- Migrate ibc-go/v10 to v11 (54 files)
- Apply IBC v11 keeper changes: remove ParamSubspace, add AddressCodec
- Add banktypes.ModuleName first in endBlockers (required for BlockSTM)
- Remove x/group (moved to Cosmos Enterprise) from app wiring + store upgrades
- Remove x/crisis (moved to contrib) from app wiring + store upgrades
- Replace NewUncachedContext with NewNextBlockContext in test suite

NOTE: Build blocked by cosmos/evm v0.6.0 not yet having a v0.54-compatible release.
When cosmos/evm releases v0.54 support, this branch should compile with minimal fixes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…crisis

- cosmos-sdk v0.54.0 → v0.54.2 (patch)
- x/circuit moved to contrib in v0.54 — update imports to
  github.com/cosmos/cosmos-sdk/contrib/x/circuit
- cometbft auto-bumped 0.39.0 → 0.39.1 via MVS
- drop x/circuit/x/evidence/x/feegrant/x/upgrade from direct requires
  (now part of cosmos-sdk module)
- log v1 demoted to indirect, log/v2 promoted to direct
- crisis dropped from commands.go (module removed from app config)

Note: go mod tidy still fails on cosmos/evm v0.6.0 transitive test-only
references to x/group paths that no longer exist in SDK v0.54. Build
also surfaces store v1→v2 migration work and IBC-Go v11 middleware
interface updates that still need to land. This commit captures the
clean dep-level work; remaining code migration is a follow-up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@trevormil trevormil force-pushed the feat/sdk-v0.54-upgrade branch from 9ca0623 to a291052 Compare April 17, 2026 14:20
@trevormil trevormil changed the base branch from master to feat/v30 April 17, 2026 14:20
Migrates all chain code off `cosmossdk.io/store*` and onto
`github.com/cosmos/cosmos-sdk/store/v2*` (39 files) per the v0.54
upgrade guide. Drops the `metrics` argument from `rootmulti.NewStore`
and `store.NewCommitMultiStore` calls in test helpers — store/v2 no
longer ships a metrics subpackage and those constructors take only
(db, logger).

Adds the two new methods IBC-Go v11's porttypes.Middleware /
porttypes.IBCModule interfaces now require:

- `SetICS4Wrapper(wrapper porttypes.ICS4Wrapper)` on IBCMiddleware,
  customHooksWrapper, and MockIBCModule
- `SetUnderlyingApplication(app porttypes.IBCModule)` on IBCMiddleware

Also deletes the `noopParamSubspace` helper in
`testutil/keeper/ibc_helpers.go` — IBC v11 removed `ibctypes.ParamSubspace`
entirely along with its use in keeper constructors.

After these changes, all chain code compiles. The only remaining build
errors are transitive from `cosmos/evm v0.6.0` (still on SDK v0.53 APIs)
and its pinned `cosmossdk.io/x/upgrade v0.2.0` — both clear once
cosmos/evm ships a v0.54 + ibc-go v11 compatible release.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant