Skip to content

[codex] Add ERC20 lock boost provider#822

Open
skhomuti wants to merge 3 commits into
phase-2from
feat/erc20-lock-boost-provider
Open

[codex] Add ERC20 lock boost provider#822
skhomuti wants to merge 3 commits into
phase-2from
feat/erc20-lock-boost-provider

Conversation

@skhomuti

@skhomuti skhomuti commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add an ERC20 lock boost provider with per-operator vaults, step-based group boost caching, and Lido Aragon voting proxy support.
  • Extend MetaRegistry with weight boost provider registration and an explicit group-aware flag for composition-change hooks.
  • Add interfaces and unit coverage for ERC20 locks, vault voting proxy behavior, MetaRegistry provider add/remove flows, and group-aware refresh routing.

Comment thread src/interfaces/IERC20LockBoostProvider.sol Outdated
Comment thread src/interfaces/IERC20LockBoostProvider.sol Outdated
Comment thread src/ERC20LockBoostProvider.sol Outdated
Comment thread src/ERC20LockBoostProvider.sol Outdated
Comment thread src/ERC20LockBoostProvider.sol
Comment thread src/ERC20LockBoostProvider.sol Outdated
Comment thread src/ERC20LockBoostProvider.sol Outdated
Comment thread src/ERC20LockVault.sol
Comment thread src/ERC20LockVault.sol Outdated
Comment thread src/ERC20LockVault.sol Outdated
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch 2 times, most recently from 712c919 to 0407b20 Compare June 19, 2026 08:28
@skhomuti
skhomuti changed the base branch from develop to phase-2 June 22, 2026 10:09
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from 0407b20 to a8f0f49 Compare June 22, 2026 14:05
Comment thread src/ERC20LockBoostProvider.sol Outdated
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from f8c45db to bd8b09d Compare June 25, 2026 06:44
Comment thread script/curated/DeployBase.s.sol
Comment thread src/ERC20LockBoostProvider.sol
Comment thread src/ERC20LockBoostProvider.sol Outdated
Comment thread src/ERC20LockBoostProvider.sol Outdated
/// @notice Initialize the provider.
/// @param admin Address to receive DEFAULT_ADMIN_ROLE.
/// @param lockPeriod Initial token lock period.
function initialize(address admin, uint256 lockPeriod) external;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we have never included initialize in the interface

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we did it a few times. Make a todo to add others to the interfaces. To keep things consistent

Comment thread src/interfaces/IMetaRegistry.sol Outdated
Comment thread src/interfaces/IMetaRegistry.sol Outdated
Comment thread src/interfaces/ISnapshotDelegationLockVault.sol Outdated
Comment thread src/ERC20LockBoostProvider.sol Outdated
Comment thread src/ERC20LockBoostProvider.sol Outdated
Comment thread src/ERC20LockBoostProvider.sol Outdated
Comment thread src/ERC20LockVault.sol Outdated
Comment thread src/ERC20LockVault.sol Outdated
Comment thread src/LidoGovernanceLockVault.sol Outdated
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from 8f72af6 to d7c0102 Compare June 30, 2026 09:32
@skhomuti
skhomuti changed the base branch from phase-2 to feat/weight-boost-providers June 30, 2026 09:34
@skhomuti
skhomuti force-pushed the feat/weight-boost-providers branch from 74ec710 to 6a29821 Compare June 30, 2026 09:42
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from d7c0102 to 7ccca20 Compare June 30, 2026 09:43
@skhomuti
skhomuti force-pushed the feat/weight-boost-providers branch from 6a29821 to 02b35d6 Compare June 30, 2026 10:14
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from 7ccca20 to 6135de9 Compare June 30, 2026 10:14
@skhomuti
skhomuti force-pushed the feat/weight-boost-providers branch from 02b35d6 to 3d84c2d Compare June 30, 2026 10:59
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from 6135de9 to dd1b86c Compare June 30, 2026 10:59
@skhomuti
skhomuti force-pushed the feat/weight-boost-providers branch from 3d84c2d to 7c5bbc7 Compare June 30, 2026 11:05
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from dd1b86c to ed021d3 Compare June 30, 2026 11:05
@skhomuti
skhomuti force-pushed the feat/weight-boost-providers branch from 7c5bbc7 to ff17e9e Compare July 1, 2026 14:25
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from ed021d3 to 19dca86 Compare July 1, 2026 14:25
@skhomuti
skhomuti force-pushed the feat/weight-boost-providers branch from ff17e9e to 16bedaa Compare July 1, 2026 14:35
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from 19dca86 to 5df38bc Compare July 1, 2026 14:35
@skhomuti
skhomuti force-pushed the feat/weight-boost-providers branch from 16bedaa to ea37008 Compare July 1, 2026 14:49
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from 5df38bc to 935a227 Compare July 1, 2026 14:50
@skhomuti
skhomuti force-pushed the feat/weight-boost-providers branch from ea37008 to 07eb55e Compare July 1, 2026 15:43
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from 935a227 to 71dec95 Compare July 1, 2026 15:43
@dgusakov dgusakov mentioned this pull request Jul 2, 2026
Base automatically changed from feat/weight-boost-providers to phase-2 July 2, 2026 08:51
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from 71dec95 to b342310 Compare July 2, 2026 08:53
@skhomuti
skhomuti force-pushed the feat/erc20-lock-boost-provider branch from b342310 to 0a0c6c2 Compare July 24, 2026 07:06
@skhomuti
skhomuti marked this pull request as ready for review July 24, 2026 07:06
@skhomuti
skhomuti requested a review from a team as a code owner July 24, 2026 07:06
@skhomuti
skhomuti requested review from dgusakov and madlabman July 24, 2026 07:06

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0a0c6c2f14

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

// LDO lock boost provider
config.ldoLockBoostProviderConfig.token = 0xEf2573966D009CcEA0Fc74451dee2193564198dc;
config.ldoLockBoostProviderConfig.votingContract = 0x49B3512c44891bef83F8967d075121Bd1b07a01B;
config.ldoLockBoostProviderConfig.snapshotDelegation = address(1); // TODO: Fill in before deployment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Replace the Hoodi snapshot placeholder before deploying

In Hoodi deployments this placeholder is copied into the Lido lock vault implementation as the immutable Snapshot delegation registry address, and every vault created from that beacon will call it from assignSnapshotDelegate/unassignSnapshotDelegate. With address(1) deployed, Hoodi operators cannot actually delegate their locked LDO voting power for Snapshot without a vault implementation upgrade, so the deploy script should use the real Hoodi delegation registry or fail fast until it is known.

Useful? React with 👍 / 👎.

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.

3 participants