feat: add grove-with-delegation strategy [grove-with-delegation]#1462
Merged
Conversation
Adds the grove-with-delegation strategy for Grove protocol governance. Voting power is the actively staked GROVE balance (activeBalanceOf on the stGROVE vault 0xF3Ddcaa3BD5D04ba08beC69cf34D9d9C9c112d14), with the same whitelisted-delegate handling as spark-with-delegation. Using activeBalanceOf (rather than slashableBalanceOf) excludes stake that is already queued for withdrawal. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tony8713
approved these changes
Jul 14, 2026
tony8713
left a comment
Contributor
There was a problem hiding this comment.
Reviewed. CI failure is the known no-transactions-on-new-contracts case per Chaitu: all 8 test-strategy failures are the empty/no-positive-score assertions because the stGROVE vault currently has zero total supply on mainnet (at the example block and at head). Lint and the main test suite pass. Clean, self-contained strategy add mirroring spark-with-delegation, no red flags. examples.json should be refreshed with a positive-balance block once stGROVE has stakers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the
grove-with-delegationstrategy for Grove protocol governance. (From telegram group)Voting power is the actively staked GROVE balance —
activeBalanceOfof an account in the stGROVE vault (0xF3Ddcaa3BD5D04ba08beC69cf34D9d9C9c112d14). UsingactiveBalanceOf(rather thanslashableBalanceOf) excludes stake that has already been requested for withdrawal, so an account queued to exit cannot keep voting power.It reuses the same delegation model as the existing
spark-with-delegationstrategy:whitelistedDelegatesparam) get their own balance plus any delegated balance.The only structural difference from
spark-with-delegationis the token config: grove reads a singlecontract-call(activeBalanceOf) instead oferc20-balance-of+slashableBalanceOf.Parameters
whitelistedDelegates(optional): addresses that should receive delegated balance. Empty/omitted → no address receives delegated balance.symbol(optional): display symbol (defaults tostGROVE).Note on CI
The strategy test currently fails the "at least 1 address with a positive score" check. This is a data, not code, issue: at the time of writing, the stGROVE vault has zero total supply on mainnet (verified at the example block and at chain head —
totalSupply()andactiveBalanceOf/balanceOffor all example addresses return 0). Once stGROVE has real stakers,examples.jsonneeds to be updated with a block + addresses that carry a positiveactiveBalanceOf, and the suite will pass.🤖 Generated with Claude Code