Skip to content

Upgrade to v2.21: Cosmos SDK v0.53, IBC-Go v10, wasmd v0.60, alliance v0.5.1 - #28

Open
c0r3-d3v wants to merge 7 commits into
release/v2.20from
upgrade/v2.21
Open

c0r3-d3v wants to merge 7 commits into
release/v2.20from
upgrade/v2.21

Conversation

@c0r3-d3v

@c0r3-d3v c0r3-d3v commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR upgrades Terra Core to the v2.21 release, built on Cosmos SDK v0.53.7, IBC-Go v10.7.0, wasmd v0.60.7 and alliance v0.5.1. The IBC v10 migration removes the capability module and the 29-fee (ICS-29) module, and this release also drops async-icq.

A v2.21 upgrade handler is registered under the plan name v2.21; it runs module migrations only.

Dependency bumps

Dependency v2.20 v2.21
cosmos-sdk (phoenix-directive fork) v0.50.15-terra.0 v0.53.7-terra.0
ibc-go v8.8.0 v10.7.0
packet-forward-middleware v8.1.1 v10.6.0
ibc-hooks v8 (2024-11-22) v10.0.0
async-icq v8.0.0 removed
wasmd v0.54.9 v0.60.7
wasmvm v2.2.8 v2.3.3
alliance (phoenix-directive fork) v0.4.0 / v0.4.5 v0.5.1
interchaintest strangelove v8 cosmos/interchaintest v10
Go 1.22.10 / 1.23.6 1.23.8

cometbft stays at v0.38.21. Transitive cosmossdk.io/* modules move with SDK v0.53 (x/tx v0.14, x/upgrade v0.2.0, collections v1.3.1, api v0.9.2).

Breaking changes

Removed modules

  • capability — removed by IBC v10. CapabilityKeeper, all ScopedKeepers, the capability store key + mem store key, and CapabilityKeeper.Seal() in NewTerraApp are gone (app/keepers/keepers.go, app/keepers/keys.go, app/app.go, app/modules.go).
  • 29-fee (ICS-29)IBCFeeKeeper, module registration, store key and module account removed.
  • async-icq — the ICQ module, keeper, store key, module account, genesis defaults and the icqAllowedQueries() allow-list (~170 lines of app/genesis.go) are removed, along with QueryICQParams in app/config/const.go and the ICQ proto path in scripts/protoc-swagger-gen.sh.

Keeper wiring

  • ibckeeper.NewKeeper, ibctransferkeeper.NewKeeper and packetforwardkeeper.NewKeeper now take a runtime.KVStoreService instead of a raw store key; transfer takes the MsgServiceRouter in place of the port/scoped keepers.
  • The 07-tendermint light client is now registered as an app module (ibctm.NewAppModule(app.Keepers.TMLightClientModule)).
  • x/wasm/keeper.NewKeeper drops the portKeeper and capabilityKeeper arguments (wasmd v0.60 signature).

Module ordering

  • Added preBlockersOrder (upgrade, auth) wired via app.mm.SetOrderPreBlockers.
  • capability, ibcfee and icq removed from init-genesis / begin-blocker / end-blocker orders.

Test plan

  • make test / unit + simulation tests pass
  • yarn test:chain:upgrade:v21 upgrade simulation from a v2.20 state
  • make test-e2e-pmf interchaintest suite
  • IBC transfer, PFM, ibc-hooks and ICA host/controller flows verified post-upgrade against an existing channel set

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