Skip to content

Comments

Refactor meta vault#131

Merged
tsudmi merged 19 commits intomainfrom
refactor-meta-vault
Feb 2, 2026
Merged

Refactor meta vault#131
tsudmi merged 19 commits intomainfrom
refactor-meta-vault

Conversation

@tsudmi
Copy link
Member

@tsudmi tsudmi commented Feb 2, 2026

No description provided.

Copilot AI review requested due to automatic review settings February 2, 2026 07:31
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the meta vault architecture by extracting sub-vault management logic into a separate SubVaultsRegistry contract, improving separation of concerns and maintainability.

Changes:

  • Extracts sub-vault management logic from meta vaults into a new SubVaultsRegistry contract
  • Removes GnoPrivMetaVault in favor of using GnoMetaVault directly
  • Adds EthErc20MetaVault and EthPrivErc20MetaVault variants with ERC20 token functionality

Reviewed changes

Copilot reviewed 85 out of 85 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
contracts/vaults/SubVaultsRegistryFactory.sol New factory contract for deploying SubVaultsRegistry instances
contracts/vaults/modules/VaultSubVaults.sol Refactored to delegate sub-vault operations to SubVaultsRegistry
contracts/vaults/gnosis/GnoMetaVault.sol Updated to use SubVaultsRegistry for sub-vault management
contracts/vaults/gnosis/GnoPrivMetaVault.sol Removed file - functionality merged into GnoMetaVault
contracts/vaults/ethereum/EthErc20MetaVault.sol New ERC20 meta vault implementation
contracts/vaults/ethereum/EthPrivErc20MetaVault.sol New private ERC20 meta vault with whitelist
contracts/interfaces/ISubVaultsRegistry.sol New interface for SubVaultsRegistry contract
test/gnosis/GnoPrivMetaVault.t.sol Removed test file for deleted GnoPrivMetaVault
test/EthPrivErc20MetaVault.t.sol New test file for EthPrivErc20MetaVault
test/EthErc20MetaVault.t.sol New test file for EthErc20MetaVault

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link

github-actions bot commented Feb 2, 2026

Forge code coverage:

