Repository navigation
Delete the retired feegrant store at v6.8 - #4563
alexander-sei wants to merge 2 commits into
Conversation
The v6.8 store loader deletes the feegrant tree v6.7 kept mounted, and the store is unmounted from the app, the canonical sei-db store list and tooling. The v6.7 suite drops its in-process store-retention checks, since this binary no longer mounts any store v6.7 retained. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4563 +/- ##
==========================================
- Coverage 57.58% 57.57% -0.01%
==========================================
Files 2133 2133
Lines 167297 167296 -1
==========================================
- Hits 96337 96326 -11
- Misses 70955 70965 +10
Partials 5 5
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
@seidroid review |
There was a problem hiding this comment.
Adds feegrant to v68DeletedStores, so the v6.8 store loader deletes the retired tree and the handler's existing loop drops its version entry. It also unmounts the store everywhere #4337 unmounted the IBC stores and retargets the v6.7/v6.8 tests. The handler, store loader, MemIAVLStoreKeys/kvStoreKeyNames parity and test imports all check out against the merge tree, and nothing blocks; codex's reading found nothing, and I agree, so no claims were carried over or dropped.
Non-blocking
- Not built or tested here because no Go toolchain was available; the only check of the edited test files was a manual one that no import is left unused. The PR also says the cross-version and docker-cluster suites have not run, and those are what exercise the
no such store: feegrantpath inverifyV68Stateagainst a real v6.7→v6.8 chain.
seidroid review · decision approve · session 4f164120ed72460f89dfb66f8786180c · turn resp_claude_66e6df419c379ca2668e08e62aa4af2e · item 8b6570780d525bfc94e45147b57c889c
Findings: 0 blocking | 1 non-blocking | 0 posted inline
PR SummaryHigh Risk Overview Tests and docs are aligned with IBC-style retirement: v6.8 suites assert App-hash breaking at v6.8 — feegrant state is only queryable on v6.7 or older nodes after the upgrade. Reviewed by Cursor Bugbot for commit 3512481. Bugbot is set up for automated code reviews on this repo. Configure here. |
The feegrant module was removed in v6.7 (#3958), but its store stayed mounted for historical state access, and the v6.8 handler only drops its module-version entry. v6.8 already deletes the other stores v6.7 kept for the same reason (
capability,ibcandtransfer, #4337), which leavesfeegrantas the last retired store still mounted, holding allowances nothing in the binary uses.feegrantModuleNamejoinsv68DeletedStores, so the v6.8 store loader deletes thefeegranttree at the upgrade height and the handler's existing loop drops its version-map entry in place of the separateDeleteModuleVersioncall. The store is unmounted everywhere #4337 unmounted the IBC stores, includingkeys.MemIAVLStoreKeys, whoseFeegrantStoreKeyconstant goes, and the v6.8 in-process, cross-version and offline tests now treat it as deleted. Because this binary no longer mounts any store v6.7 retained, the v6.7 suite's in-process store-retention checks are removed:TestV67RetainsRetiredModuleStateWrittenBeforeUpgradekeeps its version-map assertions asTestV67RemovesCommittedRetiredModuleVersions, and v6.7's retention stays covered by its offline and cross-version suites, which build from the release branches.This is app-hash breaking at the v6.8 height. From then on v6.8 nodes answer
no such store: feegrantat every height, so feegrant history needs a v6.7 or older node, the trade-off #4337 accepted for IBC. memiavl refuses to delete a tree it does not have, so the upgrade relies on every network carrying afeegranttree, which holds because v6.7 mounts it and all three networks' genesis files include it. Validated with the v6.8-tagged, v6.7-tagged and untaggedapptests, thesei-dbkeys, composite and migration packages, golangci-lint,make fmtcheck, and the threeupgrade-test-offlinephases fromrelease/v6.7against this branch, including crash replay and the v6.7 reopen refusal; the cross-version and docker-cluster suites have not run yet.