Repository navigation
Remove live IBC transfer module - #3981
Conversation
Remove ICS-20 module wiring, APIs, CLI commands, and CosmWasm integration. Retire the live IBC precompile while preserving legacy implementations and codecs for historical tracing and transaction decoding. Keep the transfer store and module account mounted for historical state safety, and remove its module version during the v6.7 upgrade.
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3981 +/- ##
==========================================
- Coverage 59.08% 57.58% -1.50%
==========================================
Files 2305 2225 -80
Lines 197021 185842 -11179
==========================================
- Hits 116402 107011 -9391
+ Misses 69858 69048 -810
+ Partials 10761 9783 -978
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
PR SummaryHigh Risk Overview State compatibility is preserved by keeping the Operator and client impact is documented in Reviewed by Cursor Bugbot for commit 5817e97. Bugbot is set up for automated code reviews on this repo. Configure here. |
6f8297d to
cd3c443
Compare
Remove the remaining transfer keeper, codecs, protobufs, metrics, and functional legacy IBC precompiles. Route pre-v6.7 transfer history to v6.6 freeze nodes and map all IBC precompile versions to the deterministic retirement tombstone. Retain the transfer store and module account for state compatibility, along with raw Wasm packet handling and callbacks.
# Conflicts: # sei-ibc-go/modules/apps/transfer/keeper/grpc_query.go
Precompile behaviour is selected by upgrade height, so the code every precompile ran as `v6.7` has to be frozen before `main` can carry `v6.8` behaviour. This is the `scripts/bump_version` output for that step, the same preparatory PR as sei-protocol#3625 (v6.6) and sei-protocol#3961 (v6.7): every generated precompile is archived into `legacy/v68`, and its `setup.go` and `versions` file gain the new entry. `app/tags` gains `v6.8` in the same PR, as sei-protocol#3961 did, because the two have to move together: once the `versions` file lists `v6.8`, the generated `GetVersioned` map carries both `latestUpgrade` and a literal `"v6.7"` key pointing at the archived snapshot, and with `app/tags` still at `v6.7` the snapshot shadows the live implementation. The archived `v6.7` code is not the current code (for example the pointer precompile still had its creation path, removed after the tag in sei-protocol#4230), so the shadowing changed historical `debug_traceTransaction` replays in `evmrpc/tests`. Appending to `app/tags` makes v6.7 to v6.8 the current boundary, so `make new-upgrade-test FROM=v6.7 TO=v6.8` scaffolds the tagged boundary tests. They assert the minimum for an upgrade that changes nothing yet: an un-upgraded binary halts at the plan height, the handler applies without changing the module version map, bank sends succeed on both sides, and the offline source, target and reopen phases see the same store set. The oracle removal in sei-protocol#4319 replaces them with its own assertions. The one hand-written generator change is in `archiveModule`, which now skips an existing module that has no `versions` file instead of creating one and archiving it. The retired `ibc` precompile is maintained by hand as a tombstone (sei-protocol#3981) and has no `versions` file, so without the guard the generator rewrote its `setup.go` down to a single `v6.8` entry and `TestVersionedPrecompilesAreAllTombstones` failed. Brand-new modules still get a `versions` file, since that path is keyed on `isNew`. Re-running `go run ./scripts/bump_version` on this branch produces no further changes.
Remove ICS-20 module wiring, APIs, CLI commands, and CosmWasm integration.
Retire the live IBC precompile while preserving legacy implementations and codecs for historical tracing and transaction decoding. Keep the transfer store and module account mounted for historical state safety, and remove its module version during the v6.7 upgrade.