File % Lines % Statements % Branches % Funcs
contracts/base/ERC20Upgradeable.sol 100.00% (32/32) 100.00% (33/33) 100.00% (5/5) 100.00% (8/8)
contracts/base/Multicall.sol 100.00% (6/6) 100.00% (8/8) 100.00% (0/0) 100.00% (1/1)
contracts/curators/BalancedCurator.sol 100.00% (57/57) 100.00% (63/63) 100.00% (15/15) 100.00% (2/2)
contracts/curators/CuratorsRegistry.sol 100.00% (15/15) 100.00% (12/12) 100.00% (4/4) 100.00% (3/3)
contracts/libraries/EIP712Utils.sol 100.00% (3/3) 100.00% (2/2) 100.00% (0/0) 100.00% (1/1)
contracts/libraries/ExitQueue.sol 95.92% (47/49) 95.24% (60/63) 62.50% (5/8) 100.00% (5/5)
contracts/libraries/OsTokenUtils.sol 100.00% (13/13) 100.00% (14/14) 100.00% (5/5) 100.00% (1/1)
contracts/libraries/SubVaultExits.sol 100.00% (16/16) 93.75% (15/16) 75.00% (3/4) 100.00% (3/3)
contracts/libraries/ValidatorUtils.sol 100.00% (93/93) 100.00% (105/105) 100.00% (16/16) 100.00% (7/7)
contracts/misc/EthRewardSplitter.sol 100.00% (5/5) 100.00% (3/3) 100.00% (0/0) 100.00% (2/2)
contracts/misc/GnoRewardSplitter.sol 100.00% (6/6) 100.00% (3/3) 100.00% (0/0) 100.00% (3/3)
contracts/misc/RewardSplitter.sol 100.00% (86/86) 98.89% (89/90) 92.86% (13/14) 100.00% (17/17)
contracts/misc/RewardSplitterFactory.sol 100.00% (6/6) 100.00% (4/4) 100.00% (0/0) 100.00% (2/2)
contracts/tokens/EthOsTokenRedeemer.sol 100.00% (6/6) 100.00% (5/5) 100.00% (0/0) 100.00% (3/3)
contracts/tokens/EthOsTokenVaultEscrow.sol 0.00% (0/4) 0.00% (0/3) 100.00% (0/0) 0.00% (0/2)
contracts/tokens/GnoOsTokenRedeemer.sol 100.00% (11/11) 100.00% (8/8) 100.00% (1/1) 100.00% (5/5)
contracts/tokens/GnoOsTokenVaultEscrow.sol 0.00% (0/4) 0.00% (0/2) 100.00% (0/0) 0.00% (0/2)
contracts/tokens/OsToken.sol 0.00% (0/15) 0.00% (0/15) 0.00% (0/3) 0.00% (0/6)
contracts/tokens/OsTokenConfig.sol 0.00% (0/30) 0.00% (0/34) 0.00% (0/11) 0.00% (0/4)
contracts/tokens/OsTokenFlashLoans.sol 0.00% (0/13) 0.00% (0/16) 0.00% (0/2) 0.00% (0/2)
contracts/tokens/OsTokenRedeemer.sol 98.80% (164/166) 98.41% (186/189) 93.94% (31/33) 100.00% (20/20)
contracts/tokens/OsTokenVaultController.sol 0.00% (0/107) 0.00% (0/121) 0.00% (0/18) 0.00% (0/17)
contracts/tokens/OsTokenVaultEscrow.sol 0.00% (0/89) 0.00% (0/98) 0.00% (0/23) 0.00% (0/11)
contracts/tokens/PriceFeed.sol 100.00% (14/14) 100.00% (11/11) 100.00% (0/0) 100.00% (6/6)
contracts/validators/ConsolidationsChecker.sol 8.33% (2/24) 3.12% (1/32) 0.00% (0/3) 25.00% (1/4)
contracts/validators/EthValidatorsChecker.sol 83.33% (5/6) 66.67% (4/6) 0.00% (0/1) 100.00% (2/2)
contracts/validators/GnoValidatorsChecker.sol 55.56% (5/9) 57.14% (4/7) 0.00% (0/1) 66.67% (2/3)
contracts/validators/ValidatorsChecker.sol 100.00% (77/77) 100.00% (101/101) 100.00% (17/17) 100.00% (7/7)
contracts/vaults/ethereum/EthBlocklistErc20Vault.sol 100.00% (27/27) 100.00% (23/23) 100.00% (1/1) 100.00% (8/8)
contracts/vaults/ethereum/EthBlocklistVault.sol 100.00% (23/23) 100.00% (20/20) 100.00% (1/1) 100.00% (7/7)
contracts/vaults/ethereum/EthErc20MetaVault.sol 92.75% (64/69) 93.10% (54/58) 75.00% (3/4) 87.50% (21/24)
contracts/vaults/ethereum/EthErc20Vault.sol 100.00% (45/45) 100.00% (37/37) 100.00% (2/2) 100.00% (14/14)
contracts/vaults/ethereum/EthGenesisVault.sol 13.33% (6/45) 7.55% (4/53) 11.11% (1/9) 18.18% (2/11)
contracts/vaults/ethereum/EthMetaVault.sol 92.98% (53/57) 91.67% (44/48) 50.00% (2/4) 95.00% (19/20)
contracts/vaults/ethereum/EthMetaVaultFactory.sol 100.00% (9/9) 100.00% (7/7) 100.00% (0/0) 100.00% (2/2)
contracts/vaults/ethereum/EthPrivErc20MetaVault.sol 100.00% (26/26) 100.00% (22/22) 100.00% (1/1) 100.00% (8/8)
contracts/vaults/ethereum/EthPrivErc20Vault.sol 100.00% (27/27) 100.00% (23/23) 100.00% (1/1) 100.00% (8/8)
contracts/vaults/ethereum/EthPrivMetaVault.sol 100.00% (22/22) 100.00% (19/19) 100.00% (1/1) 100.00% (7/7)
contracts/vaults/ethereum/EthPrivVault.sol 100.00% (23/23) 100.00% (20/20) 100.00% (1/1) 100.00% (7/7)
contracts/vaults/ethereum/EthVault.sol 100.00% (28/28) 100.00% (23/23) 100.00% (1/1) 100.00% (9/9)
contracts/vaults/ethereum/EthVaultFactory.sol 100.00% (14/14) 100.00% (10/10) 100.00% (2/2) 100.00% (2/2)
contracts/vaults/ethereum/custom/EthFoxVault.sol 100.00% (23/23) 100.00% (22/22) 100.00% (2/2) 100.00% (7/7)
contracts/vaults/ethereum/mev/OwnMevEscrow.sol 100.00% (10/10) 100.00% (9/9) 100.00% (2/2) 100.00% (3/3)
contracts/vaults/ethereum/mev/SharedMevEscrow.sol 100.00% (8/8) 100.00% (6/6) 100.00% (1/1) 100.00% (3/3)
contracts/vaults/gnosis/GnoBlocklistErc20Vault.sol 100.00% (22/22) 100.00% (20/20) 100.00% (1/1) 100.00% (6/6)
contracts/vaults/gnosis/GnoBlocklistVault.sol 100.00% (18/18) 100.00% (17/17) 100.00% (1/1) 100.00% (5/5)
contracts/vaults/gnosis/GnoErc20Vault.sol 100.00% (43/43) 100.00% (34/34) 100.00% (1/1) 100.00% (13/13)
contracts/vaults/gnosis/GnoGenesisVault.sol 15.00% (6/40) 8.16% (4/49) 14.29% (1/7) 25.00% (2/8)
contracts/vaults/gnosis/GnoMetaVault.sol 89.58% (43/48) 92.11% (35/38) 50.00% (1/2) 87.50% (14/16)
contracts/vaults/gnosis/GnoMetaVaultFactory.sol 100.00% (12/12) 100.00% (10/10) 100.00% (0/0) 100.00% (2/2)
contracts/vaults/gnosis/GnoPrivErc20Vault.sol 100.00% (22/22) 100.00% (20/20) 100.00% (1/1) 100.00% (6/6)
contracts/vaults/gnosis/GnoPrivVault.sol 100.00% (18/18) 100.00% (17/17) 100.00% (1/1) 100.00% (5/5)
contracts/vaults/gnosis/GnoVault.sol 100.00% (27/27) 100.00% (21/21) 100.00% (1/1) 100.00% (8/8)
contracts/vaults/gnosis/GnoVaultFactory.sol 100.00% (17/17) 100.00% (13/13) 100.00% (2/2) 100.00% (2/2)
contracts/vaults/gnosis/mev/GnoOwnMevEscrow.sol 100.00% (11/11) 100.00% (9/9) 100.00% (2/2) 100.00% (3/3)
contracts/vaults/gnosis/mev/GnoSharedMevEscrow.sol 100.00% (8/8) 100.00% (6/6) 100.00% (1/1) 100.00% (3/3)
contracts/vaults/modules/VaultAdmin.sol 100.00% (16/16) 100.00% (14/14) 100.00% (3/3) 100.00% (5/5)
contracts/vaults/modules/VaultBlocklist.sol 100.00% (17/17) 100.00% (14/14) 100.00% (4/4) 100.00% (5/5)
contracts/vaults/modules/VaultEnterExit.sol 100.00% (61/61) 98.61% (71/72) 91.67% (11/12) 100.00% (8/8)
contracts/vaults/modules/VaultEthStaking.sol 100.00% (30/30) 100.00% (29/29) 100.00% (3/3) 100.00% (9/9)
contracts/vaults/modules/VaultFee.sol 100.00% (29/29) 100.00% (28/28) 100.00% (6/6) 100.00% (5/5)
contracts/vaults/modules/VaultGnoStaking.sol 100.00% (43/43) 100.00% (37/37) 100.00% (2/2) 100.00% (11/11)
contracts/vaults/modules/VaultImmutables.sol 100.00% (9/9) 100.00% (8/8) 100.00% (2/2) 100.00% (4/4)
contracts/vaults/modules/VaultMev.sol 100.00% (16/16) 100.00% (16/16) 100.00% (5/5) 100.00% (4/4)
contracts/vaults/modules/VaultOsToken.sol 100.00% (89/89) 100.00% (94/94) 100.00% (17/17) 100.00% (13/13)
contracts/vaults/modules/VaultState.sol 98.28% (114/116) 95.35% (123/129) 71.43% (15/21) 100.00% (17/17)
contracts/vaults/modules/VaultSubVaults.sol 65.08% (41/63) 57.81% (37/64) 50.00% (2/4) 85.71% (12/14)
contracts/vaults/modules/VaultToken.sol 100.00% (21/21) 100.00% (21/21) 100.00% (3/3) 100.00% (7/7)
contracts/vaults/modules/VaultValidators.sol 100.00% (70/70) 100.00% (63/63) 100.00% (12/12) 100.00% (11/11)
contracts/vaults/modules/VaultVersion.sol 100.00% (12/12) 100.00% (20/20) 100.00% (1/1) 100.00% (3/3)
contracts/vaults/modules/VaultWhitelist.sol 100.00% (17/17) 100.00% (15/15) 100.00% (4/4) 100.00% (5/5)
Total 82.53% (1909/2313) 79.85% (1870/2342) 71.43% (240/336) 85.42% (416/487)

Copilot AI review requested due to automatic review settings February 2, 2026 11:17
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 79 out of 79 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings February 2, 2026 15:02
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 82 out of 82 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings February 2, 2026 15:38
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 83 out of 83 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (2)

test/gnosis/GnoPrivMetaVault.t.sol:1

  • The GnoPrivMetaVault test file has been completely removed. If GnoPrivMetaVault functionality still exists in the codebase (or has been merged into GnoMetaVault with whitelist capability), ensure adequate test coverage exists elsewhere for the private/whitelisted meta vault functionality on Gnosis.
    contracts/vaults/ethereum/EthErc20Vault.sol:1
  • Missing closing brace. The enterExitQueue function appears to have an extra opening brace at line 139 that doesn't have a corresponding closing brace, or the code block structure is inconsistent.
// SPDX-License-Identifier: BUSL-1.1

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tsudmi tsudmi merged commit 13b12a1 into main Feb 2, 2026
7 checks passed
@tsudmi tsudmi deleted the refactor-meta-vault branch February 2, 2026 17:26
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